Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp616952ybl; Mon, 12 Aug 2019 23:27:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqwvTY59YSJlex69YveACv2FFXNvUwR3zk+nUnB1dQIi2A91srU90tQTrahes+Ja3nxOKX4c X-Received: by 2002:a17:90a:9386:: with SMTP id q6mr740968pjo.81.1565677625344; Mon, 12 Aug 2019 23:27:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565677625; cv=none; d=google.com; s=arc-20160816; b=gcCE7DV7U4txx85Sr585lKpgrGqx/fJN7SnKyXJNj9G935hgfZzMjEancIY0q7xniZ WtqRxJ+7v2HrFQ+1XPA6aoMnV8qwW4tUmju9UIPz1HRD7018WJMVZrYDqyVNjcSbK/8V 8RmoZ3Ol7jCnu72hBMgrHcERVxaJnO6YmpzQ7igwIrLbg1a3QF06Pvt1Bmu8UQnvXnEb uESsdQTnB2hpBsBfcVPBEVAVLy//DB+mbZXNjsya4FA4omKfQSCA/lNmSlr7fL6sHuKm CGJ3OfhHcfJ23YeakM0QAFj+R0ve6Ettgr799PWhkj1crwdJ8UOG2hf2TOUr4K4Ck9t9 VGNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=7iFXG4fiBwsZgVdwzuF+nShmu7caLTH7P/zHFoLjZ5w=; b=cA1xle7Sc3tE60v17zqcMjEXVHHCf1k85yX+5QRj1K6KtDoupjavSaqeS4qJME0Gp2 f3O6QnXZp2fDfhiwkeoQonTHHXnpV6VzQY/A/NlqM75oSBrhWq479L1W521NkDsckSBA uzeg6+u4Rol23zEU2pt//5vGFVgRQQ4FaMNJbCEUkuIDDxE4bS9hSIovz4w038Sov/cq uv1uf2DFZ1vdLrV1rghO3bxLDBs5Zury3Nc8Nv+RVIdwcYwFW17o6gQ9J0ubsbIjz+Xc 9zDDh7rag4IbBj6IeAZGG5ZOiI6T8fJbEdW6b2bxaXqmpaEb79QOIY2dVeIH+0Q+Y5m5 fWMQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e129si65233935pgc.344.2019.08.12.23.26.49; Mon, 12 Aug 2019 23:27:05 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726516AbfHMGAS convert rfc822-to-8bit (ORCPT + 99 others); Tue, 13 Aug 2019 02:00:18 -0400 Received: from smtprelay.restena.lu ([158.64.1.62]:35712 "EHLO smtprelay.restena.lu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725815AbfHMGAS (ORCPT ); Tue, 13 Aug 2019 02:00:18 -0400 X-Greylist: delayed 371 seconds by postgrey-1.27 at vger.kernel.org; Tue, 13 Aug 2019 02:00:17 EDT Received: from pluto.restena.lu (pluto.restena.lu [IPv6:2001:a18:1:10::156]) by smtprelay.restena.lu (Postfix) with ESMTPS id 2C46440CEB; Tue, 13 Aug 2019 07:54:00 +0200 (CEST) Date: Tue, 13 Aug 2019 07:53:58 +0200 From: Bruno =?UTF-8?B?UHLDqW1vbnQ=?= To: Benjamin Tissoires Cc: Jonathan Cameron , Srinivas Pandruvada , Ping Cheng , Jason Gerecke , Jiri Kosina , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] HID: do not call hid_set_drvdata(hdev, NULL) in drivers Message-ID: <20190813075358.2a3cbfbd@pluto.restena.lu> In-Reply-To: <20190812162740.15898-2-benjamin.tissoires@redhat.com> References: <20190812162740.15898-1-benjamin.tissoires@redhat.com> <20190812162740.15898-2-benjamin.tissoires@redhat.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 12 Aug 2019 18:27:39 +0200 Benjamin Tissoires wrote: > This is a common pattern in the HID drivers to reset the drvdata. Some > do it properly, some do it only in case of failure. > > But, this is actually already handled by driver core, so there is no need > to do it manually. > > Signed-off-by: Benjamin Tissoires For hid-picolcd_core.c: Acked-by: Bruno Prémont > --- > drivers/hid/hid-cougar.c | 6 ++---- > drivers/hid/hid-gfrm.c | 7 ------- > drivers/hid/hid-lenovo.c | 2 -- > drivers/hid/hid-picolcd_core.c | 7 +------ > drivers/hid/hid-sensor-hub.c | 1 - > 5 files changed, 3 insertions(+), 20 deletions(-) > > diff --git a/drivers/hid/hid-cougar.c b/drivers/hid/hid-cougar.c > index e0bb7b34f3a4..4ff3bc1d25e2 100644 > --- a/drivers/hid/hid-cougar.c > +++ b/drivers/hid/hid-cougar.c > @@ -207,7 +207,7 @@ static int cougar_probe(struct hid_device *hdev, > error = hid_parse(hdev); > if (error) { > hid_err(hdev, "parse failed\n"); > - goto fail; > + return error; > } > > if (hdev->collection->usage == COUGAR_VENDOR_USAGE) { > @@ -219,7 +219,7 @@ static int cougar_probe(struct hid_device *hdev, > error = hid_hw_start(hdev, connect_mask); > if (error) { > hid_err(hdev, "hw start failed\n"); > - goto fail; > + return error; > } > > error = cougar_bind_shared_data(hdev, cougar); > @@ -249,8 +249,6 @@ static int cougar_probe(struct hid_device *hdev, > > fail_stop_and_cleanup: > hid_hw_stop(hdev); > -fail: > - hid_set_drvdata(hdev, NULL); > return error; > } > > diff --git a/drivers/hid/hid-gfrm.c b/drivers/hid/hid-gfrm.c > index 86c317320bf2..699186ff2349 100644 > --- a/drivers/hid/hid-gfrm.c > +++ b/drivers/hid/hid-gfrm.c > @@ -123,12 +123,6 @@ static int gfrm_probe(struct hid_device *hdev, const struct hid_device_id *id) > return ret; > } > > -static void gfrm_remove(struct hid_device *hdev) > -{ > - hid_hw_stop(hdev); > - hid_set_drvdata(hdev, NULL); > -} > - > static const struct hid_device_id gfrm_devices[] = { > { HID_BLUETOOTH_DEVICE(0x58, 0x2000), > .driver_data = GFRM100 }, > @@ -142,7 +136,6 @@ static struct hid_driver gfrm_driver = { > .name = "gfrm", > .id_table = gfrm_devices, > .probe = gfrm_probe, > - .remove = gfrm_remove, > .input_mapping = gfrm_input_mapping, > .raw_event = gfrm_raw_event, > .input_configured = gfrm_input_configured, > diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c > index 364bc7f11d9d..96fa2a2c2cd3 100644 > --- a/drivers/hid/hid-lenovo.c > +++ b/drivers/hid/hid-lenovo.c > @@ -866,8 +866,6 @@ static void lenovo_remove_tpkbd(struct hid_device *hdev) > > led_classdev_unregister(&data_pointer->led_micmute); > led_classdev_unregister(&data_pointer->led_mute); > - > - hid_set_drvdata(hdev, NULL); > } > > static void lenovo_remove_cptkbd(struct hid_device *hdev) > diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c > index 5f7a39a5d4af..1b5c63241af0 100644 > --- a/drivers/hid/hid-picolcd_core.c > +++ b/drivers/hid/hid-picolcd_core.c > @@ -534,8 +534,7 @@ static int picolcd_probe(struct hid_device *hdev, > data = kzalloc(sizeof(struct picolcd_data), GFP_KERNEL); > if (data == NULL) { > hid_err(hdev, "can't allocate space for Minibox PicoLCD device data\n"); > - error = -ENOMEM; > - goto err_no_cleanup; > + return -ENOMEM; > } > > spin_lock_init(&data->lock); > @@ -597,9 +596,6 @@ static int picolcd_probe(struct hid_device *hdev, > hid_hw_stop(hdev); > err_cleanup_data: > kfree(data); > -err_no_cleanup: > - hid_set_drvdata(hdev, NULL); > - > return error; > } > > @@ -635,7 +631,6 @@ static void picolcd_remove(struct hid_device *hdev) > picolcd_exit_cir(data); > picolcd_exit_keys(data); > > - hid_set_drvdata(hdev, NULL); > mutex_destroy(&data->mutex); > /* Finally, clean up the picolcd data itself */ > kfree(data); > diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c > index be92a6f79687..94c7398b5c27 100644 > --- a/drivers/hid/hid-sensor-hub.c > +++ b/drivers/hid/hid-sensor-hub.c > @@ -742,7 +742,6 @@ static void sensor_hub_remove(struct hid_device *hdev) > } > spin_unlock_irqrestore(&data->lock, flags); > mfd_remove_devices(&hdev->dev); > - hid_set_drvdata(hdev, NULL); > mutex_destroy(&data->mutex); > } >