2017-05-30 11:20:59

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] bcm47xx: fix build regression

An unknown change in the kernel headers caused a build regression
in an MTD partition driver:

In file included from drivers/mtd/bcm47xxpart.c:12:0:
include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)

Clearly we want to include linux/errno.h here.

Signed-off-by: Arnd Bergmann <[email protected]>
---
include/linux/bcm47xx_nvram.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
index 2793652fbf66..a414a2b53e41 100644
--- a/include/linux/bcm47xx_nvram.h
+++ b/include/linux/bcm47xx_nvram.h
@@ -8,6 +8,7 @@
#ifndef __BCM47XX_NVRAM_H
#define __BCM47XX_NVRAM_H

+#include <linux/errno.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/vmalloc.h>
--
2.9.0


2017-05-31 09:15:44

by Boris Brezillon

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Tue, 30 May 2017 13:20:12 +0200
Arnd Bergmann <[email protected]> wrote:

> An unknown change in the kernel headers caused a build regression
> in an MTD partition driver:
>
> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)
>
> Clearly we want to include linux/errno.h here.
>
> Signed-off-by: Arnd Bergmann <[email protected]>

Acked-by: Boris Brezillon <[email protected]>

> ---
> include/linux/bcm47xx_nvram.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
> index 2793652fbf66..a414a2b53e41 100644
> --- a/include/linux/bcm47xx_nvram.h
> +++ b/include/linux/bcm47xx_nvram.h
> @@ -8,6 +8,7 @@
> #ifndef __BCM47XX_NVRAM_H
> #define __BCM47XX_NVRAM_H
>
> +#include <linux/errno.h>
> #include <linux/types.h>
> #include <linux/kernel.h>
> #include <linux/vmalloc.h>

2017-05-31 09:43:40

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
> An unknown change in the kernel headers caused a build regression
> in an MTD partition driver:
>
> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)
>
> Clearly we want to include linux/errno.h here.

unfortunate that you did not find the commit that caused this build
regression. You could produce preprocessor output when it was working to
see where errno.h got implicitly included and start looking there for
git history.

Regards,
Arend

> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> include/linux/bcm47xx_nvram.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
> index 2793652fbf66..a414a2b53e41 100644
> --- a/include/linux/bcm47xx_nvram.h
> +++ b/include/linux/bcm47xx_nvram.h
> @@ -8,6 +8,7 @@
> #ifndef __BCM47XX_NVRAM_H
> #define __BCM47XX_NVRAM_H
>
> +#include <linux/errno.h>
> #include <linux/types.h>
> #include <linux/kernel.h>
> #include <linux/vmalloc.h>
>

2017-05-31 19:30:22

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On 31-05-17 18:31, Paul E. McKenney wrote:
> On Wed, May 31, 2017 at 03:34:57PM +0200, Arnd Bergmann wrote:
>> On Wed, May 31, 2017 at 3:12 PM, Paul E. McKenney
>> <[email protected]> wrote:
>>> On Wed, May 31, 2017 at 12:21:10PM +0200, Arnd Bergmann wrote:
>>>> On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
>>>> <[email protected]> wrote:
>>>>> On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
>>>>>>
>>>>>> An unknown change in the kernel headers caused a build regression
>>>>>> in an MTD partition driver:
>>>>>>
>>>>>> In file included from drivers/mtd/bcm47xxpart.c:12:0:
>>>>>> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
>>>>>> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
>>>>>> use in this function)
>>>>>>
>>>>>> Clearly we want to include linux/errno.h here.
>>>>>
>>>>>
>>>>> unfortunate that you did not find the commit that caused this build
>>>>> regression. You could produce preprocessor output when it was working to see
>>>>> where errno.h got implicitly included and start looking there for git
>>>>> history.
>>>>
>>>> I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
>>>> 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").
>>>>
>>>> That commit seems reasonable, it was just bad luck that it caused this
>>>> regression. The commit is currently in the rcu/rcu/next branch of tip.git,
>>>> so Paul could merge the patch there.

