• Bart Van Assche's avatar
    [SCSI] fcoe: make it possible to verify fcoe with sparse · d058fd31
    Bart Van Assche authored
    Analyzing fcoe with sparse currently fails. This is because struct
    fcoe_rcv_info contains two enum members that have been declared with
    __attribute__((packed)). Apparently gcc honors this attribute while sparse
    ignores it. The result is that sizeof(struct fcoe_rcv_info)
    == sizeof(struct sk_buff::cb) == 48 on a 64-bit system according to gcc, but
    not according to sparse. The patch below modifies the definition of
    struct fcoe_rcv_info such that gcc and sparse interpret this structure
    definition in the same way. The current sparse output is as follows:
    
    $ cd linux-2.6.34
    $ make C=2 M=drivers/scsi/fcoe modules
     CHECK   drivers/scsi/fcoe/fcoe.c
    
    include/scsi/fc_frame.h:81:9: error: invalid bitfield width, -1.
     CC [M]  drivers/scsi/fcoe/fcoe.o
     CHECK   drivers/scsi/fcoe/libfcoe.c
    
    include/scsi/fc_frame.h:81:9: error: invalid bitfield width, -1.
    drivers/scsi/fcoe/libfcoe.c:56:37: error: invalid initializer
    Signed-off-by: default avatarBart Van Assche <bart.vanassche@gmail.com>
    Cc: jeykholt@cisco.com
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    d058fd31
fc_frame.h 5.94 KB