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
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
Looks good:
Reviewed-by: Christoph Hellwig <[email protected]>