OSDN Git Service

bluetooth: use dev_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 22 Oct 2021 23:18:34 +0000 (16:18 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 25 Oct 2021 18:01:29 +0000 (11:01 -0700)
Commit 406f42fa0d3c ("net-next: When a bond have a massive amount
of VLANs...") introduced a rbtree for faster Ethernet address look
up. To maintain netdev->dev_addr in this tree we need to make all
the writes to it go through appropriate helpers.

Reviewed-by: Marcel Holtmann <marcel@holtmann.org>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/bluetooth/6lowpan.c

index fd164a2..133d7ea 100644 (file)
@@ -663,6 +663,7 @@ static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan,
 static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev)
 {
        struct net_device *netdev;
+       bdaddr_t addr;
        int err;
 
        netdev = alloc_netdev(LOWPAN_PRIV_SIZE(sizeof(struct lowpan_btle_dev)),
@@ -672,7 +673,8 @@ static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev)
                return -ENOMEM;
 
        netdev->addr_assign_type = NET_ADDR_PERM;
-       baswap((void *)netdev->dev_addr, &chan->src);
+       baswap(&addr, &chan->src);
+       __dev_addr_set(netdev, &addr, sizeof(addr));
 
        netdev->netdev_ops = &netdev_ops;
        SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev);