55e802468e
Yury reported a crash in the sfc driver originated from
netpoll_send_udp(). The netconsole sends a message and then netpoll
invokes the driver's NAPI function with a budget of zero. It is
dedicated to allow driver to free TX resources, that it may have used
while sending the packet.
In the netpoll case the driver invokes xdp_do_flush() unconditionally,
leading to crash because bpf_net_context was never assigned.
Invoke xdp_do_flush() only if budget is not zero.
Fixes:
|
||
---|---|---|
.. | ||
falcon | ||
siena | ||
bitfield.h | ||
ef10_regs.h | ||
ef10_sriov.c | ||
ef10_sriov.h | ||
ef10.c | ||
ef100_ethtool.c | ||
ef100_ethtool.h | ||
ef100_netdev.c | ||
ef100_netdev.h | ||
ef100_nic.c | ||
ef100_nic.h | ||
ef100_regs.h | ||
ef100_rep.c | ||
ef100_rep.h | ||
ef100_rx.c | ||
ef100_rx.h | ||
ef100_sriov.c | ||
ef100_sriov.h | ||
ef100_tx.c | ||
ef100_tx.h | ||
ef100.c | ||
ef100.h | ||
efx_channels.c | ||
efx_channels.h | ||
efx_common.c | ||
efx_common.h | ||
efx_devlink.c | ||
efx_devlink.h | ||
efx.c | ||
efx.h | ||
enum.h | ||
ethtool_common.c | ||
ethtool_common.h | ||
ethtool.c | ||
filter.h | ||
io.h | ||
Kconfig | ||
mae_counter_format.h | ||
mae.c | ||
mae.h | ||
Makefile | ||
mcdi_filters.c | ||
mcdi_filters.h | ||
mcdi_functions.c | ||
mcdi_functions.h | ||
mcdi_mon.c | ||
mcdi_pcol_mae.h | ||
mcdi_pcol.h | ||
mcdi_port_common.c | ||
mcdi_port_common.h | ||
mcdi_port.c | ||
mcdi_port.h | ||
mcdi.c | ||
mcdi.h | ||
mtd.c | ||
net_driver.h | ||
nic_common.h | ||
nic.c | ||
nic.h | ||
ptp.c | ||
ptp.h | ||
rx_common.c | ||
rx_common.h | ||
rx.c | ||
selftest.c | ||
selftest.h | ||
sriov.c | ||
sriov.h | ||
tc_bindings.c | ||
tc_bindings.h | ||
tc_conntrack.c | ||
tc_conntrack.h | ||
tc_counters.c | ||
tc_counters.h | ||
tc_encap_actions.c | ||
tc_encap_actions.h | ||
tc.c | ||
tc.h | ||
tx_common.c | ||
tx_common.h | ||
tx_tso.c | ||
tx.c | ||
tx.h | ||
workarounds.h |