From: This patch fixes 2 minor issues that break our Array Configuration utility. my_io was changed to a pointer so the & had to removed when using it with copy_to_user(). Sometime in 2.5 SG_MAX got changed to 31. Maybe to copy cciss? Now I'm changing it back to 32 so our app can work. --- 25-akpm/drivers/block/cpqarray.c | 2 +- 25-akpm/drivers/block/ida_cmd.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/block/cpqarray.c~cpqarray-update-for-26 drivers/block/cpqarray.c --- 25/drivers/block/cpqarray.c~cpqarray-update-for-26 2004-05-07 12:52:32.348090056 -0700 +++ 25-akpm/drivers/block/cpqarray.c 2004-05-07 12:52:32.353089296 -0700 @@ -1193,7 +1193,7 @@ static int ida_ioctl(struct inode *inode if (error) goto out_passthru; error = -EFAULT; - if (copy_to_user(io, &my_io, sizeof(*my_io))) + if (copy_to_user(io, my_io, sizeof(*my_io))) goto out_passthru; error = 0; out_passthru: diff -puN drivers/block/ida_cmd.h~cpqarray-update-for-26 drivers/block/ida_cmd.h --- 25/drivers/block/ida_cmd.h~cpqarray-update-for-26 2004-05-07 12:52:32.349089904 -0700 +++ 25-akpm/drivers/block/ida_cmd.h 2004-05-07 12:52:32.354089144 -0700 @@ -67,7 +67,7 @@ typedef struct { __u8 reserved; } rhdr_t; -#define SG_MAX 31 +#define SG_MAX 32 typedef struct { rhdr_t hdr; sg_t sg[SG_MAX]; _