Arnd,

Thanks for digging a bit further. I am a sucker for telling the whole story.

>>>
>>> Apologies for the inconvenience, not sure why 0day test robot didn't
>>> find this. Probably because it cannot test each and every driver. ;-)
>>
>> No worries.
>>
>>> This patch, correct?
>>>
>>> https://lkml.org/lkml/2017/5/30/348
>>
>> Right, I should have included the link.
>
> And my turn to say "no worries". ;-)
>
> I reworked the commit log to tell the full story as shown below.
> Anything I misstated or otherwise missed?

Maybe add the 'Fixes:' tag, ie.:

Fixes: 0bc2d534708b ("rcu: Refactor #includes from
include/linux/rcupdate.h")

Seems a bit redundant given that you mentioned it in the commit message,
but it might be looked for in kernel-stats scripts.

Regards,
Arend

> Thanx, Paul
>
> ------------------------------------------------------------------------
>
> commit ff278071dce9af9da2b5e2b33f682710a855d266
> Author: Arnd Bergmann <[email protected]>
> Date: Wed May 31 09:26:07 2017 -0700
>
> bcm47xx: fix build regression
>
> Commit 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h")
> caused a build regression in an MTD partition driver:
>
> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)
>
> The rcupdate.h file has no particular need for linux/errno.h, so this
> commit includes linux/errno.h into bcm47xx_nvram.h.
>
> Signed-off-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Paul E. McKenney <[email protected]>
>
> diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
> index 2793652fbf66..a414a2b53e41 100644
> --- a/include/linux/bcm47xx_nvram.h
> +++ b/include/linux/bcm47xx_nvram.h
> @@ -8,6 +8,7 @@
> #ifndef __BCM47XX_NVRAM_H
> #define __BCM47XX_NVRAM_H
>
> +#include <linux/errno.h>
> #include <linux/types.h>
> #include <linux/kernel.h>
> #include <linux/vmalloc.h>
>

2017-05-31 16:31:15

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Wed, May 31, 2017 at 03:34:57PM +0200, Arnd Bergmann wrote:
> On Wed, May 31, 2017 at 3:12 PM, Paul E. McKenney
> <[email protected]> wrote:
> > On Wed, May 31, 2017 at 12:21:10PM +0200, Arnd Bergmann wrote:
> >> On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
> >> <[email protected]> wrote:
> >> > On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
> >> >>
> >> >> An unknown change in the kernel headers caused a build regression
> >> >> in an MTD partition driver:
> >> >>
> >> >> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> >> >> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> >> >> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
> >> >> use in this function)
> >> >>
> >> >> Clearly we want to include linux/errno.h here.
> >> >
> >> >
> >> > unfortunate that you did not find the commit that caused this build
> >> > regression. You could produce preprocessor output when it was working to see
> >> > where errno.h got implicitly included and start looking there for git
> >> > history.
> >>
> >> I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
> >> 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").
> >>
> >> That commit seems reasonable, it was just bad luck that it caused this
> >> regression. The commit is currently in the rcu/rcu/next branch of tip.git,
> >> so Paul could merge the patch there.
> >
> > Apologies for the inconvenience, not sure why 0day test robot didn't
> > find this. Probably because it cannot test each and every driver. ;-)
>
> No worries.
>
> > This patch, correct?
> >
> > https://lkml.org/lkml/2017/5/30/348
>
> Right, I should have included the link.

And my turn to say "no worries". ;-)

I reworked the commit log to tell the full story as shown below.
Anything I misstated or otherwise missed?

Thanx, Paul

------------------------------------------------------------------------

commit ff278071dce9af9da2b5e2b33f682710a855d266
Author: Arnd Bergmann <[email protected]>
Date: Wed May 31 09:26:07 2017 -0700

bcm47xx: fix build regression

Commit 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h")
caused a build regression in an MTD partition driver:

In file included from drivers/mtd/bcm47xxpart.c:12:0:
include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)

