All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Lahav Schlesinger <lschlesinger@drivenets.com>,
	David Ahern <dsahern@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.13 060/127] vrf: Reset skb conntrack connection on VRF rcv
Date: Tue, 24 Aug 2021 12:55:00 -0400	[thread overview]
Message-ID: <20210824165607.709387-61-sashal@kernel.org> (raw)
In-Reply-To: <20210824165607.709387-1-sashal@kernel.org>

From: Lahav Schlesinger <lschlesinger@drivenets.com>

[ Upstream commit 09e856d54bda5f288ef8437a90ab2b9b3eab83d1 ]

To fix the "reverse-NAT" for replies.

When a packet is sent over a VRF, the POST_ROUTING hooks are called
twice: Once from the VRF interface, and once from the "actual"
interface the packet will be sent from:
1) First SNAT: l3mdev_l3_out() -> vrf_l3_out() -> .. -> vrf_output_direct()
     This causes the POST_ROUTING hooks to run.
2) Second SNAT: 'ip_output()' calls POST_ROUTING hooks again.

Similarly for replies, first ip_rcv() calls PRE_ROUTING hooks, and
second vrf_l3_rcv() calls them again.

As an example, consider the following SNAT rule:
> iptables -t nat -A POSTROUTING -p udp -m udp --dport 53 -j SNAT --to-source 2.2.2.2 -o vrf_1

In this case sending over a VRF will create 2 conntrack entries.
The first is from the VRF interface, which performs the IP SNAT.
The second will run the SNAT, but since the "expected reply" will remain
the same, conntrack randomizes the source port of the packet:
e..g With a socket bound to 1.1.1.1:10000, sending to 3.3.3.3:53, the conntrack
rules are:
udp      17 29 src=2.2.2.2 dst=3.3.3.3 sport=10000 dport=53 packets=1 bytes=68 [UNREPLIED] src=3.3.3.3 dst=2.2.2.2 sport=53 dport=61033 packets=0 bytes=0 mark=0 use=1
udp      17 29 src=1.1.1.1 dst=3.3.3.3 sport=10000 dport=53 packets=1 bytes=68 [UNREPLIED] src=3.3.3.3 dst=2.2.2.2 sport=53 dport=10000 packets=0 bytes=0 mark=0 use=1

i.e. First SNAT IP from 1.1.1.1 --> 2.2.2.2, and second the src port is
SNAT-ed from 10000 --> 61033.

But when a reply is sent (3.3.3.3:53 -> 2.2.2.2:61033) only the later
conntrack entry is matched:
udp      17 29 src=2.2.2.2 dst=3.3.3.3 sport=10000 dport=53 packets=1 bytes=68 src=3.3.3.3 dst=2.2.2.2 sport=53 dport=61033 packets=1 bytes=49 mark=0 use=1
udp      17 28 src=1.1.1.1 dst=3.3.3.3 sport=10000 dport=53 packets=1 bytes=68 [UNREPLIED] src=3.3.3.3 dst=2.2.2.2 sport=53 dport=10000 packets=0 bytes=0 mark=0 use=1

And a "port 61033 unreachable" ICMP packet is sent back.

The issue is that when PRE_ROUTING hooks are called from vrf_l3_rcv(),
the skb already has a conntrack flow attached to it, which means
nf_conntrack_in() will not resolve the flow again.

This means only the dest port is "reverse-NATed" (61033 -> 10000) but
the dest IP remains 2.2.2.2, and since the socket is bound to 1.1.1.1 it's
not received.
This can be verified by logging the 4-tuple of the packet in '__udp4_lib_rcv()'.

The fix is then to reset the flow when skb is received on a VRF, to let
conntrack resolve the flow again (which now will hit the earlier flow).

