Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4195632pxj; Tue, 11 May 2021 23:25:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTpx3e/DcJtqv6qsXextABJRAfSGkz6z3ieF1703ESTH3ehYC8LAS/GsjQOsdt1KvHwBZf X-Received: by 2002:a05:6638:b14:: with SMTP id a20mr30810306jab.132.1620800717880; Tue, 11 May 2021 23:25:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620800717; cv=none; d=google.com; s=arc-20160816; b=YRtvr1zhdGEtqHxuZ3U4v+/0shTnd1RkEHNKmQqbvgca85gxDtyqGNKe9PNlXRruL1 cQCrmlWzsC7mARHdtfpRisYaqmUVE+JheWGkG955kPl2K8QEh+8my+1ms9Z1UVq3Qn2M plGnsdy+hGvS2BnCyD9B4L4cUwXJwfrhMcETrRvJmnGcewhcJstxZaLZP7RBHi0Ntd/H d4hohUQHaklRUShRHMtKXCOAw+qIpf+ipbuoONSw9ygiPMjDLYnqJdfdEKuKPL77qDid e16j1yTurIvXxHelVLXGfBrAhAf31ZuVltMctQztbUW3sHVA6l5aoXK0D6NYBqMVbBmO jvZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=rxuv8mn3q7uztmkliVcHWQbVUVhgsYSwX5j6x7eD34k=; b=RFBdilqH63MJgIaZX75DlWd0w+q4DrI37IgRZxkTBqt/wZsvAuCaBIn/V2aAgGSvuS aSQrjpo4bsowGFck44pSyHJQjyvYTdd2iR6sJncc/u3xou3vRiutSqo+OeULasuSO0rv igRl/nCc1Y7iO+XouVrXH/1mR09aaN0sn2DIZlt/k3xoNwNN0l1HgjjxzJkDppttytQi 3qFzzmLjiECJdpTPh8adrgc3WBh5FIVSl24iZSIZbJvRt8DcrqDxG10TSfeYJeEm0Cjh UlCGL0krz69w9/jAc6lSpi/cSeMSGmlhG5AL7GT051LTXIRQP76CwVF57A2WULajFcNz HgKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=1b1EuxAw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o8si21712728ilu.133.2021.05.11.23.25.05; Tue, 11 May 2021 23:25:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=1b1EuxAw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229654AbhELGZj (ORCPT + 99 others); Wed, 12 May 2021 02:25:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:48066 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229580AbhELGZi (ORCPT ); Wed, 12 May 2021 02:25:38 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8950561925; Wed, 12 May 2021 06:24:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620800671; bh=3TcRa33K/NKOSBtkiULfYg595iLod8JVM7DZRu7oqcY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=1b1EuxAwFNg+ROt+RhwezcnnwykVsdNNunrVHlHeFBC98NCQ+1D5v2AzvacYUcKLa Q+akqB7gFspXDaXRzq7wOpWSQuiv8+1/lV0QgpntwudFx5AC3B4mev4gTTrD9V0Aoa WLy+HdgqjhRsqVcJZYRA7Vk/KrfZsrYYRCigaWRY= Date: Wed, 12 May 2021 08:24:28 +0200 From: Greg Kroah-Hartman To: Tong Zhang Cc: Arnd Bergmann , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge Message-ID: References: <20210511212937.1269191-1-ztong0001@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210511212937.1269191-1-ztong0001@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 11, 2021 at 05:29:38PM -0400, Tong Zhang wrote: > Device might be attached to root complex directly. In this case, > bus->self(bridge) will be NULL, so we'd better check before use it > > [ 1.246492] BUG: kernel NULL pointer dereference, address: 00000000000000c0 > [ 1.248731] RIP: 0010:pci_read_config_byte+0x5/0x40 > [ 1.253998] Call Trace: > [ 1.254131] ? alcor_pci_find_cap_offset.isra.0+0x3a/0x100 [alcor_pci] > [ 1.254476] alcor_pci_probe+0x169/0x2d5 [alcor_pci] > > Signed-off-by: Tong Zhang > Co-Developed-by: Greg Kroah-Hartman > --- > v2: check before calling alcor_pci_find_cap_offset() > > drivers/misc/cardreader/alcor_pci.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/misc/cardreader/alcor_pci.c b/drivers/misc/cardreader/alcor_pci.c > index cd402c89189e..175c6b06f7aa 100644 > --- a/drivers/misc/cardreader/alcor_pci.c > +++ b/drivers/misc/cardreader/alcor_pci.c > @@ -139,6 +139,9 @@ static void alcor_pci_init_check_aspm(struct alcor_pci_priv *priv) > u32 val32; > > priv->pdev_cap_off = alcor_pci_find_cap_offset(priv, priv->pdev); > + > + if (!priv->parent_pdev) > + return; That feels wrong, you just prevented all of the remaining logic in this call to not be set up. Did you test this and did the driver and device still work properly if it hits this check? thanks, greg k-h