diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2005-08-31 18:18:35 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-09-10 12:10:43 -0400 |
commit | 218fba0004390b0101e681f6db1b8920c1109e54 (patch) | |
tree | 571c6477b4fff4808ab0faace6a5aef7517ca81a /include/scsi | |
parent | 37be6eeb4990c05fc7dd683ceaf1501d46ebe9a4 (diff) |
[SCSI] fc_transport: Generalize WWN to u64 interger conversions.
On some platforms the hard-casting of 8 byte node_name and
port_name arrays to an u64 would cause unaligned-access
warnings. Generalize the conversions with a transport
helper function which performs consistent shifting of WWN
bytes.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_transport_fc.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index 70ad16315a16..115db056dc6b 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
@@ -439,4 +439,12 @@ int fc_remote_port_block(struct fc_rport *rport); | |||
439 | void fc_remote_port_unblock(struct fc_rport *rport); | 439 | void fc_remote_port_unblock(struct fc_rport *rport); |
440 | int scsi_is_fc_rport(const struct device *); | 440 | int scsi_is_fc_rport(const struct device *); |
441 | 441 | ||
442 | static inline u64 wwn_to_u64(u8 *wwn) | ||
443 | { | ||
444 | return (u64)wwn[0] << 56 | (u64)wwn[1] << 48 | | ||
445 | (u64)wwn[2] << 40 | (u64)wwn[3] << 32 | | ||
446 | (u64)wwn[4] << 24 | (u64)wwn[5] << 16 | | ||
447 | (u64)wwn[6] << 8 | (u64)wwn[7]; | ||
448 | } | ||
449 | |||
442 | #endif /* SCSI_TRANSPORT_FC_H */ | 450 | #endif /* SCSI_TRANSPORT_FC_H */ |