summaryrefslogtreecommitdiff
path: root/wl1271/platforms
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2010-05-13 18:25:20 -0700
committerDmitry Shmidt <dimitrysh@google.com>2010-05-13 18:28:15 -0700
commit4d7c6cbda8f292beb38cbf6bd0abbd05555e3e90 (patch)
tree89f09023f5c2aec59249f84039cf143aa65c8166 /wl1271/platforms
parent23f1bd9e9114d77087c7b8fafbcadf97de70c662 (diff)
downloadwlan-tools_r7.tar.gz
Change-Id: I342dbeaeff034403d7f23398411a84996ca3eb08 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'wl1271/platforms')
-rw-r--r--wl1271/platforms/hw/linux/SdioAdapter.c4
-rw-r--r--wl1271/platforms/os/linux/inc/tracebuf.h2
-rw-r--r--wl1271/platforms/os/linux/inc/wbuf.h12
-rw-r--r--wl1271/platforms/os/linux/src/RxBuf.c3
-rw-r--r--wl1271/platforms/os/linux/src/osmemapi.c14
5 files changed, 19 insertions, 16 deletions
diff --git a/wl1271/platforms/hw/linux/SdioAdapter.c b/wl1271/platforms/hw/linux/SdioAdapter.c
index 6abed57..aa223ba 100644
--- a/wl1271/platforms/hw/linux/SdioAdapter.c
+++ b/wl1271/platforms/hw/linux/SdioAdapter.c
@@ -148,7 +148,7 @@ int sdioAdapt_ConnectBus (void * fCbFunc,
}
/* Provide the DMA buffer address to the upper layer so it will use it as the transactions host buffer. */
if (pTxDmaSrcAddr) { /* Dm: check what to do with it */
- *pTxDmaSrcAddr = kmalloc(TIWLAN_MMC_MAX_DMA, GFP_ATOMIC | GFP_DMA);
+ *pTxDmaSrcAddr = kmalloc(TIWLAN_MMC_MAX_DMA, GFP_KERNEL | GFP_DMA);
}
return 0;
}
@@ -309,7 +309,7 @@ int sdioAdapt_ConnectBus (void * fCbFunc,
/* Allocate a DMA-able buffer and provide it to the upper layer to be used for all read and write transactions */
if (pDmaBufAddr == 0) /* allocate only once (in case this function is called multiple times) */
{
- pDmaBufAddr = kmalloc (MAX_BUS_TXN_SIZE, GFP_ATOMIC | GFP_DMA);
+ pDmaBufAddr = kmalloc(MAX_BUS_TXN_SIZE, GFP_KERNEL | GFP_DMA);
if (pDmaBufAddr == 0)
{
iStatus = -1;
diff --git a/wl1271/platforms/os/linux/inc/tracebuf.h b/wl1271/platforms/os/linux/inc/tracebuf.h
index 249b785..441ef1e 100644
--- a/wl1271/platforms/os/linux/inc/tracebuf.h
+++ b/wl1271/platforms/os/linux/inc/tracebuf.h
@@ -40,7 +40,7 @@
#define TB_TRACE_H
-#define TB_MALLOC(size) kmalloc(size, GFP_ATOMIC);
+#define TB_MALLOC(size) kmalloc(size, GFP_KERNEL);
#define TB_FREE kfree
#define TB_PRINTF printk
#define TB_ID current->pid
diff --git a/wl1271/platforms/os/linux/inc/wbuf.h b/wl1271/platforms/os/linux/inc/wbuf.h
index 1dbeb1d..4894cd6 100644
--- a/wl1271/platforms/os/linux/inc/wbuf.h
+++ b/wl1271/platforms/os/linux/inc/wbuf.h
@@ -108,9 +108,15 @@ typedef struct
*/
static inline WBUF *WbufAlloc (TI_HANDLE hOs, TI_UINT32 len)
{
- WBUF *pWbuf = alloc_skb (len + WSPI_PAD_BYTES, GFP_ATOMIC);
- WBUF_DATA (pWbuf) += WSPI_PAD_BYTES;
- return pWbuf;
+ gfp_t flags = (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL;
+ WBUF *pWbuf = alloc_skb(len + WSPI_PAD_BYTES, flags);
+
+ if (!pWbuf)
+ {
+ return NULL;
+ }
+ WBUF_DATA (pWbuf) += WSPI_PAD_BYTES;
+ return pWbuf;
}
#define WbufFree(hOs, pWbuf) ( dev_kfree_skb((struct sk_buff *)pWbuf) )
diff --git a/wl1271/platforms/os/linux/src/RxBuf.c b/wl1271/platforms/os/linux/src/RxBuf.c
index 4a18acf..bda7c10 100644
--- a/wl1271/platforms/os/linux/src/RxBuf.c
+++ b/wl1271/platforms/os/linux/src/RxBuf.c
@@ -51,8 +51,9 @@ void *RxBufAlloc(TI_HANDLE hOs, TI_UINT32 len,PacketClassTag_e ePacketClassTag)
TI_UINT32 alloc_len = len + WSPI_PAD_BYTES + PAYLOAD_ALIGN_PAD_BYTES + RX_HEAD_LEN_ALIGNED;
struct sk_buff *skb;
rx_head_t *rx_head;
+ gfp_t flags = (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL;
- skb = alloc_skb(alloc_len, GFP_ATOMIC);
+ skb = alloc_skb(alloc_len, flags);
if (!skb)
{
return NULL;
diff --git a/wl1271/platforms/os/linux/src/osmemapi.c b/wl1271/platforms/os/linux/src/osmemapi.c
index 85a7753..e71d303 100644
--- a/wl1271/platforms/os/linux/src/osmemapi.c
+++ b/wl1271/platforms/os/linux/src/osmemapi.c
@@ -99,6 +99,7 @@ os_memoryAlloc(
{
struct os_mem_block *blk;
__u32 total_size = Size + sizeof(struct os_mem_block) + sizeof(__u32);
+ gfp_t flags = (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL;
#ifdef TI_MEM_ALLOC_TRACE
os_printf("MTT:%s:%d ::os_memoryAlloc(0x%p, %lu) : %lu\n",__FUNCTION__, __LINE__,OsContext,Size,total_size);
@@ -115,14 +116,7 @@ os_memoryAlloc(
if (total_size < 2 * 4096)
#endif
{
- if (in_atomic())
- {
- blk = kmalloc(total_size, GFP_ATOMIC);
- }
- else
- {
- blk = kmalloc(total_size, GFP_KERNEL);
- }
+ blk = kmalloc(total_size, flags);
if (!blk)
{
printk("%s: NULL\n",__func__);
@@ -303,13 +297,15 @@ os_memoryAlloc4HwDma(
{
struct os_mem_block *blk;
__u32 total_size = Size + sizeof(struct os_mem_block) + sizeof(__u32);
+ gfp_t flags = (in_atomic()) ? GFP_ATOMIC : GFP_KERNEL;
+
/*
if the size is greater than 2 pages then we cant allocate the memory
through kmalloc so the function fails
*/
if (Size < 2 * OS_PAGE_SIZE)
{
- blk = kmalloc(total_size, GFP_ATOMIC|GFP_DMA);
+ blk = kmalloc(total_size, flags | GFP_DMA);
if (!blk) {
printk("%s: NULL\n",__func__);
return NULL;