From: lizf@kernel.org
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
Sabrina Dubroca <sd@queasysnail.net>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Zefan Li <lizefan@huawei.com>
Subject: [PATCH 3.4 004/146] e1000: add dummy allocator to fix race condition between mtu change and netpoll
Date: Tue, 15 Sep 2015 17:01:59 +0800 [thread overview]
Message-ID: <1442307861-32031-4-git-send-email-lizf@kernel.org> (raw)
In-Reply-To: <1442307787-31952-1-git-send-email-lizf@kernel.org>
From: Sabrina Dubroca <sd@queasysnail.net>
3.4.109-rc1 review patch. If anyone has any objections, please let me know.
------------------
commit 08e8331654d1d7b2c58045e549005bc356aa7810 upstream.
There is a race condition between e1000_change_mtu's cleanups and
netpoll, when we change the MTU across jumbo size:
Changing MTU frees all the rx buffers:
e1000_change_mtu -> e1000_down -> e1000_clean_all_rx_rings ->
e1000_clean_rx_ring
Then, close to the end of e1000_change_mtu:
pr_info -> ... -> netpoll_poll_dev -> e1000_clean ->
e1000_clean_rx_irq -> e1000_alloc_rx_buffers -> e1000_alloc_frag
And when we come back to do the rest of the MTU change:
e1000_up -> e1000_configure -> e1000_configure_rx ->
e1000_alloc_jumbo_rx_buffers
alloc_jumbo finds the buffers already != NULL, since data (shared with
page in e1000_rx_buffer->rxbuf) has been re-alloc'd, but it's garbage,
or at least not what is expected when in jumbo state.
This results in an unusable adapter (packets don't get through), and a
NULL pointer dereference on the next call to e1000_clean_rx_ring
(other mtu change, link down, shutdown):
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffff81194d6e>] put_compound_page+0x7e/0x330
[...]
Call Trace:
[<ffffffff81195445>] put_page+0x55/0x60
[<ffffffff815d9f44>] e1000_clean_rx_ring+0x134/0x200
[<ffffffff815da055>] e1000_clean_all_rx_rings+0x45/0x60
[<ffffffff815df5e0>] e1000_down+0x1c0/0x1d0
[<ffffffff811e2260>] ? deactivate_slab+0x7f0/0x840
[<ffffffff815e21bc>] e1000_change_mtu+0xdc/0x170
[<ffffffff81647050>] dev_set_mtu+0xa0/0x140
[<ffffffff81664218>] do_setlink+0x218/0xac0
[<ffffffff814459e9>] ? nla_parse+0xb9/0x120
[<ffffffff816652d0>] rtnl_newlink+0x6d0/0x890
[<ffffffff8104f000>] ? kvm_clock_read+0x20/0x40
[<ffffffff810a2068>] ? sched_clock_cpu+0xa8/0x100
[<ffffffff81663802>] rtnetlink_rcv_msg+0x92/0x260
By setting the allocator to a dummy version, netpoll can't mess up our
rx buffers. The allocator is set back to a sane value in
e1000_configure_rx.
Fixes: edbbb3ca1077 ("e1000: implement jumbo receive with partial descriptors")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 8d8908d..b7a7524 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -144,6 +144,11 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
struct e1000_rx_ring *rx_ring,
int *work_done, int work_to_do);
+static void e1000_alloc_dummy_rx_buffers(struct e1000_adapter *adapter,
+ struct e1000_rx_ring *rx_ring,
+ int cleaned_count)
+{
+}
static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter,
struct e1000_rx_ring *rx_ring,
int cleaned_count);
@@ -3545,8 +3550,11 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
msleep(1);
/* e1000_down has a dependency on max_frame_size */
hw->max_frame_size = max_frame;
- if (netif_running(netdev))
+ if (netif_running(netdev)) {
+ /* prevent buffers from being reallocated */
+ adapter->alloc_rx_buf = e1000_alloc_dummy_rx_buffers;
e1000_down(adapter);
+ }
/* NOTE: netdev_alloc_skb reserves 16 bytes, and typically NET_IP_ALIGN
* means we reserve 2 more, this pushes us to allocate from the next
--
1.9.1
next prev parent reply other threads:[~2015-09-15 9:05 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 9:03 [PATCH 3.4 000/146] 3.4.109-rc1 review lizf
2015-09-15 9:01 ` [PATCH 3.4 001/146] ipv6: add check for blackhole or prohibited entry in rt6_redire lizf
2015-09-15 9:01 ` [PATCH 3.4 002/146] Bluetooth: ath3k: Add support Atheros AR5B195 combo Mini PCIe card lizf
2015-09-15 9:01 ` [PATCH 3.4 003/146] Drivers: hv: vmbus: Fix a bug in the error path in vmbus_open() lizf
2015-09-15 9:01 ` lizf [this message]
2015-09-15 9:02 ` [PATCH 3.4 005/146] KVM: s390: Zero out current VMDB of STSI before including level3 data lizf
2015-09-15 9:02 ` [PATCH 3.4 006/146] usb: musb: core: fix TX/RX endpoint order lizf
2015-09-15 9:02 ` [PATCH 3.4 007/146] pinctrl: remove maxpin from documentation lizf
2015-09-15 9:02 ` [PATCH 3.4 008/146] compal-laptop: Check return value of power_supply_register lizf
2015-09-15 9:02 ` [PATCH 3.4 009/146] pinctrl: remove doc mention of the enable/disable API lizf
2015-09-15 9:02 ` [PATCH 3.4 010/146] pinctrl: fix example .get_group_pins implementation signature lizf
2015-09-15 9:02 ` [PATCH 3.4 011/146] drm/radeon: fix doublescan modes (v2) lizf
2015-09-15 9:02 ` [PATCH 3.4 012/146] usb: common: otg-fsm: only signal connect after switching to peripheral lizf
2015-09-15 9:02 ` [PATCH 3.4 013/146] ASoC: wm8741: Fix rates constraints values lizf
2015-09-15 9:02 ` [PATCH 3.4 014/146] cdc-wdm: fix endianness bug in debug statements lizf
2015-09-15 9:02 ` [PATCH 3.4 015/146] staging: panel: fix lcd type lizf
2015-09-15 9:02 ` [PATCH 3.4 016/146] UBI: fix out of bounds write lizf
2015-09-15 9:02 ` [PATCH 3.4 017/146] UBI: initialize LEB number variable lizf
2015-09-15 9:02 ` [PATCH 3.4 018/146] UBI: fix check for "too many bytes" lizf
2015-09-15 9:02 ` [PATCH 3.4 019/146] C6x: time: Ensure consistency in __init lizf
2015-09-15 9:02 ` [PATCH 3.4 020/146] Drivers: hv: vmbus: Don't wait after requesting offers lizf
2015-09-15 9:02 ` [PATCH 3.4 021/146] Btrfs: fix log tree corruption when fs mounted with -o discard lizf
2015-09-15 9:02 ` [PATCH 3.4 022/146] btrfs: don't accept bare namespace as a valid xattr lizf
2015-09-15 9:02 ` [PATCH 3.4 023/146] ARM: 8320/1: fix integer overflow in ELF_ET_DYN_BASE lizf
2015-09-15 9:02 ` [PATCH 3.4 024/146] rtlwifi: rtl8192cu: Add new USB ID lizf
2015-09-15 9:02 ` [PATCH 3.4 025/146] ASoC: cs4271: Increase delay time after reset lizf
2015-09-15 9:02 ` [PATCH 3.4 026/146] ext4: make fsync to sync parent dir in no-journal for real this time lizf
2015-09-15 9:02 ` [PATCH 3.4 027/146] jhash: Update jhash_[321]words functions to use correct initval lizf
2015-09-15 9:02 ` [PATCH 3.4 028/146] Input: elantech - fix absolute mode setting on some ASUS laptops lizf
2015-09-15 9:02 ` [PATCH 3.4 029/146] RDS: Documentation: Document AF_RDS, PF_RDS and SOL_RDS correctly lizf
2015-09-15 9:02 ` [PATCH 3.4 030/146] selinux/nlmsg: add XFRM_MSG_GETSPDINFO lizf
2015-09-15 9:02 ` [PATCH 3.4 031/146] selinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO lizf
2015-09-15 9:02 ` [PATCH 3.4 032/146] x86/iommu: Fix header comments regarding standard and _FINISH macros lizf
2015-09-15 9:02 ` [PATCH 3.4 033/146] scsi: storvsc: Fix a bug in copy_from_bounce_buffer() lizf
2015-09-15 9:02 ` [PATCH 3.4 034/146] ALSA: emu10k1: don't deadlock in proc-functions lizf
2015-09-15 9:02 ` [PATCH 3.4 035/146] MIPS: Hibernate: flush TLB entries earlier lizf
2015-09-15 9:02 ` [PATCH 3.4 036/146] powerpc: Fix missing L2 cache size in /sys/devices/system/cpu lizf
2015-09-15 9:02 ` [PATCH 3.4 037/146] selinux/nlmsg: add XFRM_MSG_REPORT lizf
2015-09-15 9:02 ` [PATCH 3.4 038/146] selinux/nlmsg: add XFRM_MSG_MIGRATE lizf
2015-09-15 9:02 ` [PATCH 3.4 039/146] selinux/nlmsg: add XFRM_MSG_MAPPING lizf
2015-09-15 9:02 ` [PATCH 3.4 040/146] s390/hibernate: fix save and restore of kernel text section lizf
2015-09-15 9:02 ` [PATCH 3.4 041/146] Btrfs: fix inode eviction infinite loop after cloning into it lizf
2015-09-15 9:02 ` [PATCH 3.4 042/146] powerpc/perf: Cap 64bit userspace backtraces to PERF_MAX_STACK_DEPTH lizf
2015-09-15 9:02 ` [PATCH 3.4 043/146] ACPICA: Utilities: split IO address types from data type models lizf
2015-09-15 9:02 ` [PATCH 3.4 044/146] fs/binfmt_elf.c: fix bug in loading of PIE binaries lizf
2015-09-15 9:02 ` [PATCH 3.4 045/146] dm crypt: fix deadlock when async crypto algorithm returns -EBUSY lizf
2015-09-15 9:02 ` [PATCH 3.4 046/146] IB/core: disallow registering 0-sized memory region lizf
2015-09-15 9:02 ` [PATCH 3.4 047/146] IB/mlx4: Fix WQE LSO segment calculation lizf
2015-09-15 9:02 ` [PATCH 3.4 048/146] megaraid_sas: use raw_smp_processor_id() lizf
2015-09-15 9:02 ` [PATCH 3.4 049/146] firmware/ihex2fw.c: restore missing default in switch statement lizf
2015-09-15 9:02 ` [PATCH 3.4 050/146] ptrace: fix race between ptrace_resume() and wait_task_stopped() lizf
2015-09-15 9:02 ` [PATCH 3.4 051/146] memstick: mspro_block: add missing curly braces lizf
2015-09-15 9:02 ` [PATCH 3.4 052/146] nfsd: fix nsfd startup race triggering BUG_ON lizf
2015-09-15 9:02 ` [PATCH 3.4 053/146] nfs: don't call blocking operations while !TASK_RUNNING lizf
2015-09-15 9:02 ` [PATCH 3.4 054/146] nfs: fix high load average due to callback thread sleeping lizf
2015-09-15 9:02 ` [PATCH 3.4 055/146] RCU pathwalk breakage when running into a symlink overmounting something lizf
2015-09-15 9:02 ` [PATCH 3.4 056/146] ALSA: hda - Fix mute-LED fixed mode lizf
2015-09-15 9:02 ` [PATCH 3.4 057/146] ALSA: emu10k1: Fix card shortname string buffer overflow lizf
2015-09-15 9:02 ` [PATCH 3.4 058/146] ALSA: emux: Fix mutex deadlock at unloading lizf
2015-09-15 9:02 ` [PATCH 3.4 059/146] drm/radeon: Use drm_calloc_ab for CS relocs lizf
2015-09-15 9:02 ` [PATCH 3.4 060/146] SCSI: add 1024 max sectors black list flag lizf
2015-09-15 9:02 ` [PATCH 3.4 061/146] 3w-sas: fix command completion race lizf
2015-09-15 9:02 ` [PATCH 3.4 062/146] 3w-xxxx: " lizf
2015-09-15 9:02 ` [PATCH 3.4 063/146] 3w-9xxx: " lizf
2015-09-15 9:02 ` [PATCH 3.4 064/146] serial: xilinx: Use platform_get_irq to get irq description structure lizf
2015-09-15 9:03 ` [PATCH 3.4 065/146] serial: of-serial: Remove device_type = "serial" registration lizf
2015-09-15 9:03 ` [PATCH 3.4 066/146] ALSA: emux: Fix mutex deadlock in OSS emulation lizf
2015-09-15 9:03 ` [PATCH 3.4 067/146] ALSA: emu10k1: Emu10k2 32 bit DMA mode lizf
2015-09-15 9:03 ` [PATCH 3.4 068/146] powerpc/pseries: Correct cpu affinity for dlpar added cpus lizf
2015-09-15 9:03 ` [PATCH 3.4 069/146] ext4: move check under lock scope to close a race lizf
2015-09-15 9:03 ` [PATCH 3.4 070/146] ARM: pxa: pxa_cplds: add lubbock and mainstone IO lizf
2015-09-15 9:03 ` [PATCH 3.4 071/146] ARM: pxa: mainstone: use new pxa_cplds driver lizf
2015-09-15 9:03 ` [PATCH 3.4 072/146] ARM: pxa: lubbock: " lizf
2015-09-15 9:03 ` [PATCH 3.4 073/146] mmc: core: add missing pm event in mmc_pm_notify to fix hib restore lizf
2015-09-15 9:03 ` [PATCH 3.4 074/146] RDMA/CMA: Canonize IPv4 on IPV6 sockets properly lizf
2015-09-15 9:03 ` [PATCH 3.4 075/146] xen/console: Update console event channel on resume lizf
2015-09-15 9:03 ` [PATCH 3.4 076/146] xen/events: Set irq_info->evtchn before binding the channel to CPU in __startup_pirq() lizf
2015-09-15 9:03 ` [PATCH 3.4 077/146] mm/memory-failure: call shake_page() when error hits thp tail page lizf
2015-09-15 9:03 ` [PATCH 3.4 078/146] nilfs2: fix sanity check of btree level in nilfs_btree_root_broken() lizf
2015-09-15 9:03 ` [PATCH 3.4 079/146] ocfs2: dlm: fix race between purge and get lock resource lizf
2015-09-15 9:03 ` [PATCH 3.4 080/146] libata: Add helper to determine when PHY events should be ignored lizf
2015-09-15 9:03 ` [PATCH 3.4 081/146] libata: Ignore spurious PHY event on LPM policy change lizf
2015-09-15 9:03 ` [PATCH 3.4 082/146] rtlwifi: rtl8192cu: Fix kernel deadlock lizf
2015-09-15 9:03 ` [PATCH 3.4 083/146] USB: cp210x: add ID for KCF Technologies PRN device lizf
2015-09-15 9:03 ` [PATCH 3.4 084/146] USB: pl2303: Remove support for Samsung I330 lizf
2015-09-15 9:03 ` [PATCH 3.4 085/146] USB: visor: Match I330 phone more precisely lizf
2015-09-15 9:03 ` [PATCH 3.4 086/146] nfsd: fix the check for confirmed openowner in nfs4_preprocess_stateid_op lizf
2015-09-15 9:03 ` [PATCH 3.4 087/146] md/raid5: don't record new size if resize_stripes fails lizf
2015-09-15 9:03 ` [PATCH 3.4 088/146] xhci: fix isoc endpoint dequeue from advancing too far on transaction error lizf
2015-09-15 9:03 ` [PATCH 3.4 089/146] xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256 lizf
2015-09-15 9:03 ` [PATCH 3.4 090/146] xhci: gracefully handle xhci_irq dead device lizf
2015-09-15 9:03 ` [PATCH 3.4 091/146] usb-storage: Add NO_WP_DETECT quirk for Lacie 059f:0651 devices lizf
2015-09-15 9:03 ` [PATCH 3.4 092/146] ahci: un-staticize ahci_dev_classify lizf
2015-09-15 9:03 ` [PATCH 3.4 093/146] ahci: avoton port-disable reset-quirk lizf
2015-09-15 9:03 ` [PATCH 3.4 094/146] ARM: net: delegate filter to kernel interpreter when imm_offset() return value can't fit into 12bits lizf
2015-09-15 9:03 ` [PATCH 3.4 095/146] drm/radeon: fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling lizf
2015-09-15 9:03 ` [PATCH 3.4 096/146] ext4: check for zero length extent explicitly lizf
2015-09-15 9:03 ` [PATCH 3.4 097/146] ipvs: fix memory leak in ip_vs_ctl.c lizf
2015-09-15 9:03 ` [PATCH 3.4 098/146] mac80211: move WEP tailroom size check lizf
2015-09-15 9:03 ` [PATCH 3.4 099/146] KVM: MMU: fix CR4.SMEP=1, CR0.WP=0 with shadow pages lizf
2015-09-15 9:03 ` [PATCH 3.4 100/146] ASoC: wm8960: fix "RINPUT3" audio route error lizf
2015-09-15 9:03 ` [PATCH 3.4 101/146] ASoC: wm8994: correct BCLK DIV 348 to 384 lizf
2015-09-15 9:03 ` [PATCH 3.4 102/146] Input: elantech - fix semi-mt protocol for v3 HW lizf
2015-09-15 9:03 ` [PATCH 3.4 103/146] powerpc: Align TOC to 256 bytes lizf
2015-09-15 9:03 ` [PATCH 3.4 104/146] ALSA: hda - Add Conexant codecs CX20721, CX20722, CX20723 and CX20724 lizf
2015-09-15 9:03 ` [PATCH 3.4 105/146] mmc: atmel-mci: fix bad variable type for clkdiv lizf
2015-09-15 9:03 ` [PATCH 3.4 106/146] sd: Disable support for 256 byte/sector disks lizf
2015-09-15 9:03 ` [PATCH 3.4 107/146] xen/events: don't bind non-percpu VIRQs with percpu chip lizf
2015-09-15 9:03 ` [PATCH 3.4 108/146] crypto: s390/ghash - Fix incorrect ghash icv buffer handling lizf
2015-09-15 9:03 ` [PATCH 3.4 109/146] bridge: fix parsing of MLDv2 reports lizf
2015-09-15 9:03 ` [PATCH 3.4 110/146] ARM: dts: imx27: only map 4 Kbyte for fec registers lizf
2015-09-15 9:03 ` [PATCH 3.4 111/146] x86/mce: Fix MCE severity messages lizf
2015-09-15 9:03 ` [PATCH 3.4 112/146] x86: bpf_jit: fix compilation of large bpf programs lizf
2015-09-15 9:03 ` [PATCH 3.4 113/146] lguest: fix out-by-one error in address checking lizf
2015-09-15 9:03 ` [PATCH 3.4 114/146] fs, omfs: add NULL terminator in the end up the token list lizf
2015-09-15 9:03 ` [PATCH 3.4 115/146] d_walk() might skip too much lizf
2015-09-15 9:03 ` [PATCH 3.4 116/146] target/pscsi: Don't leak scsi_host if hba is VIRTUAL_HOST lizf
2015-09-15 9:03 ` [PATCH 3.4 117/146] USB: serial: ftdi_sio: Add support for a Motion Tracker Development Board lizf
2015-09-15 9:03 ` [PATCH 3.4 118/146] ozwpan: Use proper check to prevent heap overflow lizf
2015-09-15 9:03 ` [PATCH 3.4 119/146] ozwpan: divide-by-zero leading to panic lizf
2015-09-15 9:03 ` [PATCH 3.4 120/146] ozwpan: unchecked signed subtraction leads to DoS lizf
2015-09-15 9:03 ` [PATCH 3.4 121/146] drm/i915: Don't skip request retirement if the active list is empty lizf
2015-09-15 9:03 ` [PATCH 3.4 122/146] vfs: read file_handle only once in handle_to_path lizf
2015-09-15 9:03 ` [PATCH 3.4 123/146] Input: elantech - fix detection of touchpads where the revision matches a known rate lizf
2015-09-15 9:03 ` [PATCH 3.4 124/146] ALSA: hda/realtek - Add a fixup for another Acer Aspire 9420 lizf
2015-09-15 9:04 ` [PATCH 3.4 125/146] ALSA: usb-audio: add MAYA44 USB+ mixer control names lizf
2015-09-15 9:04 ` [PATCH 3.4 126/146] USB: cp210x: add ID for HubZ dual ZigBee and Z-Wave dongle lizf
2015-09-15 9:04 ` [PATCH 3.4 127/146] MIPS: Fix enabling of DEBUG_STACKOVERFLOW lizf
2015-09-15 9:04 ` [PATCH 3.4 128/146] bridge: use _bh spinlock variant for br_fdb_update to avoid lockup lizf
2015-09-15 9:04 ` [PATCH 3.4 129/146] bridge: disable softirqs around " lizf
2015-09-15 9:04 ` [PATCH 3.4 130/146] bridge: fix multicast router rlist endless loop lizf
2015-09-15 9:04 ` [PATCH 3.4 131/146] ring-buffer-benchmark: Fix the wrong sched_priority of producer lizf
2015-09-15 9:04 ` [PATCH 3.4 132/146] tracing: Have filter check for balanced ops lizf
2015-09-15 9:04 ` [PATCH 3.4 133/146] udf: Check length of extended attributes and allocation descriptors lizf
2015-09-15 9:04 ` [PATCH 3.4 134/146] md: use kzalloc() when bitmap is disabled lizf
2015-09-15 9:04 ` [PATCH 3.4 135/146] ipv4: Missing sk_nulls_node_init() in ping_unhash() lizf
2015-09-15 9:04 ` [PATCH 3.4 136/146] x86, kvm: use kernel_fpu_begin/end() in kvm_load/put_guest_fpu() lizf
2015-09-15 9:04 ` [PATCH 3.4 137/146] x86, kvm: fix kvm's usage of kernel_fpu_begin/end() lizf
2015-09-15 9:04 ` [PATCH 3.4 138/146] ipmi: fix timeout calculation when bmc is disconnected lizf
2015-09-15 9:04 ` [PATCH 3.4 139/146] net: socket: Fix the wrong returns for recvmsg and sendmsg lizf
2015-09-15 9:04 ` [PATCH 3.4 140/146] bridge: superfluous skb->nfct check in br_nf_dev_queue_xmit lizf
2015-09-15 9:04 ` [PATCH 3.4 141/146] block: fix ext_dev_lock lockdep report lizf
2015-09-15 9:04 ` [PATCH 3.4 142/146] NET: ROSE: Don't dereference NULL neighbour pointer lizf
2015-09-15 9:04 ` [PATCH 3.4 143/146] pipe: iovec: Fix memory corruption when retrying atomic copy as non-atomic lizf
2015-09-15 9:04 ` [PATCH 3.4 144/146] sched: Queue RT tasks to head when prio drops lizf
2015-09-15 9:04 ` [PATCH 3.4 145/146] udp: fix behavior of wrong checksums lizf
2015-09-15 9:04 ` [PATCH 3.4 146/146] ipv6: add check for blackhole or prohibited entry in rt6_redire lizf
2015-09-15 9:18 ` [PATCH 3.4 000/146] 3.4.109-rc1 review lizf
2015-09-15 14:22 ` Guenter Roeck
2015-09-18 1:45 ` Zefan Li
2015-09-18 2:48 ` Zefan Li
2015-09-18 4:05 ` Guenter Roeck
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=1442307861-32031-4-git-send-email-lizf@kernel.org \
--to=lizf@kernel.org \
--cc=jeffrey.t.kirsher@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=sd@queasysnail.net \
--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.