CC: [email protected] CC: [email protected] TO: Lior Nahmanson <[email protected]> CC: Jakub Kicinski <[email protected]> CC: Raed Salem <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: dcb85f85fa6f142aae1fe86f399d4503d49f2b60 commit: d0cfa548dbde354de986911d3913897b5448faad net: macsec: Verify that send_sci is on when setting Tx sci explicitly date: 2 days ago :::::: branch date: 4 hours ago :::::: commit date: 2 days ago compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/net/macsec.c:4024:6: warning: Local variable send_sci shadows outer >> function [shadowFunction] u8 send_sci = !!nla_get_u8(data[IFLA_MACSEC_INC_SCI]); ^ drivers/net/macsec.c:245:13: note: Shadowed declaration static bool send_sci(const struct macsec_secy *secy) ^ drivers/net/macsec.c:4024:6: note: Shadow variable u8 send_sci = !!nla_get_u8(data[IFLA_MACSEC_INC_SCI]); ^ vim +4024 drivers/net/macsec.c 845e0ebb4408d4 Cong Wang 2020-06-08 3986 c09440f7dcb304 Sabrina Dubroca 2016-03-11 3987 static int macsec_newlink(struct net *net, struct net_device *dev, 7a3f4a185169b1 Matthias Schiffer 2017-06-25 3988 struct nlattr *tb[], struct nlattr *data[], 7a3f4a185169b1 Matthias Schiffer 2017-06-25 3989 struct netlink_ext_ack *extack) c09440f7dcb304 Sabrina Dubroca 2016-03-11 3990 { c09440f7dcb304 Sabrina Dubroca 2016-03-11 3991 struct macsec_dev *macsec = macsec_priv(dev); 7f327080364abc Taehee Yoo 2020-04-23 3992 rx_handler_func_t *rx_handler; 7f327080364abc Taehee Yoo 2020-04-23 3993 u8 icv_len = DEFAULT_ICV_LEN; c09440f7dcb304 Sabrina Dubroca 2016-03-11 3994 struct net_device *real_dev; 7f327080364abc Taehee Yoo 2020-04-23 3995 int err, mtu; c09440f7dcb304 Sabrina Dubroca 2016-03-11 3996 sci_t sci; c09440f7dcb304 Sabrina Dubroca 2016-03-11 3997 c09440f7dcb304 Sabrina Dubroca 2016-03-11 3998 if (!tb[IFLA_LINK]) c09440f7dcb304 Sabrina Dubroca 2016-03-11 3999 return -EINVAL; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4000 real_dev = __dev_get_by_index(net, nla_get_u32(tb[IFLA_LINK])); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4001 if (!real_dev) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4002 return -ENODEV; b06d072ccc4b1a Willem de Bruijn 2020-03-22 4003 if (real_dev->type != ARPHRD_ETHER) b06d072ccc4b1a Willem de Bruijn 2020-03-22 4004 return -EINVAL; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4005 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4006 dev->priv_flags |= IFF_MACSEC; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4007 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4008 macsec->real_dev = real_dev; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4009 791bb3fcafcedd Mark Starovoytov 2020-03-25 4010 if (data && data[IFLA_MACSEC_OFFLOAD]) 791bb3fcafcedd Mark Starovoytov 2020-03-25 4011 macsec->offload = nla_get_offload(data[IFLA_MACSEC_OFFLOAD]); 791bb3fcafcedd Mark Starovoytov 2020-03-25 4012 else 3cf3227a21d1fb Antoine Tenart 2020-01-13 4013 /* MACsec offloading is off by default */ 3cf3227a21d1fb Antoine Tenart 2020-01-13 4014 macsec->offload = MACSEC_OFFLOAD_OFF; 3cf3227a21d1fb Antoine Tenart 2020-01-13 4015 791bb3fcafcedd Mark Starovoytov 2020-03-25 4016 /* Check if the offloading mode is supported by the underlying layers */ 791bb3fcafcedd Mark Starovoytov 2020-03-25 4017 if (macsec->offload != MACSEC_OFFLOAD_OFF && 791bb3fcafcedd Mark Starovoytov 2020-03-25 4018 !macsec_check_offload(macsec->offload, macsec)) 791bb3fcafcedd Mark Starovoytov 2020-03-25 4019 return -EOPNOTSUPP; 791bb3fcafcedd Mark Starovoytov 2020-03-25 4020 d0cfa548dbde35 Lior Nahmanson 2022-01-30 4021 /* send_sci must be set to true when transmit sci explicitly is set */ d0cfa548dbde35 Lior Nahmanson 2022-01-30 4022 if ((data && data[IFLA_MACSEC_SCI]) && d0cfa548dbde35 Lior Nahmanson 2022-01-30 4023 (data && data[IFLA_MACSEC_INC_SCI])) { d0cfa548dbde35 Lior Nahmanson 2022-01-30 @4024 u8 send_sci = !!nla_get_u8(data[IFLA_MACSEC_INC_SCI]); d0cfa548dbde35 Lior Nahmanson 2022-01-30 4025 d0cfa548dbde35 Lior Nahmanson 2022-01-30 4026 if (!send_sci) d0cfa548dbde35 Lior Nahmanson 2022-01-30 4027 return -EINVAL; d0cfa548dbde35 Lior Nahmanson 2022-01-30 4028 } d0cfa548dbde35 Lior Nahmanson 2022-01-30 4029 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4030 if (data && data[IFLA_MACSEC_ICV_LEN]) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4031 icv_len = nla_get_u8(data[IFLA_MACSEC_ICV_LEN]); 7f327080364abc Taehee Yoo 2020-04-23 4032 mtu = real_dev->mtu - icv_len - macsec_extra_len(true); 7f327080364abc Taehee Yoo 2020-04-23 4033 if (mtu < 0) 7f327080364abc Taehee Yoo 2020-04-23 4034 dev->mtu = 0; 7f327080364abc Taehee Yoo 2020-04-23 4035 else 7f327080364abc Taehee Yoo 2020-04-23 4036 dev->mtu = mtu; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4037 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4038 rx_handler = rtnl_dereference(real_dev->rx_handler); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4039 if (rx_handler && rx_handler != macsec_handle_frame) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4040 return -EBUSY; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4041 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4042 err = register_netdevice(dev); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4043 if (err < 0) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4044 return err; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4045 1a33e10e4a95cb Cong Wang 2020-05-02 4046 netdev_lockdep_set_classes(dev); be74294ffa24f5 Cong Wang 2020-06-26 4047 lockdep_set_class(&dev->addr_list_lock, be74294ffa24f5 Cong Wang 2020-06-26 4048 &macsec_netdev_addr_lock_key); 1a33e10e4a95cb Cong Wang 2020-05-02 4049 42ab19ee902929 David Ahern 2017-10-04 4050 err = netdev_upper_dev_link(real_dev, dev, extack); e20038724552cd Sabrina Dubroca 2016-08-12 4051 if (err < 0) bd28899dd34f92 Dan Carpenter 2018-04-16 4052 goto unregister; e20038724552cd Sabrina Dubroca 2016-08-12 4053 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4054 /* need to be already registered so that ->init has run and c09440f7dcb304 Sabrina Dubroca 2016-03-11 4055 * the MAC addr is set c09440f7dcb304 Sabrina Dubroca 2016-03-11 4056 */ c09440f7dcb304 Sabrina Dubroca 2016-03-11 4057 if (data && data[IFLA_MACSEC_SCI]) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4058 sci = nla_get_sci(data[IFLA_MACSEC_SCI]); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4059 else if (data && data[IFLA_MACSEC_PORT]) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4060 sci = dev_to_sci(dev, nla_get_be16(data[IFLA_MACSEC_PORT])); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4061 else c09440f7dcb304 Sabrina Dubroca 2016-03-11 4062 sci = dev_to_sci(dev, MACSEC_PORT_ES); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4063 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4064 if (rx_handler && sci_exists(real_dev, sci)) { c09440f7dcb304 Sabrina Dubroca 2016-03-11 4065 err = -EBUSY; e20038724552cd Sabrina Dubroca 2016-08-12 4066 goto unlink; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4067 } c09440f7dcb304 Sabrina Dubroca 2016-03-11 4068 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4069 err = macsec_add_dev(dev, sci, icv_len); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4070 if (err) e20038724552cd Sabrina Dubroca 2016-08-12 4071 goto unlink; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4072 ccfdec90892295 Felix Walter 2018-01-05 4073 if (data) { ccfdec90892295 Felix Walter 2018-01-05 4074 err = macsec_changelink_common(dev, data); ccfdec90892295 Felix Walter 2018-01-05 4075 if (err) ccfdec90892295 Felix Walter 2018-01-05 4076 goto del_dev; ccfdec90892295 Felix Walter 2018-01-05 4077 } c09440f7dcb304 Sabrina Dubroca 2016-03-11 4078 791bb3fcafcedd Mark Starovoytov 2020-03-25 4079 /* If h/w offloading is available, propagate to the device */ 791bb3fcafcedd Mark Starovoytov 2020-03-25 4080 if (macsec_is_offloaded(macsec)) { 791bb3fcafcedd Mark Starovoytov 2020-03-25 4081 const struct macsec_ops *ops; 791bb3fcafcedd Mark Starovoytov 2020-03-25 4082 struct macsec_context ctx; 791bb3fcafcedd Mark Starovoytov 2020-03-25 4083 791bb3fcafcedd Mark Starovoytov 2020-03-25 4084 ops = macsec_get_ops(macsec, &ctx); 791bb3fcafcedd Mark Starovoytov 2020-03-25 4085 if (ops) { 791bb3fcafcedd Mark Starovoytov 2020-03-25 4086 ctx.secy = &macsec->secy; 791bb3fcafcedd Mark Starovoytov 2020-03-25 4087 err = macsec_offload(ops->mdo_add_secy, &ctx); 791bb3fcafcedd Mark Starovoytov 2020-03-25 4088 if (err) 791bb3fcafcedd Mark Starovoytov 2020-03-25 4089 goto del_dev; 791bb3fcafcedd Mark Starovoytov 2020-03-25 4090 } 791bb3fcafcedd Mark Starovoytov 2020-03-25 4091 } 791bb3fcafcedd Mark Starovoytov 2020-03-25 4092 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4093 err = register_macsec_dev(real_dev, dev); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4094 if (err < 0) c09440f7dcb304 Sabrina Dubroca 2016-03-11 4095 goto del_dev; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4096 e6ac075882b2af Sabrina Dubroca 2018-10-28 4097 netif_stacked_transfer_operstate(real_dev, dev); e6ac075882b2af Sabrina Dubroca 2018-10-28 4098 linkwatch_fire_event(dev); e6ac075882b2af Sabrina Dubroca 2018-10-28 4099 96cfc5052c5d43 Sabrina Dubroca 2016-04-22 4100 macsec_generation++; 96cfc5052c5d43 Sabrina Dubroca 2016-04-22 4101 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4102 return 0; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4103 c09440f7dcb304 Sabrina Dubroca 2016-03-11 4104 del_dev: c09440f7dcb304 Sabrina Dubroca 2016-03-11 4105 macsec_del_dev(macsec); e20038724552cd Sabrina Dubroca 2016-08-12 4106 unlink: e20038724552cd Sabrina Dubroca 2016-08-12 4107 netdev_upper_dev_unlink(real_dev, dev); bd28899dd34f92 Dan Carpenter 2018-04-16 4108 unregister: c09440f7dcb304 Sabrina Dubroca 2016-03-11 4109 unregister_netdevice(dev); c09440f7dcb304 Sabrina Dubroca 2016-03-11 4110 return err; c09440f7dcb304 Sabrina Dubroca 2016-03-11 4111 } c09440f7dcb304 Sabrina Dubroca 2016-03-11 4112 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
