From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Jouni Malinen <j@w1.fi>,
Johannes Berg <johannes.berg@intel.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.9 062/171] mac80211: fix TX aggregation start/stop callback race
Date: Thu, 8 Nov 2018 13:50:32 -0800 [thread overview]
Message-ID: <20181108215132.040901446@linuxfoundation.org> (raw)
In-Reply-To: <20181108215127.257643509@linuxfoundation.org>
4.9-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit 7a7c0a6438b8e7636d5a22e572892cc234f68297 ]
When starting or stopping an aggregation session, one of the steps
is that the driver calls back to mac80211 that the start/stop can
proceed. This is handled by queueing up a fake SKB and processing
it from the normal iface/sdata work. Since this isn't flushed when
disassociating, the following race is possible:
* associate
* start aggregation session
* driver callback
* disassociate
* associate again to the same AP
* callback processing runs, leading to a WARN_ON() that
the TID hadn't requested aggregation
If the second association isn't to the same AP, there would only
be a message printed ("Could not find station: <addr>"), but the
same race could happen.
Fix this by not going the whole detour with a fake SKB etc. but
simply looking up the aggregation session in the driver callback,
marking it with a START_CB/STOP_CB bit and then scheduling the
regular aggregation work that will now process these bits as well.
This also simplifies the code and gets rid of the whole problem
with allocation failures of said skb, which could have left the
session in limbo.
Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/mac80211/agg-tx.c | 128 +++++++++++++++----------------------
net/mac80211/ht.c | 16 +++--
net/mac80211/ieee80211_i.h | 14 ++--
net/mac80211/iface.c | 11 +---
net/mac80211/sta_info.h | 2 +
5 files changed, 71 insertions(+), 100 deletions(-)
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 45319cc01121..80c45567ee3a 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -7,7 +7,7 @@
* Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
* Copyright 2007, Michael Wu <flamingice@sourmilk.net>
* Copyright 2007-2010, Intel Corporation
- * Copyright(c) 2015 Intel Deutschland GmbH
+ * Copyright(c) 2015-2017 Intel Deutschland GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -741,46 +741,43 @@ static void ieee80211_agg_tx_operational(struct ieee80211_local *local,
ieee80211_agg_start_txq(sta, tid, true);
}
-void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid)
+void ieee80211_start_tx_ba_cb(struct sta_info *sta, int tid,
+ struct tid_ampdu_tx *tid_tx)
{
- struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
+ struct ieee80211_sub_if_data *sdata = sta->sdata;
struct ieee80211_local *local = sdata->local;
- struct sta_info *sta;
- struct tid_ampdu_tx *tid_tx;
- trace_api_start_tx_ba_cb(sdata, ra, tid);
+ if (WARN_ON(test_and_set_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state)))
+ return;
+
+ if (test_bit(HT_AGG_STATE_RESPONSE_RECEIVED, &tid_tx->state))
+ ieee80211_agg_tx_operational(local, sta, tid);
+}
+
+static struct tid_ampdu_tx *
+ieee80211_lookup_tid_tx(struct ieee80211_sub_if_data *sdata,
+ const u8 *ra, u16 tid, struct sta_info **sta)
+{
+ struct tid_ampdu_tx *tid_tx;
if (tid >= IEEE80211_NUM_TIDS) {
ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n",
tid, IEEE80211_NUM_TIDS);
- return;
+ return NULL;
}
- mutex_lock(&local->sta_mtx);
- sta = sta_info_get_bss(sdata, ra);
- if (!sta) {
- mutex_unlock(&local->sta_mtx);
+ *sta = sta_info_get_bss(sdata, ra);
+ if (!*sta) {
ht_dbg(sdata, "Could not find station: %pM\n", ra);
- return;
+ return NULL;
}
- mutex_lock(&sta->ampdu_mlme.mtx);
- tid_tx = rcu_dereference_protected_tid_tx(sta, tid);
+ tid_tx = rcu_dereference((*sta)->ampdu_mlme.tid_tx[tid]);
- if (WARN_ON(!tid_tx)) {
+ if (WARN_ON(!tid_tx))
ht_dbg(sdata, "addBA was not requested!\n");
- goto unlock;
- }
- if (WARN_ON(test_and_set_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state)))
- goto unlock;
-
- if (test_bit(HT_AGG_STATE_RESPONSE_RECEIVED, &tid_tx->state))
- ieee80211_agg_tx_operational(local, sta, tid);
-
- unlock:
- mutex_unlock(&sta->ampdu_mlme.mtx);
- mutex_unlock(&local->sta_mtx);
+ return tid_tx;
}
void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif,
@@ -788,19 +785,20 @@ void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif,
{
struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
struct ieee80211_local *local = sdata->local;
- struct ieee80211_ra_tid *ra_tid;
- struct sk_buff *skb = dev_alloc_skb(0);
+ struct sta_info *sta;
+ struct tid_ampdu_tx *tid_tx;
- if (unlikely(!skb))
- return;
+ trace_api_start_tx_ba_cb(sdata, ra, tid);
- ra_tid = (struct ieee80211_ra_tid *) &skb->cb;
- memcpy(&ra_tid->ra, ra, ETH_ALEN);
- ra_tid->tid = tid;
+ rcu_read_lock();
+ tid_tx = ieee80211_lookup_tid_tx(sdata, ra, tid, &sta);
+ if (!tid_tx)
+ goto out;
- skb->pkt_type = IEEE80211_SDATA_QUEUE_AGG_START;
- skb_queue_tail(&sdata->skb_queue, skb);
- ieee80211_queue_work(&local->hw, &sdata->work);
+ set_bit(HT_AGG_STATE_START_CB, &tid_tx->state);
+ ieee80211_queue_work(&local->hw, &sta->ampdu_mlme.work);
+ out:
+ rcu_read_unlock();
}
EXPORT_SYMBOL(ieee80211_start_tx_ba_cb_irqsafe);
@@ -860,37 +858,18 @@ int ieee80211_stop_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid)
}
EXPORT_SYMBOL(ieee80211_stop_tx_ba_session);
-void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid)
+void ieee80211_stop_tx_ba_cb(struct sta_info *sta, int tid,
+ struct tid_ampdu_tx *tid_tx)
{
- struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
- struct ieee80211_local *local = sdata->local;
- struct sta_info *sta;
- struct tid_ampdu_tx *tid_tx;
+ struct ieee80211_sub_if_data *sdata = sta->sdata;
bool send_delba = false;
- trace_api_stop_tx_ba_cb(sdata, ra, tid);
-
- if (tid >= IEEE80211_NUM_TIDS) {
- ht_dbg(sdata, "Bad TID value: tid = %d (>= %d)\n",
- tid, IEEE80211_NUM_TIDS);
- return;
- }
-
- ht_dbg(sdata, "Stopping Tx BA session for %pM tid %d\n", ra, tid);
-
- mutex_lock(&local->sta_mtx);
-
- sta = sta_info_get_bss(sdata, ra);
- if (!sta) {
- ht_dbg(sdata, "Could not find station: %pM\n", ra);
- goto unlock;
- }
+ ht_dbg(sdata, "Stopping Tx BA session for %pM tid %d\n",
+ sta->sta.addr, tid);
- mutex_lock(&sta->ampdu_mlme.mtx);
spin_lock_bh(&sta->lock);
- tid_tx = rcu_dereference_protected_tid_tx(sta, tid);
- if (!tid_tx || !test_bit(HT_AGG_STATE_STOPPING, &tid_tx->state)) {
+ if (!test_bit(HT_AGG_STATE_STOPPING, &tid_tx->state)) {
ht_dbg(sdata,
"unexpected callback to A-MPDU stop for %pM tid %d\n",
sta->sta.addr, tid);
@@ -906,12 +885,8 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid)
spin_unlock_bh(&sta->lock);
if (send_delba)
- ieee80211_send_delba(sdata, ra, tid,
+ ieee80211_send_delba(sdata, sta->sta.addr, tid,
WLAN_BACK_INITIATOR, WLAN_REASON_QSTA_NOT_USE);
-
- mutex_unlock(&sta->ampdu_mlme.mtx);
- unlock:
- mutex_unlock(&local->sta_mtx);
}
void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif,
@@ -919,19 +894,20 @@ void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif,
{
struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
struct ieee80211_local *local = sdata->local;
- struct ieee80211_ra_tid *ra_tid;
- struct sk_buff *skb = dev_alloc_skb(0);
+ struct sta_info *sta;
+ struct tid_ampdu_tx *tid_tx;
- if (unlikely(!skb))
- return;
+ trace_api_stop_tx_ba_cb(sdata, ra, tid);
- ra_tid = (struct ieee80211_ra_tid *) &skb->cb;
- memcpy(&ra_tid->ra, ra, ETH_ALEN);
- ra_tid->tid = tid;
+ rcu_read_lock();
+ tid_tx = ieee80211_lookup_tid_tx(sdata, ra, tid, &sta);
+ if (!tid_tx)
+ goto out;
- skb->pkt_type = IEEE80211_SDATA_QUEUE_AGG_STOP;
- skb_queue_tail(&sdata->skb_queue, skb);
- ieee80211_queue_work(&local->hw, &sdata->work);
+ set_bit(HT_AGG_STATE_STOP_CB, &tid_tx->state);
+ ieee80211_queue_work(&local->hw, &sta->ampdu_mlme.work);
+ out:
+ rcu_read_unlock();
}
EXPORT_SYMBOL(ieee80211_stop_tx_ba_cb_irqsafe);
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index f4a528773563..6ca5442b1e03 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -7,6 +7,7 @@
* Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
* Copyright 2007, Michael Wu <flamingice@sourmilk.net>
* Copyright 2007-2010, Intel Corporation
+ * Copyright 2017 Intel Deutschland GmbH
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -289,8 +290,6 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta,
{
int i;
- cancel_work_sync(&sta->ampdu_mlme.work);
-
for (i = 0; i < IEEE80211_NUM_TIDS; i++) {
__ieee80211_stop_tx_ba_session(sta, i, reason);
__ieee80211_stop_rx_ba_session(sta, i, WLAN_BACK_RECIPIENT,
@@ -298,6 +297,9 @@ void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta,
reason != AGG_STOP_DESTROY_STA &&
reason != AGG_STOP_PEER_REQUEST);
}
+
+ /* stopping might queue the work again - so cancel only afterwards */
+ cancel_work_sync(&sta->ampdu_mlme.work);
}
void ieee80211_ba_session_work(struct work_struct *work)
@@ -352,10 +354,16 @@ void ieee80211_ba_session_work(struct work_struct *work)
spin_unlock_bh(&sta->lock);
tid_tx = rcu_dereference_protected_tid_tx(sta, tid);
- if (tid_tx && test_and_clear_bit(HT_AGG_STATE_WANT_STOP,
- &tid_tx->state))
+ if (!tid_tx)
+ continue;
+
+ if (test_and_clear_bit(HT_AGG_STATE_START_CB, &tid_tx->state))
+ ieee80211_start_tx_ba_cb(sta, tid, tid_tx);
+ if (test_and_clear_bit(HT_AGG_STATE_WANT_STOP, &tid_tx->state))
___ieee80211_stop_tx_ba_session(sta, tid,
AGG_STOP_LOCAL_REQUEST);
+ if (test_and_clear_bit(HT_AGG_STATE_STOP_CB, &tid_tx->state))
+ ieee80211_stop_tx_ba_cb(sta, tid, tid_tx);
}
mutex_unlock(&sta->ampdu_mlme.mtx);
}
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 7fd544d970d9..8a690ebd7374 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1026,8 +1026,6 @@ struct ieee80211_rx_agg {
enum sdata_queue_type {
IEEE80211_SDATA_QUEUE_TYPE_FRAME = 0,
- IEEE80211_SDATA_QUEUE_AGG_START = 1,
- IEEE80211_SDATA_QUEUE_AGG_STOP = 2,
IEEE80211_SDATA_QUEUE_RX_AGG_START = 3,
IEEE80211_SDATA_QUEUE_RX_AGG_STOP = 4,
};
@@ -1416,12 +1414,6 @@ ieee80211_get_sband(struct ieee80211_sub_if_data *sdata)
return local->hw.wiphy->bands[band];
}
-/* this struct represents 802.11n's RA/TID combination */
-struct ieee80211_ra_tid {
- u8 ra[ETH_ALEN];
- u16 tid;
-};
-
/* this struct holds the value parsing from channel switch IE */
struct ieee80211_csa_ie {
struct cfg80211_chan_def chandef;
@@ -1765,8 +1757,10 @@ int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
enum ieee80211_agg_stop_reason reason);
int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
enum ieee80211_agg_stop_reason reason);
-void ieee80211_start_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u16 tid);
-void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid);
+void ieee80211_start_tx_ba_cb(struct sta_info *sta, int tid,
+ struct tid_ampdu_tx *tid_tx);
+void ieee80211_stop_tx_ba_cb(struct sta_info *sta, int tid,
+ struct tid_ampdu_tx *tid_tx);
void ieee80211_ba_session_work(struct work_struct *work);
void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid);
void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid);
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index fa7d757fef95..760ba8ec2944 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1248,7 +1248,6 @@ static void ieee80211_iface_work(struct work_struct *work)
struct ieee80211_local *local = sdata->local;
struct sk_buff *skb;
struct sta_info *sta;
- struct ieee80211_ra_tid *ra_tid;
struct ieee80211_rx_agg *rx_agg;
if (!ieee80211_sdata_running(sdata))
@@ -1264,15 +1263,7 @@ static void ieee80211_iface_work(struct work_struct *work)
while ((skb = skb_dequeue(&sdata->skb_queue))) {
struct ieee80211_mgmt *mgmt = (void *)skb->data;
- if (skb->pkt_type == IEEE80211_SDATA_QUEUE_AGG_START) {
- ra_tid = (void *)&skb->cb;
- ieee80211_start_tx_ba_cb(&sdata->vif, ra_tid->ra,
- ra_tid->tid);
- } else if (skb->pkt_type == IEEE80211_SDATA_QUEUE_AGG_STOP) {
- ra_tid = (void *)&skb->cb;
- ieee80211_stop_tx_ba_cb(&sdata->vif, ra_tid->ra,
- ra_tid->tid);
- } else if (skb->pkt_type == IEEE80211_SDATA_QUEUE_RX_AGG_START) {
+ if (skb->pkt_type == IEEE80211_SDATA_QUEUE_RX_AGG_START) {
rx_agg = (void *)&skb->cb;
mutex_lock(&local->sta_mtx);
sta = sta_info_get_bss(sdata, rx_agg->addr);
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 15599c70a38f..cc808ac783e5 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -115,6 +115,8 @@ enum ieee80211_sta_info_flags {
#define HT_AGG_STATE_STOPPING 3
#define HT_AGG_STATE_WANT_START 4
#define HT_AGG_STATE_WANT_STOP 5
+#define HT_AGG_STATE_START_CB 6
+#define HT_AGG_STATE_STOP_CB 7
enum ieee80211_agg_stop_reason {
AGG_STOP_DECLINED,
--
2.17.1
next prev parent reply other threads:[~2018-11-08 22:25 UTC|newest]
Thread overview: 176+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-08 21:49 [PATCH 4.9 000/171] 4.9.136-stable review Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 001/171] xfrm: Validate address prefix lengths in the xfrm selector Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 002/171] xfrm6: call kfree_skb when skb is toobig Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 003/171] mac80211: Always report TX status Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 004/171] cfg80211: reg: Init wiphy_idx in regulatory_hint_core() Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 005/171] mac80211: fix pending queue hang due to TX_DROP Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 006/171] cfg80211: Address some corner cases in scan result channel updating Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 007/171] mac80211: TDLS: fix skb queue/priority assignment Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 008/171] ARM: 8799/1: mm: fix pci_ioremap_io() offset check Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 009/171] xfrm: validate template mode Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 010/171] ARM: dts: BCM63xx: Fix incorrect interrupt specifiers Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 011/171] net: macb: Clean 64b dma addresses if they are not detected Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 012/171] soc: fsl: qbman: qman: avoid allocating from non existing gen_pool Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 013/171] soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift() Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 014/171] nl80211: Fix possible Spectre-v1 for NL80211_TXRATE_HT Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 015/171] mac80211_hwsim: do not omit multicast announce of first added radio Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 016/171] Bluetooth: SMP: fix crash in unpairing Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 017/171] pxa168fb: prepare the clock Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 018/171] qed: Avoid implicit enum conversion in qed_roce_mode_to_flavor Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 019/171] qed: Avoid constant logical operation warning in qed_vf_pf_acquire Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 020/171] asix: Check for supported Wake-on-LAN modes Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 021/171] ax88179_178a: " Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 022/171] lan78xx: " Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 023/171] sr9800: " Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 024/171] r8152: Check for supported Wake-on-LAN Modes Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 025/171] smsc75xx: Check for Wake-on-LAN modes Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 026/171] smsc95xx: " Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 027/171] perf/ring_buffer: Prevent concurent ring buffer access Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 028/171] perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX Greg Kroah-Hartman
2018-11-08 21:49 ` [PATCH 4.9 029/171] net: fec: fix rare tx timeout Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 030/171] declance: Fix continuation with the adapter identification message Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 031/171] net: cxgb3_main: fix a missing-check bug Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 032/171] perf symbols: Fix memory corruption because of zero length symbols Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 033/171] mm/memory_hotplug.c: fix overflow in test_pages_in_a_zone() Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 034/171] MIPS: microMIPS: Fix decoding of swsp16 instruction Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 035/171] MIPS: Handle non word sized instructions when examining frame Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 036/171] scsi: aacraid: Fix typo in blink status Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 037/171] f2fs: fix multiple f2fs_add_link() having same name for inline dentry Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 038/171] igb: Remove superfluous reset to PHY and page 0 selection Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 039/171] ACPI: sysfs: Make ACPI GPE mask kernel parameter cover all GPEs Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 040/171] PCI: Disable MSI for HiSilicon Hip06/Hip07 only in Root Port mode Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 041/171] i2c: bcm2835: Avoid possible NULL ptr dereference Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 042/171] efi/fb: Correct PCI_STD_RESOURCE_END usage Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 043/171] ipv6: set rt6i_protocol properly in the route when it is installed Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 044/171] platform/x86: acer-wmi: setup accelerometer when ACPI device was found Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 045/171] IB/ipoib: Do not warn if IPoIB debugfs doesnt exist Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 046/171] IB/core: Fix the validations of a multicast LID in attach or detach operations Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 047/171] orangefs: off by ones in xattr size checks Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 048/171] rxe: Fix a sleep-in-atomic bug in post_one_send Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 049/171] nvme-pci: fix CMB sysfs file removal in reset path Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 050/171] net: phy: marvell: Limit 88m1101 autoneg errata to 88E1145 as well Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 051/171] net/mlx5: Fix command completion after timeout access invalid structure Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 052/171] tipc: Fix tipc_sk_reinit handling of -EAGAIN Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 053/171] tipc: fix a race condition of releasing subscriber object Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 054/171] bnxt_en: Dont use rtnl lock to protect link change logic in workqueue Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 055/171] ath10k: fix NAPI enable/disable symmetry for AHB interface Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 056/171] ARM: dts: bcm283x: Reserve first page for firmware Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 057/171] btrfs: fiemap: Cache and merge fiemap extent before submit it to user Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 058/171] ata: sata_rcar: Handle return value of clk_prepare_enable Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 059/171] reset: hi6220: Set module license so that it can be loaded Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 060/171] ASoC: Intel: Skylake: Fix to parse consecutive string tkns in manifest Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 061/171] arch/sparc: increase CONFIG_NODES_SHIFT on SPARC64 to 5 Greg Kroah-Hartman
2018-11-08 21:50 ` Greg Kroah-Hartman [this message]
2018-11-08 21:50 ` [PATCH 4.9 063/171] libata: fix error checking in in ata_parse_force_one() Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 064/171] net: ethernet: stmmac: Fix altr_tse_pcs SGMII Initialization Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 065/171] qlcnic: Fix tunnel offload for 82xx adapters Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 066/171] x86/cpu/cyrix: Add alternative Device ID of Geode GX1 SoC Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 067/171] ARM: 8677/1: boot/compressed: fix decompressor header layout for v7-M Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 068/171] gpu: ipu-v3: Fix CSI selection for VDIC Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 069/171] elevator: fix truncation of icq_cache_name Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 070/171] net: stmmac: ensure jumbo_frm error return is correctly checked for -ve value Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 071/171] Btrfs: clear EXTENT_DEFRAG bits in finish_ordered_io Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 072/171] ufs: we need to sync inode before freeing it Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 073/171] net/mlx5e: Fix fixpoint divide exception in mlx5e_am_stats_compare Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 074/171] ip6_tunnel: Correct tos value in collect_md mode Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 075/171] net/mlx5: Fix driver load error flow when firmware is stuck Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 076/171] perf evsel: Fix probing of precise_ip level for default cycles event Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 077/171] perf probe: Fix probe definition for inlined functions Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 078/171] net/mlx5: Fix health work queue spin lock to IRQ safe Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 079/171] usb: renesas_usbhs: gadget: fix spin_lock_init() for &uep->lock Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 080/171] usb: renesas_usbhs: gadget: fix unused-but-set-variable warning Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 081/171] usb: dwc3: omap: remove IRQ_NOAUTOEN used with shared irq Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 082/171] clk: samsung: Fix m2m scaler clock on Exynos542x Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 083/171] ptr_ring: fix up after recent ptr_ring changes Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 084/171] staging: wilc1000: Fix problem with wrong vif index Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 085/171] rds: ib: Fix missing call to rds_ib_dev_put in rds_ib_setup_qp Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 086/171] iio: adc: Revert "axp288: Drop bogus AXP288_ADC_TS_PIN_CTRL register modifications" Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 087/171] qed: Warn PTT usage by wrong hw-function Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 088/171] ocfs2: fix deadlock caused by recursive locking in xattr Greg Kroah-Hartman
2018-11-08 21:50 ` [PATCH 4.9 089/171] net: cdc_ncm: GetNtbFormat endian fix Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 090/171] sctp: use right member as the param of list_for_each_entry Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 091/171] ALSA: hda - No loopback on ALC299 codec Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 092/171] ath10k: convert warning about non-existent OTP board id to debug message Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 093/171] ipv6: fix cleanup ordering for ip6_mr failure Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 094/171] IB/ipoib: Fix lockdep issue found on ipoib_ib_dev_heavy_flush Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 095/171] IB/rxe: put the pool on allocation failure Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 096/171] nbd: only set MSG_MORE when we have more to send Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 097/171] mm/frame_vector.c: release a semaphore in get_vaddr_frames() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 098/171] IB/mlx5: Avoid passing an invalid QP type to firmware Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 099/171] scsi: qla2xxx: Avoid double completion of abort command Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 100/171] drm: bochs: Dont remove uninitialized fbdev framebuffer Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 101/171] i40e: avoid NVM acquire deadlock during NVM update Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 102/171] Revert "IB/ipoib: Update broadcast object if PKey value was changed in index 0" Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 103/171] Btrfs: incremental send, fix invalid memory access Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 104/171] drm/msm: Fix possible null dereference on failure of get_pages() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 105/171] module: fix DEBUG_SET_MODULE_RONX typo Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 106/171] iio: pressure: zpa2326: Remove always-true check which confuses gcc Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 107/171] l2tp: remove configurable payload offset Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 108/171] macsec: fix memory leaks when skb_to_sgvec fails Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 109/171] perf/core: Fix locking for children siblings group read Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 110/171] cifs: Use ULL suffix for 64-bit constant Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 111/171] futex: futex_wake_op, do not fail on invalid op Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 112/171] ALSA: hda - Fix incorrect usage of IS_REACHABLE() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 113/171] test_bpf: Fix testing with CONFIG_BPF_JIT_ALWAYS_ON=y on other arches Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 114/171] xen-netfront: Update features after registering netdev Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 115/171] sparc64: Fix regression in pmdp_invalidate() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 116/171] xen-netfront: Fix mismatched rtnl_unlock Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 117/171] enic: do not overwrite error code Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 118/171] bonding: ratelimit failed speed/duplex update warning Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 119/171] nvmet: fix space padding in serial number Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 120/171] iio: buffer: fix the function signature to match implementation Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 121/171] x86/paravirt: Fix some warning messages Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 122/171] IB/mlx4: Fix an error handling path in mlx4_ib_rereg_user_mr() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 123/171] libertas: call into generic suspend code before turning off power Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 124/171] xhci: Fix USB3 NULL pointer dereference at logical disconnect Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 125/171] perf tests: Fix indexing when invoking subtests Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 126/171] ARM: dts: imx53-qsb: disable 1.2GHz OPP Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 127/171] rxrpc: Dont check RXRPC_CALL_TX_LAST after calling rxrpc_rotate_tx_window() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 128/171] rxrpc: Only take the rwind and mtu values from latest ACK Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 129/171] net: ena: fix NULL dereference due to untimely napi initialization Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 130/171] fs/fat/fatent.c: add cond_resched() to fat_count_free_clusters() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 131/171] mtd: spi-nor: Add support for is25wp series chips Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 132/171] Revert "netfilter: ipv6: nf_defrag: drop skb dst before queueing" Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 133/171] perf tools: Disable parallelism for make clean Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 134/171] bridge: do not add port to router list when receives query with source 0.0.0.0 Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 135/171] net: bridge: remove ipv6 zero address check in mcast queries Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 136/171] ipv6: mcast: fix a use-after-free in inet6_mc_check Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 137/171] ipv6/ndisc: Preserve IPv6 control buffer if protocol error handlers are called Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 138/171] llc: set SOCK_RCU_FREE in llc_sap_add_socket() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 139/171] net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 140/171] net: sched: gred: pass the right attribute to gred_change_table_def() Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 141/171] net: socket: fix a missing-check bug Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 142/171] net: stmmac: Fix stmmac_mdio_reset() when building stmmac as modules Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 143/171] net: udp: fix handling of CHECKSUM_COMPLETE packets Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 144/171] r8169: fix NAPI handling under high load Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 145/171] sctp: fix race on sctp_id2asoc Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 146/171] vhost: Fix Spectre V1 vulnerability Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 147/171] ethtool: fix a privilege escalation bug Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 148/171] bonding: fix length of actor system Greg Kroah-Hartman
2018-11-08 21:51 ` [PATCH 4.9 149/171] net: drop skb on failure in ip_check_defrag() Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 150/171] net: fix pskb_trim_rcsum_slow() with odd trim offset Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 151/171] rtnetlink: Disallow FDB configuration for non-Ethernet device Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 152/171] ip6_tunnel: Fix encapsulation layout Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 153/171] Revert "x86/mm: Expand static page table for fixmap space" Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 154/171] crypto: shash - Fix a sleep-in-atomic bug in shash_setkey_unaligned Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 155/171] ahci: dont ignore result code of ahci_reset_controller() Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 156/171] gpio: mxs: Get rid of external API call Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 157/171] xfs: truncate transaction does not modify the inobt Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 158/171] cachefiles: fix the race between cachefiles_bury_object() and rmdir(2) Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 159/171] ptp: fix Spectre v1 vulnerability Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 160/171] drm/edid: Add 6 bpc quirk for BOE panel in HP Pavilion 15-n233sl Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 161/171] RDMA/ucma: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 162/171] IB/ucm: " Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 163/171] cdc-acm: correct counting of UART states in serial state notification Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 164/171] usb: gadget: storage: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 165/171] USB: fix the usbfs flag sanitization for control transfers Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 166/171] Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15IGM Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 167/171] sched/fair: Fix throttle_list starvation with low CFS quota Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 168/171] x86/percpu: Fix this_cpu_read() Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 169/171] x86/time: Correct the attribute on jiffies definition Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 170/171] net: fs_enet: do not call phy_stop() in interrupts Greg Kroah-Hartman
2018-11-08 21:52 ` [PATCH 4.9 171/171] posix-timers: Sanitize overrun handling Greg Kroah-Hartman
2018-11-09 3:50 ` [PATCH 4.9 000/171] 4.9.136-stable review kernelci.org bot
2018-11-09 19:40 ` Guenter Roeck
2018-11-09 19:48 ` Shuah Khan
2018-11-09 21:55 ` Dan Rue
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=20181108215132.040901446@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=j@w1.fi \
--cc=johannes.berg@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox