2006-12-05 02:27:08

by Martin Bligh

[permalink] [raw]
Subject: [PATCH] Fix up compiler warnings in megaraid driver

diff -aurpN -X /home/mbligh/.diff.exclude linux-2.6.19/drivers/scsi/megaraid.c 2.6.19-megaraid/drivers/scsi/megaraid.c
--- linux-2.6.19/drivers/scsi/megaraid.c 2006-12-04 17:52:00.000000000 -0800
+++ 2.6.19-megaraid/drivers/scsi/megaraid.c 2006-12-04 18:24:03.000000000 -0800
@@ -73,10 +73,14 @@ static unsigned short int max_mbox_busy_
module_param(max_mbox_busy_wait, ushort, 0);
MODULE_PARM_DESC(max_mbox_busy_wait, "Maximum wait for mailbox in microseconds if busy (default=MBOX_BUSY_WAIT=10)");

-#define RDINDOOR(adapter) readl((adapter)->base + 0x20)
-#define RDOUTDOOR(adapter) readl((adapter)->base + 0x2C)
-#define WRINDOOR(adapter,value) writel(value, (adapter)->base + 0x20)
-#define WROUTDOOR(adapter,value) writel(value, (adapter)->base + 0x2C)
+#define RDINDOOR(adapter) readl((volatile void __iomem *) \
+ (adapter)->base + 0x20)
+#define RDOUTDOOR(adapter) readl((volatile void __iomem *) \
+ (adapter)->base + 0x2C)
+#define WRINDOOR(adapter,value) writel(value, (volatile void __iomem *)\
+ (adapter)->base + 0x20)
+#define WROUTDOOR(adapter,value) writel(value, (volatile void __iomem *)\
+ (adapter)->base + 0x2C)

/*
* Global variables
@@ -3566,7 +3570,7 @@ megadev_ioctl(struct inode *inode, struc
/*
* The user passthru structure
*/
- upthru = (mega_passthru __user *)MBOX(uioc)->xferaddr;
+ upthru = (mega_passthru __user *)(unsigned long)MBOX(uioc)->xferaddr;

/*
* Copy in the user passthru here.
@@ -3618,7 +3622,7 @@ megadev_ioctl(struct inode *inode, struc
/*
* Get the user data
*/
- if( copy_from_user(data, (char __user *)uxferaddr,
+ if( copy_from_user(data, (char __user *)(unsigned long) uxferaddr,
pthru->dataxferlen) ) {
rval = (-EFAULT);
goto freemem_and_return;
@@ -3644,7 +3648,7 @@ megadev_ioctl(struct inode *inode, struc
* Is data going up-stream
*/
if( pthru->dataxferlen && (uioc.flags & UIOC_RD) ) {
- if( copy_to_user((char __user *)uxferaddr, data,
+ if( copy_to_user((char __user *)(unsigned long) uxferaddr, data,
pthru->dataxferlen) ) {
rval = (-EFAULT);
}
@@ -3697,7 +3701,7 @@ freemem_and_return:
/*
* Get the user data
*/
- if( copy_from_user(data, (char __user *)uxferaddr,
+ if( copy_from_user(data, (char __user *)(unsigned long) uxferaddr,
uioc.xferlen) ) {

pci_free_consistent(pdev,
@@ -3737,7 +3741,7 @@ freemem_and_return:
* Is data going up-stream
*/
if( uioc.xferlen && (uioc.flags & UIOC_RD) ) {
- if( copy_to_user((char __user *)uxferaddr, data,
+ if( copy_to_user((char __user *)(unsigned long) uxferaddr, data,
uioc.xferlen) ) {

rval = (-EFAULT);


Attachments:
2.6.19-megaraid (2.67 kB)

2006-12-05 04:58:15

by Jeff Garzik

[permalink] [raw]
Subject: Re: [PATCH] Fix up compiler warnings in megaraid driver

Martin Bligh wrote:
> Fix up compiler warnings in megaraid driver
>
> Signed-off-by: Martin J. Bligh <[email protected]>
>
>
> ------------------------------------------------------------------------
>
> diff -aurpN -X /home/mbligh/.diff.exclude linux-2.6.19/drivers/scsi/megaraid.c 2.6.19-megaraid/drivers/scsi/megaraid.c
> --- linux-2.6.19/drivers/scsi/megaraid.c 2006-12-04 17:52:00.000000000 -0800
> +++ 2.6.19-megaraid/drivers/scsi/megaraid.c 2006-12-04 18:24:03.000000000 -0800
> @@ -73,10 +73,14 @@ static unsigned short int max_mbox_busy_
> module_param(max_mbox_busy_wait, ushort, 0);
> MODULE_PARM_DESC(max_mbox_busy_wait, "Maximum wait for mailbox in microseconds if busy (default=MBOX_BUSY_WAIT=10)");
>
> -#define RDINDOOR(adapter) readl((adapter)->base + 0x20)
> -#define RDOUTDOOR(adapter) readl((adapter)->base + 0x2C)
> -#define WRINDOOR(adapter,value) writel(value, (adapter)->base + 0x20)
> -#define WROUTDOOR(adapter,value) writel(value, (adapter)->base + 0x2C)
> +#define RDINDOOR(adapter) readl((volatile void __iomem *) \
> + (adapter)->base + 0x20)
> +#define RDOUTDOOR(adapter) readl((volatile void __iomem *) \
> + (adapter)->base + 0x2C)
> +#define WRINDOOR(adapter,value) writel(value, (volatile void __iomem *)\
> + (adapter)->base + 0x20)
> +#define WROUTDOOR(adapter,value) writel(value, (volatile void __iomem *)\
> + (adapter)->base + 0x2C)
>
> /*
> * Global variables

I posted a better fix just yesterday...

Jeff