2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-16 17:43:56 +08:00
linux-next/drivers/net
Gabriel Krisman Bertazi 4cace675d6 bnx2x: Alloc 4k fragment for each rx ring buffer element
The driver allocates one page for each buffer on the rx ring, which is
too much on architectures like ppc64 and can cause unexpected allocation
failures when the system is under stress.  Now, we keep a memory pool
per queue, and if the architecture's PAGE_SIZE is greater than 4k, we
fragment pages and assign each 4k segment to a ring element, which
reduces the overall memory consumption on such architectures.  This
helps avoiding errors like the example below:

[bnx2x_alloc_rx_sge:435(eth1)]Can't alloc sge
[c00000037ffeb900] [d000000075eddeb4] .bnx2x_alloc_rx_sge+0x44/0x200 [bnx2x]
[c00000037ffeb9b0] [d000000075ee0b34] .bnx2x_fill_frag_skb+0x1ac/0x460 [bnx2x]
[c00000037ffebac0] [d000000075ee11f0] .bnx2x_tpa_stop+0x160/0x2e8 [bnx2x]
[c00000037ffebb90] [d000000075ee1560] .bnx2x_rx_int+0x1e8/0xc30 [bnx2x]
[c00000037ffebcd0] [d000000075ee2084] .bnx2x_poll+0xdc/0x3d8 [bnx2x] (unreliable)

Signed-off-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
Acked-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Reviewed-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-06-01 15:56:42 -07:00
..
appletalk
arcnet
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-23 01:22:35 -04:00
caif caif: remove unused struct member 2015-04-01 12:43:09 -04:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
cris
dsa net: dsa: bcm_sf2: properly propagate carrier down state for MoCA 2015-05-17 23:40:24 -04:00
ethernet bnx2x: Alloc 4k fragment for each rx ring buffer element 2015-06-01 15:56:42 -07:00
fddi
hamradio ax25: remove unneeded NULL test in ax_xmit() 2015-03-06 21:50:42 -05:00
hippi
hyperv hv_netvsc: Allocate the sendbuf in a NUMA aware way 2015-05-31 00:23:03 -07:00
ieee802154 atusb: add support for at86rf230 2015-05-27 19:29:54 +02:00
ipvlan ipvlan: Always set broadcast bit in multicast filter 2015-05-05 19:29:49 -04:00
irda irda: irda-usb: use msecs_to_jiffies for conversions 2015-05-25 17:39:21 -04:00
phy net: phy: Utilize phy_interface_is_rgmii 2015-05-27 00:27:35 -04:00
plip
ppp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
slip
team switchdev: add support for fdb add/del/dump via switchdev_port_obj ops. 2015-05-17 22:49:09 -04:00
usb cdc_ncm: Fix tx_bytes statistics 2015-05-22 14:26:31 -04:00
vmxnet3 vmxnet3: spelling fixes 2015-04-01 22:52:29 -04:00
wan cosa: fix error return code 2015-04-07 15:21:55 -04:00
wimax
wireless As we get closer to the merge window, here are a few 2015-05-31 17:34:26 -07:00
xen-netback net:xen-netback - Change 1 to true for bool type variable. 2015-05-25 16:34:35 -04:00
dummy.c
eql.c
geneve.c geneve: add initial netdev driver for GENEVE tunnels 2015-05-13 15:59:13 -04:00
ifb.c act_mirred: Fix bogus header when redirecting from VLAN 2015-04-17 13:29:28 -04:00
Kconfig geneve: add initial netdev driver for GENEVE tunnels 2015-05-13 15:59:13 -04:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: Propagate promiscuity setting to lower devices. 2015-05-04 00:14:13 -04:00
macvtap.c fix missing copy_from_user in macvtap 2015-05-13 14:21:36 -04:00
Makefile geneve: add initial netdev driver for GENEVE tunnels 2015-05-13 15:59:13 -04:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c PNP: net/sb1000: Use module_pnp_driver to register driver 2015-03-18 22:39:17 +01:00
Space.c
sungem_phy.c
tun.c net: Pass kern from net_proto_family.create to sk_alloc 2015-05-11 10:50:17 -04:00
veth.c veth: set iflink to the peer veth 2015-04-02 14:05:01 -04:00
virtio_net.c virtio: document queue state logic 2015-04-06 16:44:24 -04:00
vxlan.c vxlan: release lock after each bucket in vxlan_cleanup 2015-05-27 13:33:21 -04:00
xen-netfront.c xen-netfront: Use setup_timer 2015-05-31 22:26:03 -07:00