The rcupdate.h file has no particular need for linux/errno.h, so this
commit includes linux/errno.h into bcm47xx_nvram.h.

Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Paul E. McKenney <[email protected]>

diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
index 2793652fbf66..a414a2b53e41 100644
--- a/include/linux/bcm47xx_nvram.h
+++ b/include/linux/bcm47xx_nvram.h
@@ -8,6 +8,7 @@
#ifndef __BCM47XX_NVRAM_H
#define __BCM47XX_NVRAM_H

+#include <linux/errno.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/vmalloc.h>

2017-05-31 10:21:11

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
<[email protected]> wrote:
> On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
>>
>> An unknown change in the kernel headers caused a build regression
>> in an MTD partition driver:
>>
>> In file included from drivers/mtd/bcm47xxpart.c:12:0:
>> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
>> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
>> use in this function)
>>
>> Clearly we want to include linux/errno.h here.
>
>
> unfortunate that you did not find the commit that caused this build
> regression. You could produce preprocessor output when it was working to see
> where errno.h got implicitly included and start looking there for git
> history.

I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").

That commit seems reasonable, it was just bad luck that it caused this
regression. The commit is currently in the rcu/rcu/next branch of tip.git,
so Paul could merge the patch there.

Arnd

2017-05-31 13:12:22

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Wed, May 31, 2017 at 12:21:10PM +0200, Arnd Bergmann wrote:
> On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
> <[email protected]> wrote:
> > On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
> >>
> >> An unknown change in the kernel headers caused a build regression
> >> in an MTD partition driver:
> >>
> >> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> >> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> >> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
> >> use in this function)
> >>
> >> Clearly we want to include linux/errno.h here.
> >
> >
> > unfortunate that you did not find the commit that caused this build
> > regression. You could produce preprocessor output when it was working to see
> > where errno.h got implicitly included and start looking there for git
> > history.
>
> I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
> 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").
>
> That commit seems reasonable, it was just bad luck that it caused this
> regression. The commit is currently in the rcu/rcu/next branch of tip.git,
> so Paul could merge the patch there.

Apologies for the inconvenience, not sure why 0day test robot didn't
find this. Probably because it cannot test each and every driver. ;-)

This patch, correct?

https://lkml.org/lkml/2017/5/30/348

Thanx, Paul

2017-05-31 13:34:59

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Wed, May 31, 2017 at 3:12 PM, Paul E. McKenney
<[email protected]> wrote:
> On Wed, May 31, 2017 at 12:21:10PM +0200, Arnd Bergmann wrote:
>> On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
>> <[email protected]> wrote:
>> > On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
>> >>
>> >> An unknown change in the kernel headers caused a build regression
>> >> in an MTD partition driver:
>> >>
>> >> In file included from drivers/mtd/bcm47xxpart.c:12:0:
>> >> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
>> >> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
>> >> use in this function)
>> >>
>> >> Clearly we want to include linux/errno.h here.
>> >
>> >
>> > unfortunate that you did not find the commit that caused this build
>> > regression. You could produce preprocessor output when it was working to see
>> > where errno.h got implicitly included and start looking there for git
>> > history.
>>
>> I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
>> 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").
>>
>> That commit seems reasonable, it was just bad luck that it caused this
>> regression. The commit is currently in the rcu/rcu/next branch of tip.git,
>> so Paul could merge the patch there.
>
> Apologies for the inconvenience, not sure why 0day test robot didn't
> find this. Probably because it cannot test each and every driver. ;-)

No worries.

> This patch, correct?
>
> https://lkml.org/lkml/2017/5/30/348

Right, I should have included the link.

Arnd

2017-06-01 22:16:40

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH] bcm47xx: fix build regression

