lkml.org 
[lkml]   [2005]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2.6.12-rc4-mm1 4/4] megaraid_sas: updating the driver
On Mon, May 16, 2005 at 02:59:44AM -0400, Bagalkote, Sreenivas wrote:
> +#include <linux/ioctl32.h>

this isn't needed in any driver these days.

> +/*
> + * All MFI register set macros accept megasas_register_set*
> + */
> +#define RD_OB_MSG_0(regs) readl((void*)(&(regs)->outbound_msg_0))
> +#define WR_IN_MSG_0(v, regs) writel((v),(void*)(&(regs)->inbound_msg_0))
> +#define WR_IN_DOORBELL(v, regs)
> writel((v),(void*)(&(regs)->inbound_doorbell))
> +#define WR_IN_QPORT(v, regs)
> writel((v),(void*)(&(regs)->inbound_queue_port))
> +
> +#define RD_OB_INTR_STATUS(regs)
> readl((void*)(&(regs)->outbound_intr_status))
> +#define WR_OB_INTR_STATUS(v, regs)
> writel((v),(&(regs)->outbound_intr_status))

The void * casats are not okay. Please make sure all your variable
holding the I/O address are of type void __iomem * and use sparse to check
it. I would have sent you sparse output if your mailer didn't mangle
the patch so it couldn't be applied..

Also the driver might be a lot more readable if you just removed this
macros.

> +#define SCP2HOST(scp) (scp)->device->host // to host
> +#define SCP2HOSTDATA(scp) SCP2HOST(scp)->hostdata // to soft state
> +#define SCP2CHANNEL(scp) (scp)->device->channel // to channel
> +#define SCP2TARGET(scp) (scp)->device->id // to target
> +#define SCP2LUN(scp) (scp)->device->lun // to LUN

Please remove all these macros.

> +#define SCSIHOST2ADAP(host) (((caddr_t *)(host->hostdata))[0])
> +#define SCP2ADAPTER(scp) (struct
> megasas_instance*)SCSIHOST2ADAP(SCP2HOST(scp))

please don't use caddr_t.


Also I can't find any endianess handling. You should probably declare
all hardware structures __le* and use proper le*_to_cpu/cpu_to_le* when
accessing them. sparse -Wbitwise helps finding errors in endianess handling
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-05-16 17:02    [W:0.046 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site