From: m.szyprowski@samsung.com (Marek Szyprowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: DMA: Fix kzalloc flags in __iommu_alloc_buffer()
Date: Tue, 13 Jan 2015 12:20:44 +0100 [thread overview]
Message-ID: <54B4FF8C.50805@samsung.com> (raw)
In-Reply-To: <CAAVeFuL-x1-vmaViYou6ViRR+ipCnz5WdwbmKC4Cu5ViD+pVNA@mail.gmail.com>
Hello,
On 2015-01-13 09:45, Alexandre Courbot wrote:
> Ping? This patch still seems to be needed as of today...
Arnd, could you take this patch together with your other pending
dma-mapping.h changes?
> On Thu, Dec 11, 2014 at 8:12 PM, Marek Szyprowski
> <m.szyprowski@samsung.com> wrote:
>> On 2014-12-08 09:39, Alexandre Courbot wrote:
>>> There doesn't seem to be any valid reason to allocate the pages array
>>> with the same flags as the buffer itself. Doing so can eventually lead
>>> to the following safeguard in mm/slab.c to be hit:
>>>
>>> BUG_ON(flags & GFP_SLAB_BUG_MASK);
>>>
>>> This happens when buffers are allocated with __GFP_DMA32 or
>>> __GFP_HIGHMEM.
>>>
>>> Fix this by allocating the pages array with GFP_KERNEL to follow what is
>>> done elsewhere in this file. Using GFP_KERNEL in __iommu_alloc_buffer()
>>> is safe because atomic allocations are handled by __iommu_alloc_atomic().
>>>
>>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>>> Cc: Russell King <linux@arm.linux.org.uk>
>>> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>> Cc: Thierry Reding <treding@nvidia.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
>>
>>> ---
>>> arch/arm/mm/dma-mapping.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
>>> index e8907117861e..bc495354c802 100644
>>> --- a/arch/arm/mm/dma-mapping.c
>>> +++ b/arch/arm/mm/dma-mapping.c
>>> @@ -1106,7 +1106,7 @@ static struct page **__iommu_alloc_buffer(struct
>>> device *dev, size_t size,
>>> int i = 0;
>>> if (array_size <= PAGE_SIZE)
>>> - pages = kzalloc(array_size, gfp);
>>> + pages = kzalloc(array_size, GFP_KERNEL);
>>> else
>>> pages = vzalloc(array_size);
>>> if (!pages)
>>>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
WARNING: multiple messages have this Message-ID (diff)
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: Alexandre Courbot <gnurou@gmail.com>,
Russell King <linux@arm.linux.org.uk>,
Arnd Bergmann <arnd@arndb.de>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Thierry Reding <treding@nvidia.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [PATCH] ARM: DMA: Fix kzalloc flags in __iommu_alloc_buffer()
Date: Tue, 13 Jan 2015 12:20:44 +0100 [thread overview]
Message-ID: <54B4FF8C.50805@samsung.com> (raw)
In-Reply-To: <CAAVeFuL-x1-vmaViYou6ViRR+ipCnz5WdwbmKC4Cu5ViD+pVNA@mail.gmail.com>
Hello,
On 2015-01-13 09:45, Alexandre Courbot wrote:
> Ping? This patch still seems to be needed as of today...
Arnd, could you take this patch together with your other pending
dma-mapping.h changes?
> On Thu, Dec 11, 2014 at 8:12 PM, Marek Szyprowski
> <m.szyprowski@samsung.com> wrote:
>> On 2014-12-08 09:39, Alexandre Courbot wrote:
>>> There doesn't seem to be any valid reason to allocate the pages array
>>> with the same flags as the buffer itself. Doing so can eventually lead
>>> to the following safeguard in mm/slab.c to be hit:
>>>
>>> BUG_ON(flags & GFP_SLAB_BUG_MASK);
>>>
>>> This happens when buffers are allocated with __GFP_DMA32 or
>>> __GFP_HIGHMEM.
>>>
>>> Fix this by allocating the pages array with GFP_KERNEL to follow what is
>>> done elsewhere in this file. Using GFP_KERNEL in __iommu_alloc_buffer()
>>> is safe because atomic allocations are handled by __iommu_alloc_atomic().
>>>
>>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>>> Cc: Russell King <linux@arm.linux.org.uk>
>>> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>> Cc: Thierry Reding <treding@nvidia.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
>>
>>> ---
>>> arch/arm/mm/dma-mapping.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
>>> index e8907117861e..bc495354c802 100644
>>> --- a/arch/arm/mm/dma-mapping.c
>>> +++ b/arch/arm/mm/dma-mapping.c
>>> @@ -1106,7 +1106,7 @@ static struct page **__iommu_alloc_buffer(struct
>>> device *dev, size_t size,
>>> int i = 0;
>>> if (array_size <= PAGE_SIZE)
>>> - pages = kzalloc(array_size, gfp);
>>> + pages = kzalloc(array_size, GFP_KERNEL);
>>> else
>>> pages = vzalloc(array_size);
>>> if (!pages)
>>>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
next prev parent reply other threads:[~2015-01-13 11:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-08 8:39 [PATCH] ARM: DMA: Fix kzalloc flags in __iommu_alloc_buffer() Alexandre Courbot
2014-12-08 8:39 ` Alexandre Courbot
2014-12-08 10:24 ` Arnd Bergmann
2014-12-08 10:24 ` Arnd Bergmann
2014-12-09 2:57 ` Alexandre Courbot
2014-12-09 2:57 ` Alexandre Courbot
2014-12-09 8:14 ` Arnd Bergmann
2014-12-09 8:14 ` Arnd Bergmann
2014-12-11 11:12 ` Marek Szyprowski
2014-12-11 11:12 ` Marek Szyprowski
2015-01-13 8:45 ` Alexandre Courbot
2015-01-13 8:45 ` Alexandre Courbot
2015-01-13 11:20 ` Marek Szyprowski [this message]
2015-01-13 11:20 ` Marek Szyprowski
2015-01-22 4:41 ` Alexandre Courbot
2015-01-22 4:41 ` Alexandre Courbot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54B4FF8C.50805@samsung.com \
--to=m.szyprowski@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.