>> +#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.. > I will remove these macros. What is sparse output? >> +#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. Christoph, I use these macros to have commonality between 2.4 and 2.6 kernels. Please consider retaining them. > >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 > I will do that. Thanks, Sreenivas - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html