[PATCH] EDAC, mpc85xx: Prevent building as a module

Subsystems: edac-core, the rest

STALE2637d

11 messages, 3 authors, 2019-05-14 · open the first message on its own page

[PATCH] EDAC, mpc85xx: Prevent building as a module

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-05-02 14:19:48

The mpc85xx EDAC code can be configured as a module but then fails to
build because it uses two unexported symbols:

  ERROR: ".pci_find_hose_for_OF_device" [drivers/edac/mpc85xx_edac_mod.ko] undefined!
  ERROR: ".early_find_capability" [drivers/edac/mpc85xx_edac_mod.ko] undefined!

We don't want to export those symbols just for this driver, so make
the driver only configurable as a built-in.

This seems to have been broken since at least commit c92132f59806
("edac/85xx: Add PCIe error interrupt edac support") (Nov 2013).

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 drivers/edac/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
index 47eb4d13ed5f..6317519f9d88 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -263,7 +263,7 @@ config EDAC_PND2
 	  micro-server but may appear on others in the future.
 
 config EDAC_MPC85XX
-	tristate "Freescale MPC83xx / MPC85xx"
+	bool "Freescale MPC83xx / MPC85xx"
 	depends on FSL_SOC
 	help
 	  Support for error detection and correction on the Freescale
-- 
2.20.1

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Johannes Thumshirn <morbidrsa@gmail.com>
Date: 2019-05-06 06:50:49

Acked-by: Johannes Thumshirn <jth@kernel.org>
-- 
Johannes Thumshirn                            SUSE Labs Filesystems
jthumshirn@suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-08 10:14:59

On Mon, May 06, 2019 at 08:50:45AM +0200, Johannes Thumshirn wrote:
Acked-by: Johannes Thumshirn <jth@kernel.org>
Queued, thanks.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-05-09 14:52:11

Borislav Petkov [off-list ref] writes:
On Mon, May 06, 2019 at 08:50:45AM +0200, Johannes Thumshirn wrote:
quoted
Acked-by: Johannes Thumshirn <jth@kernel.org>
Queued, thanks.
Thanks. It would be nice if you could send it as a fix for 5.2, it's the
last thing blocking one of my allmodconfig builds. But if you don't
think it qualifies as a fix that's fine too, it can wait.

cheers

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-09 14:55:40

On Fri, May 10, 2019 at 12:52:05AM +1000, Michael Ellerman wrote:
Thanks. It would be nice if you could send it as a fix for 5.2, it's the
last thing blocking one of my allmodconfig builds. But if you don't
think it qualifies as a fix that's fine too, it can wait.
Sure, no problem. Will do a pull request later.

Thx.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-09 18:02:31

On Thu, May 09, 2019 at 04:55:34PM +0200, Borislav Petkov wrote:
On Fri, May 10, 2019 at 12:52:05AM +1000, Michael Ellerman wrote:
quoted
Thanks. It would be nice if you could send it as a fix for 5.2, it's the
last thing blocking one of my allmodconfig builds. But if you don't
think it qualifies as a fix that's fine too, it can wait.
Sure, no problem. Will do a pull request later.
Hmm, so looking at this more, I was able to produce this config with my
ancient cross-compiler:

CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_MPC85XX=y

Now, mpc85xx_edac is built-in and edac_core.ko is a module
(CONFIG_EDAC=m) and that should not work - i.e., builtin code calling
module functions. But my cross-compiler is happily building this without
complaint. Or maybe I'm missing something.

In any case, I *think* the proper fix should be to do:

config EDAC_MPC85XX
        bool "Freescale MPC83xx / MPC85xx"
        depends on FSL_SOC && EDAC=y

so that you can't even produce the above invalid .config snippet.

Hmmm?

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-05-10 10:50:57

Borislav Petkov [off-list ref] writes:
On Thu, May 09, 2019 at 04:55:34PM +0200, Borislav Petkov wrote:
quoted
On Fri, May 10, 2019 at 12:52:05AM +1000, Michael Ellerman wrote:
quoted
Thanks. It would be nice if you could send it as a fix for 5.2, it's the
last thing blocking one of my allmodconfig builds. But if you don't
think it qualifies as a fix that's fine too, it can wait.
Sure, no problem. Will do a pull request later.
Hmm, so looking at this more, I was able to produce this config with my
ancient cross-compiler:

CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_MPC85XX=y
Oh yeah good point.
Now, mpc85xx_edac is built-in and edac_core.ko is a module
(CONFIG_EDAC=m) and that should not work - i.e., builtin code calling
module functions. But my cross-compiler is happily building this without
complaint. Or maybe I'm missing something.
That's weird.
In any case, I *think* the proper fix should be to do:

config EDAC_MPC85XX
        bool "Freescale MPC83xx / MPC85xx"
        depends on FSL_SOC && EDAC=y

so that you can't even produce the above invalid .config snippet.

Hmmm?
Yeah that looks better to me. I didn't think about the case where EDAC
core is modular.

Do you want me to send a new patch?

cheers

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-10 14:13:29

On Fri, May 10, 2019 at 08:50:52PM +1000, Michael Ellerman wrote:
Yeah that looks better to me. I didn't think about the case where EDAC
core is modular.

Do you want me to send a new patch?
Nah, I'll fix it up.

Thx.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-10 18:25:15

On Fri, May 10, 2019 at 04:13:20PM +0200, Borislav Petkov wrote:
On Fri, May 10, 2019 at 08:50:52PM +1000, Michael Ellerman wrote:
quoted
Yeah that looks better to me. I didn't think about the case where EDAC
core is modular.

Do you want me to send a new patch?
Nah, I'll fix it up.
I've pushed it here:

https://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git/commit/?h=edac-fix-for-5.2

in case you wanna throw your build tests on it. My dingy cross-compiler
can't do much really.

Thx.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-05-14 06:50:55

Borislav Petkov [off-list ref] writes:
On Fri, May 10, 2019 at 04:13:20PM +0200, Borislav Petkov wrote:
quoted
On Fri, May 10, 2019 at 08:50:52PM +1000, Michael Ellerman wrote:
quoted
Yeah that looks better to me. I didn't think about the case where EDAC
core is modular.

Do you want me to send a new patch?
Nah, I'll fix it up.
I've pushed it here:

https://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git/commit/?h=edac-fix-for-5.2

in case you wanna throw your build tests on it. My dingy cross-compiler
can't do much really.
Looks good. I even booted it :)

cheers

Re: [PATCH] EDAC, mpc85xx: Prevent building as a module

From: Borislav Petkov <bp@alien8.de>
Date: 2019-05-14 08:31:28

On Tue, May 14, 2019 at 04:50:49PM +1000, Michael Ellerman wrote:
Looks good. I even booted it :)
Cool, thanks!

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help