All of lore.kernel.org
 help / color / mirror / Atom feed
* [asm-generic:network-ioctl-v6 23/37] drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c:2206 cxgb_siocdevprivate() warn: potential spectre issue 'adapter->params.sge.qset' [r] (local cap)
@ 2021-07-23  6:01 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-07-23  6:01 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 52067 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-arch(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git network-ioctl-v6
head:   53ee412663f70832b994bdeeb5f72a928764ffe3
commit: 1e44deef61cb16a66cc238ab857b027c600e29a4 [23/37] cxgb3: use ndo_siocdevprivate
:::::: branch date: 23 hours ago
:::::: commit date: 23 hours ago
config: x86_64-randconfig-m001-20210723 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c:2206 cxgb_siocdevprivate() warn: potential spectre issue 'adapter->params.sge.qset' [r] (local cap)
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c:2224 cxgb_siocdevprivate() warn: potential spectre issue 'adapter->sge.qs' [r] (local cap)
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c:2296 cxgb_siocdevprivate() warn: potential spectre issue 'adapter->msix_info' [r]

vim +2206 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c

4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2137  
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2138  static int cxgb_siocdevprivate(struct net_device *dev,
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2139  			       struct ifreq *ifreq,
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2140  			       void __user *useraddr,
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2141  			       int cmd)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2142  {
5fbf816fe7d72b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-08-29  2143  	struct port_info *pi = netdev_priv(dev);
5fbf816fe7d72b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-08-29  2144  	struct adapter *adapter = pi->adapter;
5fbf816fe7d72b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-08-29  2145  	int ret;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2146  
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2147  	if (cmd != SIOCCHIOCTL)
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2148  		return -EOPNOTSUPP;
1e44deef61cb16 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Arnd Bergmann       2020-11-06  2149  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2150  	if (copy_from_user(&cmd, useraddr, sizeof(cmd)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2151  		return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2152  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2153  	switch (cmd) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2154  	case CHELSIO_SET_QSET_PARAMS:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2155  		int i;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2156  		struct qset_params *q;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2157  		struct ch_qset_params t;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2158  		int q1 = pi->first_qset;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2159  		int nqsets = pi->nqsets;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2160  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2161  		if (!capable(CAP_NET_ADMIN))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2162  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2163  		if (copy_from_user(&t, useraddr, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2164  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2165  		if (t.cmd != CHELSIO_SET_QSET_PARAMS)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2166  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2167  		if (t.qset_idx >= SGE_QSETS)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2168  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2169  		if (!in_range(t.intr_lat, 0, M_NEWTIMER) ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2170  		    !in_range(t.cong_thres, 0, 255) ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2171  		    !in_range(t.txq_size[0], MIN_TXQ_ENTRIES,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2172  			      MAX_TXQ_ENTRIES) ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2173  		    !in_range(t.txq_size[1], MIN_TXQ_ENTRIES,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2174  			      MAX_TXQ_ENTRIES) ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2175  		    !in_range(t.txq_size[2], MIN_CTRL_TXQ_ENTRIES,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2176  			      MAX_CTRL_TXQ_ENTRIES) ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2177  		    !in_range(t.fl_size[0], MIN_FL_ENTRIES,
8e95a2026f3b43 drivers/net/cxgb3/cxgb3_main.c                  Joe Perches         2009-12-03  2178  			      MAX_RX_BUFFERS) ||
8e95a2026f3b43 drivers/net/cxgb3/cxgb3_main.c                  Joe Perches         2009-12-03  2179  		    !in_range(t.fl_size[1], MIN_FL_ENTRIES,
8e95a2026f3b43 drivers/net/cxgb3/cxgb3_main.c                  Joe Perches         2009-12-03  2180  			      MAX_RX_JUMBO_BUFFERS) ||
8e95a2026f3b43 drivers/net/cxgb3/cxgb3_main.c                  Joe Perches         2009-12-03  2181  		    !in_range(t.rspq_size, MIN_RSPQ_ENTRIES,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2182  			      MAX_RSPQ_ENTRIES))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2183  			return -EINVAL;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2184  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2185  		if ((adapter->flags & FULL_INIT_DONE) &&
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2186  			(t.rspq_size >= 0 || t.fl_size[0] >= 0 ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2187  			t.fl_size[1] >= 0 || t.txq_size[0] >= 0 ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2188  			t.txq_size[1] >= 0 || t.txq_size[2] >= 0 ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2189  			t.polling >= 0 || t.cong_thres >= 0))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2190  			return -EBUSY;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2191  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2192  		/* Allow setting of any available qset when offload enabled */
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2193  		if (test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map)) {
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2194  			q1 = 0;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2195  			for_each_port(adapter, i) {
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2196  				pi = adap2pinfo(adapter, i);
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2197  				nqsets += pi->first_qset + pi->nqsets;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2198  			}
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2199  		}
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2200  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2201  		if (t.qset_idx < q1)
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2202  			return -EINVAL;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2203  		if (t.qset_idx > q1 + nqsets - 1)
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2204  			return -EINVAL;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2205  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18 @2206  		q = &adapter->params.sge.qset[t.qset_idx];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2207  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2208  		if (t.rspq_size >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2209  			q->rspq_size = t.rspq_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2210  		if (t.fl_size[0] >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2211  			q->fl_size = t.fl_size[0];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2212  		if (t.fl_size[1] >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2213  			q->jumbo_size = t.fl_size[1];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2214  		if (t.txq_size[0] >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2215  			q->txq_size[0] = t.txq_size[0];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2216  		if (t.txq_size[1] >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2217  			q->txq_size[1] = t.txq_size[1];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2218  		if (t.txq_size[2] >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2219  			q->txq_size[2] = t.txq_size[2];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2220  		if (t.cong_thres >= 0)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2221  			q->cong_thres = t.cong_thres;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2222  		if (t.intr_lat >= 0) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2223  			struct sge_qset *qs =
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18 @2224  				&adapter->sge.qs[t.qset_idx];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2225  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2226  			q->coalesce_usecs = t.intr_lat;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2227  			t3_update_qset_coalesce(qs, q);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2228  		}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2229  		if (t.polling >= 0) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2230  			if (adapter->flags & USING_MSIX)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2231  				q->polling = t.polling;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2232  			else {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2233  				/* No polling with INTx for T3A */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2234  				if (adapter->params.rev == 0 &&
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2235  					!(adapter->flags & USING_MSI))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2236  					t.polling = 0;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2237  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2238  				for (i = 0; i < SGE_QSETS; i++) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2239  					q = &adapter->params.sge.
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2240  						qset[i];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2241  					q->polling = t.polling;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2242  				}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2243  			}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2244  		}
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2245  
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2246  		if (t.lro >= 0) {
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2247  			if (t.lro)
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2248  				dev->wanted_features |= NETIF_F_GRO;
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2249  			else
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2250  				dev->wanted_features &= ~NETIF_F_GRO;
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2251  			netdev_update_features(dev);
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2252  		}
04ecb07241d873 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-28  2253  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2254  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2255  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2256  	case CHELSIO_GET_QSET_PARAMS:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2257  		struct qset_params *q;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2258  		struct ch_qset_params t;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2259  		int q1 = pi->first_qset;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2260  		int nqsets = pi->nqsets;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2261  		int i;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2262  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2263  		if (copy_from_user(&t, useraddr, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2264  			return -EFAULT;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2265  
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2266  		if (t.cmd != CHELSIO_GET_QSET_PARAMS)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2267  			return -EINVAL;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2268  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2269  		/* Display qsets for all ports when offload enabled */
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2270  		if (test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map)) {
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2271  			q1 = 0;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2272  			for_each_port(adapter, i) {
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2273  				pi = adap2pinfo(adapter, i);
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2274  				nqsets = pi->first_qset + pi->nqsets;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2275  			}
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2276  		}
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2277  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2278  		if (t.qset_idx >= nqsets)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2279  			return -EINVAL;
676bcfece19f83 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Gustavo A. R. Silva 2018-07-16  2280  		t.qset_idx = array_index_nospec(t.qset_idx, nqsets);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2281  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2282  		q = &adapter->params.sge.qset[q1 + t.qset_idx];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2283  		t.rspq_size = q->rspq_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2284  		t.txq_size[0] = q->txq_size[0];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2285  		t.txq_size[1] = q->txq_size[1];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2286  		t.txq_size[2] = q->txq_size[2];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2287  		t.fl_size[0] = q->fl_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2288  		t.fl_size[1] = q->jumbo_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2289  		t.polling = q->polling;
d2fe2755342b30 drivers/net/cxgb3/cxgb3_main.c                  Michał Mirosław     2011-04-17  2290  		t.lro = !!(dev->features & NETIF_F_GRO);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2291  		t.intr_lat = q->coalesce_usecs;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2292  		t.cong_thres = q->cong_thres;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2293  		t.qnum = q1;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2294  
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2295  		if (adapter->flags & USING_MSIX)
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08 @2296  			t.vector = adapter->msix_info[q1 + t.qset_idx + 1].vec;
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2297  		else
8c26376112fb4b drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2008-10-08  2298  			t.vector = adapter->pdev->irq;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2299  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2300  		if (copy_to_user(useraddr, &t, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2301  			return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2302  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2303  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2304  	case CHELSIO_SET_QSET_NUM:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2305  		struct ch_reg edata;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2306  		unsigned int i, first_qset = 0, other_qsets = 0;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2307  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2308  		if (!capable(CAP_NET_ADMIN))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2309  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2310  		if (adapter->flags & FULL_INIT_DONE)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2311  			return -EBUSY;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2312  		if (copy_from_user(&edata, useraddr, sizeof(edata)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2313  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2314  		if (edata.cmd != CHELSIO_SET_QSET_NUM)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2315  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2316  		if (edata.val < 1 ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2317  			(edata.val > 1 && !(adapter->flags & USING_MSIX)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2318  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2319  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2320  		for_each_port(adapter, i)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2321  			if (adapter->port[i] && adapter->port[i] != dev)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2322  				other_qsets += adap2pinfo(adapter, i)->nqsets;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2323  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2324  		if (edata.val + other_qsets > SGE_QSETS)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2325  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2326  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2327  		pi->nqsets = edata.val;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2328  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2329  		for_each_port(adapter, i)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2330  			if (adapter->port[i]) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2331  				pi = adap2pinfo(adapter, i);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2332  				pi->first_qset = first_qset;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2333  				first_qset += pi->nqsets;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2334  			}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2335  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2336  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2337  	case CHELSIO_GET_QSET_NUM:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2338  		struct ch_reg edata;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2339  
49c37c0334a9b8 drivers/net/cxgb3/cxgb3_main.c                  Dan Rosenberg       2010-09-15  2340  		memset(&edata, 0, sizeof(struct ch_reg));
49c37c0334a9b8 drivers/net/cxgb3/cxgb3_main.c                  Dan Rosenberg       2010-09-15  2341  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2342  		edata.cmd = CHELSIO_GET_QSET_NUM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2343  		edata.val = pi->nqsets;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2344  		if (copy_to_user(useraddr, &edata, sizeof(edata)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2345  			return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2346  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2347  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2348  	case CHELSIO_LOAD_FW:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2349  		u8 *fw_data;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2350  		struct ch_mem_range t;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2351  
1b3aa7afb60d34 drivers/net/cxgb3/cxgb3_main.c                  Alan Cox            2008-04-29  2352  		if (!capable(CAP_SYS_RAWIO))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2353  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2354  		if (copy_from_user(&t, useraddr, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2355  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2356  		if (t.cmd != CHELSIO_LOAD_FW)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2357  			return -EINVAL;
1b3aa7afb60d34 drivers/net/cxgb3/cxgb3_main.c                  Alan Cox            2008-04-29  2358  		/* Check t.len sanity ? */
c5dc9a3581f486 drivers/net/cxgb3/cxgb3_main.c                  Julia Lawall        2010-05-21  2359  		fw_data = memdup_user(useraddr + sizeof(t), t.len);
c5dc9a3581f486 drivers/net/cxgb3/cxgb3_main.c                  Julia Lawall        2010-05-21  2360  		if (IS_ERR(fw_data))
c5dc9a3581f486 drivers/net/cxgb3/cxgb3_main.c                  Julia Lawall        2010-05-21  2361  			return PTR_ERR(fw_data);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2362  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2363  		ret = t3_load_fw(adapter, fw_data, t.len);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2364  		kfree(fw_data);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2365  		if (ret)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2366  			return ret;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2367  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2368  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2369  	case CHELSIO_SETMTUTAB:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2370  		struct ch_mtus m;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2371  		int i;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2372  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2373  		if (!is_offload(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2374  			return -EOPNOTSUPP;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2375  		if (!capable(CAP_NET_ADMIN))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2376  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2377  		if (offload_running(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2378  			return -EBUSY;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2379  		if (copy_from_user(&m, useraddr, sizeof(m)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2380  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2381  		if (m.cmd != CHELSIO_SETMTUTAB)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2382  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2383  		if (m.nmtus != NMTUS)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2384  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2385  		if (m.mtus[0] < 81)	/* accommodate SACK */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2386  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2387  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2388  		/* MTUs must be in ascending order */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2389  		for (i = 1; i < NMTUS; ++i)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2390  			if (m.mtus[i] < m.mtus[i - 1])
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2391  				return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2392  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2393  		memcpy(adapter->params.mtus, m.mtus,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2394  			sizeof(adapter->params.mtus));
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2395  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2396  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2397  	case CHELSIO_GET_PM:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2398  		struct tp_params *p = &adapter->params.tp;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2399  		struct ch_pm m = {.cmd = CHELSIO_GET_PM };
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2400  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2401  		if (!is_offload(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2402  			return -EOPNOTSUPP;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2403  		m.tx_pg_sz = p->tx_pg_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2404  		m.tx_num_pg = p->tx_num_pgs;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2405  		m.rx_pg_sz = p->rx_pg_size;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2406  		m.rx_num_pg = p->rx_num_pgs;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2407  		m.pm_total = p->pmtx_size + p->chan_rx_size * p->nchan;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2408  		if (copy_to_user(useraddr, &m, sizeof(m)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2409  			return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2410  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2411  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2412  	case CHELSIO_SET_PM:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2413  		struct ch_pm m;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2414  		struct tp_params *p = &adapter->params.tp;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2415  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2416  		if (!is_offload(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2417  			return -EOPNOTSUPP;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2418  		if (!capable(CAP_NET_ADMIN))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2419  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2420  		if (adapter->flags & FULL_INIT_DONE)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2421  			return -EBUSY;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2422  		if (copy_from_user(&m, useraddr, sizeof(m)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2423  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2424  		if (m.cmd != CHELSIO_SET_PM)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2425  			return -EINVAL;
d9da466a3ce2ac drivers/net/cxgb3/cxgb3_main.c                  vignesh babu        2007-07-09  2426  		if (!is_power_of_2(m.rx_pg_sz) ||
d9da466a3ce2ac drivers/net/cxgb3/cxgb3_main.c                  vignesh babu        2007-07-09  2427  			!is_power_of_2(m.tx_pg_sz))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2428  			return -EINVAL;	/* not power of 2 */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2429  		if (!(m.rx_pg_sz & 0x14000))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2430  			return -EINVAL;	/* not 16KB or 64KB */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2431  		if (!(m.tx_pg_sz & 0x1554000))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2432  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2433  		if (m.tx_num_pg == -1)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2434  			m.tx_num_pg = p->tx_num_pgs;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2435  		if (m.rx_num_pg == -1)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2436  			m.rx_num_pg = p->rx_num_pgs;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2437  		if (m.tx_num_pg % 24 || m.rx_num_pg % 24)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2438  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2439  		if (m.rx_num_pg * m.rx_pg_sz > p->chan_rx_size ||
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2440  			m.tx_num_pg * m.tx_pg_sz > p->chan_tx_size)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2441  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2442  		p->rx_pg_size = m.rx_pg_sz;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2443  		p->tx_pg_size = m.tx_pg_sz;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2444  		p->rx_num_pgs = m.rx_num_pg;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2445  		p->tx_num_pgs = m.tx_num_pg;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2446  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2447  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2448  	case CHELSIO_GET_MEM:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2449  		struct ch_mem_range t;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2450  		struct mc7 *mem;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2451  		u64 buf[32];
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2452  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2453  		if (!is_offload(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2454  			return -EOPNOTSUPP;
3546d8f1bbe992 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Michael Ellerman    2020-01-24  2455  		if (!capable(CAP_NET_ADMIN))
3546d8f1bbe992 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Michael Ellerman    2020-01-24  2456  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2457  		if (!(adapter->flags & FULL_INIT_DONE))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2458  			return -EIO;	/* need the memory controllers */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2459  		if (copy_from_user(&t, useraddr, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2460  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2461  		if (t.cmd != CHELSIO_GET_MEM)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2462  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2463  		if ((t.addr & 7) || (t.len & 7))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2464  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2465  		if (t.mem_id == MEM_CM)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2466  			mem = &adapter->cm;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2467  		else if (t.mem_id == MEM_PMRX)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2468  			mem = &adapter->pmrx;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2469  		else if (t.mem_id == MEM_PMTX)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2470  			mem = &adapter->pmtx;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2471  		else
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2472  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2473  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2474  		/*
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2475  		 * Version scheme:
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2476  		 * bits 0..9: chip version
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2477  		 * bits 10..15: chip revision
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2478  		 */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2479  		t.version = 3 | (adapter->params.rev << 10);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2480  		if (copy_to_user(useraddr, &t, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2481  			return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2482  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2483  		/*
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2484  		 * Read 256 bytes at a time as len can be large and we don't
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2485  		 * want to use huge intermediate buffers.
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2486  		 */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2487  		useraddr += sizeof(t);	/* advance to start of buffer */
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2488  		while (t.len) {
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2489  			unsigned int chunk =
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2490  				min_t(unsigned int, t.len, sizeof(buf));
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2491  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2492  			ret =
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2493  				t3_mc7_bd_read(mem, t.addr / 8, chunk / 8,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2494  						buf);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2495  			if (ret)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2496  				return ret;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2497  			if (copy_to_user(useraddr, buf, chunk))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2498  				return -EFAULT;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2499  			useraddr += chunk;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2500  			t.addr += chunk;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2501  			t.len -= chunk;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2502  		}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2503  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2504  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2505  	case CHELSIO_SET_TRACE_FILTER:{
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2506  		struct ch_trace t;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2507  		const struct trace_params *tp;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2508  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2509  		if (!capable(CAP_NET_ADMIN))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2510  			return -EPERM;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2511  		if (!offload_running(adapter))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2512  			return -EAGAIN;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2513  		if (copy_from_user(&t, useraddr, sizeof(t)))
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2514  			return -EFAULT;
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2515  		if (t.cmd != CHELSIO_SET_TRACE_FILTER)
2c05d88818ab65 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c Wenwen Wang         2018-10-05  2516  			return -EINVAL;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2517  
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2518  		tp = (const struct trace_params *)&t.sip;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2519  		if (t.config_tx)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2520  			t3_config_trace_filter(adapter, tp, 0,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2521  						t.invert_match,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2522  						t.trace_tx);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2523  		if (t.config_rx)
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2524  			t3_config_trace_filter(adapter, tp, 1,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2525  						t.invert_match,
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2526  						t.trace_rx);
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2527  		break;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2528  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2529  	default:
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2530  		return -EOPNOTSUPP;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2531  	}
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2532  	return 0;
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2533  }
4d22de3e6cc4a0 drivers/net/cxgb3/cxgb3_main.c                  Divy Le Ray         2007-01-18  2534  

:::::: The code@line 2206 was first introduced by commit
:::::: 4d22de3e6cc4a09c369b504cd8bcde3385a974cd Add support for the latest 1G/10G Chelsio adapter, T3.

:::::: TO: Divy Le Ray <divy@chelsio.com>
:::::: CC: Jeff Garzik <jeff@garzik.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41286 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-23  6:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-23  6:01 [asm-generic:network-ioctl-v6 23/37] drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c:2206 cxgb_siocdevprivate() warn: potential spectre issue 'adapter->params.sge.qset' [r] (local cap) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.