CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Xiaoliang Yang <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   ea586a076e8aa606c59b66d86660590f18354b11
commit: 23ae3a7877718931474684ef4fbbaf1d1511ee84 [1745/9897] net: dsa: felix: 
add stream gate settings for psfp
:::::: branch date: 5 days ago
:::::: commit date: 6 weeks ago
config: powerpc-randconfig-c004-20211228 
(https://download.01.org/0day-ci/archive/20211229/[email protected]/config)
compiler: powerpc-linux-gcc (GCC) 11.2.0

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


cocci warnings: (new ones prefixed by >>)
>> drivers/net/dsa/ocelot/felix_vsc9959.c:1855:22-25: ERROR: reference preceded 
>> by free on line 1865

vim +1855 drivers/net/dsa/ocelot/felix_vsc9959.c

7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1831  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1832  static int 
vsc9959_psfp_filter_add(struct ocelot *ocelot,
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1833                                  
   struct flow_cls_offload *f)
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1834  {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1835          struct netlink_ext_ack 
*extack = f->common.extack;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1836          struct 
felix_stream_filter sfi = {0};
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1837          const struct 
flow_action_entry *a;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1838          struct felix_stream 
*stream_entry;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1839          struct felix_stream 
stream = {0};
23ae3a78777189 Xiaoliang Yang 2021-11-18  1840          struct 
felix_stream_gate *sgi;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1841          struct ocelot_psfp_list 
*psfp;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1842          int ret, i, size;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1843  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1844          psfp = &ocelot->psfp;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1845  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1846          ret = 
vsc9959_stream_identify(f, &stream);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1847          if (ret) {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1848                  
NL_SET_ERR_MSG_MOD(extack, "Only can match on VID, PCP, and dest MAC");
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1849                  return ret;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1850          }
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1851  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1852          flow_action_for_each(i, 
a, &f->rule->action) {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1853                  switch (a->id) {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1854                  case 
FLOW_ACTION_GATE:
23ae3a78777189 Xiaoliang Yang 2021-11-18 @1855                          size = 
struct_size(sgi, entries, a->gate.num_entries);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1856                          sgi = 
kzalloc(size, GFP_KERNEL);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1857                          
vsc9959_psfp_parse_gate(a, sgi);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1858                          ret = 
vsc9959_psfp_sgi_table_add(ocelot, sgi);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1859                          if 
(ret) {
23ae3a78777189 Xiaoliang Yang 2021-11-18  1860                                  
kfree(sgi);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1861                                  
return ret;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1862                          }
23ae3a78777189 Xiaoliang Yang 2021-11-18  1863                          
sfi.sg_valid = 1;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1864                          
sfi.sgid = sgi->index;
23ae3a78777189 Xiaoliang Yang 2021-11-18 @1865                          
kfree(sgi);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1866                          break;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1867                  case 
FLOW_ACTION_POLICE:
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1868                  default:
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1869                          return 
-EOPNOTSUPP;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1870                  }
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1871          }
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1872  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1873          /* Check if stream is 
set. */
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1874          stream_entry = 
vsc9959_stream_table_lookup(&psfp->stream_list, &stream);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1875          if (stream_entry) {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1876                  
NL_SET_ERR_MSG_MOD(extack, "This stream is already added");
23ae3a78777189 Xiaoliang Yang 2021-11-18  1877                  ret = -EEXIST;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1878                  goto err;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1879          }
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1880  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1881          sfi.prio_valid = 
(stream.prio < 0 ? 0 : 1);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1882          sfi.prio = 
(sfi.prio_valid ? stream.prio : 0);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1883          sfi.enable = 1;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1884  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1885          ret = 
vsc9959_psfp_sfi_table_add(ocelot, &sfi);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1886          if (ret)
23ae3a78777189 Xiaoliang Yang 2021-11-18  1887                  goto err;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1888  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1889          stream.sfid = sfi.index;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1890          stream.sfid_valid = 1;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1891          ret = 
vsc9959_stream_table_add(ocelot, &psfp->stream_list,
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1892                                  
       &stream, extack);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1893          if (ret) {
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1894                  
vsc9959_psfp_sfi_table_del(ocelot, stream.sfid);
23ae3a78777189 Xiaoliang Yang 2021-11-18  1895                  goto err;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1896          }
23ae3a78777189 Xiaoliang Yang 2021-11-18  1897  
23ae3a78777189 Xiaoliang Yang 2021-11-18  1898          return 0;
23ae3a78777189 Xiaoliang Yang 2021-11-18  1899  
23ae3a78777189 Xiaoliang Yang 2021-11-18  1900  err:
23ae3a78777189 Xiaoliang Yang 2021-11-18  1901          if (sfi.sg_valid)
23ae3a78777189 Xiaoliang Yang 2021-11-18  1902                  
vsc9959_psfp_sgi_table_del(ocelot, sfi.sgid);
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1903  
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1904          return ret;
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1905  }
7d4b564d6adde3 Xiaoliang Yang 2021-11-18  1906  

---
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]

Reply via email to