>> +#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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]