To reproduce: (Without the fix "Got pkt_to_nat_port" will not be printed by
  running 'bash ./repro'):
  $ cat run_in_A1.py
  import logging
  logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
  from scapy.all import *
  import argparse

  def get_packet_to_send(udp_dst_port, msg_name):
      return Ether(src='11:22:33:44:55:66', dst=iface_mac)/ \
          IP(src='3.3.3.3', dst='2.2.2.2')/ \
          UDP(sport=53, dport=udp_dst_port)/ \
          Raw(f'{msg_name}\x0012345678901234567890')

  parser = argparse.ArgumentParser()
  parser.add_argument('-iface_mac', dest="iface_mac", type=str, required=True,
                      help="From run_in_A3.py")
  parser.add_argument('-socket_port', dest="socket_port", type=str,
                      required=True, help="From run_in_A3.py")
  parser.add_argument('-v1_mac', dest="v1_mac", type=str, required=True,
                      help="From script")

  args, _ = parser.parse_known_args()
  iface_mac = args.iface_mac
  socket_port = int(args.socket_port)
  v1_mac = args.v1_mac

  print(f'Source port before NAT: {socket_port}')

  while True:
      pkts = sniff(iface='_v0', store=True, count=1, timeout=10)
      if 0 == len(pkts):
          print('Something failed, rerun the script :(', flush=True)
          break
      pkt = pkts[0]
      if not pkt.haslayer('UDP'):
          continue

      pkt_sport = pkt.getlayer('UDP').sport
      print(f'Source port after NAT: {pkt_sport}', flush=True)

      pkt_to_send = get_packet_to_send(pkt_sport, 'pkt_to_nat_port')
      sendp(pkt_to_send, '_v0', verbose=False) # Will not be received

      pkt_to_send = get_packet_to_send(socket_port, 'pkt_to_socket_port')
      sendp(pkt_to_send, '_v0', verbose=False)
      break

  $ cat run_in_A2.py
  import socket
  import netifaces

  print(f"{netifaces.ifaddresses('e00000')[netifaces.AF_LINK][0]['addr']}",
        flush=True)
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE,
               str('vrf_1' + '\0').encode('utf-8'))
  s.connect(('3.3.3.3', 53))
  print(f'{s. getsockname()[1]}', flush=True)
  s.settimeout(5)

  while True:
      try:
          # Periodically send in order to keep the conntrack entry alive.
          s.send(b'a'*40)
          resp = s.recvfrom(1024)
          msg_name = resp[0].decode('utf-8').split('\0')[0]
          print(f"Got {msg_name}", flush=True)
      except Exception as e:
          pass

  $ cat repro.sh
  ip netns del A1 2> /dev/null
  ip netns del A2 2> /dev/null
  ip netns add A1
  ip netns add A2

  ip -n A1 link add _v0 type veth peer name _v1 netns A2
  ip -n A1 link set _v0 up

  ip -n A2 link add e00000 type bond
  ip -n A2 link add lo0 type dummy
  ip -n A2 link add vrf_1 type vrf table 10001
  ip -n A2 link set vrf_1 up
  ip -n A2 link set e00000 master vrf_1

  ip -n A2 addr add 1.1.1.1/24 dev e00000
  ip -n A2 link set e00000 up
  ip -n A2 link set _v1 master e00000
  ip -n A2 link set _v1 up
  ip -n A2 link set lo0 up
  ip -n A2 addr add 2.2.2.2/32 dev lo0

  ip -n A2 neigh add 1.1.1.10 lladdr 77:77:77:77:77:77 dev e00000
  ip -n A2 route add 3.3.3.3/32 via 1.1.1.10 dev e00000 table 10001

  ip netns exec A2 iptables -t nat -A POSTROUTING -p udp -m udp --dport 53 -j \
	SNAT --to-source 2.2.2.2 -o vrf_1

  sleep 5
  ip netns exec A2 python3 run_in_A2.py > x &
  XPID=$!
  sleep 5

  IFACE_MAC=`sed -n 1p x`
  SOCKET_PORT=`sed -n 2p x`
  V1_MAC=`ip -n A2 link show _v1 | sed -n 2p | awk '{print $2'}`
  ip netns exec A1 python3 run_in_A1.py -iface_mac ${IFACE_MAC} -socket_port \
          ${SOCKET_PORT} -v1_mac ${SOCKET_PORT}
  sleep 5

  kill -9 $XPID
  wait $XPID 2> /dev/null
  ip netns del A1
  ip netns del A2
  tail x -n 2
  rm x
  set +x

