CC: [email protected]
BCC: [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:   e1f700ebd6bea293abe3c7e2807b252018efde01
commit: d0cfa548dbde354de986911d3913897b5448faad net: macsec: Verify that 
send_sci is on when setting Tx sci explicitly
date:   10 weeks ago
:::::: branch date: 4 hours ago
:::::: commit date: 10 weeks ago
compiler: microblaze-linux-gcc (GCC) 11.2.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout d0cfa548dbde354de986911d3913897b5448faad
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck warnings: (new ones prefixed by >>)
   drivers/net/macsec.c:3824:7: warning: Local variable 'ret' shadows outer 
variable [shadowVariable]
     int ret;
         ^
   drivers/net/macsec.c:3799:6: note: Shadowed declaration
    int ret;
        ^
   drivers/net/macsec.c:3824:7: note: Shadow variable
     int ret;
         ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> net/sched/sch_taprio.c:1132:22: warning: Uninitialized variable: 
>> entry->interval [uninitvar]
     interval += entry->interval;
                        ^
   net/sched/sch_taprio.c:1241:51: warning: Uninitialized variable: 
entry->gate_mask [uninitvar]
     e->gate_mask = tc_map_to_queue_mask(dev, entry->gate_mask);
                                                     ^
--
>> 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]);
        ^
>> drivers/net/macsec.c:1009:37: warning: Uninitialized variable: macsec->secy 
>> [uninitvar]
     struct net_device *ndev = macsec->secy.netdev;
                                       ^
   drivers/net/macsec.c:3940:15: warning: Uninitialized variable: macsec->secy 
[uninitvar]
     if (macsec->secy.sci == sci)
                 ^
>> drivers/net/macsec.c:4294:32: warning: Uninitialized variable: m->secy 
>> [uninitvar]
      struct net_device *dev = m->secy.netdev;
                                  ^
   drivers/net/macsec.c:4306:29: warning: Uninitialized variable: m->secy 
[uninitvar]
      macsec_common_dellink(m->secy.netdev, &head);
                               ^
   drivers/net/macsec.c:4321:32: warning: Uninitialized variable: m->secy 
[uninitvar]
      struct net_device *dev = m->secy.netdev;
                                  ^

vim +/send_sci +4024 drivers/net/macsec.c

