2006-08-07 15:30:20

by Eric W. Biederman

[permalink] [raw]
Subject: [PATCH] megaraid: Use the proper type to hold the irq number.


When testing on a Unisys machine it was discovered that
the megaraid driver would not initialize as it was
requesting irq 162 instead of irq 1442 it was assigned.
The problem was the irq number had been truncated by being
stored in an unsigned char.

This patches fixes that problem and the driver now appears
to work.

The ioctl interface appears fundamentally broken as it exports
the irq number to user space in an unsigned char.

Signed-off-by: Eric W. Biederman <[email protected]>
---
drivers/scsi/megaraid/mega_common.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/megaraid/mega_common.h b/drivers/scsi/megaraid/mega_common.h
index 8cd0bd1..b50e27e 100644
--- a/drivers/scsi/megaraid/mega_common.h
+++ b/drivers/scsi/megaraid/mega_common.h
@@ -175,7 +175,7 @@ typedef struct {
uint8_t max_lun;

uint32_t unique_id;
- uint8_t irq;
+ int irq;
uint8_t ito;
caddr_t ibuf;
dma_addr_t ibuf_dma_h;
--
1.4.2.rc3.g7e18e


2006-08-07 21:19:49

by Ju, Seokmann

[permalink] [raw]
Subject: RE: [PATCH] megaraid: Use the proper type to hold the irq number.

Hi
> This patches fixes that problem and the driver now appears
> to work.
>
> The ioctl interface appears fundamentally broken as it exports
> the irq number to user space in an unsigned char.
Thank you for your findings.
As you mentioned above, driver needs more changes besides your patch.
I will submit a patch covers all required changes, soon.

Thank you again,

Seokmann

> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Eric
> W. Biederman
> Sent: Monday, August 07, 2006 11:29 AM
> To: Andrew Morton
> Cc: Kolli, Neela; [email protected]; Protasevich,
> Natalie; [email protected]
> Subject: [PATCH] megaraid: Use the proper type to hold the irq number.
>
>
> When testing on a Unisys machine it was discovered that
> the megaraid driver would not initialize as it was
> requesting irq 162 instead of irq 1442 it was assigned.
> The problem was the irq number had been truncated by being
> stored in an unsigned char.
>
> This patches fixes that problem and the driver now appears
> to work.
>
> The ioctl interface appears fundamentally broken as it exports
> the irq number to user space in an unsigned char.
>
> Signed-off-by: Eric W. Biederman <[email protected]>
> ---
> drivers/scsi/megaraid/mega_common.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/scsi/megaraid/mega_common.h
> b/drivers/scsi/megaraid/mega_common.h
> index 8cd0bd1..b50e27e 100644
> --- a/drivers/scsi/megaraid/mega_common.h
> +++ b/drivers/scsi/megaraid/mega_common.h
> @@ -175,7 +175,7 @@ typedef struct {
> uint8_t max_lun;
>
> uint32_t unique_id;
> - uint8_t irq;
> + int irq;
> uint8_t ito;
> caddr_t ibuf;
> dma_addr_t ibuf_dma_h;
> --
> 1.4.2.rc3.g7e18e
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-scsi" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>