From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932650AbdJ3LrD (ORCPT ); Mon, 30 Oct 2017 07:47:03 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:49794 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751811AbdJ3LrA (ORCPT ); Mon, 30 Oct 2017 07:47:00 -0400 X-Google-Smtp-Source: ABhQp+RJJoK0H5u0EIUITVS7Lkv6TpiCD4kh4UdzdN48kEq5FCvwGl0u3kWLBsXyDifpNtt55f3gRQ== Date: Mon, 30 Oct 2017 12:46:52 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Mario Limonciello Cc: dvhart@infradead.org, Andy Shevchenko , LKML , platform-driver-x86@vger.kernel.org, Andy Lutomirski , quasisec@google.com, rjw@rjwysocki.net, mjg59@google.com, hch@lst.de, Greg KH , Alan Cox Subject: Re: [PATCH v11 05/15] platform/x86: dell-wmi-descriptor: split WMI descriptor into it's own driver Message-ID: <20171030114652.kopuffflshq2ates@pali> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Friday 20 October 2017 12:40:20 Mario Limonciello wrote: > diff --git a/drivers/platform/x86/dell-wmi-descriptor.c b/drivers/platform/x86/dell-wmi-descriptor.c > new file mode 100644 > index 000000000000..3204c408e261 > --- /dev/null > +++ b/drivers/platform/x86/dell-wmi-descriptor.c This dell-wmi-descriptor.c looks good now! > diff --git a/drivers/platform/x86/dell-wmi-descriptor.h b/drivers/platform/x86/dell-wmi-descriptor.h > new file mode 100644 > index 000000000000..5f7b69c2c83a > --- /dev/null > +++ b/drivers/platform/x86/dell-wmi-descriptor.h > @@ -721,7 +652,9 @@ static int dell_wmi_events_set_enabled(bool enable) > static int dell_wmi_probe(struct wmi_device *wdev) > { > struct dell_wmi_priv *priv; > - int err; > + > + if (!wmi_has_guid(DELL_WMI_DESCRIPTOR_GUID)) > + return -ENODEV; > > priv = devm_kzalloc( > &wdev->dev, sizeof(struct dell_wmi_priv), GFP_KERNEL); > @@ -729,9 +662,8 @@ static int dell_wmi_probe(struct wmi_device *wdev) > return -ENOMEM; > dev_set_drvdata(&wdev->dev, priv); > > - err = dell_wmi_check_descriptor_buffer(wdev); > - if (err) > - return err; > + if (!dell_wmi_get_interface_version(&priv->interface_version)) > + return -EPROBE_DEFER; But here is still a problem. You added check that DELL_WMI_DESCRIPTOR_GUID exists in APCI table, but it does not mean that probe method of dell-wmi-descriptor cannot fail. With PROBE_DEFER, dell_wmi_probe function would be called later again and again, even when probing dell-wmi-descriptor failed and so dell-wmi in this case cannot work. > return dell_wmi_input_setup(wdev); > } -- Pali Rohár pali.rohar@gmail.com