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

Configure Feed

Select the types of activity you want to include in your feed.

net: mctp: test: Add an addressed device constructor

Upcoming tests will check semantics of hardware addressing, which
require a dev with ->addr_len != 0. Add a constructor to create a
MCTP interface using a physically-addressed bus type.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Link: https://patch.msgid.link/20250702-dev-forwarding-v5-5-1468191da8a4@codeconstruct.com.au
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Jeremy Kerr and committed by
Paolo Abeni
96b341a8 3007f90e

+25 -2
+18 -2
net/mctp/test/utils.c
··· 26 26 ndev->type = ARPHRD_MCTP; 27 27 ndev->mtu = MCTP_DEV_TEST_MTU; 28 28 ndev->hard_header_len = 0; 29 - ndev->addr_len = 0; 30 29 ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN; 31 30 ndev->flags = IFF_NOARP; 32 31 ndev->netdev_ops = &mctp_test_netdev_ops; 33 32 ndev->needs_free_netdev = true; 34 33 } 35 34 36 - struct mctp_test_dev *mctp_test_create_dev(void) 35 + static struct mctp_test_dev *__mctp_test_create_dev(unsigned short lladdr_len, 36 + const unsigned char *lladdr) 37 37 { 38 38 struct mctp_test_dev *dev; 39 39 struct net_device *ndev; 40 40 int rc; 41 + 42 + if (WARN_ON(lladdr_len > MAX_ADDR_LEN)) 43 + return NULL; 41 44 42 45 ndev = alloc_netdev(sizeof(*dev), "mctptest%d", NET_NAME_ENUM, 43 46 mctp_test_dev_setup); ··· 49 46 50 47 dev = netdev_priv(ndev); 51 48 dev->ndev = ndev; 49 + ndev->addr_len = lladdr_len; 50 + dev_addr_set(ndev, lladdr); 52 51 53 52 rc = register_netdev(ndev); 54 53 if (rc) { ··· 64 59 rcu_read_unlock(); 65 60 66 61 return dev; 62 + } 63 + 64 + struct mctp_test_dev *mctp_test_create_dev(void) 65 + { 66 + return __mctp_test_create_dev(0, NULL); 67 + } 68 + 69 + struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len, 70 + const unsigned char *lladdr) 71 + { 72 + return __mctp_test_create_dev(lladdr_len, lladdr); 67 73 } 68 74 69 75 void mctp_test_destroy_dev(struct mctp_test_dev *dev)
+7
net/mctp/test/utils.h
··· 3 3 #ifndef __NET_MCTP_TEST_UTILS_H 4 4 #define __NET_MCTP_TEST_UTILS_H 5 5 6 + #include <uapi/linux/netdevice.h> 7 + 6 8 #include <kunit/test.h> 7 9 8 10 #define MCTP_DEV_TEST_MTU 68 ··· 12 10 struct mctp_test_dev { 13 11 struct net_device *ndev; 14 12 struct mctp_dev *mdev; 13 + 14 + unsigned short lladdr_len; 15 + unsigned char lladdr[MAX_ADDR_LEN]; 15 16 }; 16 17 17 18 struct mctp_test_dev; 18 19 19 20 struct mctp_test_dev *mctp_test_create_dev(void); 21 + struct mctp_test_dev *mctp_test_create_dev_lladdr(unsigned short lladdr_len, 22 + const unsigned char *lladdr); 20 23 void mctp_test_destroy_dev(struct mctp_test_dev *dev); 21 24 22 25 #endif /* __NET_MCTP_TEST_UTILS_H */