From: Andrew Vasquez Date: Wed, 31 Aug 2005 22:18:35 +0000 (-0700) Subject: [SCSI] fc_transport: Generalize WWN to u64 interger conversions. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=218fba0004390b0101e681f6db1b8920c1109e54;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [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 Signed-off-by: James Bottomley --- 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); void fc_remote_port_unblock(struct fc_rport *rport); int scsi_is_fc_rport(const struct device *); +static inline u64 wwn_to_u64(u8 *wwn) +{ + return (u64)wwn[0] << 56 | (u64)wwn[1] << 48 | + (u64)wwn[2] << 40 | (u64)wwn[3] << 32 | + (u64)wwn[4] << 24 | (u64)wwn[5] << 16 | + (u64)wwn[6] << 8 | (u64)wwn[7]; +} + #endif /* SCSI_TRANSPORT_FC_H */