On Thu, 2006-10-12 at 01:40 -0700, Parav Pandit wrote: > Hi, > > I need to allocate some 256 bytes of memory in the interrupt handler > each time when I get the interrupt. Size varies from 8 bytes to 256 > bytes. > There are various options such as > (a) kmalloc(GFP_ATOMIC), > (b) kmem_cache_alloc > (c) mempool_alloc > My driver need to support, at max 4096 * 256 = 1MByte buffer. I don’t > need DMA support. > > How can I use above APIs so that I always get the memory in the > interrupt handler? You can use kmalloc(GFP_ATOMIC). However, remember to check the return value. For GFP_ATOMIC, kmalloc tries its best to give you the requested memory. There is a reserve pool of memory which is used for GFP_ATOMIC if kmalloc cannot allocate memory from regular pool. Be sure to kfree() the memory also after use.. > > ______________________________________________________________________ > Yahoo! Messenger with Voice. Make PC-to-Phone Calls to the US (and 30+ > countries) for 2¢/min or less. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/