Skip to content

Commit

Permalink
driver core: make struct class.devnode() take a const *
Browse files Browse the repository at this point in the history
The devnode() 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: Fenghua Yu <fenghua.yu@intel.com>
Cc: Reinette Chatre <reinette.chatre@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Justin Sanders <justin@coraid.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Cc: Liam Mark <lmark@codeaurora.org>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Brian Starkey <Brian.Starkey@arm.com>
Cc: John Stultz <jstultz@google.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Leon Romanovsky <leon@kernel.org>
Cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Sean Young <sean@mess.org>
Cc: Frank Haverkamp <haver@linux.ibm.com>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Xie Yongji <xieyongji@bytedance.com>
Cc: Gautam Dawar <gautam.dawar@xilinx.com>
Cc: Dan Carpenter <error27@gmail.com>
Cc: Eli Cohen <elic@nvidia.com>
Cc: Parav Pandit <parav@nvidia.com>
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: alsa-devel@alsa-project.org
Cc: dri-devel@lists.freedesktop.org
Cc: kvm@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Cc: linux-block@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-rdma@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: virtualization@lists.linux-foundation.org
Link: https://lore.kernel.org/r/20221123122523.1332370-2-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
gregkh committed Nov 24, 2022
1 parent 23680f0 commit ff62b8e
Show file tree
Hide file tree
Showing 24 changed files with 29 additions and 29 deletions.
4 changes: 2 additions & 2 deletions arch/x86/kernel/cpu/resctrl/pseudo_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -1560,9 +1560,9 @@ static const struct file_operations pseudo_lock_dev_fops = {
.mmap = pseudo_lock_dev_mmap,
};

static char *pseudo_lock_devnode(struct device *dev, umode_t *mode)
static char *pseudo_lock_devnode(const struct device *dev, umode_t *mode)
{
struct rdtgroup *rdtgrp;
const struct rdtgroup *rdtgrp;

rdtgrp = dev_get_drvdata(dev);
if (mode)
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/cpuid.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ static int cpuid_device_destroy(unsigned int cpu)
return 0;
}

static char *cpuid_devnode(struct device *dev, umode_t *mode)
static char *cpuid_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "cpu/%u/cpuid", MINOR(dev->devt));
}
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/msr.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ static int msr_device_destroy(unsigned int cpu)
return 0;
}

static char *msr_devnode(struct device *dev, umode_t *mode)
static char *msr_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "cpu/%u/msr", MINOR(dev->devt));
}
Expand Down
2 changes: 1 addition & 1 deletion block/bsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ struct bsg_device *bsg_register_queue(struct request_queue *q,
}
EXPORT_SYMBOL_GPL(bsg_register_queue);

static char *bsg_devnode(struct device *dev, umode_t *mode)
static char *bsg_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "bsg/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/block/aoe/aoechr.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ static const struct file_operations aoe_fops = {
.llseek = noop_llseek,
};

static char *aoe_devnode(struct device *dev, umode_t *mode)
static char *aoe_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "etherd/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/char/mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -746,7 +746,7 @@ static const struct file_operations memory_fops = {
.llseek = noop_llseek,
};

static char *mem_devnode(struct device *dev, umode_t *mode)
static char *mem_devnode(const struct device *dev, umode_t *mode)
{
if (mode && devlist[MINOR(dev->devt)].mode)
*mode = devlist[MINOR(dev->devt)].mode;
Expand Down
4 changes: 2 additions & 2 deletions drivers/char/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,9 +254,9 @@ void misc_deregister(struct miscdevice *misc)
}
EXPORT_SYMBOL(misc_deregister);

static char *misc_devnode(struct device *dev, umode_t *mode)
static char *misc_devnode(const struct device *dev, umode_t *mode)
{
struct miscdevice *c = dev_get_drvdata(dev);
const struct miscdevice *c = dev_get_drvdata(dev);

if (mode && c->mode)
*mode = c->mode;
Expand Down
2 changes: 1 addition & 1 deletion drivers/dma-buf/dma-heap.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
return err_ret;
}

static char *dma_heap_devnode(struct device *dev, umode_t *mode)
static char *dma_heap_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "dma_heap/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/drm_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ static void drm_sysfs_acpi_register(void) { }
static void drm_sysfs_acpi_unregister(void) { }
#endif

static char *drm_devnode(struct device *dev, umode_t *mode)
static char *drm_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/infiniband/core/user_mad.c
Original file line number Diff line number Diff line change
Expand Up @@ -1224,7 +1224,7 @@ static struct attribute *umad_class_dev_attrs[] = {
};
ATTRIBUTE_GROUPS(umad_class_dev);

static char *umad_devnode(struct device *dev, umode_t *mode)
static char *umad_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "infiniband/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/infiniband/core/uverbs_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1237,7 +1237,7 @@ static void ib_uverbs_remove_one(struct ib_device *device, void *client_data)
put_device(&uverbs_dev->dev);
}

static char *uverbs_devnode(struct device *dev, umode_t *mode)
static char *uverbs_devnode(const struct device *dev, umode_t *mode)
{
if (mode)
*mode = 0666;
Expand Down
4 changes: 2 additions & 2 deletions drivers/infiniband/hw/hfi1/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ const char *class_name(void)
return hfi1_class_name;
}

