linux-kernel.vger.kernel.org archive mirror
 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, Ilan Peer <ilan.peer@intel.com>,
	Luca Coelho <luciano.coelho@intel.com>,
	Johannes Berg <johannes.berg@intel.com>,
	Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 3.18 079/120] mac80211: Fix station bandwidth setting after channel switch
Date: Thu, 11 Oct 2018 17:34:20 +0200	[thread overview]
Message-ID: <20181011152553.072177627@linuxfoundation.org> (raw)
In-Reply-To: <20181011152549.500488630@linuxfoundation.org>

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

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

From: Ilan Peer <ilan.peer@intel.com>

[ Upstream commit 0007e94355fdb71a1cf5dba0754155cba08f0666 ]

When performing a channel switch flow for a managed interface, the
flow did not update the bandwidth of the AP station and the rate
scale algorithm. In case of a channel width downgrade, this would
result with the rate scale algorithm using a bandwidth that does not
match the interface channel configuration.

Fix this by updating the AP station bandwidth and rate scaling algorithm
before the actual channel change in case of a bandwidth downgrade, or
after the actual channel change in case of a bandwidth upgrade.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/mac80211/mlme.c |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -970,6 +970,10 @@ static void ieee80211_chswitch_work(stru
 	 */
 
 	if (sdata->reserved_chanctx) {
+		struct ieee80211_supported_band *sband = NULL;
+		struct sta_info *mgd_sta = NULL;
+		enum ieee80211_sta_rx_bandwidth bw = IEEE80211_STA_RX_BW_20;
+
 		/*
 		 * with multi-vif csa driver may call ieee80211_csa_finish()
 		 * many times while waiting for other interfaces to use their
@@ -978,6 +982,48 @@ static void ieee80211_chswitch_work(stru
 		if (sdata->reserved_ready)
 			goto out;
 
+		if (sdata->vif.bss_conf.chandef.width !=
+		    sdata->csa_chandef.width) {
+			/*
+			 * For managed interface, we need to also update the AP
+			 * station bandwidth and align the rate scale algorithm
+			 * on the bandwidth change. Here we only consider the
+			 * bandwidth of the new channel definition (as channel
+			 * switch flow does not have the full HT/VHT/HE
+			 * information), assuming that if additional changes are
+			 * required they would be done as part of the processing
+			 * of the next beacon from the AP.
+			 */
+			switch (sdata->csa_chandef.width) {
+			case NL80211_CHAN_WIDTH_20_NOHT:
+			case NL80211_CHAN_WIDTH_20:
+			default:
+				bw = IEEE80211_STA_RX_BW_20;
+				break;
+			case NL80211_CHAN_WIDTH_40:
+				bw = IEEE80211_STA_RX_BW_40;
+				break;
+			case NL80211_CHAN_WIDTH_80:
+				bw = IEEE80211_STA_RX_BW_80;
+				break;
+			case NL80211_CHAN_WIDTH_80P80:
+			case NL80211_CHAN_WIDTH_160:
+				bw = IEEE80211_STA_RX_BW_160;
+				break;
+			}
+
+			mgd_sta = sta_info_get(sdata, ifmgd->bssid);
+			sband =
+				local->hw.wiphy->bands[sdata->csa_chandef.chan->band];
+		}
+
+		if (sdata->vif.bss_conf.chandef.width >
+		    sdata->csa_chandef.width) {
+			mgd_sta->sta.bandwidth = bw;
+			rate_control_rate_update(local, sband, mgd_sta,
+						 IEEE80211_RC_BW_CHANGED);
+		}
+
 		ret = ieee80211_vif_use_reserved_context(sdata);
 		if (ret) {
 			sdata_info(sdata,
@@ -988,6 +1034,13 @@ static void ieee80211_chswitch_work(stru
 			goto out;
 		}
 
+		if (sdata->vif.bss_conf.chandef.width <
+		    sdata->csa_chandef.width) {
+			mgd_sta->sta.bandwidth = bw;
+			rate_control_rate_update(local, sband, mgd_sta,
+						 IEEE80211_RC_BW_CHANGED);
+		}
+
 		goto out;
 	}
 



  parent reply	other threads:[~2018-10-11 15:39 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-11 15:33 [PATCH 3.18 000/120] 3.18.124-stable review Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 001/120] ASoC: cs4265: fix MMTLR Data switch control Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 002/120] ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 003/120] ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 004/120] ring-buffer: Allow for rescheduling when removing pages Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 005/120] mm: shmem.c: Correctly annotate new inodes for lockdep Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 006/120] gso_segment: Reset skb->mac_len after modifying network header Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 007/120] net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 008/120] net: hp100: fix always-true check for link up state Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 009/120] neighbour: confirm neigh entries when ARP packet is received Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 010/120] ipv6: fix possible use-after-free in ip6_xmit() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 011/120] scsi: target: iscsi: Use hex2bin instead of a re-implementation Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 012/120] ocfs2: fix ocfs2 read block panic Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 013/120] ext4: avoid divide by zero fault when deleting corrupted inline directories Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 014/120] ext4: recalucate superblock checksum after updating free blocks/inodes Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 015/120] ext4: fix online resizes handling of a too-small final block group Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 016/120] ext4: dont mark mmp buffer head dirty Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 017/120] arm64: Add trace_hardirqs_off annotation in ret_to_user Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 018/120] HID: sony: Update device ids Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 019/120] HID: sony: Support DS4 dongle Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 020/120] crypto: skcipher - Fix -Wstringop-truncation warnings Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 021/120] tsl2550: fix lux1_input error in low light Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 022/120] x86/numa_emulation: Fix emulated-to-physical node mapping Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 023/120] uwb: hwa-rc: fix memory leak at probe Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 024/120] USB: serial: kobil_sct: fix modem-status error handling Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 025/120] media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 026/120] powerpc/kdump: Handle crashkernel memory reservation failure Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 027/120] x86/tsc: Add missing header to tsc_msr.c Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 028/120] scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 029/120] scsi: ibmvscsi: Improve strings handling Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 030/120] usb: wusbcore: security: cast sizeof to int for comparison Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 031/120] alarmtimer: Prevent overflow for relative nanosleep Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 032/120] s390/extmem: fix gcc 8 stringop-overflow warning Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 033/120] ALSA: snd-aoa: add of_node_put() in error path Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 034/120] media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 035/120] media: soc_camera: ov772x: correct setting of banding filter Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 036/120] staging: android: ashmem: Fix mmap size validation Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 037/120] drivers/tty: add error handling for pcmcia_loop_config Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 038/120] media: tm6000: add error handling for dvb_register_adapter Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 039/120] ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 040/120] rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 041/120] wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 042/120] ARM: mvebu: declare asm symbols as character arrays in pmsu.c Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 043/120] HID: hid-ntrig: add error handling for sysfs_create_group Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 044/120] scsi: bnx2i: add error handling for ioremap_nocache Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 045/120] ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 046/120] module: exclude SHN_UNDEF symbols from kallsyms api Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 047/120] nfsd: fix corrupted reply to badly ordered compound Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 048/120] floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 049/120] serial: cpm_uart: return immediately from console poll Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 050/120] spi: tegra20-slink: explicitly enable/disable clock Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 051/120] spi: sh-msiof: Fix handling of write value for SISTR register Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 052/120] spi: rspi: Fix interrupted DMA transfers Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 053/120] USB: fix error handling in usb_driver_claim_interface() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 054/120] USB: handle NULL config in usb_find_alt_setting() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 055/120] slub: make ->cpu_partial unsigned int Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 056/120] media: uvcvideo: Support realteks UVC 1.5 device Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 057/120] USB: usbdevfs: sanitize flags more Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 058/120] USB: usbdevfs: restore warning for nonsensical flags Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 059/120] Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()" Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 060/120] USB: remove LPM management from usb_driver_claim_interface() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 061/120] scsi: target: iscsi: Use bin2hex instead of a re-implementation Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 062/120] staging: android: ion: fix ION_IOC_{MAP,SHARE} use-after-free Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 063/120] arm64: KVM: Tighten guest core register access from userspace Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 064/120] ext4: verify the depth of extent tree in ext4_find_extent() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 065/120] thermal: of-thermal: disable passive polling when thermal zone is disabled Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 066/120] e1000: check on netif_running() before calling e1000_up() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 067/120] e1000: ensure to free old tx/rx rings in set_ringparam() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 068/120] hwmon: (adt7475) Make adt7475_read_word() return errors Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 069/120] arm64: KVM: Sanitize PSTATE.M when being set from userspace Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 070/120] media: v4l: event: Prevent freeing event subscriptions while accessed Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 071/120] KVM: PPC: Book3S HV: Dont truncate HPTE index in xlate function Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 072/120] mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 073/120] gpio: adp5588: Fix sleep-in-atomic-context bug Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 074/120] cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 075/120] RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0 Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 076/120] net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 077/120] fs/cifs: dont translate SFM_SLASH (U+F026) to backslash Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 078/120] mac80211: fix a race between restart and CSA flows Greg Kroah-Hartman
