Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp619310img; Fri, 22 Mar 2019 05:17:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqwJmfR7RzXjlzoNwvlgOQpkBRNeXsFe6mPneEV2NjKBwc1MeOen9YmuVyhmCJ1n8Mmqzr// X-Received: by 2002:a17:902:bb0c:: with SMTP id l12mr9352007pls.108.1553257030246; Fri, 22 Mar 2019 05:17:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553257030; cv=none; d=google.com; s=arc-20160816; b=axQNjM7dAsFuUR1OhjR42HtGb1VqlXNkbmpa4nNBLQx8zHH95cyTugi3PFhpVrpIPG /D0sx7Y/+YoOtvsC0PJYJjRJ2qQM440qe6Y+KwnNyoID2jBdJW8Lopa4T+5bmX+N0Cr4 avvAyQKE8EFF78Q2uS4zQ+50LQaPLpRTGe3Y0OvT+wk4eFqX9p7kMKeFDpIqgpt90BNV ZXfgYCkB420p75vtgw0xfBFlJGtvPrPuIvwUYLHbfWOtlvRQiCOQ1VREa79Ja++k2RgZ IZ0Zch1JwkoHTuHf5MtxT2L+cw/3ooofJDZ6MX3vUYyOk/idkQUGK9nDYyPW5XZpimlt F+eQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=wzA8Y9HmO0E38IJjTn+Q/QeJJ/7EojJgEa0yLec8ATg=; b=CIAIIGa1hL3Q8rpn29c5cRSydUgU6Ow97N5Qehd9IZw7bXKr013jjsq2iBUYb4bhRY dwwmm08mPkO+1bNdV+MZjXyxLTZ//v/aaD+T9mbAqf5Cs++fzqmiv5SGi23GsvN7IIUK pD5B4Ys7cN4nEBDZTQprMhWoztNnACa7T1SqHrGKZGFHgpZ733xCH8nhr393nfAPMmxs VrI0Gauce08AbX6w6n4ib4WbQR+/TemjM/0RNZPnacmjMaKUQ/cLcWryHgnlVr3bMn/b TDqIFSLoXtf9qghHGovYO28cHH3VHEE6KRxT7kn12s48qmP3gg6CDhGZ/kKW4d4ksGUx yHrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=u7Wpn+kr; 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 i3si6121990pld.129.2019.03.22.05.16.55; Fri, 22 Mar 2019 05:17:10 -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=@kernel.org header.s=default header.b=u7Wpn+kr; 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 S2390167AbfCVMQM (ORCPT + 99 others); Fri, 22 Mar 2019 08:16:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:54788 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389935AbfCVMQK (ORCPT ); Fri, 22 Mar 2019 08:16:10 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4E8A721A4A; Fri, 22 Mar 2019 12:16:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553256969; bh=4xNEiSIP37UZHdxg9qu4vGK86PvKtLy/wcgm/bv1T4o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u7Wpn+krW2n7iMxtYxj2oIa5vIQhdP3Q0F719g+zABqYYPes259OxNdchiMj51Y7X svNFoxG8Vd8lSaJ48HShtDRCyZ/zSUREIGyOzxyjSVF9WhHx2RESA9fDsCGGe5JXgc ltVUUryqMEdqaslHcNb/cu7gYL01gmNEvXq2smTA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ferry Toth , Andy Shevchenko , Mika Westerberg , "Rafael J. Wysocki" Subject: [PATCH 5.0 061/238] ACPI / device_sysfs: Avoid OF modalias creation for removed device Date: Fri, 22 Mar 2019 12:14:40 +0100 Message-Id: <20190322111302.155621613@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111258.383569278@linuxfoundation.org> References: <20190322111258.383569278@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andy Shevchenko commit f16eb8a4b096514ac06fb25bf599dcc792899b3d upstream. If SSDT overlay is loaded via ConfigFS and then unloaded the device, we would like to have OF modalias for, already gone. Thus, acpi_get_name() returns no allocated buffer for such case and kernel crashes afterwards: ACPI: Host-directed Dynamic ACPI Table Unload ads7950 spi-PRP0001:00: Dropping the link to regulator.0 BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 #PF error: [normal kernel read fault] PGD 80000000070d6067 P4D 80000000070d6067 PUD 70d0067 PMD 0 Oops: 0000 [#1] SMP PTI CPU: 0 PID: 40 Comm: kworker/u4:2 Not tainted 5.0.0+ #96 Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48 Workqueue: kacpi_hotplug acpi_device_del_work_fn RIP: 0010:create_of_modalias.isra.1+0x4c/0x150 Code: 00 00 48 89 44 24 18 31 c0 48 8d 54 24 08 48 c7 44 24 10 00 00 00 00 48 c7 44 24 08 ff ff ff ff e8 7a b0 03 00 48 8b 4c 24 10 <0f> b6 01 84 c0 74 27 48 c7 c7 00 09 f4 a5 0f b6 f0 8d 50 20 f6 04 RSP: 0000:ffffa51040297c10 EFLAGS: 00010246 RAX: 0000000000001001 RBX: 0000000000000785 RCX: 0000000000000000 RDX: 0000000000001001 RSI: 0000000000000286 RDI: ffffa2163dc042e0 RBP: ffffa216062b1196 R08: 0000000000001001 R09: ffffa21639873000 R10: ffffffffa606761d R11: 0000000000000001 R12: ffffa21639873218 R13: ffffa2163deb5060 R14: ffffa216063d1010 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffffa2163e000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 0000000007114000 CR4: 00000000001006f0 Call Trace: __acpi_device_uevent_modalias+0xb0/0x100 spi_uevent+0xd/0x40 ... In order to fix above let create_of_modalias() check the status returned by acpi_get_name() and bail out in case of failure. Fixes: 8765c5ba1949 ("ACPI / scan: Rework modalias creation when "compatible" is present") Link: https://bugzilla.kernel.org/show_bug.cgi?id=201381 Reported-by: Ferry Toth Tested-by: Ferry Toth Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Cc: 4.1+ # 4.1+ Signed-off-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman --- drivers/acpi/device_sysfs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --- a/drivers/acpi/device_sysfs.c +++ b/drivers/acpi/device_sysfs.c @@ -202,11 +202,15 @@ static int create_of_modalias(struct acp { struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER }; const union acpi_object *of_compatible, *obj; + acpi_status status; int len, count; int i, nval; char *c; - acpi_get_name(acpi_dev->handle, ACPI_SINGLE_NAME, &buf); + status = acpi_get_name(acpi_dev->handle, ACPI_SINGLE_NAME, &buf); + if (ACPI_FAILURE(status)) + return -ENODEV; + /* DT strings are all in lower case */ for (c = buf.pointer; *c != '\0'; c++) *c = tolower(*c);