static char *hfi1_devnode(struct device *dev, umode_t *mode)
static char *hfi1_devnode(const struct device *dev, umode_t *mode)
{
if (mode)
*mode = 0600;
Expand All @@ -85,7 +85,7 @@ static const char *class_name_user(void)
return hfi1_class_name_user;
}

static char *hfi1_user_devnode(struct device *dev, umode_t *mode)
static char *hfi1_user_devnode(const struct device *dev, umode_t *mode)
{
if (mode)
*mode = 0666;
Expand Down
2 changes: 1 addition & 1 deletion drivers/input/input.c
Original file line number Diff line number Diff line change
Expand Up @@ -1913,7 +1913,7 @@ static const struct device_type input_dev_type = {
#endif
};

static char *input_devnode(struct device *dev, umode_t *mode)
static char *input_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "input/%s", dev_name(dev));
}
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/dvb-core/dvbdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1018,9 +1018,9 @@ static int dvb_uevent(const struct device *dev, struct kobj_uevent_env *env)
return 0;
}

static char *dvb_devnode(struct device *dev, umode_t *mode)
static char *dvb_devnode(const struct device *dev, umode_t *mode)
{
struct dvb_device *dvbdev = dev_get_drvdata(dev);
const struct dvb_device *dvbdev = dev_get_drvdata(dev);

return kasprintf(GFP_KERNEL, "dvb/adapter%d/%s%d",
dvbdev->adapter->num, dnames[dvbdev->type], dvbdev->id);
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/pci/ddbridge/ddbridge-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2716,9 +2716,9 @@ static const struct file_operations ddb_fops = {
.release = ddb_release,
};

static char *ddb_devnode(struct device *device, umode_t *mode)
static char *ddb_devnode(const struct device *device, umode_t *mode)
{
struct ddb *dev = dev_get_drvdata(device);
const struct ddb *dev = dev_get_drvdata(device);

return kasprintf(GFP_KERNEL, "ddbridge/card%d", dev->nr);
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/rc/rc-main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1017,7 +1017,7 @@ static void ir_close(struct input_dev *idev)
}

/* class for /sys/class/rc */
static char *rc_devnode(struct device *dev, umode_t *mode)
static char *rc_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "rc/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/misc/genwqe/card_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -1349,7 +1349,7 @@ static struct pci_driver genwqe_driver = {
* Default mode should be rw for everybody. Do not change default
* device name.
*/
static char *genwqe_devnode(struct device *dev, umode_t *mode)
static char *genwqe_devnode(const struct device *dev, umode_t *mode)
{
if (mode)
*mode = 0666;
Expand Down
2 changes: 1 addition & 1 deletion drivers/tty/tty_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -3494,7 +3494,7 @@ void tty_default_fops(struct file_operations *fops)
*fops = tty_fops;
}

static char *tty_devnode(struct device *dev, umode_t *mode)
static char *tty_devnode(const struct device *dev, umode_t *mode)
{
if (!mode)
return NULL;
Expand Down
2 changes: 1 addition & 1 deletion drivers/usb/core/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ static struct usb_class {
struct class *class;
} *usb_class;

static char *usb_devnode(struct device *dev, umode_t *mode)
static char *usb_devnode(const struct device *dev, umode_t *mode)
{
struct usb_class_driver *drv;

Expand Down
2 changes: 1 addition & 1 deletion drivers/vdpa/vdpa_user/vduse_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1656,7 +1656,7 @@ static const struct file_operations vduse_ctrl_fops = {
.llseek = noop_llseek,
};

static char *vduse_devnode(struct device *dev, umode_t *mode)
static char *vduse_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "vduse/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/vfio/vfio_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1812,7 +1812,7 @@ EXPORT_SYMBOL(vfio_set_irqs_validate_and_prepare);
/*
* Module/class support
*/
static char *vfio_devnode(struct device *dev, umode_t *mode)
static char *vfio_devnode(const struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, "vfio/%s", dev_name(dev));
}
Expand Down
2 changes: 1 addition & 1 deletion fs/pstore/pmsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ static int pmsg_major;
#undef pr_fmt
#define pr_fmt(fmt) PMSG_NAME ": " fmt

static char *pmsg_devnode(struct device *dev, umode_t *mode)
static char *pmsg_devnode(const struct device *dev, umode_t *mode)
{
if (mode)
*mode = 0220;
Expand Down
2 changes: 1 addition & 1 deletion include/linux/device/class.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct class {
struct kobject *dev_kobj;

int (*dev_uevent)(const struct device *dev, struct kobj_uevent_env *env);
char *(*devnode)(struct device *dev, umode_t *mode);
char *(*devnode)(const struct device *dev, umode_t *mode);

void (*class_release)(struct class *class);
void (*dev_release)(struct device *dev);
Expand Down
2 changes: 1 addition & 1 deletion sound/sound_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ MODULE_DESCRIPTION("Core sound module");
MODULE_AUTHOR("Alan Cox");
MODULE_LICENSE("GPL");

static char *sound_devnode(struct device *dev, umode_t *mode)
static char *sound_devnode(const struct device *dev, umode_t *mode)
{
if (MAJOR(dev->devt) == SOUND_MAJOR)
return NULL;
Expand Down

0 comments on commit ff62b8e

Please sign in to comment.