From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, David Howells <dhowells@redhat.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.8 047/186] rxrpc: Fix loss of RTT samples due to interposed ACK
Date: Tue, 8 Sep 2020 17:23:09 +0200 [thread overview]
Message-ID: <20200908152243.944972190@linuxfoundation.org> (raw)
In-Reply-To: <20200908152241.646390211@linuxfoundation.org>
From: David Howells <dhowells@redhat.com>
[ Upstream commit 4700c4d80b7bb171f6996016ef121e1508860b42 ]
The Rx protocol has a mechanism to help generate RTT samples that works by
a client transmitting a REQUESTED-type ACK when it receives a DATA packet
that has the REQUEST_ACK flag set.
The peer, however, may interpose other ACKs before transmitting the
REQUESTED-ACK, as can be seen in the following trace excerpt:
rxrpc_tx_data: c=00000044 DATA d0b5ece8:00000001 00000001 q=00000001 fl=07
rxrpc_rx_ack: c=00000044 00000001 PNG r=00000000 f=00000002 p=00000000 n=0
rxrpc_rx_ack: c=00000044 00000002 REQ r=00000001 f=00000002 p=00000001 n=0
...
DATA packet 1 (q=xx) has REQUEST_ACK set (bit 1 of fl=xx). The incoming
ping (labelled PNG) hard-acks the request DATA packet (f=xx exceeds the
sequence number of the DATA packet), causing it to be discarded from the Tx
ring. The ACK that was requested (labelled REQ, r=xx references the serial
of the DATA packet) comes after the ping, but the sk_buff holding the
timestamp has gone and the RTT sample is lost.
This is particularly noticeable on RPC calls used to probe the service
offered by the peer. A lot of peers end up with an unknown RTT because we
only ever sent a single RPC. This confuses the server rotation algorithm.
Fix this by caching the information about the outgoing packet in RTT
calculations in the rxrpc_call struct rather than looking in the Tx ring.
A four-deep buffer is maintained and both REQUEST_ACK-flagged DATA and
PING-ACK transmissions are recorded in there. When the appropriate
response ACK is received, the buffer is checked for a match and, if found,
an RTT sample is recorded.
If a received ACK refers to a packet with a later serial number than an
entry in the cache, that entry is presumed lost and the entry is made
available to record a new transmission.
ACKs types other than REQUESTED-type and PING-type cause any matching
sample to be cancelled as they don't necessarily represent a useful
measurement.
If there's no space in the buffer on ping/data transmission, the sample
base is discarded.
Fixes: 50235c4b5a2f ("rxrpc: Obtain RTT data by requesting ACKs on DATA packets")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/trace/events/rxrpc.h | 27 +++++++--
net/rxrpc/ar-internal.h | 13 +++--
net/rxrpc/call_object.c | 1 +
net/rxrpc/input.c | 104 ++++++++++++++++++++---------------
net/rxrpc/output.c | 82 ++++++++++++++++++++-------
net/rxrpc/rtt.c | 3 +-
6 files changed, 154 insertions(+), 76 deletions(-)
diff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h
index 059b6e45a0283..c33079b986e86 100644
--- a/include/trace/events/rxrpc.h
+++ b/include/trace/events/rxrpc.h
@@ -138,11 +138,16 @@ enum rxrpc_recvmsg_trace {
};
enum rxrpc_rtt_tx_trace {
+ rxrpc_rtt_tx_cancel,
rxrpc_rtt_tx_data,
+ rxrpc_rtt_tx_no_slot,
rxrpc_rtt_tx_ping,
};
enum rxrpc_rtt_rx_trace {
+ rxrpc_rtt_rx_cancel,
+ rxrpc_rtt_rx_lost,
+ rxrpc_rtt_rx_obsolete,
rxrpc_rtt_rx_ping_response,
rxrpc_rtt_rx_requested_ack,
};
@@ -339,10 +344,15 @@ enum rxrpc_tx_point {
E_(rxrpc_recvmsg_wait, "WAIT")
#define rxrpc_rtt_tx_traces \
+ EM(rxrpc_rtt_tx_cancel, "CNCE") \
EM(rxrpc_rtt_tx_data, "DATA") \
+ EM(rxrpc_rtt_tx_no_slot, "FULL") \
E_(rxrpc_rtt_tx_ping, "PING")
#define rxrpc_rtt_rx_traces \
+ EM(rxrpc_rtt_rx_cancel, "CNCL") \
+ EM(rxrpc_rtt_rx_obsolete, "OBSL") \
+ EM(rxrpc_rtt_rx_lost, "LOST") \
EM(rxrpc_rtt_rx_ping_response, "PONG") \
E_(rxrpc_rtt_rx_requested_ack, "RACK")
@@ -1087,38 +1097,43 @@ TRACE_EVENT(rxrpc_recvmsg,
TRACE_EVENT(rxrpc_rtt_tx,
TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_tx_trace why,
- rxrpc_serial_t send_serial),
+ int slot, rxrpc_serial_t send_serial),
- TP_ARGS(call, why, send_serial),
+ TP_ARGS(call, why, slot, send_serial),
TP_STRUCT__entry(
__field(unsigned int, call )
__field(enum rxrpc_rtt_tx_trace, why )
+ __field(int, slot )
__field(rxrpc_serial_t, send_serial )
),
TP_fast_assign(
__entry->call = call->debug_id;
__entry->why = why;
+ __entry->slot = slot;
__entry->send_serial = send_serial;
),
- TP_printk("c=%08x %s sr=%08x",
+ TP_printk("c=%08x [%d] %s sr=%08x",
__entry->call,
+ __entry->slot,
__print_symbolic(__entry->why, rxrpc_rtt_tx_traces),
__entry->send_serial)
);
TRACE_EVENT(rxrpc_rtt_rx,
TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why,
+ int slot,
rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial,
u32 rtt, u32 rto),
- TP_ARGS(call, why, send_serial, resp_serial, rtt, rto),
+ TP_ARGS(call, why, slot, send_serial, resp_serial, rtt, rto),
TP_STRUCT__entry(
__field(unsigned int, call )
__field(enum rxrpc_rtt_rx_trace, why )
+ __field(int, slot )
__field(rxrpc_serial_t, send_serial )
__field(rxrpc_serial_t, resp_serial )
__field(u32, rtt )
@@ -1128,14 +1143,16 @@ TRACE_EVENT(rxrpc_rtt_rx,
TP_fast_assign(
__entry->call = call->debug_id;
__entry->why = why;
+ __entry->slot = slot;
__entry->send_serial = send_serial;
__entry->resp_serial = resp_serial;
__entry->rtt = rtt;
__entry->rto = rto;
),
- TP_printk("c=%08x %s sr=%08x rr=%08x rtt=%u rto=%u",
+ TP_printk("c=%08x [%d] %s sr=%08x rr=%08x rtt=%u rto=%u",
__entry->call,
+ __entry->slot,
__print_symbolic(__entry->why, rxrpc_rtt_rx_traces),
__entry->send_serial,
__entry->resp_serial,
diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
index 9a2139ebd67d7..ca1fea72c8d29 100644
--- a/net/rxrpc/ar-internal.h
+++ b/net/rxrpc/ar-internal.h
@@ -488,7 +488,6 @@ enum rxrpc_call_flag {
RXRPC_CALL_RX_LAST, /* Received the last packet (at rxtx_top) */
RXRPC_CALL_TX_LAST, /* Last packet in Tx buffer (at rxtx_top) */
RXRPC_CALL_SEND_PING, /* A ping will need to be sent */
- RXRPC_CALL_PINGING, /* Ping in process */
RXRPC_CALL_RETRANS_TIMEOUT, /* Retransmission due to timeout occurred */
RXRPC_CALL_BEGAN_RX_TIMER, /* We began the expect_rx_by timer */
RXRPC_CALL_RX_HEARD, /* The peer responded at least once to this call */
@@ -673,9 +672,13 @@ struct rxrpc_call {
rxrpc_seq_t ackr_consumed; /* Highest packet shown consumed */
rxrpc_seq_t ackr_seen; /* Highest packet shown seen */
- /* ping management */
- rxrpc_serial_t ping_serial; /* Last ping sent */
- ktime_t ping_time; /* Time last ping sent */
+ /* RTT management */
+ rxrpc_serial_t rtt_serial[4]; /* Serial number of DATA or PING sent */
+ ktime_t rtt_sent_at[4]; /* Time packet sent */
+ unsigned long rtt_avail; /* Mask of available slots in bits 0-3,
+ * Mask of pending samples in 8-11 */
+#define RXRPC_CALL_RTT_AVAIL_MASK 0xf
+#define RXRPC_CALL_RTT_PEND_SHIFT 8
/* transmission-phase ACK management */
ktime_t acks_latest_ts; /* Timestamp of latest ACK received */
@@ -1037,7 +1040,7 @@ static inline bool __rxrpc_abort_eproto(struct rxrpc_call *call,
/*
* rtt.c
*/
-void rxrpc_peer_add_rtt(struct rxrpc_call *, enum rxrpc_rtt_rx_trace,
+void rxrpc_peer_add_rtt(struct rxrpc_call *, enum rxrpc_rtt_rx_trace, int,
rxrpc_serial_t, rxrpc_serial_t, ktime_t, ktime_t);
unsigned long rxrpc_get_rto_backoff(struct rxrpc_peer *, bool);
void rxrpc_peer_init_rtt(struct rxrpc_peer *);
diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c
index 38a46167523fa..a40fae0139423 100644
--- a/net/rxrpc/call_object.c
+++ b/net/rxrpc/call_object.c
@@ -153,6 +153,7 @@ struct rxrpc_call *rxrpc_alloc_call(struct rxrpc_sock *rx, gfp_t gfp,
call->cong_ssthresh = RXRPC_RXTX_BUFF_SIZE - 1;
call->rxnet = rxnet;
+ call->rtt_avail = RXRPC_CALL_RTT_AVAIL_MASK;
atomic_inc(&rxnet->nr_calls);
return call;
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
index a7699e56eac88..19ddfc9807e89 100644
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -608,36 +608,57 @@ unlock:
}
/*
- * Process a requested ACK.
+ * See if there's a cached RTT probe to complete.
*/
-static void rxrpc_input_requested_ack(struct rxrpc_call *call,
- ktime_t resp_time,
- rxrpc_serial_t orig_serial,
- rxrpc_serial_t ack_serial)
+static void rxrpc_complete_rtt_probe(struct rxrpc_call *call,
+ ktime_t resp_time,
+ rxrpc_serial_t acked_serial,
+ rxrpc_serial_t ack_serial,
+ enum rxrpc_rtt_rx_trace type)
{
- struct rxrpc_skb_priv *sp;
- struct sk_buff *skb;
+ rxrpc_serial_t orig_serial;
+ unsigned long avail;
ktime_t sent_at;
- int ix;
+ bool matched = false;
+ int i;
- for (ix = 0; ix < RXRPC_RXTX_BUFF_SIZE; ix++) {
- skb = call->rxtx_buffer[ix];
- if (!skb)
- continue;
+ avail = READ_ONCE(call->rtt_avail);
+ smp_rmb(); /* Read avail bits before accessing data. */
- sent_at = skb->tstamp;
- smp_rmb(); /* Read timestamp before serial. */
- sp = rxrpc_skb(skb);
- if (sp->hdr.serial != orig_serial)
+ for (i = 0; i < ARRAY_SIZE(call->rtt_serial); i++) {
+ if (!test_bit(i + RXRPC_CALL_RTT_PEND_SHIFT, &avail))
continue;
- goto found;
- }
- return;
+ sent_at = call->rtt_sent_at[i];
+ orig_serial = call->rtt_serial[i];
+
+ if (orig_serial == acked_serial) {
+ clear_bit(i + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail);
+ smp_mb(); /* Read data before setting avail bit */
+ set_bit(i, &call->rtt_avail);
+ if (type != rxrpc_rtt_rx_cancel)
+ rxrpc_peer_add_rtt(call, type, i, acked_serial, ack_serial,
+ sent_at, resp_time);
+ else
+ trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_cancel, i,
+ orig_serial, acked_serial, 0, 0);
+ matched = true;
+ }
+
+ /* If a later serial is being acked, then mark this slot as
+ * being available.
+ */
+ if (after(acked_serial, orig_serial)) {
+ trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_obsolete, i,
+ orig_serial, acked_serial, 0, 0);
+ clear_bit(i + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail);
+ smp_wmb();
+ set_bit(i, &call->rtt_avail);
+ }
+ }
-found:
- rxrpc_peer_add_rtt(call, rxrpc_rtt_rx_requested_ack,
- orig_serial, ack_serial, sent_at, resp_time);
+ if (!matched)
+ trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_lost, 9, 0, acked_serial, 0, 0);
}
/*
@@ -682,27 +703,11 @@ static void rxrpc_input_check_for_lost_ack(struct rxrpc_call *call)
*/
static void rxrpc_input_ping_response(struct rxrpc_call *call,
ktime_t resp_time,
- rxrpc_serial_t orig_serial,
+ rxrpc_serial_t acked_serial,
rxrpc_serial_t ack_serial)
{
- rxrpc_serial_t ping_serial;
- ktime_t ping_time;
-
- ping_time = call->ping_time;
- smp_rmb();
- ping_serial = READ_ONCE(call->ping_serial);
-
- if (orig_serial == call->acks_lost_ping)
+ if (acked_serial == call->acks_lost_ping)
rxrpc_input_check_for_lost_ack(call);
-
- if (before(orig_serial, ping_serial) ||
- !test_and_clear_bit(RXRPC_CALL_PINGING, &call->flags))
- return;
- if (after(orig_serial, ping_serial))
- return;
-
- rxrpc_peer_add_rtt(call, rxrpc_rtt_rx_ping_response,
- orig_serial, ack_serial, ping_time, resp_time);
}
/*
@@ -869,12 +874,23 @@ static void rxrpc_input_ack(struct rxrpc_call *call, struct sk_buff *skb)
first_soft_ack, prev_pkt,
summary.ack_reason, nr_acks);
- if (buf.ack.reason == RXRPC_ACK_PING_RESPONSE)
+ switch (buf.ack.reason) {
+ case RXRPC_ACK_PING_RESPONSE:
rxrpc_input_ping_response(call, skb->tstamp, acked_serial,
ack_serial);
- if (buf.ack.reason == RXRPC_ACK_REQUESTED)
- rxrpc_input_requested_ack(call, skb->tstamp, acked_serial,
- ack_serial);
+ rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial,
+ rxrpc_rtt_rx_ping_response);
+ break;
+ case RXRPC_ACK_REQUESTED:
+ rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial,
+ rxrpc_rtt_rx_requested_ack);
+ break;
+ default:
+ if (acked_serial != 0)
+ rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial,
+ rxrpc_rtt_rx_cancel);
+ break;
+ }
if (buf.ack.reason == RXRPC_ACK_PING) {
_proto("Rx ACK %%%u PING Request", ack_serial);
diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c
index 1ba43c3df4adb..3cfff7922ba82 100644
--- a/net/rxrpc/output.c
+++ b/net/rxrpc/output.c
@@ -123,6 +123,49 @@ static size_t rxrpc_fill_out_ack(struct rxrpc_connection *conn,
return top - hard_ack + 3;
}
+/*
+ * Record the beginning of an RTT probe.
+ */
+static int rxrpc_begin_rtt_probe(struct rxrpc_call *call, rxrpc_serial_t serial,
+ enum rxrpc_rtt_tx_trace why)
+{
+ unsigned long avail = call->rtt_avail;
+ int rtt_slot = 9;
+
+ if (!(avail & RXRPC_CALL_RTT_AVAIL_MASK))
+ goto no_slot;
+
+ rtt_slot = __ffs(avail & RXRPC_CALL_RTT_AVAIL_MASK);
+ if (!test_and_clear_bit(rtt_slot, &call->rtt_avail))
+ goto no_slot;
+
+ call->rtt_serial[rtt_slot] = serial;
+ call->rtt_sent_at[rtt_slot] = ktime_get_real();
+ smp_wmb(); /* Write data before avail bit */
+ set_bit(rtt_slot + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail);
+
+ trace_rxrpc_rtt_tx(call, why, rtt_slot, serial);
+ return rtt_slot;
+
+no_slot:
+ trace_rxrpc_rtt_tx(call, rxrpc_rtt_tx_no_slot, rtt_slot, serial);
+ return -1;
+}
+
+/*
+ * Cancel an RTT probe.
+ */
+static void rxrpc_cancel_rtt_probe(struct rxrpc_call *call,
+ rxrpc_serial_t serial, int rtt_slot)
+{
+ if (rtt_slot != -1) {
+ clear_bit(rtt_slot + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail);
+ smp_wmb(); /* Clear pending bit before setting slot */
+ set_bit(rtt_slot, &call->rtt_avail);
+ trace_rxrpc_rtt_tx(call, rxrpc_rtt_tx_cancel, rtt_slot, serial);
+ }
+}
+
/*
* Send an ACK call packet.
*/
@@ -136,7 +179,7 @@ int rxrpc_send_ack_packet(struct rxrpc_call *call, bool ping,
rxrpc_serial_t serial;
rxrpc_seq_t hard_ack, top;
size_t len, n;
- int ret;
+ int ret, rtt_slot = -1;
u8 reason;
if (test_bit(RXRPC_CALL_DISCONNECTED, &call->flags))
@@ -196,18 +239,8 @@ int rxrpc_send_ack_packet(struct rxrpc_call *call, bool ping,
if (_serial)
*_serial = serial;
- if (ping) {
- call->ping_serial = serial;
- smp_wmb();
- /* We need to stick a time in before we send the packet in case
- * the reply gets back before kernel_sendmsg() completes - but
- * asking UDP to send the packet can take a relatively long
- * time.
- */
- call->ping_time = ktime_get_real();
- set_bit(RXRPC_CALL_PINGING, &call->flags);
- trace_rxrpc_rtt_tx(call, rxrpc_rtt_tx_ping, serial);
- }
+ if (ping)
+ rtt_slot = rxrpc_begin_rtt_probe(call, serial, rxrpc_rtt_tx_ping);
ret = kernel_sendmsg(conn->params.local->socket, &msg, iov, 2, len);
conn->params.peer->last_tx_at = ktime_get_seconds();
@@ -221,8 +254,7 @@ int rxrpc_send_ack_packet(struct rxrpc_call *call, bool ping,
if (call->state < RXRPC_CALL_COMPLETE) {
if (ret < 0) {
- if (ping)
- clear_bit(RXRPC_CALL_PINGING, &call->flags);
+ rxrpc_cancel_rtt_probe(call, serial, rtt_slot);
rxrpc_propose_ACK(call, pkt->ack.reason,
ntohl(pkt->ack.serial),
false, true,
@@ -321,7 +353,7 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb,
struct kvec iov[2];
rxrpc_serial_t serial;
size_t len;
- int ret;
+ int ret, rtt_slot = -1;
_enter(",{%d}", skb->len);
@@ -397,6 +429,8 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb,
sp->hdr.serial = serial;
smp_wmb(); /* Set serial before timestamp */
skb->tstamp = ktime_get_real();
+ if (whdr.flags & RXRPC_REQUEST_ACK)
+ rtt_slot = rxrpc_begin_rtt_probe(call, serial, rxrpc_rtt_tx_data);
/* send the packet by UDP
* - returns -EMSGSIZE if UDP would have to fragment the packet
@@ -408,12 +442,15 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb,
conn->params.peer->last_tx_at = ktime_get_seconds();
up_read(&conn->params.local->defrag_sem);
- if (ret < 0)
+ if (ret < 0) {
+ rxrpc_cancel_rtt_probe(call, serial, rtt_slot);
trace_rxrpc_tx_fail(call->debug_id, serial, ret,
rxrpc_tx_point_call_data_nofrag);
- else
+ } else {
trace_rxrpc_tx_packet(call->debug_id, &whdr,
rxrpc_tx_point_call_data_nofrag);
+ }
+
rxrpc_tx_backoff(call, ret);
if (ret == -EMSGSIZE)
goto send_fragmentable;
@@ -422,7 +459,6 @@ done:
if (ret >= 0) {
if (whdr.flags & RXRPC_REQUEST_ACK) {
call->peer->rtt_last_req = skb->tstamp;
- trace_rxrpc_rtt_tx(call, rxrpc_rtt_tx_data, serial);
if (call->peer->rtt_count > 1) {
unsigned long nowj = jiffies, ack_lost_at;
@@ -469,6 +505,8 @@ send_fragmentable:
sp->hdr.serial = serial;
smp_wmb(); /* Set serial before timestamp */
skb->tstamp = ktime_get_real();
+ if (whdr.flags & RXRPC_REQUEST_ACK)
+ rtt_slot = rxrpc_begin_rtt_probe(call, serial, rxrpc_rtt_tx_data);
switch (conn->params.local->srx.transport.family) {
case AF_INET6:
@@ -487,12 +525,14 @@ send_fragmentable:
BUG();
}
- if (ret < 0)
+ if (ret < 0) {
+ rxrpc_cancel_rtt_probe(call, serial, rtt_slot);
trace_rxrpc_tx_fail(call->debug_id, serial, ret,
rxrpc_tx_point_call_data_frag);
- else
+ } else {
trace_rxrpc_tx_packet(call->debug_id, &whdr,
rxrpc_tx_point_call_data_frag);
+ }
rxrpc_tx_backoff(call, ret);
up_write(&conn->params.local->defrag_sem);
diff --git a/net/rxrpc/rtt.c b/net/rxrpc/rtt.c
index 928d8b34a3eee..1221b0637a7ec 100644
--- a/net/rxrpc/rtt.c
+++ b/net/rxrpc/rtt.c
@@ -146,6 +146,7 @@ static void rxrpc_ack_update_rtt(struct rxrpc_peer *peer, long rtt_us)
* exclusive access to the peer RTT data.
*/
void rxrpc_peer_add_rtt(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why,
+ int rtt_slot,
rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial,
ktime_t send_time, ktime_t resp_time)
{
@@ -162,7 +163,7 @@ void rxrpc_peer_add_rtt(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why,
peer->rtt_count++;
spin_unlock(&peer->rtt_input_lock);
- trace_rxrpc_rtt_rx(call, why, send_serial, resp_serial,
+ trace_rxrpc_rtt_rx(call, why, rtt_slot, send_serial, resp_serial,
peer->srtt_us >> 3, peer->rto_j);
}
--
2.25.1
next prev parent reply other threads:[~2020-09-08 19:14 UTC|newest]
Thread overview: 198+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-08 15:22 [PATCH 5.8 000/186] 5.8.8-rc1 review Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 001/186] hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_1 telemetry for RAA228228 Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 002/186] HID: quirks: Always poll three more Lenovo PixArt mice Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 003/186] drm/msm/dpu: Fix reservation failures in modeset Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 004/186] drm/msm/dpu: Fix scale params in plane validation Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 005/186] drm/msm/dpu: fix unitialized variable error Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 006/186] tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 007/186] drm/msm: add shutdown support for display platform_driver Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 008/186] hwmon: (applesmc) check status earlier Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 009/186] nvmet: Disable keep-alive timer when kato is cleared to 0h Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 010/186] drm/msm: enable vblank during atomic commits Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 011/186] habanalabs: unmap PCI bars upon iATU failure Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 012/186] habanalabs: validate packet id during CB parse Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 013/186] habanalabs: set clock gating according to mask Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 014/186] habanalabs: proper handling of alloc size in coresight Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 015/186] habanalabs: set max power according to card type Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 016/186] habanalabs: validate FW file size Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 017/186] habanalabs: check correct vmalloc return code Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 018/186] drm/msm/a6xx: fix gmu start on newer firmware Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 019/186] gfs2: add some much needed cleanup for log flushes that fail Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 020/186] hv_utils: return error if host timesysnc update is stale Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 021/186] hv_utils: drain the timesync packets on onchannelcallback Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 022/186] ceph: dont allow setlease on cephfs Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 023/186] i2c: iproc: Fix shifting 31 bits Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 024/186] drm/omap: fix incorrect lock state Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 025/186] irqchip/ingenic: Leave parent IRQ unmasked on suspend Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 026/186] cpuidle: Fixup IRQ state Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 027/186] nbd: restore default timeout when setting it to zero Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 028/186] s390: dont trace preemption in percpu macros Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 029/186] drm/amd/display: should check error using DC_OK Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 030/186] drm/amd/display: Reject overlay plane configurations in multi-display scenarios Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 031/186] drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 032/186] drm/amd/display: Revert HDCP disable sequence change Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 033/186] drm/amd/display: Fix passive dongle mistaken as active dongle in EDID emulation Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 034/186] drm/amd/display: Keep current gain when ABM disable immediately Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 035/186] drm/amd/display: Retry AUX write when fail occurs Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 036/186] drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init Greg Kroah-Hartman
2020-09-08 15:22 ` [PATCH 5.8 037/186] xen/xenbus: Fix granting of vmallocd memory Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 038/186] fsldma: fix very broken 32-bit ppc ioread64 functionality Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 039/186] dmaengine: of-dma: Fix of_dma_router_xlates of_dma_xlate handling Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 040/186] batman-adv: Avoid uninitialized chaddr when handling DHCP Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 041/186] batman-adv: Fix own OGM check in aggregated OGMs Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 042/186] batman-adv: bla: use netif_rx_ni when not in interrupt context Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 043/186] dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 044/186] dmaengine: at_hdmac: add missing put_device() call " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 045/186] dmaengine: at_hdmac: add missing kfree() " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 046/186] rxrpc: Keep the ACK serial in a var in rxrpc_input_ack() Greg Kroah-Hartman
2020-09-08 15:23 ` Greg Kroah-Hartman [this message]
2020-09-08 15:23 ` [PATCH 5.8 048/186] rxrpc: Make rxrpc_kernel_get_srtt() indicate validity Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 049/186] MIPS: mm: BMIPS5000 has inclusive physical caches Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 050/186] MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 051/186] mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040 Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 052/186] perf sched timehist: Fix use of CPU list with summary option Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 053/186] perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 054/186] netfilter: nf_tables: add NFTA_SET_USERDATA if not null Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 055/186] netfilter: nf_tables: incorrect enum nft_list_attributes definition Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 056/186] netfilter: nf_tables: fix destination register zeroing Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 057/186] net: hns: Fix memleak in hns_nic_dev_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 058/186] net: systemport: Fix memleak in bcm_sysport_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 059/186] ravb: Fixed to be able to unload modules Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 060/186] net: arc_emac: Fix memleak in arc_mdio_probe Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 061/186] bpf: Fix a buffer out-of-bound access when filling raw_tp link_info Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 062/186] dmaengine: pl330: Fix burst length if burst size is smaller than bus width Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 063/186] dmaengine: ti: k3-udma: Fix the TR initialization for prep_slave_sg Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 064/186] gtp: add GTPA_LINK info to msg sent to userspace Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 065/186] net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 066/186] net: ethernet: ti: cpsw_new: " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 067/186] bnxt_en: Dont query FW when netif_running() is false Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 068/186] bnxt_en: Check for zero dir entries in NVRAM Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 069/186] bnxt_en: Fix ethtool -S statitics with XDP or TCs enabled Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 070/186] bnxt_en: Fix PCI AER error recovery flow Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 071/186] bnxt_en: Fix possible crash in bnxt_fw_reset_task() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 072/186] bnxt_en: fix HWRM error when querying VF temperature Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 073/186] xfs: finish dfops on every insert range shift iteration Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 074/186] xfs: fix boundary test in xfs_attr_shortform_verify Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 075/186] bnxt: dont enable NAPI until rings are ready Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 076/186] media: vicodec: add missing v4l2_ctrl_request_hdl_put() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 077/186] media: cedrus: Add " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 078/186] net: ethernet: ti: cpsw_new: fix error handling in cpsw_ndo_vlan_rx_kill_vid() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 079/186] media: i2c: imx214: select V4L2_FWNODE Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 080/186] selftests/bpf: Fix massive output from test_maps Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 081/186] net: dsa: mt7530: fix advertising unsupported 1000baseT_Half Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 082/186] netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 083/186] nvmet-fc: Fix a missed _irqsave version of spin_lock in nvmet_fc_fod_op_done() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 084/186] nvme: fix controller instance leak Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 085/186] netfilter: conntrack: do not auto-delete clash entries on reply Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 086/186] opp: Dont drop reference for an OPP table that was never parsed Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 087/186] cxgb4: fix thermal zone device registration Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 088/186] net: ethernet: ti: am65-cpsw: fix rmii 100Mbit link mode Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 089/186] MIPS: perf: Fix wrong check condition of Loongson event IDs Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 090/186] block: fix locking in bdev_del_partition Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 091/186] perf top/report: Fix infinite loop in the TUI for grouped events Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 092/186] perf cs-etm: Fix corrupt data after perf inject from Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 093/186] perf intel-pt: " Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 094/186] perf tools: Correct SNOOPX field offset Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 095/186] net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init() Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 096/186] fix regression in "epoll: Keep a reference on files added to the check list" Greg Kroah-Hartman
2020-09-08 15:23 ` [PATCH 5.8 097/186] net: bcmgenet: fix mask check in bcmgenet_validate_flow() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 098/186] net: gemini: Fix another missing clk_disable_unprepare() in probe Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 099/186] nfp: flower: fix ABI mismatch between driver and firmware Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 100/186] net: dp83867: Fix WoL SecureOn password Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 101/186] drm/radeon: Prefer lower feedback dividers Greg Kroah-Hartman
2020-09-09 11:15 ` Christian König
2020-09-09 11:24 ` Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 102/186] MIPS: add missing MSACSR and upper MSA initialization Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 103/186] MIPS: SNI: Fix SCSI interrupt Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 104/186] xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 105/186] perf jevents: Fix suspicious code in fixregex() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 106/186] perf stat: Turn off summary for interval mode by default Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 107/186] perf bench: The do_run_multi_threaded() function must use IS_ERR(perf_session__new()) Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 108/186] tg3: Fix soft lockup when tg3_reset_task() fails Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 109/186] x86, fakenuma: Fix invalid starting node ID Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 110/186] iommu/vt-d: Serialize IOMMU GCMD register modifications Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 111/186] thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 112/186] thermal: qcom-spmi-temp-alarm: Dont suppress negative temp Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 113/186] iommu/amd: Restore IRTE.RemapEn bit after programming IRTE Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 114/186] iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 115/186] net/packet: fix overflow in tpacket_rcv Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 116/186] include/linux/log2.h: add missing () around n in roundup_pow_of_two() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 117/186] iommu/vt-d: Handle 36bit addressing for x86-32 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 118/186] tracing/kprobes, x86/ptrace: Fix regs argument order for i386 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 119/186] x86/entry: Fix AC assertion Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 120/186] x86/debug: Allow a single level of #DB recursion Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 121/186] ext2: dont update mtime on COW faults Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 122/186] xfs: " Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 123/186] ARC: perf: dont bail setup if pct irq missing in device-tree Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 124/186] arc: fix memory initialization for systems with two memory banks Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 125/186] btrfs: drop path before adding new uuid tree entry Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 126/186] btrfs: fix potential deadlock in the search ioctl Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 127/186] btrfs: allocate scrub workqueues outside of locks Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 128/186] btrfs: set the correct lockdep class for new nodes Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 129/186] btrfs: set the lockdep class for log tree extent buffers Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 130/186] btrfs: block-group: fix free-space bitmap threshold Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 131/186] btrfs: tree-checker: fix the error message for transid error Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 132/186] Bluetooth: Return NOTIFY_DONE for hci_suspend_notifier Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 133/186] x86/mm/32: Bring back vmalloc faulting on x86_32 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 134/186] Revert "ALSA: hda: Add support for Loongson 7A1000 controller" Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 135/186] ALSA: ca0106: fix error code handling Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 136/186] ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2 Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 137/186] ALSA: usb-audio: Add implicit feedback quirk for UR22C Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 138/186] ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 139/186] ALSA: hda/hdmi: always check pin power status in i915 pin fixup Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 140/186] ALSA: firewire-digi00x: exclude Avid Adrenaline from detection Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 141/186] ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 142/186] ALSA; firewire-tascam: exclude Tascam FE-8 from detection Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 143/186] ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 144/186] ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 145/186] arm64: dts: mt7622: add reset node for mmc device Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 146/186] mmc: mediatek: add optional module reset property Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 147/186] mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 148/186] mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 149/186] media: rc: do not access device via sysfs after rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 150/186] media: rc: uevent sysfs file races with rc_unregister_device() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 151/186] affs: fix basic permission bits to actually work Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 152/186] block: allow for_each_bvec to support zero len bvec Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 153/186] block: ensure bdi->io_pages is always initialized Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 154/186] io_uring: set table->files[i] to NULL when io_sqe_file_register failed Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 155/186] io_uring: fix removing the wrong file in __io_sqe_files_update() Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 156/186] s390: fix GENERIC_LOCKBREAK dependency typo in Kconfig Greg Kroah-Hartman
2020-09-08 15:24 ` [PATCH 5.8 157/186] libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 158/186] mips/oprofile: Fix fallthrough placement Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 159/186] blk-iocost: ioc_pd_free() shouldnt assume irq disabled Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 160/186] blk-stat: make q->stats->lock irqsafe Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 161/186] dmaengine: dw-edma: Fix scatter-gather address calculation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 162/186] drm/i915: Fix sha_text population code Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 163/186] drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 164/186] drm/amdgpu: Specify get_argument function for ci_smu_funcs Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 165/186] dm writecache: handle DAX to partitions on persistent memory correctly Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 166/186] dm mpath: fix racey management of PG initialization Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 167/186] dm integrity: fix error reporting in bitmap mode after creation Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 168/186] dm crypt: Initialize crypto wait structures Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 169/186] dm cache metadata: Avoid returning cmd->bm wild pointer on error Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 170/186] dm thin " Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 171/186] dm thin metadata: Fix use-after-free in dm_bm_set_read_only Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 172/186] mm: slub: fix conversion of freelist_corrupted() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 173/186] mm: track page table modifications in __apply_to_page_range() Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 174/186] mm: madvise: fix vma user-after-free Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 175/186] mm/rmap: fixup copying of soft dirty and uffd ptes Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 176/186] io_uring: no read/write-retry on -EAGAIN error and O_NONBLOCK marked file Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 177/186] perf record: Correct the help info of option "--no-bpf-event" Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 178/186] kconfig: streamline_config.pl: check defined(ENV variable) before using it Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 179/186] sdhci: tegra: Add missing TMCLK for data timeout Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 180/186] checkpatch: fix the usage of capture group ( ... ) Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 181/186] mm/migrate: fixup setting UFFD_WP flag Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 182/186] mm/hugetlb: try preferred node first when alloc gigantic page from cma Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 183/186] mm/hugetlb: fix a race between hugetlb sysctl handlers Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 184/186] mm/khugepaged.c: fix khugepageds request size in collapse_file Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 185/186] cfg80211: regulatory: reject invalid hints Greg Kroah-Hartman
2020-09-08 15:25 ` [PATCH 5.8 186/186] net: usb: Fix uninit-was-stored issue in asix_read_phy_addr() Greg Kroah-Hartman
2020-09-09 1:39 ` [PATCH 5.8 000/186] 5.8.8-rc1 review Shuah Khan
2020-09-09 18:00 ` Greg Kroah-Hartman
2020-09-09 5:48 ` Naresh Kamboju
2020-09-09 18:00 ` Greg Kroah-Hartman
2020-09-09 16:47 ` Guenter Roeck
2020-09-09 18:01 ` Greg Kroah-Hartman
2020-09-09 18:22 ` Guenter Roeck
2020-09-10 6:36 ` Geert Uytterhoeven
2020-09-10 13:47 ` 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=20200908152243.944972190@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dhowells@redhat.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;
as well as URLs for NNTP newsgroup(s).