845e0ebb4408d44 Cong Wang         2020-06-08  3986  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3987  static int 
macsec_newlink(struct net *net, struct net_device *dev,
7a3f4a185169b19 Matthias Schiffer 2017-06-25  3988                        
struct nlattr *tb[], struct nlattr *data[],
7a3f4a185169b19 Matthias Schiffer 2017-06-25  3989                        
struct netlink_ext_ack *extack)
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3990  {
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3991      struct macsec_dev 
*macsec = macsec_priv(dev);
7f327080364abcc Taehee Yoo        2020-04-23  3992      rx_handler_func_t 
*rx_handler;
7f327080364abcc Taehee Yoo        2020-04-23  3993      u8 icv_len = 
DEFAULT_ICV_LEN;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3994      struct net_device 
*real_dev;
7f327080364abcc Taehee Yoo        2020-04-23  3995      int err, mtu;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3996      sci_t sci;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3997  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3998      if (!tb[IFLA_LINK])
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  3999              return -EINVAL;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4000      real_dev = 
__dev_get_by_index(net, nla_get_u32(tb[IFLA_LINK]));
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4001      if (!real_dev)
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4002              return -ENODEV;
b06d072ccc4b1ac Willem de Bruijn  2020-03-22  4003      if (real_dev->type != 
ARPHRD_ETHER)
b06d072ccc4b1ac Willem de Bruijn  2020-03-22  4004              return -EINVAL;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4005  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4006      dev->priv_flags |= 
IFF_MACSEC;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4007  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4008      macsec->real_dev = 
real_dev;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4009  
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4010      if (data && 
data[IFLA_MACSEC_OFFLOAD])
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4011              macsec->offload 
= nla_get_offload(data[IFLA_MACSEC_OFFLOAD]);
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4012      else
3cf3227a21d1fb0 Antoine Tenart    2020-01-13  4013              /* MACsec 
offloading is off by default */
3cf3227a21d1fb0 Antoine Tenart    2020-01-13  4014              macsec->offload 
= MACSEC_OFFLOAD_OFF;
3cf3227a21d1fb0 Antoine Tenart    2020-01-13  4015  
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4016      /* Check if the 
offloading mode is supported by the underlying layers */
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4017      if (macsec->offload != 
MACSEC_OFFLOAD_OFF &&
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4018          
!macsec_check_offload(macsec->offload, macsec))
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4019              return 
-EOPNOTSUPP;
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4020  
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4021      /* send_sci must be set 
to true when transmit sci explicitly is set */
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4022      if ((data && 
data[IFLA_MACSEC_SCI]) &&
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4023          (data && 
data[IFLA_MACSEC_INC_SCI])) {
d0cfa548dbde354 Lior Nahmanson    2022-01-30 @4024              u8 send_sci = 
!!nla_get_u8(data[IFLA_MACSEC_INC_SCI]);
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4025  
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4026              if (!send_sci)
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4027                      return 
-EINVAL;
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4028      }
d0cfa548dbde354 Lior Nahmanson    2022-01-30  4029  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4030      if (data && 
data[IFLA_MACSEC_ICV_LEN])
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4031              icv_len = 
nla_get_u8(data[IFLA_MACSEC_ICV_LEN]);
7f327080364abcc Taehee Yoo        2020-04-23  4032      mtu = real_dev->mtu - 
icv_len - macsec_extra_len(true);
7f327080364abcc Taehee Yoo        2020-04-23  4033      if (mtu < 0)
7f327080364abcc Taehee Yoo        2020-04-23  4034              dev->mtu = 0;
7f327080364abcc Taehee Yoo        2020-04-23  4035      else
7f327080364abcc Taehee Yoo        2020-04-23  4036              dev->mtu = mtu;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4037  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4038      rx_handler = 
rtnl_dereference(real_dev->rx_handler);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4039      if (rx_handler && 
rx_handler != macsec_handle_frame)
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4040              return -EBUSY;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4041  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4042      err = 
register_netdevice(dev);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4043      if (err < 0)
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4044              return err;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4045  
1a33e10e4a95cb1 Cong Wang         2020-05-02  4046      
netdev_lockdep_set_classes(dev);
be74294ffa24f5f Cong Wang         2020-06-26  4047      
lockdep_set_class(&dev->addr_list_lock,
be74294ffa24f5f Cong Wang         2020-06-26  4048                        
&macsec_netdev_addr_lock_key);
1a33e10e4a95cb1 Cong Wang         2020-05-02  4049  
42ab19ee9029299 David Ahern       2017-10-04  4050      err = 
netdev_upper_dev_link(real_dev, dev, extack);
e20038724552cd0 Sabrina Dubroca   2016-08-12  4051      if (err < 0)
bd28899dd34f928 Dan Carpenter     2018-04-16  4052              goto unregister;
e20038724552cd0 Sabrina Dubroca   2016-08-12  4053  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4054      /* need to be already 
registered so that ->init has run and
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4055       * the MAC addr is set
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4056       */
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4057      if (data && 
data[IFLA_MACSEC_SCI])
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4058              sci = 
nla_get_sci(data[IFLA_MACSEC_SCI]);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4059      else if (data && 
data[IFLA_MACSEC_PORT])
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4060              sci = 
dev_to_sci(dev, nla_get_be16(data[IFLA_MACSEC_PORT]));
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4061      else
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4062              sci = 
dev_to_sci(dev, MACSEC_PORT_ES);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4063  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4064      if (rx_handler && 
sci_exists(real_dev, sci)) {
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4065              err = -EBUSY;
e20038724552cd0 Sabrina Dubroca   2016-08-12  4066              goto unlink;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4067      }
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4068  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4069      err = 
macsec_add_dev(dev, sci, icv_len);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4070      if (err)
e20038724552cd0 Sabrina Dubroca   2016-08-12  4071              goto unlink;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4072  
ccfdec908922950 Felix Walter      2018-01-05  4073      if (data) {
ccfdec908922950 Felix Walter      2018-01-05  4074              err = 
macsec_changelink_common(dev, data);
ccfdec908922950 Felix Walter      2018-01-05  4075              if (err)
ccfdec908922950 Felix Walter      2018-01-05  4076                      goto 
del_dev;
ccfdec908922950 Felix Walter      2018-01-05  4077      }
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4078  
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4079      /* If h/w offloading is 
available, propagate to the device */
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4080      if 
(macsec_is_offloaded(macsec)) {
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4081              const struct 
macsec_ops *ops;
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4082              struct 
macsec_context ctx;
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4083  
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4084              ops = 
macsec_get_ops(macsec, &ctx);
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4085              if (ops) {
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4086                      
ctx.secy = &macsec->secy;
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4087                      err = 
macsec_offload(ops->mdo_add_secy, &ctx);
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4088                      if (err)
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4089                              
goto del_dev;
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4090              }
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4091      }
791bb3fcafcedd1 Mark Starovoytov  2020-03-25  4092  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4093      err = 
register_macsec_dev(real_dev, dev);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4094      if (err < 0)
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4095              goto del_dev;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4096  
e6ac075882b2afc Sabrina Dubroca   2018-10-28  4097      
netif_stacked_transfer_operstate(real_dev, dev);
e6ac075882b2afc Sabrina Dubroca   2018-10-28  4098      
linkwatch_fire_event(dev);
e6ac075882b2afc Sabrina Dubroca   2018-10-28  4099  
96cfc5052c5d434 Sabrina Dubroca   2016-04-22  4100      macsec_generation++;
96cfc5052c5d434 Sabrina Dubroca   2016-04-22  4101  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4102      return 0;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4103  
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4104  del_dev:
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4105      macsec_del_dev(macsec);
e20038724552cd0 Sabrina Dubroca   2016-08-12  4106  unlink:
e20038724552cd0 Sabrina Dubroca   2016-08-12  4107      
netdev_upper_dev_unlink(real_dev, dev);
bd28899dd34f928 Dan Carpenter     2018-04-16  4108  unregister:
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4109      
unregister_netdevice(dev);
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4110      return err;
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4111  }
c09440f7dcb3040 Sabrina Dubroca   2016-03-11  4112  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to