2007-09-28 20:23:56

by Yang, Bo

[permalink] [raw]
Subject: [PATCH 5/8] scsi: megaraid_sas - using unsigned long for sense_buff ptr

MegaRAID utilities expect sense_buff to be of type unsigned long.

Signed-off-by: Bo Yang <[email protected]>

---
drivers/scsi/megaraid/megaraid_sas.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)

diff -uprN linux-2.6.22_orig/drivers/scsi/megaraid/megaraid_sas.c linux-2.6.22_new/drivers/scsi/megaraid/megaraid_sas.c
--- linux-2.6.22_orig/drivers/scsi/megaraid/megaraid_sas.c 2007-09-27 04:41:39.000000000 -0700
+++ linux-2.6.22_new/drivers/scsi/megaraid/megaraid_sas.c 2007-09-27 04:50:14.000000000 -0700
@@ -2969,6 +2969,7 @@ megasas_mgmt_fw_ioctl(struct megasas_ins
void *sense = NULL;
dma_addr_t sense_handle;
u32 *sense_ptr;
+ unsigned long *sense_buff;

memset(kbuff_arr, 0, sizeof(kbuff_arr));

@@ -3073,14 +3074,16 @@ megasas_mgmt_fw_ioctl(struct megasas_ins
*/
if (ioc->sense_len) {
/*
- * sense_ptr points to the location that has the user
+ * sense_buff points to the location that has the user
* sense buffer address
*/
- sense_ptr = (u32 *) ((unsigned long)ioc->frame.raw +
- ioc->sense_off);
+ sense_buff = (unsigned long *) ((unsigned long)ioc->frame.raw +
+ ioc->sense_off);

- if (copy_to_user((void __user *)((unsigned long)(*sense_ptr)),
- sense, ioc->sense_len)) {
+ if (copy_to_user((void __user *)(unsigned long)(*sense_buff),
+ sense, ioc->sense_len)) {
+ printk(KERN_ERR "megasas: Failed to copy out to user"
+ "sense data\n");
error = -EFAULT;
goto out;
}


2007-09-28 20:47:16

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 5/8] scsi: megaraid_sas - using unsigned long for sense_buff ptr

On Wed, 26 Sep 2007 11:41:07 -0400 bo yang wrote:

> MegaRAID utilities expect sense_buff to be of type unsigned long.
>
> Signed-off-by: Bo Yang <[email protected]>
>
> ---
> drivers/scsi/megaraid/megaraid_sas.c | 13 ++++++++-----
> 1 files changed, 8 insertions(+), 5 deletions(-)
>
> diff -uprN linux-2.6.22_orig/drivers/scsi/megaraid/megaraid_sas.c linux-2.6.22_new/drivers/scsi/megaraid/megaraid_sas.c
> --- linux-2.6.22_orig/drivers/scsi/megaraid/megaraid_sas.c 2007-09-27 04:41:39.000000000 -0700
> +++ linux-2.6.22_new/drivers/scsi/megaraid/megaraid_sas.c 2007-09-27 04:50:14.000000000 -0700
> @@ -2969,6 +2969,7 @@ megasas_mgmt_fw_ioctl(struct megasas_ins
> void *sense = NULL;
> dma_addr_t sense_handle;
> u32 *sense_ptr;
> + unsigned long *sense_buff;
>
> memset(kbuff_arr, 0, sizeof(kbuff_arr));
>
> @@ -3073,14 +3074,16 @@ megasas_mgmt_fw_ioctl(struct megasas_ins
> */
> if (ioc->sense_len) {
> /*
> - * sense_ptr points to the location that has the user
> + * sense_buff points to the location that has the user
> * sense buffer address
> */
> - sense_ptr = (u32 *) ((unsigned long)ioc->frame.raw +
> - ioc->sense_off);
> + sense_buff = (unsigned long *) ((unsigned long)ioc->frame.raw +
> + ioc->sense_off);
>
> - if (copy_to_user((void __user *)((unsigned long)(*sense_ptr)),
> - sense, ioc->sense_len)) {
> + if (copy_to_user((void __user *)(unsigned long)(*sense_buff),
> + sense, ioc->sense_len)) {
> + printk(KERN_ERR "megasas: Failed to copy out to user"
> + "sense data\n");

" sense data\n");

> error = -EFAULT;
> goto out;
> }


---
~Randy
Phaedrus says that Quality is about caring.