2024-05-28 10:27:30

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v2 0/2] PNP: Fix handling of pnp_bus_type

There is a fix for recently introduced dev_is_pnp() that involves pnp_bus_type
and one improvement to hide that variable from the wider audience for good.

In v2:
- reworked patch 1 as suggested by Christoph
- added a new patch to make less possibilities for (ab)using pnp_bus_type

Andy Shevchenko (2):
PNP: Make dev_is_pnp() to be a function and export it for modules
PNP: Hide pnp_bus_type from the non-PNP code

drivers/pnp/base.h | 1 +
drivers/pnp/driver.c | 6 ++++++
include/linux/pnp.h | 6 ++----
3 files changed, 9 insertions(+), 4 deletions(-)

--
2.45.1



2024-05-28 10:27:57

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v2 2/2] PNP: Hide pnp_bus_type from the non-PNP code

The pnp_bus_type is defined only when CONFIG_PNP=y, while being
not guarded by ifdeffery in the header. Moreover, it's not used
outside of the PNP code. Move it to the internal header to make
sure no-one will try to (ab)use it.

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/pnp/base.h | 1 +
include/linux/pnp.h | 2 --
2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/pnp/base.h b/drivers/pnp/base.h
index e74a0f6a3157..4e80273dfb1e 100644
--- a/drivers/pnp/base.h
+++ b/drivers/pnp/base.h
@@ -6,6 +6,7 @@

extern struct mutex pnp_lock;
extern const struct attribute_group *pnp_dev_groups[];
+extern const struct bus_type pnp_bus_type;

int pnp_register_protocol(struct pnp_protocol *protocol);
void pnp_unregister_protocol(struct pnp_protocol *protocol);
diff --git a/include/linux/pnp.h b/include/linux/pnp.h
index a8def1cea32c..7f2ff95d2deb 100644
--- a/include/linux/pnp.h
+++ b/include/linux/pnp.h
@@ -435,8 +435,6 @@ struct pnp_protocol {
#define protocol_for_each_dev(protocol, dev) \
list_for_each_entry(dev, &(protocol)->devices, protocol_list)

-extern const struct bus_type pnp_bus_type;
-
#if defined(CONFIG_PNP)

/* device management */
--
2.45.1


2024-05-28 10:54:08

by Christoph Hellwig

[permalink] [raw]