From patchwork Wed Nov 23 12:25:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 24940 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2756131wrr; Wed, 23 Nov 2022 04:29:23 -0800 (PST) X-Google-Smtp-Source: AA0mqf48MXJPB6OhigG70K43mTMSUB0icaxZP7Mf3YLWwsh1xn/0wmK3IxUQYpMrEY7xd6Nw2zTZ X-Received: by 2002:a17:90a:b396:b0:218:8379:89a0 with SMTP id e22-20020a17090ab39600b00218837989a0mr26490712pjr.81.1669206562996; Wed, 23 Nov 2022 04:29:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669206562; cv=none; d=google.com; s=arc-20160816; b=u1HL0I3fNBkKb9uyRNvwPf8/klH0YThWtmk7hTha5Qh2nOf9AS+l9mHwcPzz3pBwzo FCiVf5+TIExhV9MnXWd4CFLAA+fCtEWJfcVwct/yQ0rtoLh5iroFlf8u6FOoS7zKXTrk 2XOkrA5tIoYKOzACQa4dmvgOrs7DACF6tuIiPGt1ai0tUH29yedij4QmVADCKIulvZMZ cQBGccTCwkc+fJc1CR50j/hiow4KKVG55297Q9Z9/XpjNicUhukVLBQx1+G+rDyrN/7y CCbJPI0ULh+yo1fjk/HbPYtPSKqyFuzPAHOXRzb24SUk820hGI2fF1TaI0LAqbUIOM+4 zEvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6Px2AbSs9dYm8vdk0RmthYANY8GbUbWkqJ+G3GKhwS4=; b=jLmirp3i1yPwMNZq2magvSdRZOYwVK9p2mwA6htaINxFd3RvaNGpN+ibRMafUCn3H8 cGzzqz5yNoARzkWLXj5+lfSmrszus2b5VuDje+OI6MlJ25ZGMCD1vu5IkP1DD4WUeyFw 5wgGVrvQ+fUxgG0Ww1A4GfoaogA3MXjmjFAx2pUSbQDv2VL/GuuGKyv4L/9R9C+H5F5+ WbY+KCAnwjTPTRkJgib/K0osTsK1C4U8XcTfqVcVNK4Ul3vRSPGGpjA+SZQKYDxTTbUP peERbWoV59dUCuihGlBbsn3sng22Yu6u9FKMRfJgydJG1F7LTg0iQIuo0TLvrOGU7opK KE3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="nlbf/HJ5"; 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=linuxfoundation.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u70-20020a638549000000b004777166873csi8910263pgd.548.2022.11.23.04.29.09; Wed, 23 Nov 2022 04:29:22 -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=@linuxfoundation.org header.s=korg header.b="nlbf/HJ5"; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237534AbiKWM0z (ORCPT + 99 others); Wed, 23 Nov 2022 07:26:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237261AbiKWM0N (ORCPT ); Wed, 23 Nov 2022 07:26:13 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4A7060E80; Wed, 23 Nov 2022 04:25:48 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 70293B81ED5; Wed, 23 Nov 2022 12:25:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BC08C433C1; Wed, 23 Nov 2022 12:25:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1669206346; bh=tHqhDUSHq3ffWG1I/YC/xRRgv1nq4BU3p+/TFfRUrdI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nlbf/HJ5AH2BWfISiYvG/00jphh/RUKSt5ONtb/pdzTFeGizpg2RTEily7My9H7ob WvrhsddCYIRwv9nfiqoowz5k7/8gXwGaoDaABvgezjRseQRCLwKynSHTeF55EPg+Qb 4H3+XeCM2vAoQegiYFEwPm1C6mUQIAUWxtDCHinw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Jens Axboe , Alison Schofield , Vishal Verma , Ira Weiny , Ben Widawsky , Dan Williams , Jeremy Kerr , Joel Stanley , Alistar Popple , Eddie James , Alexander Shishkin , Jonathan Cameron , Jilin Yuan , Heikki Krogerus , Alan Stern , Andy Shevchenko , Thomas Gleixner , Jason Gunthorpe , "Rafael J. Wysocki" , Won Chung , linux-block@vger.kernel.org, linux-cxl@vger.kernel.org, linux-fsi@lists.ozlabs.org, linux-usb@vger.kernel.org Subject: [PATCH 4/5] driver core: make struct device_type.devnode() take a const * Date: Wed, 23 Nov 2022 13:25:22 +0100 Message-Id: <20221123122523.1332370-4-gregkh@linuxfoundation.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221123122523.1332370-1-gregkh@linuxfoundation.org> References: <20221123122523.1332370-1-gregkh@linuxfoundation.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6608; i=gregkh@linuxfoundation.org; h=from:subject; bh=tHqhDUSHq3ffWG1I/YC/xRRgv1nq4BU3p+/TFfRUrdI=; b=owGbwMvMwCRo6H6F97bub03G02pJDMl1gsbbT9YcnTg9RC9we/NPp6iHinx80a+SXgmYcCnGfJU4 ym3YEcvCIMjEICumyPJlG8/R/RWHFL0MbU/DzGFlAhnCwMUpABM5/YZhNusK8/WT3h1etavvyWsNsU 93zCxlHBgWTOjQ4RX9lzDlgfXOlxNa3d7KFGd0AAA= X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750289941039143469?= X-GMAIL-MSGID: =?utf-8?q?1750289941039143469?= The devnode() callback in struct device_type 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 Cc: Alison Schofield Cc: Vishal Verma Cc: Ira Weiny Cc: Ben Widawsky Cc: Dan Williams Cc: Jeremy Kerr Cc: Joel Stanley Cc: Alistar Popple Cc: Eddie James Cc: Alexander Shishkin Cc: Jonathan Cameron Cc: Jilin Yuan Cc: Heikki Krogerus Cc: Alan Stern Cc: Andy Shevchenko Cc: Thomas Gleixner Cc: Jason Gunthorpe Cc: "Rafael J. Wysocki" Cc: Won Chung Cc: linux-block@vger.kernel.org Cc: linux-cxl@vger.kernel.org Cc: linux-fsi@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Cc: linux-usb@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Acked-by: Dan Williams --- block/genhd.c | 4 ++-- drivers/cxl/core/memdev.c | 2 +- drivers/fsi/fsi-core.c | 6 +++--- drivers/hwtracing/intel_th/core.c | 6 +++--- drivers/hwtracing/intel_th/intel_th.h | 4 ++-- drivers/usb/core/usb.c | 4 ++-- include/linux/device.h | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/block/genhd.c b/block/genhd.c index 3f1124713442..391b52655b97 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -1193,10 +1193,10 @@ struct class block_class = { .dev_uevent = block_uevent, }; -static char *block_devnode(struct device *dev, umode_t *mode, +static char *block_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { - struct gendisk *disk = dev_to_disk(dev); + const struct gendisk *disk = dev_to_disk(dev); if (disk->fops->devnode) return disk->fops->devnode(disk, mode); diff --git a/drivers/cxl/core/memdev.c b/drivers/cxl/core/memdev.c index 20ce488a7754..6ae8d0bdc61b 100644 --- a/drivers/cxl/core/memdev.c +++ b/drivers/cxl/core/memdev.c @@ -27,7 +27,7 @@ static void cxl_memdev_release(struct device *dev) kfree(cxlmd); } -static char *cxl_memdev_devnode(struct device *dev, umode_t *mode, kuid_t *uid, +static char *cxl_memdev_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { return kasprintf(GFP_KERNEL, "cxl/%s", dev_name(dev)); diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c index 694e80c06665..0b927c9f4267 100644 --- a/drivers/fsi/fsi-core.c +++ b/drivers/fsi/fsi-core.c @@ -897,10 +897,10 @@ static const struct attribute_group *cfam_attr_groups[] = { NULL, }; -static char *cfam_devnode(struct device *dev, umode_t *mode, +static char *cfam_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { - struct fsi_slave *slave = to_fsi_slave(dev); + const struct fsi_slave *slave = to_fsi_slave(dev); #ifdef CONFIG_FSI_NEW_DEV_NODE return kasprintf(GFP_KERNEL, "fsi/cfam%d", slave->cdev_idx); @@ -915,7 +915,7 @@ static const struct device_type cfam_type = { .groups = cfam_attr_groups }; -static char *fsi_cdev_devnode(struct device *dev, umode_t *mode, +static char *fsi_cdev_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { #ifdef CONFIG_FSI_NEW_DEV_NODE diff --git a/drivers/hwtracing/intel_th/core.c b/drivers/hwtracing/intel_th/core.c index 7e753a75d23b..cc7f879bb175 100644 --- a/drivers/hwtracing/intel_th/core.c +++ b/drivers/hwtracing/intel_th/core.c @@ -185,11 +185,11 @@ static struct device_type intel_th_source_device_type = { .release = intel_th_device_release, }; -static char *intel_th_output_devnode(struct device *dev, umode_t *mode, +static char *intel_th_output_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { - struct intel_th_device *thdev = to_intel_th_device(dev); - struct intel_th *th = to_intel_th(thdev); + const struct intel_th_device *thdev = to_intel_th_device(dev); + const struct intel_th *th = to_intel_th(thdev); char *node; if (thdev->id >= 0) diff --git a/drivers/hwtracing/intel_th/intel_th.h b/drivers/hwtracing/intel_th/intel_th.h index 0ffb42990175..6cbba733f259 100644 --- a/drivers/hwtracing/intel_th/intel_th.h +++ b/drivers/hwtracing/intel_th/intel_th.h @@ -205,7 +205,7 @@ struct intel_th_driver { * INTEL_TH_SWITCH and INTEL_TH_SOURCE are children of the intel_th device. */ static inline struct intel_th_device * -to_intel_th_parent(struct intel_th_device *thdev) +to_intel_th_parent(const struct intel_th_device *thdev) { struct device *parent = thdev->dev.parent; @@ -215,7 +215,7 @@ to_intel_th_parent(struct intel_th_device *thdev) return to_intel_th_device(parent); } -static inline struct intel_th *to_intel_th(struct intel_th_device *thdev) +static inline struct intel_th *to_intel_th(const struct intel_th_device *thdev) { if (thdev->type == INTEL_TH_OUTPUT) thdev = to_intel_th_parent(thdev); diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 8527c06b65e6..4df26f4f76e6 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -505,10 +505,10 @@ static const struct dev_pm_ops usb_device_pm_ops = { #endif /* CONFIG_PM */ -static char *usb_devnode(struct device *dev, +static char *usb_devnode(const struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid) { - struct usb_device *usb_dev; + const struct usb_device *usb_dev; usb_dev = to_usb_device(dev); return kasprintf(GFP_KERNEL, "bus/usb/%03d/%03d", diff --git a/include/linux/device.h b/include/linux/device.h index 46093bae6905..4ad1280713e6 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -89,7 +89,7 @@ struct device_type { const char *name; const struct attribute_group **groups; int (*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, kuid_t *uid, kgid_t *gid); void (*release)(struct device *dev);