diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-06-13 16:42:13 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-06-15 17:20:52 -0700 |
commit | 63a3dfafbc50a3a671cb63294bb4695e9d3c885c (patch) | |
tree | 976e7d060e9cf9b6629d4fb809be214eac91b328 | |
parent | 1154e25e0fac10248051ab8bf6f2f73772b1b1f3 (diff) | |
download | kernel_samsung_crespo-63a3dfafbc50a3a671cb63294bb4695e9d3c885c.zip kernel_samsung_crespo-63a3dfafbc50a3a671cb63294bb4695e9d3c885c.tar.gz kernel_samsung_crespo-63a3dfafbc50a3a671cb63294bb4695e9d3c885c.tar.bz2 |
net: wireless: bcmdhd: Allocate skb with GFP_KERNEL flag if possible
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r-- | drivers/net/wireless/bcmdhd/linux_osl.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/net/wireless/bcmdhd/linux_osl.c b/drivers/net/wireless/bcmdhd/linux_osl.c index 14b9aa1..bfbfc88 100644 --- a/drivers/net/wireless/bcmdhd/linux_osl.c +++ b/drivers/net/wireless/bcmdhd/linux_osl.c @@ -246,6 +246,13 @@ osl_detach(osl_t *osh) kfree(osh); } +struct sk_buff *osl_alloc_skb(unsigned int len) +{ + gfp_t flags = (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL; + + return __dev_alloc_skb(len, flags); +} + #ifdef CTFPOOL void * @@ -266,7 +273,7 @@ osl_ctfpool_add(osl_t *osh) } - skb = dev_alloc_skb(osh->ctfpool->obj_size); + skb = osl_alloc_skb(osh->ctfpool->obj_size); if (skb == NULL) { printf("%s: skb alloc of len %d failed\n", __FUNCTION__, osh->ctfpool->obj_size); @@ -426,7 +433,7 @@ osl_pktfastget(osl_t *osh, uint len) return skb; } -#endif +#endif void * BCMFASTPATH @@ -435,16 +442,14 @@ osl_pktget(osl_t *osh, uint len) struct sk_buff *skb; #ifdef CTFPOOL - skb = osl_pktfastget(osh, len); - if ((skb != NULL) || ((skb = dev_alloc_skb(len)) != NULL)) { -#else - if ((skb = dev_alloc_skb(len))) { -#endif + if ((skb != NULL) || ((skb = osl_alloc_skb(len)) != NULL)) { +#else + if ((skb = osl_alloc_skb(len))) { +#endif skb_put(skb, len); skb->priority = 0; - osh->pub.pktalloced++; } |