linux/drivers/net/ethernet
Arnd Bergmann 14b84e8654 qed: fix qed_fill_link() error handling
gcc warns about qed_fill_link possibly accessing uninitialized data:

drivers/net/ethernet/qlogic/qed/qed_main.c: In function 'qed_fill_link':
drivers/net/ethernet/qlogic/qed/qed_main.c:1170:35: error: 'link_caps' may be used uninitialized in this function [-Werror=maybe-uninitialized]

While this warning is only about the specific case of CONFIG_QED_SRIOV
being disabled but the function getting called for a VF (which should
never happen), another possibility is that qed_mcp_get_*() fails without
returning data.

This rearranges the code so we bail out in either of the two cases
and print a warning instead of accessing the uninitialized data.

The qed_link_output structure remains untouched in this case, but
all callers first call memset() on it, so at least we are not leaking
stack data then.

As discussed, we also use a compile-time check to ensure we never
use any of the VF code if CONFIG_QED_SRIOV is disabled, and the
PCI device table is updated to no longer bind to virtual functions
in that configuration.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-01 22:04:54 -07:00
..
3com treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
8390 treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
adaptec treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
adi treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
aeroflex aeroflex/greth: fix warning about unused variable 2016-05-20 18:33:37 -07:00
agere treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
allwinner treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
alteon
altera
amd net: au1000 eth: simplify logical expression 2016-05-19 11:32:05 -07:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-15 13:32:48 -04:00
apple
arc net: arc: trivial: Replace comma with a semicolon 2016-05-25 22:13:15 -07:00
atheros net: alx: use custom skb allocator 2016-05-25 19:52:27 -04:00
aurora
broadcom bnx2x: avoid leaking memory on bnx2x_init_one() failures 2016-05-31 14:10:34 -07:00
brocade
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-04 00:52:29 -04:00
calxeda
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-20 20:01:26 -07:00
chelsio Primary 4.7 merge window changes 2016-05-20 14:35:07 -07:00
cirrus
cisco enic: set netdev->vlan_features 2016-04-18 14:53:21 -04:00
davicom drivers: net: Don't print unpopulated net_device name 2016-05-17 12:30:19 -04:00
dec treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
dlink treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
emulex benet: be_resume needs to protect be_open with rtnl_lock 2016-04-21 15:35:07 -04:00
ezchip net: nps_enet: Disable interrupts before napi reschedule 2016-05-29 22:35:21 -07:00
faraday net: ethernet: ftgmac100: use phy_ethtool_{get|set}_link_ksettings 2016-05-16 21:51:41 -04:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-31 22:28:28 -07:00
fujitsu treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
hisilicon net: hns: avoid null pointer dereference 2016-05-23 13:54:03 -07:00
hp treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
i825xx treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ibm net: ehea: avoid null pointer dereference 2016-05-19 11:25:30 -07:00
intel intel: Add support for IPv6 IP-in-IP offload 2016-05-20 19:25:52 -04:00
marvell net: mvneta: Fix lacking spinlock initialization 2016-05-25 12:35:08 -07:00
mediatek net: mediatek: do not set the QID field in the TX DMA descriptors 2016-04-12 22:41:33 -04:00
mellanox net/mlx4_en: get rid of private net_device_stats 2016-05-25 22:15:50 -07:00
micrel drivers: net: Don't print unpopulated net_device name 2016-05-17 12:30:19 -04:00
microchip treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
moxa treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
myricom myri10ge: fix sleeping with bh disabled 2016-04-28 14:21:14 -04:00
natsemi treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
neterion drivers: net: remove NETDEV_TX_LOCKED 2016-04-26 15:53:05 -04:00
netronome nfp: add async reconfiguration mechanism 2016-04-16 22:34:40 -04:00
nuvoton treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
nvidia
nxp
oki-semi pch_gbe: replace private tx ring lock with common netif_tx_lock 2016-04-28 17:19:58 -04:00
packetengines treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
pasemi
qlogic qed: fix qed_fill_link() error handling 2016-06-01 22:04:54 -07:00
qualcomm treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
rdc
realtek r8169: default to 64-bit DMA on recent PCIe chips 2016-05-17 14:31:09 -04:00
renesas ravb: Add missing free_irq() calls to ravb_close() 2016-05-17 12:26:56 -04:00
rocker switchdev: pass pointer to fib_info instead of copy 2016-05-17 13:58:49 -04:00
samsung net: sxgbe: fix error paths in sxgbe_platform_probe() 2016-03-27 22:39:22 -04:00
seeq treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
sfc sfc: Track RPS flow IDs per channel instead of per function 2016-05-31 20:30:25 -07:00
sgi treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
silan
sis treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
smsc treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
stmicro net: stmmac: Fix incorrect memcpy source memory 2016-05-25 21:43:35 -07:00
sun treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
synopsys treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
tehuti treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ti treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
tile drivers: fix dev->trans_start removal fallout 2016-05-04 17:07:14 -04:00
toshiba ps3_gelic: use kmemdup 2016-05-20 19:50:07 -04:00
tundra net: tsi108: use NULL for pointer-typed argument 2016-04-26 01:10:26 -04:00
via treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
wiznet net: w5100-spi: add support to specify MAC address by device tree 2016-05-16 13:55:49 -04:00
xilinx treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
xircom treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c net/ethoc: fix null dereference on error exit path 2016-06-01 22:02:01 -07:00
fealnx.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
jme.c drivers/net/ethernet/jme.c: Deinline jme_reset_mac_processor, save 2816 bytes 2016-04-13 22:57:00 -04:00
jme.h
Kconfig netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
korina.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
lantiq_etop.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
Makefile netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
netx-eth.c drivers: net: Don't print unpopulated net_device name 2016-05-17 12:30:19 -04:00