Fixes: 73e20b761acf ("net: vrf: Add support for PREROUTING rules on vrf device")
Signed-off-by: Lahav Schlesinger <lschlesinger@drivenets.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20210815120002.2787653-1-lschlesinger@drivenets.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/vrf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index 414afcb0a23f..b1c451d10a5d 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -1367,6 +1367,8 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev,
 	bool need_strict = rt6_need_strict(&ipv6_hdr(skb)->daddr);
 	bool is_ndisc = ipv6_ndisc_frame(skb);
 
+	nf_reset_ct(skb);
+
 	/* loopback, multicast & non-ND link-local traffic; do not push through
 	 * packet taps again. Reset pkt_type for upper layers to process skb.
 	 * For strict packets with a source LLA, determine the dst using the
@@ -1429,6 +1431,8 @@ static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev,
 	skb->skb_iif = vrf_dev->ifindex;
 	IPCB(skb)->flags |= IPSKB_L3SLAVE;
 
+	nf_reset_ct(skb);
+
 	if (ipv4_is_multicast(ip_hdr(skb)->daddr))
 		goto out;
 
-- 
2.30.2


  parent reply	other threads:[~2021-08-24 17:00 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-24 16:54 [PATCH 5.13 000/127] 5.13.13-rc1 review Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 001/127] mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 002/127] io_uring: Use WRITE_ONCE() when writing to sq_flags Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 003/127] USB: core: Avoid WARNings for 0-length descriptor requests Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 004/127] USB: core: Fix incorrect pipe calculation in do_proc_control() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 005/127] dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 006/127] dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 007/127] spi: spi-mux: Add module info needed for autoloading Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 008/127] net: xfrm: Fix end of loop tests for list_for_each_entry Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 009/127] ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218 Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 010/127] dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 011/127] scsi: pm80xx: Fix TMF task completion race condition Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 012/127] scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 013/127] scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 014/127] scsi: core: Avoid printing an error if target_alloc() returns -ENXIO Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 015/127] scsi: core: Fix capacity set to zero after offlinining device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 016/127] drm/amdgpu: fix the doorbell missing when in CGPG issue for renoir Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 017/127] qede: fix crash in rmmod qede while automatic debug collection Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 018/127] ARM: dts: nomadik: Fix up interrupt controller node names Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 019/127] net: usb: pegasus: Check the return value of get_geristers() and friends; Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 020/127] net: usb: lan78xx: don't modify phy_device state concurrently Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 021/127] perf/x86: Fix out of bound MSR access Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 022/127] spi: cadence-quadspi: Fix check condition for DTR ops Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 023/127] drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 024/127] drm/amd/display: workaround for hard hang on HPD on native DP Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 025/127] kyber: make trace_block_rq call consistent with documentation Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 026/127] mtd: rawnand: Add a check in of_get_nand_secure_regions() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 027/127] arm64: dts: qcom: c630: fix correct powerdown pin for WSA881x Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 028/127] arm64: dts: qcom: msm8992-bullhead: Remove PSCI Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 029/127] arm64: dts: qcom: msm8992-bullhead: Fix cont_splash_mem mapping Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 030/127] iommu: Check if group is NULL before remove device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 031/127] cpufreq: arm_scmi: Fix error path when allocation failed Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 032/127] arm64: dts: qcom: msm8994-angler: Disable cont_splash_mem Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 033/127] arm64: dts: qcom: sdm845-oneplus: fix reserved-mem Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 034/127] mt76: fix enum type mismatch Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 035/127] mtd: rawnand: Fix probe failure due to of_get_nand_secure_regions() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 036/127] soc: fsl: qe: convert QE interrupt controller to platform_device Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 037/127] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 038/127] dccp: add do-while-0 stubs for dccp_pr_debug macros Sasha Levin
2021-08-24 16:54   ` Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 039/127] virtio: Protect vqs list access Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 040/127] vhost-vdpa: Fix integer overflow in vhost_vdpa_process_iotlb_update() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 041/127] bus: ti-sysc: Fix error handling for sysc_check_active_timer() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 042/127] vhost: Fix the calculation in vhost_overflow() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 043/127] vdpa_sim: Fix return value check for vdpa_alloc_device() Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 044/127] vp_vdpa: " Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 045/127] vDPA/ifcvf: " Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 046/127] vdpa/mlx5: Avoid destroying MR on empty iotlb Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 047/127] vdpa/mlx5: Fix queue type selection logic Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 048/127] drm/mediatek: Add AAL output size configuration Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 049/127] drm/mediatek: Add component_del in OVL and COLOR remove function Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 050/127] bpf: Clear zext_dst of dead insns Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 051/127] bnxt: don't lock the tx queue from napi poll Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 052/127] bnxt: disable napi before canceling DIM Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 053/127] bnxt: make sure xmit_more + errors does not miss doorbells Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 054/127] bnxt: count Tx drops Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 055/127] soc: fsl: qe: fix static checker warning Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 056/127] net: 6pack: fix slab-out-of-bounds in decode_data Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 057/127] ptp_pch: Restore dependency on PCI Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 058/127] bnxt_en: Disable aRFS if running on 212 firmware Sasha Levin
2021-08-24 16:54 ` [PATCH 5.13 059/127] bnxt_en: Add missing DMA memory barriers Sasha Levin
2021-08-24 16:55 ` Sasha Levin [this message]
2021-08-24 16:55 ` [PATCH 5.13 061/127] virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 062/127] mac80211: fix locking in ieee80211_restart_work() Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 063/127] net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 064/127] ixgbe, xsk: clean up the resources in ixgbe_xsk_pool_enable error path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 065/127] sch_cake: fix srchost/dsthost hashing mode Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 066/127] net: mdio-mux: Don't ignore memory allocation errors Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 067/127] net: mdio-mux: Handle -EPROBE_DEFER correctly Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 068/127] ovs: clear skb->tstamp in forwarding path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 069/127] net: usb: asix: refactor asix_read_phy_addr() and handle errors on return Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 070/127] iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry() Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 071/127] drm/i915: Skip display interruption setup when display is not available Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 072/127] drm/i915: Tweaked Wa_14010685332 for all PCHs Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 073/127] pipe: avoid unnecessary EPOLLET wakeups under normal loads Sasha Levin
2021-08-24 17:00   ` Linus Torvalds
2021-08-24 17:35     ` Sasha Levin
2021-08-24 18:01       ` Linus Torvalds
2021-08-25 18:08     ` Linus Torvalds
2021-08-24 16:55 ` [PATCH 5.13 074/127] drm/amd/display: Use DCN30 watermark calc for DCN301 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 075/127] net: mscc: ocelot: allow forwarding from bridge ports to the tag_8021q CPU port Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 076/127] mptcp: fix memory leak on address flush Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 077/127] mptcp: full fully established support after ADD_ADDR Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 078/127] r8152: fix writing USB_BP2_EN Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 079/127] r8152: fix the maximum number of PLA bp for RTL8153C Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 080/127] PCI/sysfs: Use correct variable for the legacy_mem sysfs object Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 081/127] i40e: Fix ATR queue selection Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 082/127] iavf: Fix ping is lost after untrusted VF had tried to change MAC Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 083/127] Revert "flow_offload: action should not be NULL when it is referenced" Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 084/127] net: dpaa2-switch: disable the control interface on error path Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 085/127] iommu/dma: Fix leak in non-contiguous API Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 086/127] mmc: dw_mmc: Fix hang on data CRC error Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 087/127] mmc: mmci: stm32: Check when the voltage switch procedure should be done Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 088/127] mmc: sdhci-msm: Update the software timeout value for sdhc Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 089/127] clk: imx6q: fix uart earlycon unwork Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 090/127] clk: qcom: gdsc: Ensure regulator init state matches GDSC state Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 091/127] arm64: clean vdso & vdso32 files Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 092/127] cfi: Use rcu_read_{un}lock_sched_notrace Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 093/127] ALSA: hda - fix the 'Capture Switch' value change notifications Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 094/127] tracing: define needed config DYNAMIC_FTRACE_WITH_ARGS Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 095/127] tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event name Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 096/127] slimbus: messaging: start transaction ids from 1 instead of zero Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 097/127] slimbus: messaging: check for valid transaction id Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 098/127] slimbus: ngd: set correct device for pm Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 099/127] slimbus: ngd: reset dma setup during runtime pm Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 100/127] ipack: tpci200: fix many double free issues in tpci200_pci_probe Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 101/127] ipack: tpci200: fix memory leak in the tpci200_register Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 102/127] io_uring: fix code style problems Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 103/127] io_uring: only assign io_uring_enter() SQPOLL error in actual error case Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 104/127] ALSA: hda/realtek: Enable 4-speaker output for Dell XPS 15 9510 laptop Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 105/127] opp: Drop empty-table checks from _put functions Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 106/127] mmc: sdhci-iproc: Cap min clock frequency on BCM2711 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 107/127] mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN " Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 108/127] btrfs: prevent rename2 from exchanging a subvol with a directory from different parents Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 109/127] tracing: Apply trace filters on all output channels Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 110/127] ALSA: hda/via: Apply runtime PM workaround for ASUS B23E Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 111/127] s390/pci: fix use after free of zpci_dev Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 112/127] usb: typec: tcpm: Fix VDMs sometimes not being forwarded to alt-mode drivers Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 113/127] powerpc/32s: Move setup_{kuep/kuap}() into {kuep/kuap}.c Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 114/127] powerpc/32s: Refactor update of user segment registers Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 115/127] powerpc/32s: Fix random crashes by adding isync() after locking/unlocking KUEP Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 116/127] PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 117/127] ALSA: hda/realtek: Limit mic boost on HP ProBook 445 G8 Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 118/127] ASoC: intel: atom: Fix breakage for PCM buffer address setup Sasha Levin
2021-08-24 16:55 ` [PATCH 5.13 119/127] riscv: Fix a number of free'd resources in init_resources() Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 120/127] mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 121/127] mm,hwpoison: make get_hwpoison_page() call get_any_page() Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 122/127] mm/hwpoison: retry with shake_page() for unhandlable pages Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 123/127] kfence: fix is_kfence_address() for addresses below KFENCE_POOL_SIZE Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 124/127] hugetlb: don't pass page cache pages to restore_reserve_on_error Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 125/127] io_uring: fix xa_alloc_cycle() error return value check Sasha Levin
2021-08-24 16:56 ` [PATCH 5.13 126/127] fs: warn about impending deprecation of mandatory locks Sasha Levin
2021-09-02 13:20   ` Naresh Kamboju
2021-09-02 13:27     ` Jeff Layton
2021-09-02 13:39       ` Naresh Kamboju
2021-09-02 13:31     ` Greg Kroah-Hartman
2021-09-02 13:38       ` Naresh Kamboju
2021-08-24 16:56 ` [PATCH 5.13 127/127] Linux 5.13.13-rc1 Sasha Levin
2021-08-25 14:26 ` [PATCH 5.13 000/127] 5.13.13-rc1 review Jon Hunter
2021-08-25 16:21 ` Daniel Díaz
2021-08-26 12:49   ` Sasha Levin
2021-08-25 20:24 ` Guenter Roeck
2021-08-26 12:50   ` Sasha Levin
2021-08-25 22:34 ` Shuah Khan
2021-08-26 12:50   ` Sasha Levin

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=20210824165607.709387-61-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=dsahern@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lschlesinger@drivenets.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.