2018-10-11 15:34 ` Greg Kroah-Hartman [this message]
2018-10-11 15:34 ` [PATCH 3.18 080/120] mac80211: shorten the IBSS debug messages Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 081/120] tools/vm/slabinfo.c: fix sign-compare warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 082/120] tools/vm/page-types.c: fix "defined but not used" warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 083/120] mm: madvise(MADV_DODUMP): allow hugetlbfs pages Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 084/120] RDMA/ucma: check fd type in ucma_migrate_id() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 085/120] USB: yurex: Check for truncation in yurex_read() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 086/120] fs/cifs: suppress a string overflow warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 087/120] dm thin metadata: try to avoid ever aborting transactions Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 088/120] arch/hexagon: fix kernel/dma.c build warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 089/120] hexagon: modify ffs() and fls() to return int Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 090/120] r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 091/120] s390/qeth: dont dump past end of unknown HW header Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 092/120] cifs: read overflow in is_valid_oplock_break() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 093/120] xen/manage: dont complain about an empty value in control/sysrq node Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 094/120] xen: fix GCC warning and remove duplicate EVTCHN_ROW/EVTCHN_COL usage Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 095/120] smb2: fix missing files in root share directory listing Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 096/120] crypto: mxs-dcp - Fix wait logic on chan threads Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 097/120] ocfs2: fix locking for res->tracking and dlm->tracking_list Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 098/120] dm thin metadata: fix __udivdi3 undefined on 32-bit Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 099/120] Make file credentials available to the seqfile interfaces Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 100/120] proc: restrict kernel stack dumps to root Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 101/120] fbdev/omapfb: fix omapfb_memory_read infoleak Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 102/120] x86/vdso: Fix asm constraints on vDSO syscall fallbacks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 103/120] x86/vdso: Fix vDSO syscall fallback asm constraint regression Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 104/120] PCI: Reprogram bridge prefetch registers on resume Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 105/120] mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 106/120] PM / core: Clear the direct_complete flag on errors Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 107/120] USB: serial: simple: add Motorola Tetra MTP6550 id Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 108/120] ext4: only look at the bg_flags field if it is valid Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 109/120] ext4: fix check to prevent initializing reserved inodes Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 110/120] ext4: always check block group bounds in ext4_init_block_bitmap() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 111/120] ext4: fix false negatives *and* false positives in ext4_check_descriptors() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 112/120] ext4: add corruption check in ext4_xattr_set_entry() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 113/120] ext4: always verify the magic number in xattr blocks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 114/120] ext4: never move the system.data xattr out of the inode body Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 115/120] ext4: add more inode number paranoia checks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 116/120] jbd2: dont mark block as modified if the handle is out of credits Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 117/120] ext4: avoid running out of journal credits when appending to an inline file Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 118/120] cgroup: Fix deadlock in cpu hotplug path Greg Kroah-Hartman
2018-10-11 15:35 ` [PATCH 3.18 119/120] ubifs: Check for name being NULL while mounting Greg Kroah-Hartman
2018-10-11 15:35 ` [PATCH 3.18 120/120] ebtables: arpreply: Add the standard target sanity check Greg Kroah-Hartman
2018-10-11 22:46 ` [PATCH 3.18 000/120] 3.18.124-stable review Shuah Khan
2018-10-12 10:23   ` Greg Kroah-Hartman
2018-10-12 12:19 ` Guenter Roeck
2018-10-12 13:37   ` Greg Kroah-Hartman
2018-10-12 14:06     ` Guenter Roeck
2018-10-12 14:21       ` Greg Kroah-Hartman
2018-10-12 15:15         ` Guenter Roeck
2018-10-12 15:39           ` Guenter Roeck
2018-10-12 16:05             ` Greg Kroah-Hartman
2018-10-12 17:07 ` Nathan Chancellor
2018-10-13  6:42   ` Greg Kroah-Hartman
2018-10-12 20:24 ` Guenter Roeck
2018-10-13  6:42   ` Greg Kroah-Hartman

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=20181011152553.072177627@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@microsoft.com \
    --cc=ilan.peer@intel.com \
    --cc=johannes.berg@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luciano.coelho@intel.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;
as well as URLs for NNTP newsgroup(s).