diff mbox

mtd: nand: fix implicit module.h usage in xway_nand.c

Message ID 20161220211800.4701-1-paul.gortmaker@windriver.com
State New
Headers show

Commit Message

Paul Gortmaker Dec. 20, 2016, 9:18 p.m. UTC
In commit d47529b2e9fe0ec2eb1f072afad8849f52e385c4 ("gpio: don't
include module.h in shared driver header") we fixed a bunch of
implicit includes and then did what the shortlog says -- remove
module.h from a gpio header.

In parallel, commit 024366750c2e04fdcda8bca685194ef0196b35fe
("mtd: nand: xway: convert to normal platform driver") added new
modular function calls to a file that now became relying on the
above module.h presence in the gpio header, since it did not
explicitly include module.h header for them as part of the change.

The problem only appears when the two dev streams are merged.

Since the file is tristate, the fix is obvious -- it needs an
explicit include of module.h header.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---

[Resending with all Cc: enabled/added this time ...   :-(  ]

 drivers/mtd/nand/xway_nand.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Hauke Mehrtens Dec. 21, 2016, 3:19 p.m. UTC | #1
On 12/20/2016 10:18 PM, Paul Gortmaker wrote:
> In commit d47529b2e9fe0ec2eb1f072afad8849f52e385c4 ("gpio: don't
> include module.h in shared driver header") we fixed a bunch of
> implicit includes and then did what the shortlog says -- remove
> module.h from a gpio header.
> 
> In parallel, commit 024366750c2e04fdcda8bca685194ef0196b35fe
> ("mtd: nand: xway: convert to normal platform driver") added new
> modular function calls to a file that now became relying on the
> above module.h presence in the gpio header, since it did not
> explicitly include module.h header for them as part of the change.
> 
> The problem only appears when the two dev streams are merged.
> 
> Since the file is tristate, the fix is obvious -- it needs an
> explicit include of module.h header.

Hi Paul,

the xway nand driver does not build as a module, so I made it bool, this
patch:
http://lists.infradead.org/pipermail/linux-mtd/2016-December/070800.html
And then made it use the non module versions here:
http://lists.infradead.org/pipermail/linux-mtd/2016-December/070801.html

In the beginning I also came up with the same patch as you, but the mtd
people suggested to do it differently. I hope my two patches are on
their way into Linus tree.

Hauke

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paul Gortmaker Dec. 21, 2016, 5:44 p.m. UTC | #2
[Re: [PATCH] mtd: nand: fix implicit module.h usage in xway_nand.c] On 21/12/2016 (Wed 16:19) Hauke Mehrtens wrote:

> 
> 
> On 12/20/2016 10:18 PM, Paul Gortmaker wrote:
> > In commit d47529b2e9fe0ec2eb1f072afad8849f52e385c4 ("gpio: don't
> > include module.h in shared driver header") we fixed a bunch of
> > implicit includes and then did what the shortlog says -- remove
> > module.h from a gpio header.
> > 
> > In parallel, commit 024366750c2e04fdcda8bca685194ef0196b35fe
> > ("mtd: nand: xway: convert to normal platform driver") added new
> > modular function calls to a file that now became relying on the
> > above module.h presence in the gpio header, since it did not
> > explicitly include module.h header for them as part of the change.
> > 
> > The problem only appears when the two dev streams are merged.
> > 
> > Since the file is tristate, the fix is obvious -- it needs an
> > explicit include of module.h header.
> 
> Hi Paul,
> 
> the xway nand driver does not build as a module, so I made it bool, this
> patch:
> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070800.html
> And then made it use the non module versions here:
> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070801.html
> 
> In the beginning I also came up with the same patch as you, but the mtd
> people suggested to do it differently. I hope my two patches are on
> their way into Linus tree.

Yes, if it makes no sense to be modular, then using the non module
versions is the way to go.  Odd that the kbuild test robot decided to
start complaining about it this week...  both of the commits I mentioned
above have been in linux-next for months.

Paul.
--

> 
> Hauke
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
kernel test robot Dec. 21, 2016, 11:27 p.m. UTC | #3
Hi Paul,

[auto build test ERROR on mtd/master]
[also build test ERROR on v4.9 next-20161221]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Paul-Gortmaker/mtd-nand-fix-implicit-module-h-usage-in-xway_nand-c/20161221-115714
base:   git://git.infradead.org/linux-mtd.git master
config: mips-xway_defconfig (attached as .config)
compiler: mips-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=mips 

All errors (new ones prefixed by >>):

   arch/mips/built-in.o: In function `vpe_run':
>> (.text+0x148f0): undefined reference to `physical_memsize'
   arch/mips/built-in.o: In function `vpe_run':
   (.text+0x148f4): undefined reference to `physical_memsize'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Boris Brezillon Dec. 22, 2016, 9:01 a.m. UTC | #4
+Brian

On Wed, 21 Dec 2016 16:19:00 +0100
Hauke Mehrtens <hauke@hauke-m.de> wrote:

> On 12/20/2016 10:18 PM, Paul Gortmaker wrote:
> > In commit d47529b2e9fe0ec2eb1f072afad8849f52e385c4 ("gpio: don't
> > include module.h in shared driver header") we fixed a bunch of
> > implicit includes and then did what the shortlog says -- remove
> > module.h from a gpio header.
> > 
> > In parallel, commit 024366750c2e04fdcda8bca685194ef0196b35fe
> > ("mtd: nand: xway: convert to normal platform driver") added new
> > modular function calls to a file that now became relying on the
> > above module.h presence in the gpio header, since it did not
> > explicitly include module.h header for them as part of the change.
> > 
> > The problem only appears when the two dev streams are merged.
> > 
> > Since the file is tristate, the fix is obvious -- it needs an
> > explicit include of module.h header.  
> 
> Hi Paul,
> 
> the xway nand driver does not build as a module, so I made it bool, this
> patch:
> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070800.html
> And then made it use the non module versions here:
> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070801.html
> 
> In the beginning I also came up with the same patch as you, but the mtd
> people suggested to do it differently. I hope my two patches are on
> their way into Linus tree.

Yep. Just waiting for Linus to release 4.10-rc1 to rebase my nand/next
branch and start applying new patches. It should be queued for 4.11 and
backported to all previous release (thanks to the Cc-stable + Fixes
tags).

I didn't plan to take these fixes in one of the 4.10-rc fixes PR, since
this bug is here for several releases, and no-one complained before.
Let me know if you think otherwise, I'll add my ack and ask Brian to
take it in the MTD tree.

Regards,

Boris

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hauke Mehrtens Dec. 24, 2016, 5:18 p.m. UTC | #5
On 12/22/2016 10:01 AM, Boris Brezillon wrote:
> +Brian
> 
> On Wed, 21 Dec 2016 16:19:00 +0100
> Hauke Mehrtens <hauke@hauke-m.de> wrote:
> 
>> On 12/20/2016 10:18 PM, Paul Gortmaker wrote:
>>> In commit d47529b2e9fe0ec2eb1f072afad8849f52e385c4 ("gpio: don't
>>> include module.h in shared driver header") we fixed a bunch of
>>> implicit includes and then did what the shortlog says -- remove
>>> module.h from a gpio header.
>>>
>>> In parallel, commit 024366750c2e04fdcda8bca685194ef0196b35fe
>>> ("mtd: nand: xway: convert to normal platform driver") added new
>>> modular function calls to a file that now became relying on the
>>> above module.h presence in the gpio header, since it did not
>>> explicitly include module.h header for them as part of the change.
>>>
>>> The problem only appears when the two dev streams are merged.
>>>
>>> Since the file is tristate, the fix is obvious -- it needs an
>>> explicit include of module.h header.  
>>
>> Hi Paul,
>>
>> the xway nand driver does not build as a module, so I made it bool, this
>> patch:
>> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070800.html
>> And then made it use the non module versions here:
>> http://lists.infradead.org/pipermail/linux-mtd/2016-December/070801.html
>>
>> In the beginning I also came up with the same patch as you, but the mtd
>> people suggested to do it differently. I hope my two patches are on
>> their way into Linus tree.
> 
> Yep. Just waiting for Linus to release 4.10-rc1 to rebase my nand/next
> branch and start applying new patches. It should be queued for 4.11 and
> backported to all previous release (thanks to the Cc-stable + Fixes
> tags).
> 
> I didn't plan to take these fixes in one of the 4.10-rc fixes PR, since
> this bug is here for several releases, and no-one complained before.
> Let me know if you think otherwise, I'll add my ack and ask Brian to
> take it in the MTD tree.

The difference is that the NAND driver built when build in kernel till
4.9 because the module.h header file was included indirectly. This broke
by the combination of the two commits mentioned by Paul.

Hauke
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hauke Mehrtens Dec. 24, 2016, 5:19 p.m. UTC | #6
On 12/22/2016 12:27 AM, kbuild test robot wrote:
> Hi Paul,
> 
> [auto build test ERROR on mtd/master]
> [also build test ERROR on v4.9 next-20161221]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Paul-Gortmaker/mtd-nand-fix-implicit-module-h-usage-in-xway_nand-c/20161221-115714
> base:   git://git.infradead.org/linux-mtd.git master
> config: mips-xway_defconfig (attached as .config)
> compiler: mips-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=mips 
> 
> All errors (new ones prefixed by >>):
> 
>    arch/mips/built-in.o: In function `vpe_run':
>>> (.text+0x148f0): undefined reference to `physical_memsize'
>    arch/mips/built-in.o: In function `vpe_run':
>    (.text+0x148f4): undefined reference to `physical_memsize'
Let me look into this, it is probably caused by activating a "bad"
config option and not related to GPIO at all.

Hauke
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
index 1f2948c0c458..00168d633bcf 100644
--- a/drivers/mtd/nand/xway_nand.c
+++ b/drivers/mtd/nand/xway_nand.c
@@ -7,6 +7,7 @@ 
  *  Copyright © 2016 Hauke Mehrtens <hauke@hauke-m.de>
  */
 
+#include <linux/module.h>
 #include <linux/mtd/nand.h>
 #include <linux/of_gpio.h>
 #include <linux/of_platform.h>