Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp587474img; Fri, 22 Mar 2019 04:37:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqzWp8pZiAwTemvyY+7ErgazemOLI5LlSTZZenF15aU27Lneb2ULzTuUFBhmvjSfPRhC3DDg X-Received: by 2002:a63:cd06:: with SMTP id i6mr8562931pgg.267.1553254637170; Fri, 22 Mar 2019 04:37:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553254637; cv=none; d=google.com; s=arc-20160816; b=zcnBoEoEWwvmJpxNTIB8SCd4TWrVCDV9il88CAbDT2B5gdiFN8phAHQsgxQ3HKaCdJ Vu9azLybZhzYrTR3DgDLB7uMc0QpFqZIPGQ8nYsFrgxz5gCl7OooIJQgjFPtJ/cEuN0B KUJhFamZJu0QEvslZXGbVTb4dfv/z6rL44bTqHFM6dP1rqd0dKrMlk/NNiotCkRGTQkZ VTaxwz87GgnaujG16jYcE7xHCdTNyJEQqsGGtZacxpReSQZI84r8RiUkDgqBM1NYmRgt sa47uPvWQH7FsUtFGEiR5FlWY1xNd9bJbYTNEk1zHnFPKNGsEqqi63hWzzgc3BYF32mB nAng== 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=yoSrhK3DmGClNmYnFEjsHUlk9bYgjwVWSBp8CBJ4inw=; b=aUui/eSze9f9w0BydGwd1YIO0IC0aOMAf6evMFx41sYAenfJ2GX0BSe3wIgrZAZ/mD ygyNX7tM54AzJ+fn+9lWwKOLPg0T4etIt3ClB30SxZ9lvYtCt67Mi06LWh6uDMWDYAJ7 MGnk7aGd9ZmfVPgQ4wMMQ1z+Q9d/WyPijzUQXBM+iOLGhdiD7vyFbZtCREoHCx7YLnCK vu65Y/s8ikzhmHSdOSCUpyoQy4tuOt0ZVkKvPy9ZTBh6/au4JaBqeZSsE4E2ha5vabxd N5/oB4Si2SRTCvyOQBmv5Vw11cAnzUEP1C/Eczzqiy8/aI/HevH1fNN/U+WnINRqs84H brBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wqXpnmWW; 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 76si3413796pge.555.2019.03.22.04.37.02; Fri, 22 Mar 2019 04:37:17 -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=wqXpnmWW; 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 S1730709AbfCVLg2 (ORCPT + 99 others); Fri, 22 Mar 2019 07:36:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:37764 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729848AbfCVLgZ (ORCPT ); Fri, 22 Mar 2019 07:36:25 -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 3B29C2082C; Fri, 22 Mar 2019 11:36:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553254584; bh=dq9HuEGGRW/3T/YRfbRwoBEfio/7b7suao690qwV8LE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wqXpnmWWCSKlMyT9DVBcZB+mgGHOk4isFK3dsxXIB0xqMrSrmqPgGXWyGD9CDivId HcW42K+0ohZr554gNpkEgMN38sG5vD6vUkgTc52WKwh+0FIuTf8khESGkDOEfi3aAF qLAkp9LuwJc4y2NDuWTEnAZPPy0B8o2XvXpMMH0A= 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 4.4 181/230] ACPI / device_sysfs: Avoid OF modalias creation for removed device Date: Fri, 22 Mar 2019 12:15:19 +0100 Message-Id: <20190322111249.480620240@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111236.796964179@linuxfoundation.org> References: <20190322111236.796964179@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 4.4-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);