Messages in this thread | | | Date | Wed, 30 Apr 2014 14:19:24 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] dmapool: remove redundant NULL check for dev in dma_pool_create() |
| |
On Tue, 29 Apr 2014 11:53:10 +0900 Daeseok Youn <daeseok.youn@gmail.com> wrote:
> "dev" cannot be NULL because it is already checked before > calling dma_pool_create(). > > Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com> > --- > If dev can be NULL, it has NULL deferencing when kmalloc_node() > is called after enabling CONFIG_NUMA.
hm, this is unclear.
The code which handles the dev==NULL case was obviously put there deliberately, presumably with the intention of permitting drivers to call dma_pool_create() without a device*. This code is very old.
A lot of drivers call dma_pool_create() (I doubt if you audited all of them!) and perhaps there are some which use this feature and have never been run on NUMA hardware.
I think I'll apply the patch anyway because such drivers (if they exist) probably need some attending to.
I rewrote the changelog thusly:
: "dev" cannot be NULL because it is already checked before calling : dma_pool_create(). : : If dev ever was NULL, the code would oops in dev_to_node() after enabling : CONFIG_NUMA. : : It is possible that some driver is using dev==NULL and has never been run : on a NUMA machine. Such a driver is probably outdated, possibly buggy and : will need some attention if it starts triggering NULL derefs.
| |