From patchwork Sun Jun 26 05:38:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Boyd X-Patchwork-Id: 70850 Delivered-To: patch@linaro.org Received: by 10.140.28.4 with SMTP id 4csp526643qgy; Sat, 25 Jun 2016 22:38:42 -0700 (PDT) X-Received: by 10.66.227.234 with SMTP id sd10mr22119329pac.115.1466919522562; Sat, 25 Jun 2016 22:38:42 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e71si17675379pfg.248.2016.06.25.22.38.41; Sat, 25 Jun 2016 22:38:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751947AbcFZFiZ (ORCPT + 30 others); Sun, 26 Jun 2016 01:38:25 -0400 Received: from mail-pa0-f50.google.com ([209.85.220.50]:36776 "EHLO mail-pa0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751733AbcFZFiY (ORCPT ); Sun, 26 Jun 2016 01:38:24 -0400 Received: by mail-pa0-f50.google.com with SMTP id wo6so49084798pac.3 for ; Sat, 25 Jun 2016 22:38:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=tz6FFobcwaLEBCwur57lWwMpUfpyIY8my4NMm+sbtc4=; b=KaHfthlZsaFNIe2zdH4azogE7ijAhM/y9mYAgKgvsv2+0+Pu463kY5JF6Qh11uzB6V vk+JytJ6OVeFXPy5WkCThP9BACOv/WgEeSHOGfhHXmxMk1zC7XxixDzk/GYU3g/21hwy a53kbrjRgOnxulgWPLoa/5rdU04J+mXIX6jEU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=tz6FFobcwaLEBCwur57lWwMpUfpyIY8my4NMm+sbtc4=; b=FZFv1jtdl2ZGn4IbzClp4JE3LilCF545qk94elMbglZCzYCCB+cdiCZMhPgko9KQGB cN5EijpfNydZQ1ZstLIhE8BAK3Y+jzbdVV6hPNJOkhgHYmvpPBQkECYi8R25hdjfoCrL w6hRl43XcO5xNfevrlPYGkh/9N7+mHltzyJbD7bRPMufvGiLx2StCQRhQFeZMgmNwmJf QFuUWBWHPcrgAv4TX0WDDNc35JKp5cgENq87RhKSoxX4kDVAiqRvjalbGX0pItBNDshR pDQ4SlCrvan+ZjIXyt4oWyUvdd8DilxOPSd2jQlwGSuYkU5omMQPoOQ+KIItPGNuxpH3 vsAg== X-Gm-Message-State: ALyK8tKZbEgjo8POQtfmE4jHrH+xI06YrEi/J8GyIAu9SAdRaqE6FYZxoj52GR7hq5J7piRU X-Received: by 10.66.189.167 with SMTP id gj7mr22236842pac.0.1466919503319; Sat, 25 Jun 2016 22:38:23 -0700 (PDT) Received: from localhost.localdomain (ip68-101-172-78.sd.sd.cox.net. [68.101.172.78]) by smtp.gmail.com with ESMTPSA id 186sm2973192pfg.39.2016.06.25.22.38.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 25 Jun 2016 22:38:22 -0700 (PDT) From: Stephen Boyd To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Heikki Krogerus Subject: [PATCH] usb: ulpi: Automatically set driver::owner with ulpi_driver_register() Date: Sat, 25 Jun 2016 22:38:21 -0700 Message-Id: <20160626053821.10577-1-stephen.boyd@linaro.org> X-Mailer: git-send-email 2.9.0.rc2.8.ga28705d Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let's follow other driver registration functions and automatically set the driver's owner member to THIS_MODULE when ulpi_driver_register() is called. This allows ulpi driver writers to forget about this boiler plate detail and avoids common bugs in the process. Cc: Heikki Krogerus Signed-off-by: Stephen Boyd --- drivers/usb/common/ulpi.c | 5 +++-- include/linux/ulpi/driver.h | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) -- 2.9.0.rc2.8.ga28705d diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c index a6b2a150b176..4e15e2b9f4b4 100644 --- a/drivers/usb/common/ulpi.c +++ b/drivers/usb/common/ulpi.c @@ -148,16 +148,17 @@ static struct device_type ulpi_dev_type = { * * Registers a driver with the ULPI bus. */ -int ulpi_register_driver(struct ulpi_driver *drv) +int __ulpi_register_driver(struct ulpi_driver *drv, struct module *module) { if (!drv->probe) return -EINVAL; + drv->driver.owner = module; drv->driver.bus = &ulpi_bus; return driver_register(&drv->driver); } -EXPORT_SYMBOL_GPL(ulpi_register_driver); +EXPORT_SYMBOL_GPL(__ulpi_register_driver); /** * ulpi_unregister_driver - unregister a driver with the ULPI bus diff --git a/include/linux/ulpi/driver.h b/include/linux/ulpi/driver.h index 388f6e08b9d4..80b36ca12e80 100644 --- a/include/linux/ulpi/driver.h +++ b/include/linux/ulpi/driver.h @@ -47,7 +47,11 @@ struct ulpi_driver { #define to_ulpi_driver(d) container_of(d, struct ulpi_driver, driver) -int ulpi_register_driver(struct ulpi_driver *drv); +/* + * use a macro to avoid include chaining to get THIS_MODULE + */ +#define ulpi_register_driver(drv) __ulpi_register_driver(drv, THIS_MODULE) +int __ulpi_register_driver(struct ulpi_driver *drv, struct module *module); void ulpi_unregister_driver(struct ulpi_driver *drv); #define module_ulpi_driver(__ulpi_driver) \