public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants
@ 2005-06-20 21:51 domen
  2005-06-21  7:19 ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: domen @ 2005-06-20 21:51 UTC (permalink / raw)
  To: axboe; +Cc: linux-kernel, Tobias Klauser, domen

[-- Attachment #1: dma_mask-drivers_block_umem.patch --]
[-- Type: text/plain, Size: 1435 bytes --]

From: Tobias Klauser <tklauser@nuerscht.ch>



Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
pci_set_dma_mask() or pci_set_consistent_dma_mask()
These patches include dma-mapping.h explicitly because it caused errors
on some architectures otherwise.
See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details

Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
Signed-off-by: Domen Puncer <domen@coderock.org>
---
 umem.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

Index: quilt/drivers/block/umem.c
===================================================================
--- quilt.orig/drivers/block/umem.c
+++ quilt/drivers/block/umem.c
@@ -50,6 +50,7 @@
 #include <linux/timer.h>
 #include <linux/pci.h>
 #include <linux/slab.h>
+#include <linux/dma-mapping.h>
 
 #include <linux/fcntl.h>        /* O_ACCMODE */
 #include <linux/hdreg.h>  /* HDIO_GETGEO */
@@ -892,8 +893,8 @@ static int __devinit mm_pci_probe(struct
 	printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n",
 	       card->card_number, dev->bus->number, dev->devfn);
 
-	if (pci_set_dma_mask(dev, 0xffffffffffffffffLL) &&
-	    !pci_set_dma_mask(dev, 0xffffffffLL)) {
+	if (pci_set_dma_mask(dev, DMA_64BIT_MASK) &&
+	    !pci_set_dma_mask(dev, DMA_32BIT_MASK)) {
 		printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards);
 		return  -ENOMEM;
 	}

--

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants
  2005-06-20 21:51 [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants domen
@ 2005-06-21  7:19 ` Jens Axboe
  2005-06-21 11:11   ` Neil Brown
  2005-06-21 16:25   ` Tobias Klauser
  0 siblings, 2 replies; 4+ messages in thread
From: Jens Axboe @ 2005-06-21  7:19 UTC (permalink / raw)
  To: domen; +Cc: linux-kernel, Tobias Klauser, neilb

On Mon, Jun 20 2005, domen@coderock.org wrote:
> From: Tobias Klauser <tklauser@nuerscht.ch>
> 
> 
> 
> Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
> pci_set_dma_mask() or pci_set_consistent_dma_mask()
> These patches include dma-mapping.h explicitly because it caused errors
> on some architectures otherwise.
> See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details
> 
> Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
> Signed-off-by: Domen Puncer <domen@coderock.org>
> ---
>  umem.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> Index: quilt/drivers/block/umem.c
> ===================================================================
> --- quilt.orig/drivers/block/umem.c
> +++ quilt/drivers/block/umem.c
> @@ -50,6 +50,7 @@
>  #include <linux/timer.h>
>  #include <linux/pci.h>
>  #include <linux/slab.h>
> +#include <linux/dma-mapping.h>
>  
>  #include <linux/fcntl.h>        /* O_ACCMODE */
>  #include <linux/hdreg.h>  /* HDIO_GETGEO */
> @@ -892,8 +893,8 @@ static int __devinit mm_pci_probe(struct
>  	printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n",
>  	       card->card_number, dev->bus->number, dev->devfn);
>  
> -	if (pci_set_dma_mask(dev, 0xffffffffffffffffLL) &&
> -	    !pci_set_dma_mask(dev, 0xffffffffLL)) {
> +	if (pci_set_dma_mask(dev, DMA_64BIT_MASK) &&
> +	    !pci_set_dma_mask(dev, DMA_32BIT_MASK)) {
>  		printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards);
>  		return  -ENOMEM;
>  	}

Not from your patch, but that code looks a little strange. We error if
setting a 64-bit mask fails _but_ the 32-bit one succeeds? That can't be
right.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants
  2005-06-21  7:19 ` Jens Axboe
@ 2005-06-21 11:11   ` Neil Brown
  2005-06-21 16:25   ` Tobias Klauser
  1 sibling, 0 replies; 4+ messages in thread
From: Neil Brown @ 2005-06-21 11:11 UTC (permalink / raw)
  To: Jens Axboe; +Cc: domen, pnguyen, linux-kernel, Tobias Klauser

On Tuesday June 21, axboe@suse.de wrote:
> On Mon, Jun 20 2005, domen@coderock.org wrote:
> > From: Tobias Klauser <tklauser@nuerscht.ch>
> > 
> > 
> > 
> > Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
> > pci_set_dma_mask() or pci_set_consistent_dma_mask()
> > These patches include dma-mapping.h explicitly because it caused errors
> > on some architectures otherwise.
> > See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details
> > 
> > Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
> > Signed-off-by: Domen Puncer <domen@coderock.org>
> > ---
> >  umem.c |    5 +++--
> >  1 files changed, 3 insertions(+), 2 deletions(-)
> > 
> > Index: quilt/drivers/block/umem.c
> > ===================================================================
> > --- quilt.orig/drivers/block/umem.c
> > +++ quilt/drivers/block/umem.c
> > @@ -50,6 +50,7 @@
> >  #include <linux/timer.h>
> >  #include <linux/pci.h>
> >  #include <linux/slab.h>
> > +#include <linux/dma-mapping.h>
> >  
> >  #include <linux/fcntl.h>        /* O_ACCMODE */
> >  #include <linux/hdreg.h>  /* HDIO_GETGEO */
> > @@ -892,8 +893,8 @@ static int __devinit mm_pci_probe(struct
> >  	printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n",
> >  	       card->card_number, dev->bus->number, dev->devfn);
> >  
> > -	if (pci_set_dma_mask(dev, 0xffffffffffffffffLL) &&
> > -	    !pci_set_dma_mask(dev, 0xffffffffLL)) {
> > +	if (pci_set_dma_mask(dev, DMA_64BIT_MASK) &&
> > +	    !pci_set_dma_mask(dev, DMA_32BIT_MASK)) {
> >  		printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards);
> >  		return  -ENOMEM;
> >  	}
> 
> Not from your patch, but that code looks a little strange. We error if
> setting a 64-bit mask fails _but_ the 32-bit one succeeds? That can't be
> right.

No, it can't be, can it.... I remember looking at that code in late
2001 (I think) and thought I could make sense of it, but I'm not so
sure now.

Phap: (if you are still at umem.com) do you remember the rationale
behind this??  
If not, we should probably just remove that '!'...

Thanks Jens,

NeilBrown

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants
  2005-06-21  7:19 ` Jens Axboe
  2005-06-21 11:11   ` Neil Brown
@ 2005-06-21 16:25   ` Tobias Klauser
  1 sibling, 0 replies; 4+ messages in thread
From: Tobias Klauser @ 2005-06-21 16:25 UTC (permalink / raw)
  To: Jens Axboe; +Cc: domen, linux-kernel, neilb

On 2005-06-21 at 09:19:39 +0200, Jens Axboe <axboe@suse.de> wrote:
> On Mon, Jun 20 2005, domen@coderock.org wrote:
> > From: Tobias Klauser <tklauser@nuerscht.ch>
> > 
> > 
> > 
> > Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
> > pci_set_dma_mask() or pci_set_consistent_dma_mask()
> > These patches include dma-mapping.h explicitly because it caused errors
> > on some architectures otherwise.
> > See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details
> > 
> > Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
> > Signed-off-by: Domen Puncer <domen@coderock.org>
> > ---
> >  umem.c |    5 +++--
> >  1 files changed, 3 insertions(+), 2 deletions(-)
> > 
> > Index: quilt/drivers/block/umem.c
> > ===================================================================
> > --- quilt.orig/drivers/block/umem.c
> > +++ quilt/drivers/block/umem.c
> > @@ -50,6 +50,7 @@
> >  #include <linux/timer.h>
> >  #include <linux/pci.h>
> >  #include <linux/slab.h>
> > +#include <linux/dma-mapping.h>
> >  
> >  #include <linux/fcntl.h>        /* O_ACCMODE */
> >  #include <linux/hdreg.h>  /* HDIO_GETGEO */
> > @@ -892,8 +893,8 @@ static int __devinit mm_pci_probe(struct
> >  	printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n",
> >  	       card->card_number, dev->bus->number, dev->devfn);
> >  
> > -	if (pci_set_dma_mask(dev, 0xffffffffffffffffLL) &&
> > -	    !pci_set_dma_mask(dev, 0xffffffffLL)) {
> > +	if (pci_set_dma_mask(dev, DMA_64BIT_MASK) &&
> > +	    !pci_set_dma_mask(dev, DMA_32BIT_MASK)) {
> >  		printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards);
> >  		return  -ENOMEM;
> >  	}
> 
> Not from your patch, but that code looks a little strange. We error if
> setting a 64-bit mask fails _but_ the 32-bit one succeeds? That can't be
> right.

Oh yes. I remember Alexey Dobriyan bringing this up some time ago on the
kernel-janitor list:
http://lists.osdl.org/mailman/htdig/kernel-janitors/2005-May/004063.html

Thanks, Tobias

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-06-21 16:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-20 21:51 [patch 11/12] drivers/block/umem.c: Use the DMA_{64, 32}BIT_MASK constants domen
2005-06-21  7:19 ` Jens Axboe
2005-06-21 11:11   ` Neil Brown
2005-06-21 16:25   ` Tobias Klauser

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox