From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3,1/5] ACPI / bus: Return error code from __acpi_match_device() in one case From: Andy Shevchenko Message-Id: <1518104647.22495.195.camel@linux.intel.com> Date: Thu, 08 Feb 2018 17:44:07 +0200 To: "Rafael J. Wysocki" Cc: dmaengine , "Rafael J . Wysocki" , ACPI Devel Maling List , Mika Westerberg , Sinan Kaya , Sakari Ailus , Vinod Koul List-ID: T24gVGh1LCAyMDE4LTAyLTA4IGF0IDE2OjE0ICswMTAwLCBSYWZhZWwgSi4gV3lzb2NraSB3cm90 ZToKPiBPbiBXZWQsIEZlYiA3LCAyMDE4IGF0IDM6NTYgUE0sIEFuZHkgU2hldmNoZW5rbwo+IDxh bmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gSW5zdGVhZCBvZiBw bGF5aW5nIHRyaWNrcyB3aXRoIGxhc3QgaW52YWxpZCBlbnRyeSwKPiA+IHJldHVybiBzaW1wbGUg LUVOT0RBVEEgZXJyb3IgY29kZSBjYXN0IHRvIHBvaW50ZXIuCj4gPiAKPiA+IEl0IHdvdWxkIGJl IGdvb2QgZm9yIGZ1dHVyZSBpbiBjYXNlIGNhbGxlciBwYXNzZXMgTlVMTCBwb2ludGVyIGZvcgo+ ID4gSUQgdGFibGUuIE1vcmVvdmVyLCBjYWxsZXIgY2FuIGNoZWNrIHRoZSBjb2RlIHRvIGJlIHN1 cmUgd2hhdAo+ID4gaGFwcGVuZWQKPiA+IGluc2lkZSBjYWxsZWUuCj4gPiAKPiA+IEZpeGVzOiAy YjljNjk4ZWZhNTggKCJBQ1BJIC8gc2NhbjogVGFrZSB0aGUgUFJQMDAwMSBwb3NpdGlvbiBpbiB0 aGUKPiA+IGxpc3Qgb2YgSURzIGludG8gYWNjb3VudCIpCj4gCj4gSSBzdGlsbCBkb24ndCB0aGlu ayB0aGUgRml4ZXM6IHRhZyBoZXJlIGlzIHZhbGlkICh0aGUgY29kZSB3b3JrcyBhcyBpcwo+IEFG QUlDUyksIGJ1dCBJIGNvdWxkIGRyb3AgaXQgd2hlbiBhcHBseWluZyB0aGUgcGF0Y2gganVzdCBm aW5lLiA6LSkKCk9LLgoKPiA+ICAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChBQ1BJX0RUX05B TUVTUEFDRV9ISUQsIGh3aWQtPmlkKQo+ID4gICAgICAgICAgICAgICAgICAgICAmJiBhY3BpX29m X21hdGNoX2RldmljZShkZXZpY2UsIG9mX2lkcykpCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gaWQ7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigt RU5PREFUQSk7Cj4gCj4gRG9lc24ndCB0aGUgY29tbWVudCBhYm92ZSBuZWVkIHRvIGJlIHVwZGF0 ZWQ/CgpXaWxsIGRvLgoKPiBBbHNvIHRoZSByZXR1cm4gdmFsdWUgaGVyZSBtZWFucyAic3VjY2Vz cyIsIHNvIHdoeSBpcyBhbiBlcnJvciB0aGUKPiByaWdodCBjaG9pY2U/CgpCZWNhdXNlIHdlIG5l ZWQgdG8gcmV0dXJuIHNvbWV0aGluZyB3aGljaCBpcyBub3QgTlVMTC4gTmF0dXJhbGx5IGZlZWxz CnRoZSBlcnJvciBjb2RlLCBlc3AuIEVOT0RBVEEsIGlzIHF1aXRlIHN1aXRhYmxlLiBXZSBpbmRl ZWQgaGF2ZSBubyBkYXRhCmluIHRoaXMgY2FzZSwgYW5kIGl0J3Mgbm90IGEgTlVMTCBjYXNlIChu b3QgZm91bmQgLyBub3QgbWF0Y2gpIOKAlCB3ZSBoYXZlCmEgbWF0Y2guCgoKPiBPdmVyYWxsLCB0 aGlzIHJlYWxseSBsb29rcyBsaWtlIGEgcHJlcGFyYXRpb24gZm9yIGEgZnV0dXJlIHBhdGNoLCBz bwo+IHdoeSBub3QganVzdCBzYXkgdGhhdCBzdHJhaWdodCBhd2F5IGluIHRoZSBjaGFuZ2Vsb2c/ CgpJdCdzIG5vdCBfanVzdF8gYSBwcmVwYXJhdGlvbiwgaXQgbWl0aWdhdGVzIHRoZSB0cmljayB1 c2VkIGluIG1lbnRpb25lZApieSBGaXhlcyB0YWcgY29tbWl0LgoKSSB3b3VsZCByYXRoZXIgdXBk YXRlIGNvbW1lbnQgaGVyZSwgYW5kIGFkZCBleHBsYW5hdGlvbiB0byB0aGUgY29tbWl0Cm1lc3Nh Z2UgdG8gYmUgc3VyZSBpdCBjb3ZlcnMgdHJpY2tzIG1pdGlnYXRpb24gYW5kIHByZXBhcmF0aW9u IHB1cnBvc2VzLgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: Re: [PATCH v3 1/5] ACPI / bus: Return error code from __acpi_match_device() in one case Date: Thu, 08 Feb 2018 17:44:07 +0200 Message-ID: <1518104647.22495.195.camel@linux.intel.com> References: <20180207145610.88434-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Return-path: Received: from mga05.intel.com ([192.55.52.43]:54801 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbeBHPoK (ORCPT ); Thu, 8 Feb 2018 10:44:10 -0500 In-Reply-To: Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: "Rafael J. Wysocki" Cc: dmaengine , "Rafael J . Wysocki" , ACPI Devel Maling List , Mika Westerberg , Sinan Kaya , Sakari Ailus , Vinod Koul On Thu, 2018-02-08 at 16:14 +0100, Rafael J. Wysocki wrote: > On Wed, Feb 7, 2018 at 3:56 PM, Andy Shevchenko > wrote: > > Instead of playing tricks with last invalid entry, > > return simple -ENODATA error code cast to pointer. > > > > It would be good for future in case caller passes NULL pointer for > > ID table. Moreover, caller can check the code to be sure what > > happened > > inside callee. > > > > Fixes: 2b9c698efa58 ("ACPI / scan: Take the PRP0001 position in the > > list of IDs into account") > > I still don't think the Fixes: tag here is valid (the code works as is > AFAICS), but I could drop it when applying the patch just fine. :-) OK. > > if (!strcmp(ACPI_DT_NAMESPACE_HID, hwid->id) > > && acpi_of_match_device(device, of_ids)) > > - return id; > > + return ERR_PTR(-ENODATA); > > Doesn't the comment above need to be updated? Will do. > Also the return value here means "success", so why is an error the > right choice? Because we need to return something which is not NULL. Naturally feels the error code, esp. ENODATA, is quite suitable. We indeed have no data in this case, and it's not a NULL case (not found / not match) — we have a match. > Overall, this really looks like a preparation for a future patch, so > why not just say that straight away in the changelog? It's not _just_ a preparation, it mitigates the trick used in mentioned by Fixes tag commit. I would rather update comment here, and add explanation to the commit message to be sure it covers tricks mitigation and preparation purposes. -- Andy Shevchenko Intel Finland Oy