linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export
@ 2020-04-24 18:49 Luis R. Rodriguez
  2020-04-24 18:49 ` [PATCH v2 2/2] firmware_loader: move fw_fallback_config to a private kernel symbol namespace Luis R. Rodriguez
  2020-04-25  8:14 ` [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Greg KH
  0 siblings, 2 replies; 3+ messages in thread
From: Luis R. Rodriguez @ 2020-04-24 18:49 UTC (permalink / raw)
  To: gregkh
  Cc: akpm, josh, rishabhb, kubakici, maco, david.brown,
	bjorn.andersson, linux-wireless, keescook, shuah, mfuzzey, zohar,
	dhowells, pali.rohar, tiwai, arend.vanspriel, zajec5, nbroeking,
	broonie, dmitry.torokhov, dwmw2, torvalds, Abhay_Salunke, jewalt,
	cantabile.desu, ast, andresx7, dan.rue, brendanhiggins, yzaikin,
	sfr, rdunlap, linux-kernel, linux-fsdevel, Luis Chamberlain

From: Luis Chamberlain <mcgrof@kernel.org>

Christoph's patch removed two unsused exported symbols, however, one
symbol is used by the firmware_loader itself.  If CONFIG_FW_LOADER=m so
the firmware_loader is modular but CONFIG_FW_LOADER_USER_HELPER=y we fail
the build at mostpost.

ERROR: modpost: "fw_fallback_config" [drivers/base/firmware_loader/firmware_class.ko] undefined!

This happens because the variable fw_fallback_config is built into the
kernel if CONFIG_FW_LOADER_USER_HELPER=y always, so we need to grant
access to the firmware loader module by exporting it.

Revert only one hunk from his patch.

Fixes: 739604734bd8e4ad71 ("firmware_loader: remove unused exports")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 drivers/base/firmware_loader/fallback_table.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/base/firmware_loader/fallback_table.c b/drivers/base/firmware_loader/fallback_table.c
index 0a737349f78f..a182e318bd09 100644
--- a/drivers/base/firmware_loader/fallback_table.c
+++ b/drivers/base/firmware_loader/fallback_table.c
@@ -21,6 +21,7 @@ struct firmware_fallback_config fw_fallback_config = {
 	.loading_timeout = 60,
 	.old_timeout = 60,
 };
+EXPORT_SYMBOL_GPL(fw_fallback_config);
 
 #ifdef CONFIG_SYSCTL
 struct ctl_table firmware_config_table[] = {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 2/2] firmware_loader: move fw_fallback_config to a private kernel symbol namespace
  2020-04-24 18:49 [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Luis R. Rodriguez
@ 2020-04-24 18:49 ` Luis R. Rodriguez
  2020-04-25  8:14 ` [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Greg KH
  1 sibling, 0 replies; 3+ messages in thread
From: Luis R. Rodriguez @ 2020-04-24 18:49 UTC (permalink / raw)
  To: gregkh
  Cc: akpm, josh, rishabhb, kubakici, maco, david.brown,
	bjorn.andersson, linux-wireless, keescook, shuah, mfuzzey, zohar,
	dhowells, pali.rohar, tiwai, arend.vanspriel, zajec5, nbroeking,
	broonie, dmitry.torokhov, dwmw2, torvalds, Abhay_Salunke, jewalt,
	cantabile.desu, ast, andresx7, dan.rue, brendanhiggins, yzaikin,
	sfr, rdunlap, linux-kernel, linux-fsdevel, Luis Chamberlain

From: Luis Chamberlain <mcgrof@kernel.org>

Take advantage of the new kernel symbol namespacing functionality, and
export the fw_fallback_config symbol only to a new private firmware loader
namespace. This would prevent misuses from other drivers and makes it clear
the goal is to keep this private to the firmware loader only.

It should also make it clearer for folks git grep'ing for users of
the symbol that this exported symbol is private, and prevent future
accidental removals of the exported symbol.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 drivers/base/firmware_loader/fallback.c       | 3 +++
 drivers/base/firmware_loader/fallback_table.c | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmware_loader/fallback.c
index 1e9c96e3ed63..d9ac7296205e 100644
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -9,6 +9,7 @@
 #include <linux/umh.h>
 #include <linux/sysctl.h>
 #include <linux/vmalloc.h>
+#include <linux/module.h>
 
 #include "fallback.h"
 #include "firmware.h"
@@ -17,6 +18,8 @@
  * firmware fallback mechanism
  */
 
+MODULE_IMPORT_NS(FIRMWARE_LOADER_PRIVATE);
+
 extern struct firmware_fallback_config fw_fallback_config;
 
 /* These getters are vetted to use int properly */
diff --git a/drivers/base/firmware_loader/fallback_table.c b/drivers/base/firmware_loader/fallback_table.c
index a182e318bd09..46a731dede6f 100644
--- a/drivers/base/firmware_loader/fallback_table.c
+++ b/drivers/base/firmware_loader/fallback_table.c
@@ -21,7 +21,7 @@ struct firmware_fallback_config fw_fallback_config = {
 	.loading_timeout = 60,
 	.old_timeout = 60,
 };
-EXPORT_SYMBOL_GPL(fw_fallback_config);
+EXPORT_SYMBOL_NS_GPL(fw_fallback_config, FIRMWARE_LOADER_PRIVATE);
 
 #ifdef CONFIG_SYSCTL
 struct ctl_table firmware_config_table[] = {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export
  2020-04-24 18:49 [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Luis R. Rodriguez
  2020-04-24 18:49 ` [PATCH v2 2/2] firmware_loader: move fw_fallback_config to a private kernel symbol namespace Luis R. Rodriguez
@ 2020-04-25  8:14 ` Greg KH
  1 sibling, 0 replies; 3+ messages in thread
From: Greg KH @ 2020-04-25  8:14 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: akpm, josh, rishabhb, kubakici, maco, david.brown,
	bjorn.andersson, linux-wireless, keescook, shuah, mfuzzey, zohar,
	dhowells, pali.rohar, tiwai, arend.vanspriel, zajec5, nbroeking,
	broonie, dmitry.torokhov, dwmw2, torvalds, Abhay_Salunke, jewalt,
	cantabile.desu, ast, andresx7, dan.rue, brendanhiggins, yzaikin,
	sfr, rdunlap, linux-kernel, linux-fsdevel

On Fri, Apr 24, 2020 at 06:49:15PM +0000, Luis R. Rodriguez wrote:
> From: Luis Chamberlain <mcgrof@kernel.org>
> 
> Christoph's patch removed two unsused exported symbols, however, one
> symbol is used by the firmware_loader itself.  If CONFIG_FW_LOADER=m so
> the firmware_loader is modular but CONFIG_FW_LOADER_USER_HELPER=y we fail
> the build at mostpost.
> 
> ERROR: modpost: "fw_fallback_config" [drivers/base/firmware_loader/firmware_class.ko] undefined!
> 
> This happens because the variable fw_fallback_config is built into the
> kernel if CONFIG_FW_LOADER_USER_HELPER=y always, so we need to grant
> access to the firmware loader module by exporting it.
> 
> Revert only one hunk from his patch.
> 
> Fixes: 739604734bd8e4ad71 ("firmware_loader: remove unused exports")

Fixes: 739604734bd8 ("firmware_loader: remove unused exports")

No need to be over-eager with the number of digits...

I'll fix this up when I apply it, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-04-25  8:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-24 18:49 [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Luis R. Rodriguez
2020-04-24 18:49 ` [PATCH v2 2/2] firmware_loader: move fw_fallback_config to a private kernel symbol namespace Luis R. Rodriguez
2020-04-25  8:14 ` [PATCH v2 1/2] firmware_loader: revert removal of the fw_fallback_config export Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).