aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211/brcmsmac/dma.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 17:54:29 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 17:54:29 -0400
commitcc998ff8811530be521f6b316f37ab7676a07938 (patch)
treea054b3bf4b2ef406bf756a6cfc9be2f9115f17ae /drivers/net/wireless/brcm80211/brcmsmac/dma.c
parent57d730924d5cc2c3e280af16a9306587c3a511db (diff)
parent0d40f75bdab241868c0eb6f97aef9f8b3a66f7b3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking changes from David Miller: "Noteworthy changes this time around: 1) Multicast rejoin support for team driver, from Jiri Pirko. 2) Centralize and simplify TCP RTT measurement handling in order to reduce the impact of bad RTO seeding from SYN/ACKs. Also, when both timestamps and local RTT measurements are available prefer the later because there are broken middleware devices which scramble the timestamp. From Yuchung Cheng. 3) Add TCP_NOTSENT_LOWAT socket option to limit the amount of kernel memory consumed to queue up unsend user data. From Eric Dumazet. 4) Add a "physical port ID" abstraction for network devices, from Jiri Pirko. 5) Add a "suppress" operation to influence fib_rules lookups, from Stefan Tomanek. 6) Add a networking development FAQ, from Paul Gortmaker. 7) Extend the information provided by tcp_probe and add ipv6 support, from Daniel Borkmann. 8) Use RCU locking more extensively in openvswitch data paths, from Pravin B Shelar. 9) Add SCTP support to openvswitch, from Joe Stringer. 10) Add EF10 chip support to SFC driver, from Ben Hutchings. 11) Add new SYNPROXY netfilter target, from Patrick McHardy. 12) Compute a rate approximation for sending in TCP sockets, and use this to more intelligently coalesce TSO frames. Furthermore, add a new packet scheduler which takes advantage of this estimate when available. From Eric Dumazet. 13) Allow AF_PACKET fanouts with random selection, from Daniel Borkmann. 14) Add ipv6 support to vxlan driver, from Cong Wang" Resolved conflicts as per discussion. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1218 commits) openvswitch: Fix alignment of struct sw_flow_key. netfilter: Fix build errors with xt_socket.c tcp: Add missing braces to do_tcp_setsockopt caif: Add missing braces to multiline if in cfctrl_linkup_request bnx2x: Add missing braces in bnx2x:bnx2x_link_initialize vxlan: Fix kernel panic on device delete. net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls net: mvneta: properly disable HW PHY polling and ensure adjust_link() works icplus: Use netif_running to determine device state ethernet/arc/arc_emac: Fix huge delays in large file copies tuntap: orphan frags before trying to set tx timestamp tuntap: purge socket error queue on detach qlcnic: use standard NAPI weights ipv6:introduce function to find route for redirect bnx2x: VF RSS support - VF side bnx2x: VF RSS support - PF side vxlan: Notify drivers for listening UDP port changes net: usbnet: update addr_assign_type if appropriate driver/net: enic: update enic maintainers and driver driver/net: enic: Exposing symbols for Cisco's low latency driver ...
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmsmac/dma.c')
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/dma.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/dma.c b/drivers/net/wireless/brcm80211/brcmsmac/dma.c
index 1860c572b3c4..4fb9635d3919 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/dma.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/dma.c
@@ -1015,9 +1015,10 @@ static bool dma64_txidle(struct dma_info *di)
1015 1015
1016/* 1016/*
1017 * post receive buffers 1017 * post receive buffers
1018 * return false is refill failed completely and ring is empty this will stall 1018 * Return false if refill failed completely or dma mapping failed. The ring
1019 * the rx dma and user might want to call rxfill again asap. This unlikely 1019 * is empty, which will stall the rx dma and user might want to call rxfill
1020 * happens on memory-rich NIC, but often on memory-constrained dongle 1020 * again asap. This is unlikely to happen on a memory-rich NIC, but often on
1021 * memory-constrained dongle.
1021 */ 1022 */
1022bool dma_rxfill(struct dma_pub *pub) 1023bool dma_rxfill(struct dma_pub *pub)
1023{ 1024{
@@ -1078,6 +1079,8 @@ bool dma_rxfill(struct dma_pub *pub)
1078 1079
1079 pa = dma_map_single(di->dmadev, p->data, di->rxbufsize, 1080 pa = dma_map_single(di->dmadev, p->data, di->rxbufsize,
1080 DMA_FROM_DEVICE); 1081 DMA_FROM_DEVICE);
1082 if (dma_mapping_error(di->dmadev, pa))
1083 return false;
1081 1084
1082 /* save the free packet pointer */ 1085 /* save the free packet pointer */
1083 di->rxp[rxout] = p; 1086 di->rxp[rxout] = p;
@@ -1284,7 +1287,11 @@ static void dma_txenq(struct dma_info *di, struct sk_buff *p)
1284 1287
1285 /* get physical address of buffer start */ 1288 /* get physical address of buffer start */
1286 pa = dma_map_single(di->dmadev, data, len, DMA_TO_DEVICE); 1289 pa = dma_map_single(di->dmadev, data, len, DMA_TO_DEVICE);
1287 1290 /* if mapping failed, free skb */
1291 if (dma_mapping_error(di->dmadev, pa)) {
1292 brcmu_pkt_buf_free_skb(p);
1293 return;
1294 }
1288 /* With a DMA segment list, Descriptor table is filled 1295 /* With a DMA segment list, Descriptor table is filled
1289 * using the segment list instead of looping over 1296 * using the segment list instead of looping over
1290 * buffers in multi-chain DMA. Therefore, EOF for SGLIST 1297 * buffers in multi-chain DMA. Therefore, EOF for SGLIST