提交 f14e2e29 编写于 作者: J James Smart 提交者: James Bottomley

[SCSI] 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.
Signed-off-by: NJames Smart <James.Smart@emulex.com>
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
上级 84314fd4
...@@ -513,7 +513,7 @@ EXPORT_SYMBOL(fc_host_post_event); ...@@ -513,7 +513,7 @@ EXPORT_SYMBOL(fc_host_post_event);
**/ **/
void void
fc_host_post_vendor_event(struct Scsi_Host *shost, u32 event_number, 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 sk_buff *skb;
struct nlmsghdr *nlh; struct nlmsghdr *nlh;
......
...@@ -67,9 +67,10 @@ struct scsi_nl_hdr { ...@@ -67,9 +67,10 @@ struct scsi_nl_hdr {
* Identifiers for each type: * Identifiers for each type:
* PCI : ID data is the 16 bit PCI Registered Vendor ID * PCI : ID data is the 16 bit PCI Registered Vendor ID
*/ */
#define SCSI_NL_VID_ID_MASK 0x00FFFFFF #define SCSI_NL_VID_TYPE_SHIFT 56
#define SCSI_NL_VID_TYPE_MASK 0xFF000000 #define SCSI_NL_VID_TYPE_MASK ((u64)0xFF << SCSI_NL_VID_TYPE_SHIFT)
#define SCSI_NL_VID_TYPE_PCI 0x01000000 #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) \ #define INIT_SCSI_NL_HDR(hdr, t, mtype, mlen) \
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
struct fc_nl_event { struct fc_nl_event {
struct scsi_nl_hdr snlh; /* must be 1st element ! */ struct scsi_nl_hdr snlh; /* must be 1st element ! */
uint64_t seconds; uint64_t seconds;
uint32_t vendor_id; uint64_t vendor_id;
uint16_t host_no; uint16_t host_no;
uint16_t event_datalen; uint16_t event_datalen;
uint32_t event_num; uint32_t event_num;
......
...@@ -555,7 +555,7 @@ u32 fc_get_event_number(void); ...@@ -555,7 +555,7 @@ u32 fc_get_event_number(void);
void fc_host_post_event(struct Scsi_Host *shost, u32 event_number, void fc_host_post_event(struct Scsi_Host *shost, u32 event_number,
enum fc_host_event_code event_code, u32 event_data); enum fc_host_event_code event_code, u32 event_data);
void fc_host_post_vendor_event(struct Scsi_Host *shost, u32 event_number, 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() /* Note: when specifying vendor_id to fc_host_post_vendor_event()
* be sure to read the Vendor Type and ID formatting requirements * be sure to read the Vendor Type and ID formatting requirements
* specified in scsi_netlink.h * specified in scsi_netlink.h
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册