SCSI & FC transport: extend event vendor id's to 64bits
PATCH 1/1 SCSI & FC transport: extend event vendor id's to 64bits
During discussions with Mike Christie, I became convinced that we needed a larger vendor id. This patch extends the id from 32 to 64 bits.
This applies on top of the prior patches that add SCSI transport events via netlink.
-- james s
Signed-off-by James Smart <[email protected]>
drivers/scsi/scsi_transport_fc.c +1 -1
@@ -514,7 +514,7 @@ EXPORT_SYMBOL(fc_host_post_event);**/ void fc_host_post_vendor_event (struct Scsi_Host *shost,u32 event_number, -u32 data_len,char * data_buf,u32 vendor_id) +u32 data_len,char * data_buf,u64 vendor_id) {struct sk_buff *skb;struct nlmsghdr *nlh;
include/scsi/scsi_netlink_fc.h +1 -1
@@ -58,7 +58,7 @@struct fc_nl_event {struct scsi_nl_hdr snlh;/* must be 1st element ! */ uint64_t seconds; -uint32_t vendor_id; +uint64_t vendor_id;uint16_t host_no;uint16_t event_datalen;uint32_t event_num;
include/scsi/scsi_netlink.h +4 -3
@@ -67,9 +67,10 @@ struct scsi_nl_hdr {* Identifiers for each type: * PCI : ID data is the 16 bit PCI Registered Vendor ID */ -#define SCSI_NL_VID_ID_MASK 0x00FFFFFF -#define SCSI_NL_VID_TYPE_MASK 0xFF000000 -#define SCSI_NL_VID_TYPE_PCI 0x01000000 +#define SCSI_NL_VID_TYPE_SHIFT 56 +#define SCSI_NL_VID_TYPE_MASK ((u64)0xFF << SCSI_NL_VID_TYPE_SHIFT) +#define SCSI_NL_VID_TYPE_PCI ((u64)0x01 << SCSI_NL_VID_TYPE_SHIFT) +#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK)#define INIT_SCSI_NL_HDR (hdr, t, mtype, mlen) \
include/scsi/scsi_transport_fc.h +1 -1
@@ -560,7 +560,7 @@ u32 fc_get_event_number(void);void fc_host_post_event (struct Scsi_Host *shost,u32 event_number,enum fc_host_event_code event_code,u32 event_data);void fc_host_post_vendor_event (struct Scsi_Host *shost,u32 event_number, -u32 data_len,char * data_buf,u32 vendor_id); +u32 data_len,char * data_buf,u64 vendor_id);/* Note: when specifying vendor_id to fc_host_post_vendor_event() * be sure to read the Vendor Type and ID formatting requirements * specified in scsi_netlink.h