[PATCH v2] kfifo: don't include dma-mapping.h in kfifo.h

Christoph Hellwig posted 1 patch 1 month ago
drivers/mailbox/omap-mailbox.c | 1 +
include/linux/kfifo.h          | 1 -
samples/kfifo/dma-example.c    | 1 +
3 files changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] kfifo: don't include dma-mapping.h in kfifo.h
Posted by Christoph Hellwig 1 month ago
Nothing in kfifo.h directly needs dma-mapping.h, only two macros
use DMA_MAPPING_ERROR when actually instantiated.  Drop the
dma-mapping.h include to reduce include bloat.

Add an explicity <linux/io.h> include to drivers/mailbox/omap-mailbox.c
as that file uses __raw_readl and __raw_writel through a complicated
include chain involving <linux/dma-mapping.h>

Fixes: d52b761e4b1a ("kfifo: add kfifo_dma_out_prepare_mapped()")
Signed-off-by: Christoph Hellwig <hch@lst.de>
---

Changes since v1:
 - improve the commit log

 drivers/mailbox/omap-mailbox.c | 1 +
 include/linux/kfifo.h          | 1 -
 samples/kfifo/dma-example.c    | 1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
index 6797770474a5..680243751d62 100644
--- a/drivers/mailbox/omap-mailbox.c
+++ b/drivers/mailbox/omap-mailbox.c
@@ -15,6 +15,7 @@
 #include <linux/slab.h>
 #include <linux/kfifo.h>
 #include <linux/err.h>
+#include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
index 564868bdce89..fd743d4c4b4b 100644
--- a/include/linux/kfifo.h
+++ b/include/linux/kfifo.h
@@ -37,7 +37,6 @@
  */
 
 #include <linux/array_size.h>
-#include <linux/dma-mapping.h>
 #include <linux/spinlock.h>
 #include <linux/stddef.h>
 #include <linux/types.h>
diff --git a/samples/kfifo/dma-example.c b/samples/kfifo/dma-example.c
index 48df719dac8c..8076ac410161 100644
--- a/samples/kfifo/dma-example.c
+++ b/samples/kfifo/dma-example.c
@@ -9,6 +9,7 @@
 #include <linux/kfifo.h>
 #include <linux/module.h>
 #include <linux/scatterlist.h>
+#include <linux/dma-mapping.h>
 
 /*
  * This module shows how to handle fifo dma operations.
-- 
2.45.2
Re: [PATCH v2] kfifo: don't include dma-mapping.h in kfifo.h
Posted by Jiri Slaby 1 month ago
On 23. 10. 24, 7:53, Christoph Hellwig wrote:
> Nothing in kfifo.h directly needs dma-mapping.h, only two macros
> use DMA_MAPPING_ERROR when actually instantiated.  Drop the
> dma-mapping.h include to reduce include bloat.
> 
> Add an explicity <linux/io.h> include to drivers/mailbox/omap-mailbox.c
> as that file uses __raw_readl and __raw_writel through a complicated
> include chain involving <linux/dma-mapping.h>
> 
> Fixes: d52b761e4b1a ("kfifo: add kfifo_dma_out_prepare_mapped()")
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> 
> Changes since v1:
>   - improve the commit log
> 
>   drivers/mailbox/omap-mailbox.c | 1 +
>   include/linux/kfifo.h          | 1 -
>   samples/kfifo/dma-example.c    | 1 +
>   3 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
> index 6797770474a5..680243751d62 100644
> --- a/drivers/mailbox/omap-mailbox.c
> +++ b/drivers/mailbox/omap-mailbox.c
> @@ -15,6 +15,7 @@
>   #include <linux/slab.h>
>   #include <linux/kfifo.h>

Funnily enough, this driver does not use kfifo since:
commit 3f58c1f4206f37d0af4595a9046c76016334b301
Author: Andrew Davis <afd@ti.com>
Date:   Wed Apr 10 08:59:42 2024 -0500

     mailbox: omap: Remove kernel FIFO message queuing

>   #include <linux/err.h>
> +#include <linux/io.h>

So this should have been revealed at that point (while removing kfifo.h 
in that commit too).

Perhaps Andrew can remove the include now?

thanks,
-- 
js
suse labs
Re: [PATCH v2] kfifo: don't include dma-mapping.h in kfifo.h
Posted by Andrew Davis 1 month ago
On 10/23/24 1:30 AM, Jiri Slaby wrote:
> On 23. 10. 24, 7:53, Christoph Hellwig wrote:
>> Nothing in kfifo.h directly needs dma-mapping.h, only two macros
>> use DMA_MAPPING_ERROR when actually instantiated.  Drop the
>> dma-mapping.h include to reduce include bloat.
>>
>> Add an explicity <linux/io.h> include to drivers/mailbox/omap-mailbox.c
>> as that file uses __raw_readl and __raw_writel through a complicated
>> include chain involving <linux/dma-mapping.h>
>>
>> Fixes: d52b761e4b1a ("kfifo: add kfifo_dma_out_prepare_mapped()")
>> Signed-off-by: Christoph Hellwig <hch@lst.de>
>> ---
>>
>> Changes since v1:
>>   - improve the commit log
>>
>>   drivers/mailbox/omap-mailbox.c | 1 +
>>   include/linux/kfifo.h          | 1 -
>>   samples/kfifo/dma-example.c    | 1 +
>>   3 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mailbox/omap-mailbox.c b/drivers/mailbox/omap-mailbox.c
>> index 6797770474a5..680243751d62 100644
>> --- a/drivers/mailbox/omap-mailbox.c
>> +++ b/drivers/mailbox/omap-mailbox.c
>> @@ -15,6 +15,7 @@
>>   #include <linux/slab.h>
>>   #include <linux/kfifo.h>
> 
> Funnily enough, this driver does not use kfifo since:
> commit 3f58c1f4206f37d0af4595a9046c76016334b301
> Author: Andrew Davis <afd@ti.com>
> Date:   Wed Apr 10 08:59:42 2024 -0500
> 
>      mailbox: omap: Remove kernel FIFO message queuing
> 
>>   #include <linux/err.h>
>> +#include <linux/io.h>
> 
> So this should have been revealed at that point (while removing kfifo.h in that commit too).
> 
> Perhaps Andrew can remove the include now?
> 

Yes, I'll send a patch dropping kfifo.h (unless you want to just do it
as part of this patch).

The addition of io.h is still correct here as we seem to have been
including it indirectly before, which is always a bit hacky.
So for this patch,

Acked-by: Andrew Davis <afd@ti.com>

> thanks,
Re: [PATCH v2] kfifo: don't include dma-mapping.h in kfifo.h
Posted by Greg KH 1 month ago
On Wed, Oct 23, 2024 at 07:53:04AM +0200, Christoph Hellwig wrote:
> Nothing in kfifo.h directly needs dma-mapping.h, only two macros
> use DMA_MAPPING_ERROR when actually instantiated.  Drop the
> dma-mapping.h include to reduce include bloat.
> 
> Add an explicity <linux/io.h> include to drivers/mailbox/omap-mailbox.c
> as that file uses __raw_readl and __raw_writel through a complicated
> include chain involving <linux/dma-mapping.h>
> 
> Fixes: d52b761e4b1a ("kfifo: add kfifo_dma_out_prepare_mapped()")
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> 
> Changes since v1:
>  - improve the commit log

As the original commit came in through the tty tree, I'll take this through
the same tree as well.

thanks,

greg k-h