mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>,
	Hannes Frederic Sowa <hannes@stressinduktion.org>,
	"David S. Miller" <davem@davemloft.net>
Subject: [ 090/102] ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup
Date: Thu,  8 Aug 2013 18:58:06 -0700	[thread overview]
Message-ID: <20130809015031.515966739@linuxfoundation.org> (raw)
In-Reply-To: <20130809015010.208118575@linuxfoundation.org>

3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hannes Frederic Sowa <hannes@stressinduktion.org>

[ Upstream commit 905a6f96a1b18e490a75f810d733ced93c39b0e5 ]

Otherwise we end up dereferencing the already freed net->ipv6.mrt pointer
which leads to a panic (from Srivatsa S. Bhat):

BUG: unable to handle kernel paging request at ffff882018552020
IP: [<ffffffffa0366b02>] ip6mr_sk_done+0x32/0xb0 [ipv6]
PGD 290a067 PUD 207ffe0067 PMD 207ff1d067 PTE 8000002018552060
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
Modules linked in: ebtable_nat ebtables nfs fscache nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT xt_CHECKSUM iptable_mangle iptable_filter ip_tables nfsd lockd nfs_acl exportfs auth_rpcgss autofs4 sunrpc 8021q garp bridge stp llc ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter
+ip6_tables ipv6 vfat fat vhost_net macvtap macvlan vhost tun kvm_intel kvm uinput iTCO_wdt iTCO_vendor_support cdc_ether usbnet mii microcode i2c_i801 i2c_core lpc_ich mfd_core shpchp ioatdma dca mlx4_core be2net wmi acpi_cpufreq mperf ext4 jbd2 mbcache dm_mirror dm_region_hash dm_log dm_mod
CPU: 0 PID: 7 Comm: kworker/u33:0 Not tainted 3.11.0-rc1-ea45e-a #4
Hardware name: IBM  -[8737R2A]-/00Y2738, BIOS -[B2E120RUS-1.20]- 11/30/2012
Workqueue: netns cleanup_net
task: ffff8810393641c0 ti: ffff881039366000 task.ti: ffff881039366000
RIP: 0010:[<ffffffffa0366b02>]  [<ffffffffa0366b02>] ip6mr_sk_done+0x32/0xb0 [ipv6]
RSP: 0018:ffff881039367bd8  EFLAGS: 00010286
RAX: ffff881039367fd8 RBX: ffff882018552000 RCX: dead000000200200
RDX: 0000000000000000 RSI: ffff881039367b68 RDI: ffff881039367b68
RBP: ffff881039367bf8 R08: ffff881039367b68 R09: 2222222222222222
R10: 2222222222222222 R11: 2222222222222222 R12: ffff882015a7a040
R13: ffff882014eb89c0 R14: ffff8820289e2800 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88103fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff882018552020 CR3: 0000000001c0b000 CR4: 00000000000407f0
Stack:
 ffff881039367c18 ffff882014eb89c0 ffff882015e28c00 0000000000000000
 ffff881039367c18 ffffffffa034d9d1 ffff8820289e2800 ffff882014eb89c0
 ffff881039367c58 ffffffff815bdecb ffffffff815bddf2 ffff882014eb89c0
Call Trace:
 [<ffffffffa034d9d1>] rawv6_close+0x21/0x40 [ipv6]
 [<ffffffff815bdecb>] inet_release+0xfb/0x220
 [<ffffffff815bddf2>] ? inet_release+0x22/0x220
 [<ffffffffa032686f>] inet6_release+0x3f/0x50 [ipv6]
 [<ffffffff8151c1d9>] sock_release+0x29/0xa0
 [<ffffffff81525520>] sk_release_kernel+0x30/0x70
 [<ffffffffa034f14b>] icmpv6_sk_exit+0x3b/0x80 [ipv6]
 [<ffffffff8152fff9>] ops_exit_list+0x39/0x60
 [<ffffffff815306fb>] cleanup_net+0xfb/0x1a0
 [<ffffffff81075e3a>] process_one_work+0x1da/0x610
 [<ffffffff81075dc9>] ? process_one_work+0x169/0x610
 [<ffffffff81076390>] worker_thread+0x120/0x3a0
 [<ffffffff81076270>] ? process_one_work+0x610/0x610
 [<ffffffff8107da2e>] kthread+0xee/0x100
 [<ffffffff8107d940>] ? __init_kthread_worker+0x70/0x70
 [<ffffffff8162a99c>] ret_from_fork+0x7c/0xb0
 [<ffffffff8107d940>] ? __init_kthread_worker+0x70/0x70
