Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp10483774rwb; Fri, 25 Nov 2022 05:10:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf7XL4ZSrd/HpxvntX3WNrCnDfd8ZIlP4J+scPmcrEYMfHTzwloCyZKDp3nGq1iZVLEtNfoQ X-Received: by 2002:a17:906:f204:b0:79e:8f4a:c5b3 with SMTP id gt4-20020a170906f20400b0079e8f4ac5b3mr15918518ejb.223.1669381850745; Fri, 25 Nov 2022 05:10:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669381850; cv=none; d=google.com; s=arc-20160816; b=LRUh7R8hC1xup3YcGlPcIZiDyOryhe5fjrfMk+JYKeTQo8o3Ta5GMhZRgx3FHJZpWm Ev/SirqH8irCUgCGgeL72ztIZ0UqZWt/sixIGqY/b/zcF7ppnm2HFM7xXA4cw02bFaYB oWgQMRW3AHVYdcySfU5zjhJwkrcEC9K+JmGvJC5ZXuvlHA9ebxkL+6+RksmtomVZ45R8 nAYiIq/QsCF82cHBka2F8XOqsKUGOwe81/aHTWzc7twQFiXitr3tS4jqQmdwnfQ589A6 EkAHqIkWWNDmfEFlrNKjvvsbaScHMY3LU5d/wEK1xAQOR8AT8EwiOyZrUK3GLJYInbY0 3E/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=LJvvaRVnW9ZgCdHIVKF2PrQVDqoqC87Jwai48Lir2hs=; b=c3r+DAyRDaLy/Hg0saz8lVJdx9sce+xdngEXLBMOQd7iQiIXz9hLKk8B5eiJlQFtPN fqcYCt9iqSQYKrtszcVgVdy4Udiit6tA5bnDGzz06UdwKg98FQ7pGZ0rnlMB37xa0HcR xlgoBetVRU1FFf85bJmLY4UCXKHgnD3rILnyLaNWuvwTTQI9nipZsMpcG6jD/jc2+h1K 1x11KGw3RvahLaFBR6BgJpkGOvjQXTuHu2sHcoPIfb0OvUTXxLJNYXv7ClDCGXQuEbT9 KN/Jzfn8t9qMwA/bCdCs/FD6PbNmgoT6HuNdn3IUgMIHTKIrjiPLcxoiDOq1hm7wTzSR kBgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O2TrOcSo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hg4-20020a1709072cc400b0078dc7f7d0ebsi3434062ejc.822.2022.11.25.05.10.27; Fri, 25 Nov 2022 05:10:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=O2TrOcSo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230219AbiKYMlO (ORCPT + 86 others); Fri, 25 Nov 2022 07:41:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229795AbiKYMko (ORCPT ); Fri, 25 Nov 2022 07:40:44 -0500 Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A03716362 for ; Fri, 25 Nov 2022 04:40:21 -0800 (PST) Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-3a7081e3b95so40414317b3.1 for ; Fri, 25 Nov 2022 04:40:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=LJvvaRVnW9ZgCdHIVKF2PrQVDqoqC87Jwai48Lir2hs=; b=O2TrOcSoMSPPNFrvlY93xaeJbIgs/oQ9H/+Gb7jZBIWNMmgJiDe0/Lj3gZID0IIOzA SnuSB80yT9Uh9zjHp1xTAuj8lj9pj+UvQOZTA3ULws0gHmOsMiFYjBQzTXQlyBx/Mfn2 gw927LDXJhNTC4UH8QsmmJqyeUP4Gu1tQ0ShFI30ekR3VyWGXkKBdOzRClBf8wOyUsY6 O4C9ywDZCaHhrsfG1P8VPx0U9g2sF6nWT+koRQkdFRLQOvCHyjhj60UauuXJE2nibkA1 hfysOZN85vAkRRiV79XxuC7lksRPQldOhXY9Lc1iLWcbqwgjskx5OFIWQJTYXyMh9KCM PRRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LJvvaRVnW9ZgCdHIVKF2PrQVDqoqC87Jwai48Lir2hs=; b=Aa20mkwYcmLimcDQgesxjGaY82uZxKcNw+q2L8BrXc4Tj4V8YrWBdyykQE4Ott4N+3 v5qAzfcCyvOMvt9Idw6KoRA4zZhcIrL8VEMprVUv3a/QGilYQAoSuXepJezzlfTWr63B rLmTty4lEFjYFN79hOrSdDB6WtoG64h+iv6bRAAH+E6OK8VjtevF9/pSWFsNPs/wOdMf WYGLDHmsaZPI2SoTDh6Gej7tXat6HETruGXyscG/LdFCxIIKD5dZyoeJy7Z0+nqva8vZ 52kNm702oUDm/q2vYq5g5ocpfUU/1yNxsU6MskRYK2XDDpuiUs0mYhW9xTjW19EKVHjt ya+g== X-Gm-Message-State: ANoB5pmKLN6x/miEkfRlX2vt9zZQvLS9NViXDK6unFMmDhXTb8l5iJg5 +zQjaMOi3Vm/WSw09rXyTet7L9qxLYyNQu7Xxr4jXA== X-Received: by 2002:a81:92c1:0:b0:3bc:d289:f4b6 with SMTP id j184-20020a8192c1000000b003bcd289f4b6mr865960ywg.417.1669380020560; Fri, 25 Nov 2022 04:40:20 -0800 (PST) MIME-Version: 1.0 References: <20221123122523.1332370-1-gregkh@linuxfoundation.org> <20221123122523.1332370-2-gregkh@linuxfoundation.org> <20221125115529.05af1513@sal.lan> In-Reply-To: <20221125115529.05af1513@sal.lan> From: Sumit Semwal Date: Fri, 25 Nov 2022 18:10:09 +0530 Message-ID: Subject: Re: [PATCH 2/5] driver core: make struct class.devnode() take a const * To: Mauro Carvalho Chehab Cc: Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Fenghua Yu , Reinette Chatre , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , FUJITA Tomonori , Jens Axboe , Justin Sanders , Arnd Bergmann , Benjamin Gaignard , Liam Mark , Laura Abbott , Brian Starkey , John Stultz , =?UTF-8?Q?Christian_K=C3=B6nig?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Jason Gunthorpe , Leon Romanovsky , Dennis Dalessandro , Dmitry Torokhov , Sean Young , Frank Haverkamp , Jiri Slaby , "Michael S. Tsirkin" , Jason Wang , Alex Williamson , Cornelia Huck , Kees Cook , Anton Vorontsov , Colin Cross , Tony Luck , Jaroslav Kysela , Takashi Iwai , Hans Verkuil , Christophe JAILLET , Xie Yongji , Gautam Dawar , Dan Carpenter , Eli Cohen , Parav Pandit , Maxime Coquelin , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, kvm@vger.kernel.org, linaro-mm-sig@lists.linaro.org, linux-block@vger.kernel.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-rdma@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Greg, On Fri, 25 Nov 2022 at 17:25, Mauro Carvalho Chehab wr= ote: > > Em Wed, 23 Nov 2022 13:25:20 +0100 > Greg Kroah-Hartman escreveu: > > > The devnode() in struct class should not be modifying the device that i= s > > passed into it, so mark it as a const * and propagate the function > > signature changes out into all relevant subsystems that use this > > callback. > > Acked-by: Mauro Carvalho Chehab > > Please feel free to add my Acked-by: Sumit Semwal for the dma-buf portion. Best, Sumit. > > Cc: Fenghua Yu > > Cc: Reinette Chatre > > Cc: Thomas Gleixner > > Cc: Ingo Molnar > > Cc: Borislav Petkov > > Cc: Dave Hansen > > Cc: x86@kernel.org > > Cc: "H. Peter Anvin" > > Cc: FUJITA Tomonori > > Cc: Jens Axboe > > Cc: Justin Sanders > > Cc: Arnd Bergmann > > Cc: Sumit Semwal > > Cc: Benjamin Gaignard > > Cc: Liam Mark > > Cc: Laura Abbott > > Cc: Brian Starkey > > Cc: John Stultz > > Cc: "Christian K=C3=B6nig" > > Cc: Maarten Lankhorst > > Cc: Maxime Ripard > > Cc: Thomas Zimmermann > > Cc: David Airlie > > Cc: Daniel Vetter > > Cc: Jason Gunthorpe > > Cc: Leon Romanovsky > > Cc: Dennis Dalessandro > > Cc: Dmitry Torokhov > > Cc: Mauro Carvalho Chehab > > Cc: Sean Young > > Cc: Frank Haverkamp > > Cc: Jiri Slaby > > Cc: "Michael S. Tsirkin" > > Cc: Jason Wang > > Cc: Alex Williamson > > Cc: Cornelia Huck > > Cc: Kees Cook > > Cc: Anton Vorontsov > > Cc: Colin Cross > > Cc: Tony Luck > > Cc: Jaroslav Kysela > > Cc: Takashi Iwai > > Cc: Hans Verkuil > > Cc: Christophe JAILLET > > Cc: Xie Yongji > > Cc: Gautam Dawar > > Cc: Dan Carpenter > > Cc: Eli Cohen > > Cc: Parav Pandit > > Cc: Maxime Coquelin > > 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 > > Signed-off-by: Greg Kroah-Hartman > > --- > > arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 ++-- > > arch/x86/kernel/cpuid.c | 2 +- > > arch/x86/kernel/msr.c | 2 +- > > block/bsg.c | 2 +- > > drivers/block/aoe/aoechr.c | 2 +- > > drivers/char/mem.c | 2 +- > > drivers/char/misc.c | 4 ++-- > > drivers/dma-buf/dma-heap.c | 2 +- > > drivers/gpu/drm/drm_sysfs.c | 2 +- > > drivers/infiniband/core/user_mad.c | 2 +- > > drivers/infiniband/core/uverbs_main.c | 2 +- > > drivers/infiniband/hw/hfi1/device.c | 4 ++-- > > drivers/input/input.c | 2 +- > > drivers/media/dvb-core/dvbdev.c | 4 ++-- > > drivers/media/pci/ddbridge/ddbridge-core.c | 4 ++-- > > drivers/media/rc/rc-main.c | 2 +- > > drivers/misc/genwqe/card_base.c | 2 +- > > drivers/tty/tty_io.c | 2 +- > > drivers/usb/core/file.c | 2 +- > > drivers/vdpa/vdpa_user/vduse_dev.c | 2 +- > > drivers/vfio/vfio_main.c | 2 +- > > fs/pstore/pmsg.c | 2 +- > > include/linux/device/class.h | 2 +- > > sound/sound_core.c | 2 +- > > 24 files changed, 29 insertions(+), 29 deletions(-) > > > > diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kerne= l/cpu/resctrl/pseudo_lock.c > > index d961ae3ed96e..4e4231a58f38 100644 > > --- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c > > +++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c > > @@ -1560,9 +1560,9 @@ static const struct file_operations pseudo_lock_d= ev_fops =3D { > > .mmap =3D 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 *mo= de) > > { > > - struct rdtgroup *rdtgrp; > > + const struct rdtgroup *rdtgrp; > > > > rdtgrp =3D dev_get_drvdata(dev); > > if (mode) > > diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c > > index 6f7b8cc1bc9f..621ba9c0f17a 100644 > > --- a/arch/x86/kernel/cpuid.c > > +++ b/arch/x86/kernel/cpuid.c > > @@ -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)); > > } > > diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c > > index ed8ac6bcbafb..708751311786 100644 > > --- a/arch/x86/kernel/msr.c > > +++ b/arch/x86/kernel/msr.c > > @@ -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)); > > } > > diff --git a/block/bsg.c b/block/bsg.c > > index 2ab1351eb082..08046bd9207d 100644 > > --- a/block/bsg.c > > +++ b/block/bsg.c > > @@ -232,7 +232,7 @@ struct bsg_device *bsg_register_queue(struct reques= t_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)); > > } > > diff --git a/drivers/block/aoe/aoechr.c b/drivers/block/aoe/aoechr.c > > index 8eea2529da20..7a368c90467d 100644 > > --- a/drivers/block/aoe/aoechr.c > > +++ b/drivers/block/aoe/aoechr.c > > @@ -273,7 +273,7 @@ static const struct file_operations aoe_fops =3D { > > .llseek =3D 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)); > > } > > diff --git a/drivers/char/mem.c b/drivers/char/mem.c > > index 5611d127363e..83bf2a4dcb57 100644 > > --- a/drivers/char/mem.c > > +++ b/drivers/char/mem.c > > @@ -746,7 +746,7 @@ static const struct file_operations memory_fops =3D= { > > .llseek =3D 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 =3D devlist[MINOR(dev->devt)].mode; > > diff --git a/drivers/char/misc.c b/drivers/char/misc.c > > index cba19bfdc44d..88c6995b9a3d 100644 > > --- a/drivers/char/misc.c > > +++ b/drivers/char/misc.c > > @@ -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 =3D dev_get_drvdata(dev); > > + const struct miscdevice *c =3D dev_get_drvdata(dev); > > > > if (mode && c->mode) > > *mode =3D c->mode; > > diff --git a/drivers/dma-buf/dma-heap.c b/drivers/dma-buf/dma-heap.c > > index 8f5848aa144f..4d7150791315 100644 > > --- a/drivers/dma-buf/dma-heap.c > > +++ b/drivers/dma-buf/dma-heap.c > > @@ -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)); > > } > > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c > > index 430e00b16eec..14bf156b3f1b 100644 > > --- a/drivers/gpu/drm/drm_sysfs.c > > +++ b/drivers/gpu/drm/drm_sysfs.c > > @@ -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)); > > } > > diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/co= re/user_mad.c > > index 98cb594cd9a6..f83954180a33 100644 > > --- a/drivers/infiniband/core/user_mad.c > > +++ b/drivers/infiniband/core/user_mad.c > > @@ -1224,7 +1224,7 @@ static struct attribute *umad_class_dev_attrs[] = =3D { > > }; > > 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)); > > } > > diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband= /core/uverbs_main.c > > index d54434088727..bdb179a09d77 100644 > > --- a/drivers/infiniband/core/uverbs_main.c > > +++ b/drivers/infiniband/core/uverbs_main.c > > @@ -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 =3D 0666; > > diff --git a/drivers/infiniband/hw/hfi1/device.c b/drivers/infiniband/h= w/hfi1/device.c > > index 8ceff7141baf..1f4496032170 100644 > > --- a/drivers/infiniband/hw/hfi1/device.c > > +++ b/drivers/infiniband/hw/hfi1/device.c > > @@ -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 =3D 0600; > > @@ -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 =3D 0666; > > diff --git a/drivers/input/input.c b/drivers/input/input.c > > index ebb2b7f0f8ff..50597165dc54 100644 > > --- a/drivers/input/input.c > > +++ b/drivers/input/input.c > > @@ -1913,7 +1913,7 @@ static const struct device_type input_dev_type = =3D { > > #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)); > > } > > diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/d= vbdev.c > > index 6ef18bab9648..e73f5240cc2c 100644 > > --- a/drivers/media/dvb-core/dvbdev.c > > +++ b/drivers/media/dvb-core/dvbdev.c > > @@ -1018,9 +1018,9 @@ static int dvb_uevent(const struct device *dev, s= truct 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 =3D dev_get_drvdata(dev); > > + const struct dvb_device *dvbdev =3D dev_get_drvdata(dev); > > > > return kasprintf(GFP_KERNEL, "dvb/adapter%d/%s%d", > > dvbdev->adapter->num, dnames[dvbdev->type], dvbdev->id); > > diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media= /pci/ddbridge/ddbridge-core.c > > index fe833f39698a..ee8087f29b2c 100644 > > --- a/drivers/media/pci/ddbridge/ddbridge-core.c > > +++ b/drivers/media/pci/ddbridge/ddbridge-core.c > > @@ -2716,9 +2716,9 @@ static const struct file_operations ddb_fops =3D = { > > .release =3D 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 =3D dev_get_drvdata(device); > > + const struct ddb *dev =3D dev_get_drvdata(device); > > > > return kasprintf(GFP_KERNEL, "ddbridge/card%d", dev->nr); > > } > > diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c > > index eba0cd30e314..527d9324742b 100644 > > --- a/drivers/media/rc/rc-main.c > > +++ b/drivers/media/rc/rc-main.c > > @@ -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)); > > } > > diff --git a/drivers/misc/genwqe/card_base.c b/drivers/misc/genwqe/card= _base.c > > index 693981891870..0f00687f72d4 100644 > > --- a/drivers/misc/genwqe/card_base.c > > +++ b/drivers/misc/genwqe/card_base.c > > @@ -1349,7 +1349,7 @@ static struct pci_driver genwqe_driver =3D { > > * 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 =3D 0666; > > diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c > > index de06c3c2ff70..aad8171f6c21 100644 > > --- a/drivers/tty/tty_io.c > > +++ b/drivers/tty/tty_io.c > > @@ -3494,7 +3494,7 @@ void tty_default_fops(struct file_operations *fop= s) > > *fops =3D 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; > > diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c > > index 558890ada0e5..da7d88e069e6 100644 > > --- a/drivers/usb/core/file.c > > +++ b/drivers/usb/core/file.c > > @@ -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; > > > > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_use= r/vduse_dev.c > > index 35dceee3ed56..0dd3c1f291da 100644 > > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > > @@ -1656,7 +1656,7 @@ static const struct file_operations vduse_ctrl_fo= ps =3D { > > .llseek =3D 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)); > > } > > diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c > > index 6e8804fe0095..5bf4b3454918 100644 > > --- a/drivers/vfio/vfio_main.c > > +++ b/drivers/vfio/vfio_main.c > > @@ -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)); > > } > > diff --git a/fs/pstore/pmsg.c b/fs/pstore/pmsg.c > > index d8542ec2f38c..b31c9c72d90b 100644 > > --- a/fs/pstore/pmsg.c > > +++ b/fs/pstore/pmsg.c > > @@ -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 =3D 0220; > > diff --git a/include/linux/device/class.h b/include/linux/device/class.= h > > index 94b1107258e5..42cc3fb44a84 100644 > > --- a/include/linux/device/class.h > > +++ b/include/linux/device/class.h > > @@ -60,7 +60,7 @@ struct class { > > struct kobject *dev_kobj; > > > > int (*dev_uevent)(const struct device *dev, struct kobj_uevent_en= v *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); > > diff --git a/sound/sound_core.c b/sound/sound_core.c > > index 3332fe321737..3e7dd6fcb7cf 100644 > > --- a/sound/sound_core.c > > +++ b/sound/sound_core.c > > @@ -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) =3D=3D SOUND_MAJOR) > > return NULL; --=20 Thanks and regards, Sumit Semwal (he / him) Tech Lead - LCG, Vertical Technologies Linaro.org =E2=94=82 Open source software for ARM SoCs