All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.4 19/33] net: thunderx: fix NULL pointer dereference in nic_remove
Date: Wed,  5 Dec 2018 04:51:17 -0500	[thread overview]
Message-ID: <20181205095131.7685-19-sashal@kernel.org> (raw)
In-Reply-To: <20181205095131.7685-1-sashal@kernel.org>

From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>

[ Upstream commit 24a6d2dd263bc910de018c78d1148b3e33b94512 ]

Fix a possible NULL pointer dereference in nic_remove routine
removing the nicpf module if nic_probe fails.
The issue can be triggered with the following reproducer:

$rmmod nicvf
$rmmod nicpf

[  521.412008] Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000000000000014
[  521.422777] Mem abort info:
[  521.425561]   ESR = 0x96000004
[  521.428624]   Exception class = DABT (current EL), IL = 32 bits
[  521.434535]   SET = 0, FnV = 0
[  521.437579]   EA = 0, S1PTW = 0
[  521.440730] Data abort info:
[  521.443603]   ISV = 0, ISS = 0x00000004
[  521.447431]   CM = 0, WnR = 0
[  521.450417] user pgtable: 4k pages, 48-bit VAs, pgdp = 0000000072a3da42
[  521.457022] [0000000000000014] pgd=0000000000000000
[  521.461916] Internal error: Oops: 96000004 [#1] SMP
[  521.511801] Hardware name: GIGABYTE H270-T70/MT70-HD0, BIOS T49 02/02/2018
[  521.518664] pstate: 80400005 (Nzcv daif +PAN -UAO)
[  521.523451] pc : nic_remove+0x24/0x88 [nicpf]
[  521.527808] lr : pci_device_remove+0x48/0xd8
[  521.532066] sp : ffff000013433cc0
[  521.535370] x29: ffff000013433cc0 x28: ffff810f6ac50000
[  521.540672] x27: 0000000000000000 x26: 0000000000000000
[  521.545974] x25: 0000000056000000 x24: 0000000000000015
[  521.551274] x23: ffff8007ff89a110 x22: ffff000001667070
[  521.556576] x21: ffff8007ffb170b0 x20: ffff8007ffb17000
[  521.561877] x19: 0000000000000000 x18: 0000000000000025
[  521.567178] x17: 0000000000000000 x16: 000000000000010ffc33ff98 x8 : 0000000000000000
[  521.593683] x7 : 0000000000000000 x6 : 0000000000000001
[  521.598983] x5 : 0000000000000002 x4 : 0000000000000003
[  521.604284] x3 : ffff8007ffb17184 x2 : ffff8007ffb17184
[  521.609585] x1 : ffff000001662118 x0 : ffff000008557be0
[  521.614887] Process rmmod (pid: 1897, stack limit = 0x00000000859535c3)
[  521.621490] Call trace:
[  521.623928]  nic_remove+0x24/0x88 [nicpf]
[  521.627927]  pci_device_remove+0x48/0xd8
[  521.631847]  device_release_driver_internal+0x1b0/0x248
[  521.637062]  driver_detach+0x50/0xc0
[  521.640628]  bus_remove_driver+0x60/0x100
[  521.644627]  driver_unregister+0x34/0x60
[  521.648538]  pci_unregister_driver+0x24/0xd8
[  521.652798]  nic_cleanup_module+0x14/0x111c [nicpf]
[  521.657672]  __arm64_sys_delete_module+0x150/0x218
[  521.662460]  el0_svc_handler+0x94/0x110
[  521.666287]  el0_svc+0x8/0xc
[  521.669160] Code: aa1e03e0 9102c295 d503201f f9404eb3 (b9401660)

Fixes: 4863dea3fab0 ("net: Adding support for Cavium ThunderX network controller")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/cavium/thunder/nic_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/cavium/thunder/nic_main.c b/drivers/net/ethernet/cavium/thunder/nic_main.c
index 16baaafed26c..cbdeb54eab51 100644
--- a/drivers/net/ethernet/cavium/thunder/nic_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nic_main.c
@@ -1090,6 +1090,9 @@ static void nic_remove(struct pci_dev *pdev)
 {
 	struct nicpf *nic = pci_get_drvdata(pdev);
 
+	if (!nic)
+		return;
+
 	if (nic->flags & NIC_SRIOV_ENABLED)
 		pci_disable_sriov(pdev);
 
-- 
2.17.1


  parent reply	other threads:[~2018-12-05  9:53 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05  9:50 [PATCH AUTOSEL 4.4 01/33] ARM: OMAP2+: prm44xx: Fix section annotation on omap44xx_prm_enable_io_wakeup Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 02/33] ARM: OMAP1: ams-delta: Fix possible use of uninitialized field Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 03/33] sysv: return 'err' instead of 0 in __sysv_write_inode Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 04/33] s390/cpum_cf: Reject request for sampling in event initialization Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 05/33] hwmon: (ina2xx) Fix current value calculation Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 06/33] ASoC: dapm: Recalculate audio map forcely when card instantiated Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 07/33] hwmon: (w83795) temp4_type has writable permission Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 08/33] Btrfs: send, fix infinite loop due to directory rename dependencies Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 09/33] uprobes: Fix handle_swbp() vs. unregister() + register() race once more Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 10/33] ASoC: omap-mcpdm: Add pm_qos handling to avoid under/overruns with CPU_IDLE Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 11/33] ASoC: omap-dmic: Add pm_qos handling to avoid overruns " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 12/33] exportfs: do not read dentry after free Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 13/33] bpf: fix check of allowed specifiers in bpf_trace_printk Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 14/33] USB: omap_udc: use devm_request_irq() Sasha Levin
2018-12-05  9:51   ` [AUTOSEL,4.4,14/33] " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 15/33] USB: omap_udc: fix crashes on probe error and module removal Sasha Levin
2018-12-05  9:51   ` [AUTOSEL,4.4,15/33] " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 16/33] USB: omap_udc: fix omap_udc_start() on 15xx machines Sasha Levin
2018-12-05  9:51   ` [AUTOSEL,4.4,16/33] " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 17/33] USB: omap_udc: fix USB gadget functionality on Palm Tungsten E Sasha Levin
2018-12-05  9:51   ` [AUTOSEL,4.4,17/33] " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 18/33] KVM: x86: fix empty-body warnings Sasha Levin
2018-12-05  9:51 ` Sasha Levin [this message]
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 20/33] ixgbe: recognize 1000BaseLX SFP modules as 1Gbps Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 21/33] rapidio/rionet: do not free skb before reading its length Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 22/33] net: hisilicon: remove unexpected free_netdev Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 23/33] s390/qeth: fix length check in SNMP processing Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 24/33] drm/ast: fixed reading monitor EDID not stable issue Sasha Levin
2018-12-05  9:51   ` Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 25/33] xen: xlate_mmu: add missing header to fix 'W=1' warning Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 26/33] fscache: fix race between enablement and dropping of object Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 27/33] fscache, cachefiles: remove redundant variable 'cache' Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 28/33] unifdef: use memcpy instead of strncpy Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 29/33] ocfs2: fix deadlock caused by ocfs2_defrag_extent() Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 30/33] hfs: do not free node before using Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 31/33] hfsplus: " Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 32/33] debugobjects: avoid recursive calls with kmemleak Sasha Levin
2018-12-05  9:51 ` [PATCH AUTOSEL 4.4 33/33] ocfs2: fix potential use after free Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181205095131.7685-19-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.bianconi@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.