Code: 20 48 89 5d e8 4c 89 65 f0 4c 89 6d f8 66 66 66 66 90 4c 8b 67 30 49 89 fd e8 db 3c 1e e1 49 8b 9c 24 90 08 00 00 48 85 db 74 06 <4c> 39 6b 20 74 20 bb f3 ff ff ff e8 8e 3c 1e e1 89 d8 4c 8b 65
RIP  [<ffffffffa0366b02>] ip6mr_sk_done+0x32/0xb0 [ipv6]
 RSP <ffff881039367bd8>
CR2: ffff882018552020

Reported-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Tested-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/ip6mr.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -259,10 +259,12 @@ static void __net_exit ip6mr_rules_exit(
 {
 	struct mr6_table *mrt, *next;
 
+	rtnl_lock();
 	list_for_each_entry_safe(mrt, next, &net->ipv6.mr6_tables, list) {
 		list_del(&mrt->list);
 		ip6mr_free_table(mrt);
 	}
+	rtnl_unlock();
 	fib_rules_unregister(net->ipv6.mr6_rules_ops);
 }
 #else
@@ -289,7 +291,10 @@ static int __net_init ip6mr_rules_init(s
 
 static void __net_exit ip6mr_rules_exit(struct net *net)
 {
+	rtnl_lock();
 	ip6mr_free_table(net->ipv6.mrt6);
+	net->ipv6.mrt6 = NULL;
+	rtnl_unlock();
 }
 #endif
 



  parent reply	other threads:[~2013-08-09  2:03 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-09  1:56 [ 000/102] 3.10.6-stable review Greg Kroah-Hartman
2013-08-09  1:56 ` [ 001/102] ARM: poison the vectors page Greg Kroah-Hartman
2013-08-09  1:56 ` [ 002/102] ARM: poison memory between kuser helpers Greg Kroah-Hartman
2013-08-09  1:56 ` [ 003/102] ARM: move vector stubs Greg Kroah-Hartman
2013-08-09  1:56 ` [ 004/102] ARM: use linker magic for vectors and " Greg Kroah-Hartman
2013-08-09  1:56 ` [ 005/102] ARM: update FIQ support for relocation of vectors Greg Kroah-Hartman
2013-08-09  1:56 ` [ 006/102] ARM: allow kuser helpers to be removed from the vector page Greg Kroah-Hartman
2013-08-09  1:56 ` [ 007/102] ARM: move signal handlers into a vdso-like page Greg Kroah-Hartman
2013-08-09  1:56 ` [ 008/102] ARM: make vectors page inaccessible from userspace Greg Kroah-Hartman
2013-08-09  4:29   ` Stefan Lippers-Hollmann
2013-08-09  4:46     ` Greg Kroah-Hartman
2013-08-09  1:56 ` [ 009/102] ARM: fix a cockup in 48be69a02 (ARM: move signal handlers into a vdso-like page) Greg Kroah-Hartman
2013-08-09  1:56 ` [ 010/102] ARM: fix nommu builds with " Greg Kroah-Hartman
2013-08-09  1:56 ` [ 011/102] powerpc/windfarm: Fix noisy slots-fan on Xserve (rm31) Greg Kroah-Hartman
2013-08-09  1:56 ` [ 012/102] ARM: 7784/1: mm: ensure SMP alternates assemble to exactly 4 bytes with Thumb-2 Greg Kroah-Hartman
2013-08-09  1:56 ` [ 013/102] ARM: 7790/1: Fix deferred mm switch on VIVT processors Greg Kroah-Hartman
2013-08-09  1:56 ` [ 014/102] ARM: 7791/1: a.out: remove partial a.out support Greg Kroah-Hartman
2013-08-09  1:56 ` [ 015/102] powerpc: VPHN topology change updates all siblings Greg Kroah-Hartman
2013-08-09  1:56 ` [ 016/102] parisc: agp/parisc-agp: allow binding of user memory to the AGP GART Greg Kroah-Hartman
2013-08-09  1:56 ` [ 017/102] parisc: Fix cache routines to ignore vmas with an invalid pfn Greg Kroah-Hartman
2013-08-09  1:56 ` [ 018/102] parisc: Fix interrupt routing for C8000 serial ports Greg Kroah-Hartman
2013-08-09  1:56 ` [ 019/102] hwmon: (max6697) fix MAX6581 ideality Greg Kroah-Hartman
2013-08-09  1:56 ` [ 020/102] ALSA: hda - Fix missing fixup for Mac Mini with STAC9221 Greg Kroah-Hartman
2013-08-09  1:56 ` [ 021/102] ALSA: compress: fix the return value for SNDRV_COMPRESS_VERSION Greg Kroah-Hartman
2013-08-09  1:56 ` [ 022/102] serial/mxs-auart: fix race condition in interrupt handler Greg Kroah-Hartman
2013-08-09  1:56 ` [ 023/102] serial: arc_uart: Fix module alias Greg Kroah-Hartman
2013-08-09  1:57 ` [ 024/102] serial/mxs-auart: increase time to wait for transmitter to become idle Greg Kroah-Hartman
2013-08-09  1:57 ` [ 025/102] dma: pl330: Fix cyclic transfers Greg Kroah-Hartman
2013-08-09  1:57 ` [ 026/102] USB: mos7840: fix race in register handling Greg Kroah-Hartman
2013-08-09  1:57 ` [ 027/102] USB: mos7840: fix device-type detection Greg Kroah-Hartman
2013-08-09  1:57 ` [ 028/102] USB: mos7840: fix race in led handling Greg Kroah-Hartman
2013-08-09  1:57 ` [ 029/102] USB: mos7840: fix pointer casts Greg Kroah-Hartman
2013-08-09  1:57 ` [ 030/102] iwlwifi: mvm: fix L2P BA ressources leak Greg Kroah-Hartman
2013-08-09  1:57 ` [ 031/102] iwlwifi: mvm: fix bug in scan ssid Greg Kroah-Hartman
2013-08-09  1:57 ` [ 032/102] iwlwifi: mvm: refuse connection to APs with BI < 16 Greg Kroah-Hartman
2013-08-09  1:57 ` [ 033/102] iwlwifi: add DELL SKU for 5150 HMC Greg Kroah-Hartman
2013-08-09  1:57 ` [ 034/102] iwlwifi: mvm: fix flushing not started aggregation sessions Greg Kroah-Hartman
2013-08-09  1:57 ` [ 035/102] ath9k_htc: do some initial hardware configuration Greg Kroah-Hartman
2013-08-09  1:57 ` [ 036/102] ath9k_htc: reboot firmware if it was loaded Greg Kroah-Hartman
2013-08-09  1:57 ` [ 037/102] nl80211: fix mgmt tx status and testmode reporting for netns Greg Kroah-Hartman
2013-08-09  1:57 ` [ 038/102] mac80211/minstrel: fix NULL pointer dereference issue Greg Kroah-Hartman
2013-08-09  1:57 ` [ 039/102] mac80211/minstrel_ht: fix cck rate sampling Greg Kroah-Hartman
2013-08-09  1:57 ` [ 040/102] mac80211: fix duplicate retransmission detection Greg Kroah-Hartman
2013-08-09  1:57 ` [ 041/102] mac80211: fix ethtool stats for non-station interfaces Greg Kroah-Hartman
2013-08-09  1:57 ` [ 042/102] mac80211: fix monitor interface suspend crash regression Greg Kroah-Hartman
2013-08-09  1:57 ` [ 043/102] ixgbe: Fix Tx Hang issue with lldpad on 82598EB Greg Kroah-Hartman
2013-08-09  1:57 ` [ 044/102] ath: wil6210: Fix build error Greg Kroah-Hartman
2013-08-11  8:09   ` Vladimir Kondratiev
2013-08-11  8:15     ` Greg Kroah-Hartman
2013-08-09  1:57 ` [ 045/102] Bluetooth: Fix invalid length check in l2cap_information_rsp() Greg Kroah-Hartman
2013-08-09  7:54   ` Johan Hedberg
2013-08-09 19:12     ` Greg Kroah-Hartman
2013-08-09  1:57 ` [ 046/102] Bluetooth: ath3k: Add support for Fujitsu Lifebook UH5x2 [04c5:1330] Greg Kroah-Hartman
2013-08-09  1:57 ` [ 047/102] Bluetooth: ath3k: dont use stack memory for DMA Greg Kroah-Hartman
2013-08-09  1:57 ` [ 048/102] Bluetooth: ath3k: Add support for ID 0x13d3/0x3402 Greg Kroah-Hartman
2013-08-09  1:57 ` [ 049/102] Bluetooth: Add support for Atheros [0cf3:3121] Greg Kroah-Hartman
2013-08-09  1:57 ` [ 050/102] Bluetooth: Add support for Atheros [0cf3:e003] Greg Kroah-Hartman
2013-08-09  1:57 ` [ 051/102] Bluetooth: Add support for Mediatek Bluetooth device [0e8d:763f] Greg Kroah-Hartman
2013-08-09  1:57 ` [ 052/102] Bluetooth: fix wrong use of PTR_ERR() in btusb Greg Kroah-Hartman
2013-08-09  1:57 ` [ 053/102] svcrpc: fix gss-proxy xdr decoding oops Greg Kroah-Hartman
2013-08-09  1:57 ` [ 054/102] svcrpc: fix gss_rpc_upcall create error Greg Kroah-Hartman
2013-08-09  1:57 ` [ 055/102] svcrpc: fix kfree oops in gss-proxy code Greg Kroah-Hartman
2013-08-09  1:57 ` [ 056/102] rt2x00: fix stop queue Greg Kroah-Hartman
2013-08-09  1:57 ` [ 057/102] mwifiex: Add missing endian conversion Greg Kroah-Hartman
2013-08-09  1:57 ` [ 058/102] mwifiex: check for bss_role instead of bss_mode for STA operations Greg Kroah-Hartman
2013-08-09  1:57 ` [ 059/102] mwifiex: fix wrong data rates in P2P client Greg Kroah-Hartman
2013-08-09  1:57 ` [ 060/102] zram: avoid invalid memory access in zram_exit() Greg Kroah-Hartman
2013-08-09  1:57 ` [ 061/102] zram: use zram->lock to protect zram_free_page() in swap free notify path Greg Kroah-Hartman
2013-08-09  1:57 ` [ 062/102] zram: destroy all devices on error recovery path in zram_init() Greg Kroah-Hartman
2013-08-09  1:57 ` [ 063/102] zram: avoid double free in function zram_bvec_write() Greg Kroah-Hartman
2013-08-09  1:57 ` [ 064/102] zram: avoid access beyond the zram device Greg Kroah-Hartman
2013-08-09  1:57 ` [ 065/102] zram: protect sysfs handler from invalid memory access Greg Kroah-Hartman
2013-08-09  1:57 ` [ 066/102] ACPI / battery: Fix parsing _BIX return value Greg Kroah-Hartman
2013-08-09  1:57 ` [ 067/102] Revert "cpuidle: Quickly notice prediction failure in general case" Greg Kroah-Hartman
2013-08-09  1:57 ` [ 068/102] cpufreq: Fix cpufreq driver module refcount balance after suspend/resume Greg Kroah-Hartman
2013-08-09  1:57 ` [ 069/102] Revert "cpuidle: Quickly notice prediction failure for repeat mode" Greg Kroah-Hartman
2013-08-09  1:57 ` [ 070/102] PCI: pciehp: Fix null pointer deref when hot-removing SR-IOV device Greg Kroah-Hartman
2013-08-09  1:57 ` [ 071/102] PCI: Retry allocation of only the resource type that failed Greg Kroah-Hartman
2013-08-09  1:57 ` [ 072/102] drm/radeon: Disable dma rings for bo moves on r6xx Greg Kroah-Hartman
2013-08-09  1:57 ` [ 073/102] xen-blkfront: use a different scatterlist for each request Greg Kroah-Hartman
2013-08-09  1:57 ` [ 074/102] drm/i915: Preserve the DDI_A_4_LANES bit from the bios Greg Kroah-Hartman
2013-08-09  1:57 ` [ 075/102] fanotify: info leak in copy_event_to_user() Greg Kroah-Hartman
2013-08-09  1:57 ` [ 076/102] cgroup: fix umount vs cgroup_cfts_commit() race Greg Kroah-Hartman
2013-08-09  1:57 ` [ 077/102] drm/radeon: never unpin UVD bo v3 Greg Kroah-Hartman
2013-08-09  1:57 ` [ 078/102] x86, fpu: correct the asm constraints for fxsave, unbreak mxcsr.daz Greg Kroah-Hartman
2013-08-09  1:57 ` [ 079/102] Btrfs: fix crash regarding to ulist_add_merge Greg Kroah-Hartman
2013-08-09  1:57 ` [ 080/102] drm/i915: make SDVO TV-out work for multifunction devices Greg Kroah-Hartman
2013-08-09  1:57 ` [ 081/102] s390: add support for IBM zBC12 machine Greg Kroah-Hartman
2013-08-09  1:57 ` [ 082/102] s390/bitops: fix find_next_bit_left Greg Kroah-Hartman
2013-08-09  1:57 ` [ 083/102] workqueue: copy workqueue_attrs with all fields Greg Kroah-Hartman
2013-08-09  1:58 ` [ 084/102] userns: unshare_userns(&cred) should not populate cred on failure Greg Kroah-Hartman
2013-08-09  1:58 ` [ 085/102] x86/iommu/vt-d: Expand interrupt remapping quirk to cover x58 chipset Greg Kroah-Hartman
2013-08-09  1:58 ` [ 086/102] spi: spi-davinci: Fix direction in dma_map_single() Greg Kroah-Hartman
2013-08-09  1:58 ` [ 087/102] arcnet: cleanup sizeof parameter Greg Kroah-Hartman
2013-08-09  1:58 ` [ 088/102] sysctl net: Keep tcp_syn_retries inside the boundary Greg Kroah-Hartman
2013-08-09  1:58 ` [ 089/102] sfc: Enable RX scatter for flows steered by RFS Greg Kroah-Hartman
2013-08-09  1:58 ` Greg Kroah-Hartman [this message]
2013-08-09  1:58 ` [ 091/102] usbnet: do not pretend to support SG/TSO Greg Kroah-Hartman
2013-08-09  1:58 ` [ 092/102] genetlink: release cb_lock before requesting additional module Greg Kroah-Hartman
2013-08-09  1:58 ` [ 093/102] net_sched: Fix stack info leak in cbq_dump_wrr() Greg Kroah-Hartman
2013-08-09  1:58 ` [ 094/102] af_key: more info leaks in pfkey messages Greg Kroah-Hartman
2013-08-09  1:58 ` [ 095/102] atl1c: use custom skb allocator Greg Kroah-Hartman
2013-08-09  1:58 ` [ 096/102] net_sched: info leak in atm_tc_dump_class() Greg Kroah-Hartman
2013-08-09  1:58 ` [ 097/102] ndisc: Add missing inline to ndisc_addr_option_pad Greg Kroah-Hartman
2013-08-09  1:58 ` [ 098/102] 8139cp: Add dma_mapping_error checking Greg Kroah-Hartman
2013-08-09  1:58 ` [ 099/102] net/mlx4_core: Dont give VFs MAC addresses which are derived from the PF MAC Greg Kroah-Hartman
2013-08-09  1:58 ` [ 100/102] net/mlx4_core: VFs must ignore the enable_64b_cqe_eqe module param Greg Kroah-Hartman
2013-08-09  1:58 ` [ 101/102] iwlwifi: mvm: set SSID bits for passive channels Greg Kroah-Hartman
2013-08-09  1:58 ` [ 102/102] iwlwifi: dvm: dont send BT_CONFIG on devices w/o Bluetooth Greg Kroah-Hartman
2013-08-09  4:13 ` [ 000/102] 3.10.6-stable review Stefan Lippers-Hollmann
2013-08-09  4:27   ` Greg Kroah-Hartman
2013-08-09  6:57 ` Guenter Roeck
2013-08-09 19:11   ` Greg Kroah-Hartman
2013-08-09 23:21     ` Guenter Roeck
2013-08-09 23:29       ` Greg Kroah-Hartman
2013-08-09 14:42 ` Shuah Khan
2013-08-09 19:10   ` Greg Kroah-Hartman
2013-08-09 19:45     ` Shuah Khan
2013-08-09 19:50       ` Greg Kroah-Hartman
2013-08-10 22:07     ` Shuah Khan
2013-08-11  3:22       ` Greg Kroah-Hartman
2013-08-09 19:20 ` Willy Tarreau
2013-08-09 19:33   ` Greg Kroah-Hartman
2013-08-09 20:00     ` Willy Tarreau
2013-08-09 20:08       ` Greg Kroah-Hartman
2013-08-09 20:28         ` Willy Tarreau
2013-08-13  4:02     ` Guenter Roeck
2013-08-13  6:41       ` Greg Kroah-Hartman
2014-01-16 15:24 ` rahulk

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=20130809015031.515966739@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=hannes@stressinduktion.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=srivatsa.bhat@linux.vnet.ibm.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome