linux/drivers
Arnd Bergmann 33b165684a i40e: reduce stack usage in i40e_set_fc
The functions i40e_aq_get_phy_abilities_resp() and i40e_set_fc() both
have giant structure on the stack, which makes each one use stack frames
larger than 500 bytes.

As clang decides one function into the other, we get a warning for
exceeding the frame size limit on 32-bit architectures:

drivers/net/ethernet/intel/i40e/i40e_common.c:1654:23: error: stack frame size of 1116 bytes in function 'i40e_set_fc' [-Werror,-Wframe-larger-than=]

When building with gcc, the inlining does not happen, but i40e_set_fc()
calls i40e_aq_get_phy_abilities_resp() anyway, so they add up on the
kernel stack just as much.

The parts that actually use large stacks don't overlap, so make sure
each one is a separate function, and mark them as noinline_for_stack to
prevent the compilers from combining them again.

Fixes: 0a862b43ac ("i40e/i40evf: Add module_types and update_link_info")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-08-22 13:24:13 -07:00
..
accessibility
acpi drivers/acpi/scan.c: document why we don't need the device_hotplug_lock 2019-08-03 07:02:01 -07:00
amba
android
ata libata: add SG safety checks in SFF pio transfers 2019-08-07 12:23:57 -06:00
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
auxdisplay auxdisplay: charlcd: add include guard to charlcd.h 2019-08-08 19:59:50 +02:00
base soundwire fixes for v5.3-rc5 2019-08-16 12:35:56 +02:00
bcma bcma: Use dev_get_drvdata 2019-08-06 15:25:28 +03:00
block xen/blkback: fix memory leaks 2019-08-12 08:18:37 -06:00
bluetooth Bluetooth: hci_qca: Skip 1 error print in device_want_to_sleep() 2019-08-14 15:50:46 +02:00
bus
cdrom
char tpm: tpm_ibm_vtpm: Fix unallocated banks 2019-08-05 00:55:00 +03:00
clk
clocksource RISC-V: Remove per cpu clocksource 2019-08-06 14:37:58 -07:00
connector
counter
cpufreq cpufreq: dev_pm_qos_update_request() can return 1 on success 2019-08-10 13:39:47 +02:00
cpuidle
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
dax
dca
devfreq
dio
dma omap-dma/omap_vout_vrfb: fix off-by-one fi value 2019-08-09 16:33:41 +05:30
dma-buf
edac
eisa
extcon
firewire
firmware Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-08-18 09:36:51 -07:00
fpga
fsi
gnss
gpio
gpu Merge tag 'drm-intel-fixes-2019-08-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes 2019-08-16 12:41:52 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2019-08-06 11:47:23 -07:00
hsi
hv tools: hv: Use the correct style for SPDX License Identifier 2019-08-17 15:29:34 -04:00
hwmon hwmon: (lm75) Fixup tmp75b clr_mask 2019-08-07 14:50:49 -07:00
hwspinlock
hwtracing SPDX fixes for 5.3-rc5 2019-08-18 09:26:16 -07:00
i2c i2c: stm32: Use the correct style for SPDX License Identifier 2019-08-14 14:56:54 +02:00
i3c
ide
idle
iio iio: adc: max9611: Fix temperature reading in probe 2019-08-05 17:42:24 +01:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-08-09 15:31:19 -07:00
interconnect
iommu dma-mapping fixes for 5.3-rc 2019-08-14 10:31:11 -07:00
ipack
irqchip irqchip fixes for 5.3 2019-08-01 20:21:00 +02:00
isdn
leds
lightnvm
macintosh
mailbox
mcb
md for-linus-20190809 2019-08-09 09:28:18 -07:00
media dmaengine fixes for v5.3-rc5 2019-08-16 08:59:33 -07:00
memory
memstick
message
mfd mfd: omap-usb-host: Mark expected switch fall-throughs 2019-08-09 19:46:52 -05:00
misc misc: xilinx-sdfec: fix dependency and build error 2019-08-15 18:10:25 +02:00
mmc mmc: cavium: Add the missing dma unmap when the dma has finished. 2019-08-06 18:59:14 +02:00
mtd mtd: spi-nor: Fix the disabling of write protection at init 2019-08-13 14:34:42 +02:00
mux
net i40e: reduce stack usage in i40e_set_fc 2019-08-22 13:24:13 -07:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
ntb NTB/msi: remove incorrect MODULE defines 2019-08-05 15:42:27 -04:00
nubus
nvdimm
nvme for-linus-2019-08-17 2019-08-17 19:39:54 -07:00
nvmem
of of: irq: fix a trivial typo in a doc comment 2019-08-14 20:12:16 -06:00
opp
oprofile
parisc
parport
pci PCI: hv: Add a Hyper-V PCI interface driver for software backchannel interface 2019-08-22 00:25:12 -07:00
pcmcia pcmcia: db1xxx_ss: Mark expected switch fall-throughs 2019-08-09 19:53:04 -05:00
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm pwm: Fallback to the static lookup-list when acpi_pwm_get fails 2019-08-08 13:17:38 +02:00
rapidio
ras
regulator regulator: of: Add of_node_put() before return in function 2019-08-01 14:07:46 +01:00
remoteproc
reset
rpmsg
rtc
s390 s390/lcs: don't use intparm for channel IO 2019-08-20 13:51:46 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
sfi
sh
siox
slimbus
sn
soc
soundwire soundwire: fix regmap dependencies and align with other serial links 2019-08-09 10:20:40 +05:30
spi spi: Fixes for v5.3 2019-08-05 11:49:02 -07:00
spmi
ssb
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-19 11:54:03 -07:00
target Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
tc
tee
thermal
thunderbolt
tty
uio
usb USB-serial fixes for 5.3-rc5 2019-08-17 17:09:33 +02:00
uwb
vfio
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
video video: fbdev: omapfb_main: Mark expected switch fall-throughs 2019-08-09 19:51:52 -05:00
virt
virtio
visorbus
vlynq
vme
w1
watchdog watchdog: riowd: Mark expected switch fall-through 2019-08-09 19:51:01 -05:00
xen xen: fixes for 5.3-rc3 2019-08-02 15:26:48 -07:00
zorro
Kconfig
Makefile