From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Robert Richter <robert.richter@amd.com>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [080/146] oprofile, x86: Enable preemption during pci device setup in
Date: Wed, 01 Jun 2011 17:00:16 +0900 [thread overview]
Message-ID: <20110601080343.992675784@blue.kroah.org> (raw)
In-Reply-To: <20110601080606.GA522@kroah.com>
2.6.38-stable review patch. If anyone has any objections, please let us know.
------------------
IBS init
From: Robert Richter <robert.richter@amd.com>
commit 3d2606f42984613d324ad3047cf503bcddc3880a upstream.
IBS initialization is a mix of per-core register access and per-node
pci device setup. Register access should be pinned to the cpu, but pci
setup must run with preemption enabled.
This patch better separates the code into non-/preemptible sections
and fixes sleeping with preemption disabled. See bug message below.
Fixes also freeing the eilvt entry by introducing put_eilvt().
BUG: sleeping function called from invalid context at mm/slub.c:824
in_atomic(): 1, irqs_disabled(): 0, pid: 32357, name: modprobe
INFO: lockdep is turned off.
Pid: 32357, comm: modprobe Not tainted 2.6.39-rc7+ #14
Call Trace:
[<ffffffff8104bdc8>] __might_sleep+0x112/0x117
[<ffffffff81129693>] kmem_cache_alloc_trace+0x4b/0xe7
[<ffffffff81278f14>] kzalloc.constprop.0+0x29/0x2b
[<ffffffff81278f4c>] pci_get_subsys+0x36/0x78
[<ffffffff81022689>] ? setup_APIC_eilvt+0xfb/0x139
[<ffffffff81278fa4>] pci_get_device+0x16/0x18
[<ffffffffa06c8b5d>] op_amd_init+0xd3/0x211 [oprofile]
[<ffffffffa064d000>] ? 0xffffffffa064cfff
[<ffffffffa064d298>] op_nmi_init+0x21e/0x26a [oprofile]
[<ffffffffa064d062>] oprofile_arch_init+0xe/0x26 [oprofile]
[<ffffffffa064d010>] oprofile_init+0x10/0x42 [oprofile]
[<ffffffff81002099>] do_one_initcall+0x7f/0x13a
[<ffffffff81096524>] sys_init_module+0x132/0x281
[<ffffffff814cc682>] system_call_fastpath+0x16/0x1b
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/x86/oprofile/op_model_amd.c | 95 ++++++++++++++++++++++-----------------
1 file changed, 54 insertions(+), 41 deletions(-)
--- a/arch/x86/oprofile/op_model_amd.c
+++ b/arch/x86/oprofile/op_model_amd.c
@@ -316,16 +316,23 @@ static void op_amd_stop_ibs(void)
wrmsrl(MSR_AMD64_IBSOPCTL, 0);
}
-static inline int eilvt_is_available(int offset)
+static inline int get_eilvt(int offset)
{
- /* check if we may assign a vector */
return !setup_APIC_eilvt(offset, 0, APIC_EILVT_MSG_NMI, 1);
}
+static inline int put_eilvt(int offset)
+{
+ return !setup_APIC_eilvt(offset, 0, 0, 1);
+}
+
static inline int ibs_eilvt_valid(void)
{
int offset;
u64 val;
+ int valid = 0;
+
+ preempt_disable();
rdmsrl(MSR_AMD64_IBSCTL, val);
offset = val & IBSCTL_LVT_OFFSET_MASK;
@@ -333,16 +340,20 @@ static inline int ibs_eilvt_valid(void)
if (!(val & IBSCTL_LVT_OFFSET_VALID)) {
pr_err(FW_BUG "cpu %d, invalid IBS interrupt offset %d (MSR%08X=0x%016llx)\n",
smp_processor_id(), offset, MSR_AMD64_IBSCTL, val);
- return 0;
+ goto out;
}
- if (!eilvt_is_available(offset)) {
+ if (!get_eilvt(offset)) {
pr_err(FW_BUG "cpu %d, IBS interrupt offset %d not available (MSR%08X=0x%016llx)\n",
smp_processor_id(), offset, MSR_AMD64_IBSCTL, val);
- return 0;
+ goto out;
}
- return 1;
+ valid = 1;
+out:
+ preempt_enable();
+
+ return valid;
}
static inline int get_ibs_offset(void)
@@ -600,67 +611,69 @@ static int setup_ibs_ctl(int ibs_eilvt_o
static int force_ibs_eilvt_setup(void)
{
- int i;
+ int offset;
int ret;
- /* find the next free available EILVT entry */
- for (i = 1; i < 4; i++) {
- if (!eilvt_is_available(i))
- continue;
- ret = setup_ibs_ctl(i);
- if (ret)
- return ret;
- pr_err(FW_BUG "using offset %d for IBS interrupts\n", i);
- return 0;
+ /*
+ * find the next free available EILVT entry, skip offset 0,
+ * pin search to this cpu
+ */
+ preempt_disable();
+ for (offset = 1; offset < APIC_EILVT_NR_MAX; offset++) {
+ if (get_eilvt(offset))
+ break;
}
+ preempt_enable();
- printk(KERN_DEBUG "No EILVT entry available\n");
-
- return -EBUSY;
-}
-
-static int __init_ibs_nmi(void)
-{
- int ret;
-
- if (ibs_eilvt_valid())
- return 0;
+ if (offset == APIC_EILVT_NR_MAX) {
+ printk(KERN_DEBUG "No EILVT entry available\n");
+ return -EBUSY;
+ }
- ret = force_ibs_eilvt_setup();
+ ret = setup_ibs_ctl(offset);
if (ret)
- return ret;
+ goto out;
- if (!ibs_eilvt_valid())
- return -EFAULT;
+ if (!ibs_eilvt_valid()) {
+ ret = -EFAULT;
+ goto out;
+ }
+ pr_err(FW_BUG "using offset %d for IBS interrupts\n", offset);
pr_err(FW_BUG "workaround enabled for IBS LVT offset\n");
return 0;
+out:
+ preempt_disable();
+ put_eilvt(offset);
+ preempt_enable();
+ return ret;
}
/*
* check and reserve APIC extended interrupt LVT offset for IBS if
* available
- *
- * init_ibs() preforms implicitly cpu-local operations, so pin this
- * thread to its current CPU
*/
static void init_ibs(void)
{
- preempt_disable();
-
ibs_caps = get_ibs_caps();
+
if (!ibs_caps)
+ return;
+
+ if (ibs_eilvt_valid())
goto out;
- if (__init_ibs_nmi() < 0)
- ibs_caps = 0;
- else
- printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
+ if (!force_ibs_eilvt_setup())
+ goto out;
+
+ /* Failed to setup ibs */
+ ibs_caps = 0;
+ return;
out:
- preempt_enable();
+ printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
}
static int (*create_arch_files)(struct super_block *sb, struct dentry *root);
next prev parent reply other threads:[~2011-06-01 9:17 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-01 8:06 [000/146] 2.6.38.8 stable review Greg KH
2011-06-01 7:58 ` [001/146] kmemleak: Do not return a pointer to an object that kmemleak did not get Greg KH
2011-06-01 7:58 ` [002/146] kmemleak: Initialise kmemleak after debug_objects_mem_init() Greg KH
2011-06-01 7:58 ` [003/146] [CPUFREQ] Fix _OSC UUID in pcc-cpufreq Greg KH
2011-06-01 7:59 ` [004/146] [CPUFREQ] CPU hotplug, re-create sysfs directory and symlinks Greg KH
2011-06-01 7:59 ` [005/146] [CPUFREQ] Fix memory leak in cpufreq_stat Greg KH
2011-06-01 7:59 ` [006/146] net: recvmmsg: Strip MSG_WAITFORONE when calling recvmsg Greg KH
2011-06-01 7:59 ` [007/146] ftrace: Only update the function code on write to filter files Greg KH
2011-06-01 7:59 ` [008/146] [SCSI] qla2xxx: Fix hang during driver unload when vport is active Greg KH
2011-06-01 7:59 ` [009/146] [SCSI] qla2xxx: Fix virtual port failing to login after chip reset Greg KH
2011-06-01 7:59 ` [010/146] [SCSI] qla2xxx: Fix vport delete hang when logins are outstanding Greg KH
2011-06-01 7:59 ` [011/146] powerpc/kdump64: Dont reference freed memory as pacas Greg KH
2011-06-01 7:59 ` [012/146] powerpc/kexec: Fix memory corruption from unallocated slaves Greg KH
2011-06-01 7:59 ` [013/146] x86, cpufeature: Fix cpuid leaf 7 feature detection Greg KH
2011-06-01 7:59 ` [014/146] ath9k_hw: do noise floor calibration only on required chains Greg KH
2011-06-01 7:59 ` [015/146] ath9k_hw: fix power for the HT40 duplicate frames Greg KH
2011-06-01 7:59 ` [016/146] ath9k_hw: fix dual band assumption for XB113 Greg KH
2011-06-01 7:59 ` [017/146] ath9k_hw: Fix STA connection issues with AR9380 (XB113) Greg KH
2011-06-01 7:59 ` [018/146] powerpc: Set nr_cpu_ids early and use it to free PACAs Greg KH
2011-06-01 7:59 ` [019/146] powerpc/oprofile: Handle events that raise an exception without overflowing Greg KH
2011-06-01 7:59 ` [020/146] iwlagn: fix iwl_is_any_associated Greg KH
2011-06-01 7:59 ` [021/146] block: rescan partitions on invalidated devices on -ENOMEDIA Greg KH
2011-06-01 7:59 ` [022/146] block: move bd_set_size() above rescan_partitions() in Greg KH
2011-06-01 7:59 ` [023/146] paride: Convert to bdops->check_events() Greg KH
2011-06-01 7:59 ` [024/146] gdrom,viocd: " Greg KH
2011-06-01 7:59 ` [025/146] ide: " Greg KH
2011-06-01 7:59 ` [026/146] block: dont block events on excl write for non-optical Greg KH
2011-06-01 8:15 ` Tejun Heo
2011-06-01 8:58 ` Greg KH
2011-06-01 9:15 ` Jens Axboe
2011-06-03 6:02 ` Greg KH
2011-06-03 6:39 ` Jens Axboe
2011-06-01 7:59 ` [027/146] block: Fix discard topology stacking and reporting Greg KH
2011-06-01 7:59 ` [028/146] block: add proper state guards to __elv_next_request Greg KH
2011-06-01 7:59 ` [029/146] block: always allocate genhd->ev if check_events is Greg KH
2011-06-01 7:59 ` [030/146] mtd: mtdconcat: fix NAND OOB write Greg KH
2011-06-01 7:59 ` [031/146] mtd: return badblockbits back Greg KH
2011-06-01 7:59 ` [032/146] x86, 64-bit: Fix copy_[to/from]_user() checks for the Greg KH
2011-06-01 7:59 ` [033/146] ext4: fix possible use-after-free in Greg KH
2011-06-01 7:59 ` [034/146] iwlwifi: fix bugs in change_interface Greg KH
2011-06-01 7:59 ` [035/146] nl80211: Fix set_key regression with some drivers Greg KH
2011-06-01 7:59 ` [036/146] mac80211: fix a few RCU issues Greg KH
2011-06-01 7:59 ` [037/146] [PARISC] wire up fanotify syscalls Greg KH
2011-06-01 7:59 ` [038/146] [PARISC] wire up clock_adjtime syscall Greg KH
2011-06-01 7:59 ` [039/146] [PARISC] wire up the fhandle syscalls Greg KH
2011-06-01 8:45 ` [Stable-review] " Ben Hutchings
2011-06-01 8:58 ` Greg KH
2011-06-01 7:59 ` [040/146] [PARISC] wire up syncfs syscall Greg KH
2011-06-01 8:46 ` [Stable-review] " Ben Hutchings
2011-06-01 7:59 ` [041/146] drm: Send pending vblank events before disabling vblank Greg KH
2011-06-01 7:59 ` [042/146] pata_cm64x: fix boot crash on parisc Greg KH
2011-06-01 7:59 ` [043/146] ext3: Fix fs corruption when make_indexed_dir() fails Greg KH
2011-06-01 7:59 ` [044/146] jbd: Fix forever sleeping process in do_get_write_access() Greg KH
2011-06-01 7:59 ` [045/146] jbd: fix fsync() tid wraparound bug Greg KH
2011-06-01 7:59 ` [046/146] ext4: release page cache in ext4_mb_load_buddy error path Greg KH
2011-06-01 7:59 ` [047/146] bonding: 802.3ad - fix agg_device_up Greg KH
2011-06-01 7:59 ` [048/146] bridge: fix forwarding of IPv6 Greg KH
2011-06-01 7:59 ` [049/146] ieee802154: Remove hacked CFLAGS in net/ieee802154/Makefile Greg KH
2011-06-01 7:59 ` [050/146] irda: fix locking unbalance in irda_sendmsg Greg KH
2011-06-01 7:59 ` [051/146] inetpeer: reduce stack usage Greg KH
2011-06-01 7:59 ` [052/146] ipv6: Remove hoplimit initialization to -1 Greg KH
2011-06-01 7:59 ` [053/146] ipv6: udp: fix the wrong headroom check Greg KH
2011-06-01 7:59 ` [054/146] macvlan: fix panic if lowerdev in a bond Greg KH
2011-06-01 7:59 ` [055/146] net: Do not wrap sysctl igmp_max_memberships in IP_MULTICAST Greg KH
2011-06-01 7:59 ` [056/146] net: use hlist_del_rcu() in dev_change_name() Greg KH
2011-06-01 7:59 ` [057/146] Revert "bridge: Forward reserved group addresses if !STP" Greg KH
2011-06-01 7:59 ` [058/146] Revert "tcp: disallow bind() to reuse addr/port" Greg KH
2011-06-01 7:59 ` [059/146] SCTP: fix race between sctp_bind_addr_free() and sctp_bind_addr_conflict() Greg KH
2011-06-01 7:59 ` [060/146] tcp: len check is unnecessarily devastating, change to WARN_ON Greg KH
2011-06-01 7:59 ` [061/146] vlan: fix GVRP at dismantle time MIME-Version: 1.0 Greg KH
2011-06-01 7:59 ` [062/146] igmp: call ip_mc_clear_src() only when we have no users of ip_mc_list Greg KH
2011-06-01 7:59 ` [063/146] net: add skb_dst_force() in sock_queue_err_skb() Greg KH
2011-06-01 8:00 ` [064/146] sch_sfq: avoid giving spurious NET_XMIT_CN signals Greg KH
2011-06-01 8:00 ` [065/146] sctp: fix memory leak of the ASCONF queue when free asoc Greg KH
2011-06-01 8:00 ` [066/146] sch_sfq: fix peek() implementation Greg KH
2011-06-01 8:00 ` [067/146] bonding: prevent deadlock on slave store with alb mode (v3) Greg KH
2011-06-01 8:00 ` [068/146] [SCSI] mpt2sas: move even handling of Greg KH
2011-06-01 8:00 ` [069/146] [SCSI] bnx2i: Fixed packet error created when the sq_size is Greg KH
2011-06-01 8:00 ` [070/146] [SCSI] bnx2i: Updated the connection shutdown/cleanup Greg KH
2011-06-01 8:00 ` [071/146] [SCSI] Fix Ultrastor asm snippet Greg KH
2011-06-01 8:00 ` [072/146] [SCSI] target: Fix multi task->task_sg[] chaining logic bug Greg KH
2011-06-01 8:00 ` [073/146] [SCSI] target: Fix interrupt context bug with stats_lock and Greg KH
2011-06-01 8:00 ` [074/146] [SCSI] target: Fix bug with task_sg chained Greg KH
2011-06-01 8:00 ` [075/146] [SCSI] target: Fix task->task_execute_queue=1 clear bug + Greg KH
2011-06-01 8:00 ` [076/146] x86, ioapic: Fix potential resume deadlock Greg KH
2011-06-01 8:00 ` [077/146] x86, amd: Do not enable ARAT feature on AMD processors below Greg KH
2011-06-01 8:00 ` [078/146] x86, amd: Use _safe() msr access for GartTlbWlk disable code Greg KH
2011-06-01 8:00 ` [079/146] x86, cpufeature: Update CPU feature RDRND to RDRAND Greg KH
2011-06-01 8:00 ` Greg KH [this message]
2011-06-01 8:00 ` [081/146] rcu: Fix unpaired rcu_irq_enter() from locking selftests Greg KH
2011-06-01 8:00 ` [082/146] [CIFS] When mandatory encryption on share, fail mount Greg KH
2011-06-01 8:00 ` [083/146] staging: usbip: fix wrong endian conversion Greg KH
2011-06-01 8:00 ` [084/146] staging: r8712u: Fix driver to support ad-hoc mode Greg KH
2011-06-01 8:00 ` [085/146] Fix for buffer overflow in ldm_frag_add not sufficient Greg KH
2011-06-01 8:00 ` [086/146] seqlock: Dont smp_rmb in seqlock reader spin loop Greg KH
2011-06-01 8:00 ` [087/146] md: Fix race when creating a new md device Greg KH
2011-06-01 8:00 ` [088/146] md/bitmap: fix saving of events_cleared and other state Greg KH
2011-06-01 8:00 ` [089/146] mm: vmscan: correct use of pgdat_balanced in Greg KH
2011-06-01 8:00 ` [090/146] mm: vmscan: correctly check if reclaimer should schedule Greg KH
2011-06-01 8:00 ` [091/146] ips: use interruptible waits in ips-monitor Greg KH
2011-06-01 8:00 ` [092/146] ALSA: HDA: Use one dmic only for Dell Studio 1558 Greg KH
2011-06-01 8:00 ` [093/146] ALSA: HDA: Add quirk for Lenovo U350 Greg KH
2011-06-01 8:00 ` [094/146] ALSA: hda - Fix input-src parse in patch_analog.c Greg KH
2011-06-01 8:00 ` [095/146] ALSA: hda - Use LPIB for ATI/AMD chipsets as default Greg KH
2011-06-01 8:00 ` [096/146] ASoC: Ensure output PGA is enabled for line outputs in Greg KH
2011-06-01 8:00 ` [097/146] ASoC: Add some missing volume update bit sets for wm_hubs Greg KH
2011-06-01 8:00 ` [098/146] HID: magicmouse: ignore ivalid report id while switching Greg KH
2011-06-01 8:00 ` [099/146] mm/page_alloc.c: prevent unending loop in Greg KH
2011-06-01 8:00 ` [100/146] loop: limit max_part module param to DISK_MAX_PARTS Greg KH
2011-06-01 8:00 ` [101/146] loop: handle on-demand devices correctly Greg KH
2011-06-01 8:00 ` [102/146] i2c/writing-clients: Fix foo_driver.id_table Greg KH
2011-06-01 8:00 ` [103/146] USB: CP210x Add 4 Device IDs for AC-Services Devices Greg KH
2011-06-01 8:00 ` [104/146] USB: moto_modem: Add USB identifier for the Motorola VE240 Greg KH
2011-06-01 8:00 ` [105/146] USB: serial: ftdi_sio: adding support for TavIR STK500 Greg KH
2011-06-01 8:00 ` [106/146] USB: gadget: g_multi: fixed vendor and product ID in inf Greg KH
2011-06-01 8:00 ` [107/146] USB: gamin_gps: Fix for data transfer problems in native Greg KH
2011-06-01 8:00 ` [108/146] Bind only modem AT command endpoint to option module Greg KH
2011-06-01 8:00 ` [109/146] USB: cdc_acm: Fix oops when Droids MuIn LCD is connected Greg KH
2011-06-01 8:00 ` [110/146] xhci: Fix bug in control transfer cancellation Greg KH
2011-06-01 8:00 ` [111/146] usb/gadget: at91sam9g20 fix end point max packet size Greg KH
2011-06-01 8:00 ` [112/146] usb: gadget: rndis: dont test against req->length Greg KH
2011-06-01 8:00 ` [113/146] xhci: Fix full speed bInterval encoding Greg KH
2011-06-01 8:00 ` [114/146] xhci: Fix memory leak in ring cache deallocation Greg KH
2011-06-01 8:00 ` [115/146] xhci: Fix memory leak bug when dropping endpoints Greg KH
2011-06-01 8:00 ` [116/146] USB: option: add support for Huawei E353 device Greg KH
2011-06-01 8:00 ` [117/146] OHCI: fix regression caused by nVidia shutdown workaround Greg KH
2011-06-01 8:00 ` [118/146] USB: remove remaining usages of hcd->state from usbcore and Greg KH
2011-06-01 8:00 ` [119/146] [media] cx88: protect per-device driver list with device Greg KH
2011-06-01 8:00 ` [120/146] [media] cx88: fix locking of sub-driver operations Greg KH
2011-06-01 8:00 ` [121/146] [media] cx88: hold device lock during sub-driver Greg KH
2011-06-01 8:00 ` [122/146] sh: clkfwk: fixup clk_rate_table_build parameter in div6 Greg KH
2011-06-01 8:00 ` [123/146] sh: fixup fpu.o compile order Greg KH
2011-06-01 8:01 ` [124/146] p54usb: add zoom 4410 usbid Greg KH
2011-06-01 8:01 ` [125/146] eCryptfs: Allow 2 scatterlist entries for encrypted Greg KH
2011-06-01 8:01 ` [126/146] UBIFS: fix a rare memory leak in ro to rw remounting path Greg KH
2011-06-01 8:01 ` [127/146] kbuild: Fix GNU make v3.80 compatibility Greg KH
2011-06-01 8:01 ` [128/146] i8k: Avoid lahf in 64-bit code Greg KH
2011-06-01 8:01 ` [129/146] cpuidle: menu: fixed wrapping timers at 4.294 seconds Greg KH
2011-06-01 8:01 ` [130/146] idle governor: Avoid lock acquisition to read pm_qos before Greg KH
2011-06-01 8:01 ` [131/146] dm table: reject devices without request fns Greg KH
2011-06-01 8:01 ` [132/146] ARM: 6941/1: cache: ensure MVA is cacheline aligned in Greg KH
2011-06-01 8:01 ` [133/146] tmpfs: fix race between truncate and writepage Greg KH
2011-06-01 8:01 ` [134/146] atm: expose ATM device index in sysfs Greg KH
2011-06-01 8:01 ` [135/146] brd: limit max_part module param to DISK_MAX_PARTS Greg KH
2011-06-01 8:01 ` [136/146] brd: handle on-demand devices correctly Greg KH
2011-06-01 8:01 ` [137/146] drm/i915: fix user irq miss in BSD ring on g4x Greg KH
2011-06-01 8:01 ` [138/146] drm/radeon/evergreen/btc/fusion: setup hdp to invalidate and Greg KH
2011-06-01 8:01 ` [139/146] drm/radeon/kms: add wait idle ioctl for eg->cayman Greg KH
2011-06-01 8:01 ` [140/146] SUNRPC: Deal with the lack of a SYN_SENT sk->sk_state_change Greg KH
2011-06-01 8:01 ` [141/146] NFSv4: Handle expired stateids when the lease is still valid Greg KH
2011-06-01 8:01 ` [142/146] NFSv4.1: Fix the handling of NFS4ERR_SEQ_MISORDERED errors Greg KH
2011-06-01 8:01 ` [143/146] PCI: Add quirk for setting valid class for TI816X Endpoint Greg KH
2011-06-01 8:01 ` [144/146] xen mmu: fix a race window causing leave_mm BUG() Greg KH
2011-06-01 8:01 ` [145/146] ext4: Use schedule_timeout_interruptible() for waiting in Greg KH
2011-06-01 8:01 ` [146/146] AppArmor: fix oops in apparmor_setprocattr Greg KH
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=20110601080343.992675784@blue.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=robert.richter@amd.com \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.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