On Wed, May 31, 2017 at 09:30:19PM +0200, Arend van Spriel wrote:
> On 31-05-17 18:31, Paul E. McKenney wrote:
> > On Wed, May 31, 2017 at 03:34:57PM +0200, Arnd Bergmann wrote:
> >> On Wed, May 31, 2017 at 3:12 PM, Paul E. McKenney
> >> <[email protected]> wrote:
> >>> On Wed, May 31, 2017 at 12:21:10PM +0200, Arnd Bergmann wrote:
> >>>> On Wed, May 31, 2017 at 11:43 AM, Arend van Spriel
> >>>> <[email protected]> wrote:
> >>>>> On 5/30/2017 1:20 PM, Arnd Bergmann wrote:
> >>>>>>
> >>>>>> An unknown change in the kernel headers caused a build regression
> >>>>>> in an MTD partition driver:
> >>>>>>
> >>>>>> In file included from drivers/mtd/bcm47xxpart.c:12:0:
> >>>>>> include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> >>>>>> include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first
> >>>>>> use in this function)
> >>>>>>
> >>>>>> Clearly we want to include linux/errno.h here.
> >>>>>
> >>>>>
> >>>>> unfortunate that you did not find the commit that caused this build
> >>>>> regression. You could produce preprocessor output when it was working to see
> >>>>> where errno.h got implicitly included and start looking there for git
> >>>>> history.
> >>>>
> >>>> I did a 'git bisect run make drivers/mtd/bcm47xxpart.o' now, which pointed to
> >>>> 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h").
> >>>>
> >>>> That commit seems reasonable, it was just bad luck that it caused this
> >>>> regression. The commit is currently in the rcu/rcu/next branch of tip.git,
> >>>> so Paul could merge the patch there.
>
> Arnd,
>
> Thanks for digging a bit further. I am a sucker for telling the whole story.
>
> >>>
> >>> Apologies for the inconvenience, not sure why 0day test robot didn't
> >>> find this. Probably because it cannot test each and every driver. ;-)
> >>
> >> No worries.
> >>
> >>> This patch, correct?
> >>>
> >>> https://lkml.org/lkml/2017/5/30/348
> >>
> >> Right, I should have included the link.
> >
> > And my turn to say "no worries". ;-)
> >
> > I reworked the commit log to tell the full story as shown below.
> > Anything I misstated or otherwise missed?
>
> Maybe add the 'Fixes:' tag, ie.:
>
> Fixes: 0bc2d534708b ("rcu: Refactor #includes from
> include/linux/rcupdate.h")
>
> Seems a bit redundant given that you mentioned it in the commit message,
> but it might be looked for in kernel-stats scripts.

Had to rebase anyway for other reasons, so why not?

Thanx, Paul

> Regards,
> Arend
>
> > Thanx, Paul
> >
> > ------------------------------------------------------------------------
> >
> > commit ff278071dce9af9da2b5e2b33f682710a855d266
> > Author: Arnd Bergmann <[email protected]>
> > Date: Wed May 31 09:26:07 2017 -0700
> >
> > bcm47xx: fix build regression
> >
> > Commit 0bc2d534708b ("rcu: Refactor #includes from include/linux/rcupdate.h")
> > caused a build regression in an MTD partition driver:
> >
> > In file included from drivers/mtd/bcm47xxpart.c:12:0:
> > include/linux/bcm47xx_nvram.h: In function 'bcm47xx_nvram_init_from_mem':
> > include/linux/bcm47xx_nvram.h:27:10: error: 'ENOTSUPP' undeclared (first use in this function)
> >
> > The rcupdate.h file has no particular need for linux/errno.h, so this
> > commit includes linux/errno.h into bcm47xx_nvram.h.
> >
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > Signed-off-by: Paul E. McKenney <[email protected]>
> >
> > diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
> > index 2793652fbf66..a414a2b53e41 100644
> > --- a/include/linux/bcm47xx_nvram.h
> > +++ b/include/linux/bcm47xx_nvram.h
> > @@ -8,6 +8,7 @@
> > #ifndef __BCM47XX_NVRAM_H
> > #define __BCM47XX_NVRAM_H
> >
> > +#include <linux/errno.h>
> > #include <linux/types.h>
> > #include <linux/kernel.h>
> > #include <linux/vmalloc.h>
> >
>