Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

firewire: net: Make use of get_unaligned_be48(), put_unaligned_be48()

Since we have a proper endianness converters for BE 48-bit data use
them.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220726144906.5217-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Andy Shevchenko and committed by
Jakub Kicinski
29192a17 39befe3a

+3 -14
+2 -12
drivers/firewire/net.c
··· 202 202 }; 203 203 204 204 /* 205 - * Get fifo address embedded in hwaddr 206 - */ 207 - static __u64 fwnet_hwaddr_fifo(union fwnet_hwaddr *ha) 208 - { 209 - return (u64)get_unaligned_be16(&ha->uc.fifo_hi) << 32 210 - | get_unaligned_be32(&ha->uc.fifo_lo); 211 - } 212 - 213 - /* 214 205 * saddr == NULL means use device source address. 215 206 * daddr == NULL means leave destination address (eg unresolved arp). 216 207 */ ··· 1297 1306 max_payload = peer->max_payload; 1298 1307 datagram_label_ptr = &peer->datagram_label; 1299 1308 1300 - ptask->fifo_addr = fwnet_hwaddr_fifo(ha); 1309 + ptask->fifo_addr = get_unaligned_be48(ha->uc.fifo); 1301 1310 ptask->generation = generation; 1302 1311 ptask->dest_node = dest_node; 1303 1312 ptask->speed = peer->speed; ··· 1485 1494 ha.uc.uniq_id = cpu_to_be64(card->guid); 1486 1495 ha.uc.max_rec = dev->card->max_receive; 1487 1496 ha.uc.sspd = dev->card->link_speed; 1488 - ha.uc.fifo_hi = cpu_to_be16(dev->local_fifo >> 32); 1489 - ha.uc.fifo_lo = cpu_to_be32(dev->local_fifo & 0xffffffff); 1497 + put_unaligned_be48(dev->local_fifo, ha.uc.fifo); 1490 1498 dev_addr_set(net, ha.u); 1491 1499 1492 1500 memset(net->broadcast, -1, net->addr_len);
+1 -2
include/net/firewire.h
··· 13 13 __be64 uniq_id; /* EUI-64 */ 14 14 u8 max_rec; /* max packet size */ 15 15 u8 sspd; /* max speed */ 16 - __be16 fifo_hi; /* hi 16bits of FIFO addr */ 17 - __be32 fifo_lo; /* lo 32bits of FIFO addr */ 16 + u8 fifo[6]; /* FIFO addr */ 18 17 } __packed uc; 19 18 }; 20 19