From nobody Wed Apr 06 17:46:04 2022 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 50F541AA60D6; Wed, 6 Apr 2022 17:46:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KYX4D6tk2z3DXM; Wed, 6 Apr 2022 17:46:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649267165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0+eVEEk/JMp295syVGCN38+o0CfIpfM109sF/krL5X4=; b=nvrpc7N2ihgJveWiQcYD0Fix+nL4hkIQtu/29SpRRwp1U7ohXqPoR1V2mSx7vbJKC1S3za c11wtT1Kvp6oCMs5WKzYAWj6tQUgk+Kn2N4fBwmP6LOBWt0jYVYEqERE8t0XkGhay2rZNZ sbtvohUQ4NCHsUDeQMwHbIhxHZWM0SaAYG99SaVsLydNhFlCD9vUrp0j1ZhqBg/3HSaHQg Cb32HixHbfH9zUKshLcvhrbUAwt4pjg9owQrw4szkglhgClc+xe33Yn2/BDiqkjD9dh234 bwSQVeguG+fdqXvYBSZke2UgaWiIcgHVec3WY+QOS0CRQKfF6fdJiTFsWqHLLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B8FEB1F8E3; Wed, 6 Apr 2022 17:46:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 236Hk4jY022609; Wed, 6 Apr 2022 17:46:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 236Hk4fY022608; Wed, 6 Apr 2022 17:46:04 GMT (envelope-from git) Date: Wed, 6 Apr 2022 17:46:04 GMT Message-Id: <202204061746.236Hk4fY022608@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: f6f168a17ec2 - releng/13.1 - linuxkpi: Move device_create_groups_vargs to linux_compat.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.1 X-Git-Reftype: branch X-Git-Commit: f6f168a17ec2d2a9a0bf4b8b93c41d4988f5177e Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649267165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0+eVEEk/JMp295syVGCN38+o0CfIpfM109sF/krL5X4=; b=NWbzOrgAxG1cBYIsZYf5GmqhO56A1djfHZF/8Kka/fR9tAy7EhqzzEQtfnOKqlPw5HtHg/ 7tWBZY98CEKGdUCVuP2Pn0R3LERXsbRAYHMzlXeL2h/zqiyjPLQkEFgMT99tcKQYrbh+LC vivQzb/cOUs1nUFNMxQWnMRewn/GmitTIcBMyDO1xZ8BdDV2vHLIAZNNJ8Oq90i9oirpYq mCTTBc2A+S5wVP8FSRZwOTODiYwUyCG3oqN1uI1A2uCZb0AoFIEZR7FB7xI79ywGKJfXvE zzoDhpaDB/Icv04wXqB5gQVcEQ/IsOdXKAtf2YPh0hWAX0xO+BIpuuFCMbJYPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1649267165; a=rsa-sha256; cv=none; b=MBQL/eaBf5NLubamwh6jqD1sXpnXbDGe00JKfi6eY/gCAs/VqkAxVeCLYyXdXeX0FedZUC fgaDRx6v/az2P8zzsfc8OOazeo0o8V9AfU3+AYXarqEDM7W8d0nzZZRX6wrKUiSaHwe8CB z8sMMhP54gj/6TUdz3YhPOENW8ERD6Xf/tpv7mjMbATin2wYo/NJgVxhaW/t6aA74jMq2u eoXltWKPEvfBZTGaFzbR5hMXje/qfn+NYG2jBZHHwer6o46pHRRoxOdRE66RUcADJaJ0tH tKwHNTObvsuxS90srz+Phuwl+3R4vwEZBYwZDO+7E3ZZiFyjZusYPso2BeTUVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch releng/13.1 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f6f168a17ec2d2a9a0bf4b8b93c41d4988f5177e commit f6f168a17ec2d2a9a0bf4b8b93c41d4988f5177e Author: Warner Losh AuthorDate: 2022-04-05 05:05:36 +0000 Commit: Warner Losh CommitDate: 2022-04-06 17:45:18 +0000 linuxkpi: Move device_create_groups_vargs to linux_compat.c device_create_groups_vargs encodes the size of struct device. Move definition from .h to .c to move this size into the linuxkpi module rather than encoding it in all client driver modules. Approved by: re@ (gjb) Sponsored by: Netflix Reviewed by: hselasky, emaste Differential Revision: https://reviews.freebsd.org/D34768 (cherry picked from commit 702b6875035921252d0f2b72171c7662f28766fb) (cherry picked from commit 417f1c81491ae26643ea7e3f3fc5c08b8e8944a9) --- sys/compat/linuxkpi/common/include/linux/device.h | 50 +++-------------------- sys/compat/linuxkpi/common/src/linux_compat.c | 41 +++++++++++++++++++ 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/device.h b/sys/compat/linuxkpi/common/include/linux/device.h index 5bd57a581f4e..2d310953fcd1 100644 --- a/sys/compat/linuxkpi/common/include/linux/device.h +++ b/sys/compat/linuxkpi/common/include/linux/device.h @@ -313,6 +313,12 @@ static inline struct device *kobj_to_dev(struct kobject *kobj) return container_of(kobj, struct device, kobj); } +struct device *device_create(struct class *class, struct device *parent, + dev_t devt, void *drvdata, const char *fmt, ...); +struct device *device_create_groups_vargs(struct class *class, struct device *parent, + dev_t devt, void *drvdata, const struct attribute_group **groups, + const char *fmt, va_list args); + /* * Devices are registered and created for exporting to sysfs. Create * implies register and register assumes the device fields have been @@ -372,47 +378,6 @@ device_create_release(struct device *dev) kfree(dev); } -static inline struct device * -device_create_groups_vargs(struct class *class, struct device *parent, - dev_t devt, void *drvdata, const struct attribute_group **groups, - const char *fmt, va_list args) -{ - struct device *dev = NULL; - int retval = -ENODEV; - - if (class == NULL || IS_ERR(class)) - goto error; - - dev = kzalloc(sizeof(*dev), GFP_KERNEL); - if (!dev) { - retval = -ENOMEM; - goto error; - } - - dev->devt = devt; - dev->class = class; - dev->parent = parent; - dev->groups = groups; - dev->release = device_create_release; - /* device_initialize() needs the class and parent to be set */ - device_initialize(dev); - dev_set_drvdata(dev, drvdata); - - retval = kobject_set_name_vargs(&dev->kobj, fmt, args); - if (retval) - goto error; - - retval = device_add(dev); - if (retval) - goto error; - - return dev; - -error: - put_device(dev); - return ERR_PTR(retval); -} - static inline struct device * device_create_with_groups(struct class *class, struct device *parent, dev_t devt, void *drvdata, @@ -506,9 +471,6 @@ device_del(struct device *dev) } } -struct device *device_create(struct class *class, struct device *parent, - dev_t devt, void *drvdata, const char *fmt, ...); - static inline void device_destroy(struct class *class, dev_t devt) { diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c index 88bc1dd355ac..ed8b8d050e92 100644 --- a/sys/compat/linuxkpi/common/src/linux_compat.c +++ b/sys/compat/linuxkpi/common/src/linux_compat.c @@ -454,6 +454,47 @@ device_create(struct class *class, struct device *parent, dev_t devt, return (dev); } +struct device * +device_create_groups_vargs(struct class *class, struct device *parent, + dev_t devt, void *drvdata, const struct attribute_group **groups, + const char *fmt, va_list args) +{ + struct device *dev = NULL; + int retval = -ENODEV; + + if (class == NULL || IS_ERR(class)) + goto error; + + dev = kzalloc(sizeof(*dev), GFP_KERNEL); + if (!dev) { + retval = -ENOMEM; + goto error; + } + + dev->devt = devt; + dev->class = class; + dev->parent = parent; + dev->groups = groups; + dev->release = device_create_release; + /* device_initialize() needs the class and parent to be set */ + device_initialize(dev); + dev_set_drvdata(dev, drvdata); + + retval = kobject_set_name_vargs(&dev->kobj, fmt, args); + if (retval) + goto error; + + retval = device_add(dev); + if (retval) + goto error; + + return dev; + +error: + put_device(dev); + return ERR_PTR(retval); +} + int kobject_init_and_add(struct kobject *kobj, const struct kobj_type *ktype, struct kobject *parent, const char *fmt, ...)