Commit 23680f0b authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

driver core: make struct class.dev_uevent() take a const *

The dev_uevent() in struct class should not be modifying the device that
is passed into it, so mark it as a const * and propagate the function
signature changes out into all relevant subsystems that use this
callback.

Cc: Jens Axboe <axboe@kernel.dk>
Cc: Luis Chamberlain <mcgrof@kernel.org>
Cc: Russ Weight <russell.h.weight@intel.com>
Cc: Jean Delvare <jdelvare@suse.com>
Cc: Johan Hovold <johan@kernel.org>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Keith Busch <kbusch@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: Raed Salem <raeds@nvidia.com>
Cc: Chen Zhongjin <chenzhongjin@huawei.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Avihai Horon <avihaih@nvidia.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Colin Ian King <colin.i.king@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Jakob Koschel <jakobkoschel@gmail.com>
Cc: Antoine Tenart <atenart@kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>
Cc: Wang Yufen <wangyufen@huawei.com>
Cc: linux-block@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-nvme@lists.infradead.org
Cc: linux-pm@vger.kernel.org
Cc: linux-rdma@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Acked-by: default avatarSebastian Reichel <sre@kernel.org>
Acked-by: default avatarRafael J. Wysocki <rafael@kernel.org>
Link: https://lore.kernel.org/r/20221123122523.1332370-1-gregkh@linuxfoundation.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2613cc29
...@@ -1181,9 +1181,9 @@ static void disk_release(struct device *dev) ...@@ -1181,9 +1181,9 @@ static void disk_release(struct device *dev)
iput(disk->part0->bd_inode); /* frees the disk */ iput(disk->part0->bd_inode); /* frees the disk */
} }
static int block_uevent(struct device *dev, struct kobj_uevent_env *env) static int block_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct gendisk *disk = dev_to_disk(dev); const struct gendisk *disk = dev_to_disk(dev);
return add_uevent_var(env, "DISKSEQ=%llu", disk->diskseq); return add_uevent_var(env, "DISKSEQ=%llu", disk->diskseq);
} }
......
...@@ -64,7 +64,7 @@ static struct attribute *firmware_class_attrs[] = { ...@@ -64,7 +64,7 @@ static struct attribute *firmware_class_attrs[] = {
}; };
ATTRIBUTE_GROUPS(firmware_class); ATTRIBUTE_GROUPS(firmware_class);
static int do_firmware_uevent(struct fw_sysfs *fw_sysfs, struct kobj_uevent_env *env) static int do_firmware_uevent(const struct fw_sysfs *fw_sysfs, struct kobj_uevent_env *env)
{ {
if (add_uevent_var(env, "FIRMWARE=%s", fw_sysfs->fw_priv->fw_name)) if (add_uevent_var(env, "FIRMWARE=%s", fw_sysfs->fw_priv->fw_name))
return -ENOMEM; return -ENOMEM;
...@@ -76,9 +76,9 @@ static int do_firmware_uevent(struct fw_sysfs *fw_sysfs, struct kobj_uevent_env ...@@ -76,9 +76,9 @@ static int do_firmware_uevent(struct fw_sysfs *fw_sysfs, struct kobj_uevent_env
return 0; return 0;
} }
static int firmware_uevent(struct device *dev, struct kobj_uevent_env *env) static int firmware_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); const struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev);
int err = 0; int err = 0;
mutex_lock(&fw_lock); mutex_lock(&fw_lock);
......
...@@ -81,7 +81,7 @@ struct fw_sysfs { ...@@ -81,7 +81,7 @@ struct fw_sysfs {
void *fw_upload_priv; void *fw_upload_priv;
}; };
static inline struct fw_sysfs *to_fw_sysfs(struct device *dev) static inline struct fw_sysfs *to_fw_sysfs(const struct device *dev)
{ {
return container_of(dev, struct fw_sysfs, dev); return container_of(dev, struct fw_sysfs, dev);
} }
......
...@@ -155,7 +155,7 @@ static const struct attribute_group* sys_dmi_attribute_groups[] = { ...@@ -155,7 +155,7 @@ static const struct attribute_group* sys_dmi_attribute_groups[] = {
NULL NULL
}; };
static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) static int dmi_dev_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
ssize_t len; ssize_t len;
......
...@@ -337,7 +337,7 @@ static const char * const gnss_type_names[GNSS_TYPE_COUNT] = { ...@@ -337,7 +337,7 @@ static const char * const gnss_type_names[GNSS_TYPE_COUNT] = {
[GNSS_TYPE_MTK] = "MTK", [GNSS_TYPE_MTK] = "MTK",
}; };
static const char *gnss_type_name(struct gnss_device *gdev) static const char *gnss_type_name(const struct gnss_device *gdev)
{ {
const char *name = NULL; const char *name = NULL;
...@@ -365,9 +365,9 @@ static struct attribute *gnss_attrs[] = { ...@@ -365,9 +365,9 @@ static struct attribute *gnss_attrs[] = {
}; };
ATTRIBUTE_GROUPS(gnss); ATTRIBUTE_GROUPS(gnss);
static int gnss_uevent(struct device *dev, struct kobj_uevent_env *env) static int gnss_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct gnss_device *gdev = to_gnss_device(dev); const struct gnss_device *gdev = to_gnss_device(dev);
int ret; int ret;
ret = add_uevent_var(env, "GNSS_TYPE=%s", gnss_type_name(gdev)); ret = add_uevent_var(env, "GNSS_TYPE=%s", gnss_type_name(gdev));
......
...@@ -511,7 +511,7 @@ static void ib_device_release(struct device *device) ...@@ -511,7 +511,7 @@ static void ib_device_release(struct device *device)
kfree_rcu(dev, rcu_head); kfree_rcu(dev, rcu_head);
} }
static int ib_device_uevent(struct device *device, static int ib_device_uevent(const struct device *device,
struct kobj_uevent_env *env) struct kobj_uevent_env *env)
{ {
if (add_uevent_var(env, "NAME=%s", dev_name(device))) if (add_uevent_var(env, "NAME=%s", dev_name(device)))
......
...@@ -139,9 +139,9 @@ static struct attribute *mISDN_attrs[] = { ...@@ -139,9 +139,9 @@ static struct attribute *mISDN_attrs[] = {
}; };
ATTRIBUTE_GROUPS(mISDN); ATTRIBUTE_GROUPS(mISDN);
static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) static int mISDN_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct mISDNdevice *mdev = dev_to_mISDN(dev); const struct mISDNdevice *mdev = dev_to_mISDN(dev);
if (!mdev) if (!mdev)
return 0; return 0;
......
...@@ -1008,9 +1008,9 @@ void dvb_module_release(struct i2c_client *client) ...@@ -1008,9 +1008,9 @@ void dvb_module_release(struct i2c_client *client)
EXPORT_SYMBOL_GPL(dvb_module_release); EXPORT_SYMBOL_GPL(dvb_module_release);
#endif #endif
static int dvb_uevent(struct device *dev, struct kobj_uevent_env *env) static int dvb_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct dvb_device *dvbdev = dev_get_drvdata(dev); const struct dvb_device *dvbdev = dev_get_drvdata(dev);
add_uevent_var(env, "DVB_ADAPTER_NUM=%d", dvbdev->adapter->num); add_uevent_var(env, "DVB_ADAPTER_NUM=%d", dvbdev->adapter->num);
add_uevent_var(env, "DVB_DEVICE_TYPE=%s", dnames[dvbdev->type]); add_uevent_var(env, "DVB_DEVICE_TYPE=%s", dnames[dvbdev->type]);
......
...@@ -4580,9 +4580,9 @@ void nvme_remove_namespaces(struct nvme_ctrl *ctrl) ...@@ -4580,9 +4580,9 @@ void nvme_remove_namespaces(struct nvme_ctrl *ctrl)
} }
EXPORT_SYMBOL_GPL(nvme_remove_namespaces); EXPORT_SYMBOL_GPL(nvme_remove_namespaces);
static int nvme_class_uevent(struct device *dev, struct kobj_uevent_env *env) static int nvme_class_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct nvme_ctrl *ctrl = const struct nvme_ctrl *ctrl =
container_of(dev, struct nvme_ctrl, ctrl_device); container_of(dev, struct nvme_ctrl, ctrl_device);
struct nvmf_ctrl_options *opts = ctrl->opts; struct nvmf_ctrl_options *opts = ctrl->opts;
int ret; int ret;
......
...@@ -810,10 +810,10 @@ int pcmcia_reset_card(struct pcmcia_socket *skt) ...@@ -810,10 +810,10 @@ int pcmcia_reset_card(struct pcmcia_socket *skt)
EXPORT_SYMBOL(pcmcia_reset_card); EXPORT_SYMBOL(pcmcia_reset_card);
static int pcmcia_socket_uevent(struct device *dev, static int pcmcia_socket_uevent(const struct device *dev,
struct kobj_uevent_env *env) struct kobj_uevent_env *env)
{ {
struct pcmcia_socket *s = container_of(dev, struct pcmcia_socket, dev); const struct pcmcia_socket *s = container_of(dev, struct pcmcia_socket, dev);
if (add_uevent_var(env, "SOCKET_NO=%u", s->sock)) if (add_uevent_var(env, "SOCKET_NO=%u", s->sock))
return -ENOMEM; return -ENOMEM;
......
...@@ -16,7 +16,7 @@ struct power_supply; ...@@ -16,7 +16,7 @@ struct power_supply;
#ifdef CONFIG_SYSFS #ifdef CONFIG_SYSFS
extern void power_supply_init_attrs(struct device_type *dev_type); extern void power_supply_init_attrs(struct device_type *dev_type);
extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env); extern int power_supply_uevent(const struct device *dev, struct kobj_uevent_env *env);
#else #else
......
...@@ -427,7 +427,7 @@ void power_supply_init_attrs(struct device_type *dev_type) ...@@ -427,7 +427,7 @@ void power_supply_init_attrs(struct device_type *dev_type)
} }
} }
static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env, static int add_prop_uevent(const struct device *dev, struct kobj_uevent_env *env,
enum power_supply_property prop, char *prop_buf) enum power_supply_property prop, char *prop_buf)
{ {
int ret = 0; int ret = 0;
...@@ -438,7 +438,7 @@ static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env, ...@@ -438,7 +438,7 @@ static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env,
pwr_attr = &power_supply_attrs[prop]; pwr_attr = &power_supply_attrs[prop];
dev_attr = &pwr_attr->dev_attr; dev_attr = &pwr_attr->dev_attr;
ret = power_supply_show_property(dev, dev_attr, prop_buf); ret = power_supply_show_property((struct device *)dev, dev_attr, prop_buf);
if (ret == -ENODEV || ret == -ENODATA) { if (ret == -ENODEV || ret == -ENODATA) {
/* /*
* When a battery is absent, we expect -ENODEV. Don't abort; * When a battery is absent, we expect -ENODEV. Don't abort;
...@@ -458,9 +458,9 @@ static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env, ...@@ -458,9 +458,9 @@ static int add_prop_uevent(struct device *dev, struct kobj_uevent_env *env,
pwr_attr->prop_name, prop_buf); pwr_attr->prop_name, prop_buf);
} }
int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env) int power_supply_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct power_supply *psy = dev_get_drvdata(dev); const struct power_supply *psy = dev_get_drvdata(dev);
int ret = 0, j; int ret = 0, j;
char *prop_buf; char *prop_buf;
......
...@@ -1723,9 +1723,9 @@ static const struct attribute_group *usb_udc_attr_groups[] = { ...@@ -1723,9 +1723,9 @@ static const struct attribute_group *usb_udc_attr_groups[] = {
NULL, NULL,
}; };
static int usb_udc_uevent(struct device *dev, struct kobj_uevent_env *env) static int usb_udc_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct usb_udc *udc = container_of(dev, struct usb_udc, dev); const struct usb_udc *udc = container_of(dev, struct usb_udc, dev);
int ret; int ret;
ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name);
......
...@@ -59,7 +59,7 @@ struct class { ...@@ -59,7 +59,7 @@ struct class {
const struct attribute_group **dev_groups; const struct attribute_group **dev_groups;
struct kobject *dev_kobj; struct kobject *dev_kobj;
int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env); int (*dev_uevent)(const struct device *dev, struct kobj_uevent_env *env);
char *(*devnode)(struct device *dev, umode_t *mode); char *(*devnode)(struct device *dev, umode_t *mode);
void (*class_release)(struct class *class); void (*class_release)(struct class *class);
......
...@@ -586,7 +586,7 @@ extern struct mISDNclock *mISDN_register_clock(char *, int, clockctl_func_t *, ...@@ -586,7 +586,7 @@ extern struct mISDNclock *mISDN_register_clock(char *, int, clockctl_func_t *,
void *); void *);
extern void mISDN_unregister_clock(struct mISDNclock *); extern void mISDN_unregister_clock(struct mISDNclock *);
static inline struct mISDNdevice *dev_to_mISDN(struct device *dev) static inline struct mISDNdevice *dev_to_mISDN(const struct device *dev)
{ {
if (dev) if (dev)
return dev_get_drvdata(dev); return dev_get_drvdata(dev);
......
...@@ -108,9 +108,9 @@ static struct device_attribute *atm_attrs[] = { ...@@ -108,9 +108,9 @@ static struct device_attribute *atm_attrs[] = {
}; };
static int atm_uevent(struct device *cdev, struct kobj_uevent_env *env) static int atm_uevent(const struct device *cdev, struct kobj_uevent_env *env)
{ {
struct atm_dev *adev; const struct atm_dev *adev;
if (!cdev) if (!cdev)
return -ENODEV; return -ENODEV;
......
...@@ -1873,9 +1873,9 @@ const struct kobj_ns_type_operations net_ns_type_operations = { ...@@ -1873,9 +1873,9 @@ const struct kobj_ns_type_operations net_ns_type_operations = {
}; };
EXPORT_SYMBOL_GPL(net_ns_type_operations); EXPORT_SYMBOL_GPL(net_ns_type_operations);
static int netdev_uevent(struct device *d, struct kobj_uevent_env *env) static int netdev_uevent(const struct device *d, struct kobj_uevent_env *env)
{ {
struct net_device *dev = to_net_dev(d); const struct net_device *dev = to_net_dev(d);
int retval; int retval;
/* pass interface to uevent. */ /* pass interface to uevent. */
......
...@@ -832,7 +832,7 @@ static void rfkill_release(struct device *dev) ...@@ -832,7 +832,7 @@ static void rfkill_release(struct device *dev)
kfree(rfkill); kfree(rfkill);
} }
static int rfkill_dev_uevent(struct device *dev, struct kobj_uevent_env *env) static int rfkill_dev_uevent(const struct device *dev, struct kobj_uevent_env *env)
{ {
struct rfkill *rfkill = to_rfkill(dev); struct rfkill *rfkill = to_rfkill(dev);
unsigned long flags; unsigned long flags;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment