public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Jann Horn <jannh@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mikhail Zaslonko <zaslonko@linux.ibm.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.19 145/172] lib/zlib: remove outdated and incorrect pre-increment optimization
Date: Wed, 17 Jun 2020 21:21:51 -0400	[thread overview]
Message-ID: <20200618012218.607130-145-sashal@kernel.org> (raw)
In-Reply-To: <20200618012218.607130-1-sashal@kernel.org>

From: Jann Horn <jannh@google.com>

[ Upstream commit acaab7335bd6f0c0b54ce3a00bd7f18222ce0f5f ]

The zlib inflate code has an old micro-optimization based on the
assumption that for pre-increment memory accesses, the compiler will
generate code that fits better into the processor's pipeline than what
would be generated for post-increment memory accesses.

This optimization was already removed in upstream zlib in 2016:
https://github.com/madler/zlib/commit/9aaec95e8211

This optimization causes UB according to C99, which says in section 6.5.6
"Additive operators": "If both the pointer operand and the result point to
elements of the same array object, or one past the last element of the
array object, the evaluation shall not produce an overflow; otherwise, the
behavior is undefined".

This UB is not only a theoretical concern, but can also cause trouble for
future work on compiler-based sanitizers.

According to the zlib commit, this optimization also is not optimal
anymore with modern compilers.

Replace uses of OFF, PUP and UP_UNALIGNED with their definitions in the
POSTINC case, and remove the macro definitions, just like in the upstream
patch.

Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Link: http://lkml.kernel.org/r/20200507123112.252723-1-jannh@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 lib/zlib_inflate/inffast.c | 91 +++++++++++++++-----------------------
 1 file changed, 35 insertions(+), 56 deletions(-)

diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c
index 2c13ecc5bb2c..ed1f3df27260 100644
--- a/lib/zlib_inflate/inffast.c
+++ b/lib/zlib_inflate/inffast.c
@@ -10,17 +10,6 @@
 
 #ifndef ASMINF
 
-/* Allow machine dependent optimization for post-increment or pre-increment.
-   Based on testing to date,
-   Pre-increment preferred for:
-   - PowerPC G3 (Adler)
-   - MIPS R5000 (Randers-Pehrson)
-   Post-increment preferred for:
-   - none
-   No measurable difference:
-   - Pentium III (Anderson)
-   - M68060 (Nikl)
- */
 union uu {
 	unsigned short us;
 	unsigned char b[2];
@@ -38,16 +27,6 @@ get_unaligned16(const unsigned short *p)
 	return mm.us;
 }
 
-#ifdef POSTINC
-#  define OFF 0
-#  define PUP(a) *(a)++
-#  define UP_UNALIGNED(a) get_unaligned16((a)++)
-#else
-#  define OFF 1
-#  define PUP(a) *++(a)
-#  define UP_UNALIGNED(a) get_unaligned16(++(a))
-#endif
-
 /*
    Decode literal, length, and distance codes and write out the resulting
    literal and match bytes until either not enough input or output is
@@ -115,9 +94,9 @@ void inflate_fast(z_streamp strm, unsigned start)
 
     /* copy state to local variables */
     state = (struct inflate_state *)strm->state;
-    in = strm->next_in - OFF;
+    in = strm->next_in;
     last = in + (strm->avail_in - 5);
-    out = strm->next_out - OFF;
+    out = strm->next_out;
     beg = out - (start - strm->avail_out);
     end = out + (strm->avail_out - 257);
 #ifdef INFLATE_STRICT
@@ -138,9 +117,9 @@ void inflate_fast(z_streamp strm, unsigned start)
        input data or output space */
     do {
         if (bits < 15) {
-            hold += (unsigned long)(PUP(in)) << bits;
+            hold += (unsigned long)(*in++) << bits;
             bits += 8;
-            hold += (unsigned long)(PUP(in)) << bits;
+            hold += (unsigned long)(*in++) << bits;
             bits += 8;
         }
         this = lcode[hold & lmask];
@@ -150,14 +129,14 @@ void inflate_fast(z_streamp strm, unsigned start)
         bits -= op;
         op = (unsigned)(this.op);
         if (op == 0) {                          /* literal */
-            PUP(out) = (unsigned char)(this.val);
+            *out++ = (unsigned char)(this.val);
         }
         else if (op & 16) {                     /* length base */
             len = (unsigned)(this.val);
             op &= 15;                           /* number of extra bits */
             if (op) {
                 if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
+                    hold += (unsigned long)(*in++) << bits;
                     bits += 8;
                 }
                 len += (unsigned)hold & ((1U << op) - 1);
@@ -165,9 +144,9 @@ void inflate_fast(z_streamp strm, unsigned start)
                 bits -= op;
             }
             if (bits < 15) {
-                hold += (unsigned long)(PUP(in)) << bits;
+                hold += (unsigned long)(*in++) << bits;
                 bits += 8;
-                hold += (unsigned long)(PUP(in)) << bits;
+                hold += (unsigned long)(*in++) << bits;
                 bits += 8;
             }
             this = dcode[hold & dmask];
@@ -180,10 +159,10 @@ void inflate_fast(z_streamp strm, unsigned start)
                 dist = (unsigned)(this.val);
                 op &= 15;                       /* number of extra bits */
                 if (bits < op) {
-                    hold += (unsigned long)(PUP(in)) << bits;
+                    hold += (unsigned long)(*in++) << bits;
                     bits += 8;
                     if (bits < op) {
-                        hold += (unsigned long)(PUP(in)) << bits;
+                        hold += (unsigned long)(*in++) << bits;
                         bits += 8;
                     }
                 }
@@ -205,13 +184,13 @@ void inflate_fast(z_streamp strm, unsigned start)
                         state->mode = BAD;
                         break;
                     }
-                    from = window - OFF;
+                    from = window;
                     if (write == 0) {           /* very common case */
                         from += wsize - op;
                         if (op < len) {         /* some from window */
                             len -= op;
                             do {
-                                PUP(out) = PUP(from);
+                                *out++ = *from++;
                             } while (--op);
                             from = out - dist;  /* rest from output */
                         }
@@ -222,14 +201,14 @@ void inflate_fast(z_streamp strm, unsigned start)
                         if (op < len) {         /* some from end of window */
                             len -= op;
                             do {
-                                PUP(out) = PUP(from);
+                                *out++ = *from++;
                             } while (--op);
-                            from = window - OFF;
+                            from = window;
                             if (write < len) {  /* some from start of window */
                                 op = write;
                                 len -= op;
                                 do {
-                                    PUP(out) = PUP(from);
+                                    *out++ = *from++;
                                 } while (--op);
                                 from = out - dist;      /* rest from output */
                             }
@@ -240,21 +219,21 @@ void inflate_fast(z_streamp strm, unsigned start)
                         if (op < len) {         /* some from window */
                             len -= op;
                             do {
-                                PUP(out) = PUP(from);
+                                *out++ = *from++;
                             } while (--op);
                             from = out - dist;  /* rest from output */
                         }
                     }
                     while (len > 2) {
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
-                        PUP(out) = PUP(from);
+                        *out++ = *from++;
+                        *out++ = *from++;
+                        *out++ = *from++;
                         len -= 3;
                     }
                     if (len) {
-                        PUP(out) = PUP(from);
+                        *out++ = *from++;
                         if (len > 1)
-                            PUP(out) = PUP(from);
+                            *out++ = *from++;
                     }
                 }
                 else {
@@ -264,29 +243,29 @@ void inflate_fast(z_streamp strm, unsigned start)
                     from = out - dist;          /* copy direct from output */
 		    /* minimum length is three */
 		    /* Align out addr */
-		    if (!((long)(out - 1 + OFF) & 1)) {
-			PUP(out) = PUP(from);
+		    if (!((long)(out - 1) & 1)) {
+			*out++ = *from++;
 			len--;
 		    }
-		    sout = (unsigned short *)(out - OFF);
+		    sout = (unsigned short *)(out);
 		    if (dist > 2) {
 			unsigned short *sfrom;
 
-			sfrom = (unsigned short *)(from - OFF);
+			sfrom = (unsigned short *)(from);
 			loops = len >> 1;
 			do
 #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
-			    PUP(sout) = PUP(sfrom);
+			    *sout++ = *sfrom++;
 #else
-			    PUP(sout) = UP_UNALIGNED(sfrom);
+			    *sout++ = get_unaligned16(sfrom++);
 #endif
 			while (--loops);
-			out = (unsigned char *)sout + OFF;
-			from = (unsigned char *)sfrom + OFF;
+			out = (unsigned char *)sout;
+			from = (unsigned char *)sfrom;
 		    } else { /* dist == 1 or dist == 2 */
 			unsigned short pat16;
 
-			pat16 = *(sout-1+OFF);
+			pat16 = *(sout-1);
 			if (dist == 1) {
 				union uu mm;
 				/* copy one char pattern to both bytes */
@@ -296,12 +275,12 @@ void inflate_fast(z_streamp strm, unsigned start)
 			}
 			loops = len >> 1;
 			do
-			    PUP(sout) = pat16;
+			    *sout++ = pat16;
 			while (--loops);
-			out = (unsigned char *)sout + OFF;
+			out = (unsigned char *)sout;
 		    }
 		    if (len & 1)
-			PUP(out) = PUP(from);
+			*out++ = *from++;
                 }
             }
             else if ((op & 64) == 0) {          /* 2nd level distance code */
@@ -336,8 +315,8 @@ void inflate_fast(z_streamp strm, unsigned start)
     hold &= (1U << bits) - 1;
 
     /* update state and return */
-    strm->next_in = in + OFF;
-    strm->next_out = out + OFF;
+    strm->next_in = in;
+    strm->next_out = out;
     strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
     strm->avail_out = (unsigned)(out < end ?
                                  257 + (end - out) : 257 - (out - end));
-- 
2.25.1


  parent reply	other threads:[~2020-06-18  1:56 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-18  1:19 [PATCH AUTOSEL 4.19 001/172] power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 002/172] clk: sunxi: Fix incorrect usage of round_down() Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 003/172] ASoC: tegra: tegra_wm8903: Support nvidia, headset property Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 004/172] RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 005/172] i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 006/172] iio: pressure: bmp280: Tolerate IRQ before registering Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 007/172] iio: light: isl29125: fix iio_triggered_buffer_{predisable,postenable} positions Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 008/172] remoteproc: Fix IDR initialisation in rproc_alloc() Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 009/172] clk: qcom: msm8916: Fix the address location of pll->config_reg Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 010/172] backlight: lp855x: Ensure regulators are disabled on probe failure Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 011/172] ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 012/172] ARM: integrator: Add some Kconfig selections Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 013/172] scsi: qedi: Check for buffer overflow in qedi_set_path() Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 014/172] ALSA: hda/realtek - Introduce polarity for micmute LED GPIO Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 015/172] ALSA: isa/wavefront: prevent out of bounds write in ioctl Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 016/172] PCI: Allow pci_resize_resource() for devices on root bus Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 017/172] Smack: slab-out-of-bounds in vsscanf Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 018/172] scsi: qla2xxx: Fix issue with adapter's stopping state Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 019/172] iio: bmp280: fix compensation of humidity Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 020/172] f2fs: report delalloc reserve as non-free in statfs for project quota Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 021/172] i2c: pxa: clear all master action bits in i2c_pxa_stop_message() Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 022/172] clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 023/172] usblp: poison URBs upon disconnect Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 024/172] serial: 8250: Fix max baud limit in generic 8250 port Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 025/172] dm mpath: switch paths in dm_blk_ioctl() code path Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 026/172] PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only register Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 027/172] ps3disk: use the default segment boundary Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 028/172] vfio/pci: fix memory leaks in alloc_perm_bits() Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 029/172] RDMA/mlx5: Add init2init as a modify command Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 030/172] m68k/PCI: Fix a memory leak in an error handling path Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 031/172] gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 032/172] mfd: wm8994: Fix driver operation if loaded as modules Sasha Levin
2020-06-18  1:19 ` [PATCH AUTOSEL 4.19 033/172] scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 034/172] clk: clk-flexgen: fix clock-critical handling Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 035/172] powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 036/172] nfsd: Fix svc_xprt refcnt leak when setup callback client failed Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 037/172] PCI: vmd: Filter resource type bits from shadow register Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 038/172] powerpc/crashkernel: Take "mem=" option into account Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 039/172] pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 040/172] yam: fix possible memory leak in yam_init_driver Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 041/172] fat: don't allow to mount if the FAT length == 0 Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 042/172] NTB: ntb_pingpong: Choose doorbells based on port number Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 043/172] NTB: Fix the default port and peer numbers for legacy drivers Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 044/172] mksysmap: Fix the mismatch of '.L' symbols in System.map Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 045/172] apparmor: fix introspection of of task mode for unconfined tasks Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 046/172] apparmor: check/put label on apparmor_sk_clone_security() Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 047/172] ASoC: meson: add missing free_irq() in error path Sasha Levin
2020-06-19 13:28   ` Pavel Machek
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 048/172] scsi: sr: Fix sr_probe() missing deallocate of device minor Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 049/172] scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 050/172] apparmor: fix nnp subset test for unconfined Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 051/172] x86/purgatory: Disable various profiling and sanitizing options Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 052/172] staging: greybus: fix a missing-check bug in gb_lights_light_config() Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 053/172] staging: rtl8712: fix multiline derefernce warnings Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 054/172] arm64: dts: mt8173: fix unit name warnings Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 055/172] scsi: qedi: Do not flush offload work if ARP not resolved Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 056/172] ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 057/172] gpio: dwapb: Append MODULE_ALIAS for platform driver Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 058/172] scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 059/172] iio: buffer: Don't allow buffers without any channels enabled to be activated Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 060/172] pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 061/172] firmware: qcom_scm: fix bogous abuse of dma-direct internals Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 062/172] staging: gasket: Fix mapping refcnt leak when put attribute fails Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 063/172] staging: gasket: Fix mapping refcnt leak when register/store fails Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 064/172] ALSA: usb-audio: Improve frames size computation Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 065/172] ALSA: usb-audio: Fix racy list management in output queue Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 066/172] Input: mms114 - add extra compatible for mms345l Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 067/172] s390/qdio: put thinint indicator after early error Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 068/172] tty: hvc: Fix data abort due to race in hvc_open Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 069/172] slimbus: ngd: get drvdata from correct device Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 070/172] thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 071/172] soundwire: slave: don't init debugfs on device registration error Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 072/172] usb: dwc3: gadget: Properly handle failed kick_transfer Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 073/172] staging: sm750fb: add missing case while setting FB_VISUAL Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 074/172] PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 075/172] i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 076/172] serial: amba-pl011: Make sure we initialize the port.lock spinlock Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 077/172] drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 078/172] PCI: rcar: Fix incorrect programming of OB windows Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 079/172] PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 080/172] scsi: qla2xxx: Fix warning after FC target reset Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 081/172] power: supply: lp8788: Fix an error handling path in 'lp8788_charger_probe()' Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 082/172] power: supply: smb347-charger: IRQSTAT_D is volatile Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 083/172] scsi: mpt3sas: Fix double free warnings Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 084/172] pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 085/172] dlm: remove BUG() before panic() Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 086/172] clk: ti: composite: fix memory leak Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 087/172] PCI: Fix pci_register_host_bridge() device_register() error handling Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 088/172] powerpc/64: Don't initialise init_task->thread.regs Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 089/172] tty: n_gsm: Fix SOF skipping Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 090/172] tty: n_gsm: Fix waking up upper tty layer when room available Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 091/172] HID: Add quirks for Trust Panora Graphic Tablet Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 092/172] ipmi: use vzalloc instead of kmalloc for user creation Sasha Levin
2020-06-18  1:20 ` [PATCH AUTOSEL 4.19 093/172] powerpc/pseries/ras: Fix FWNMI_VALID off by one Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 094/172] powerpc/ps3: Fix kexec shutdown hang Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 095/172] vfio-pci: Mask cap zero Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 096/172] usb/ohci-platform: Fix a warning when hibernating Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 097/172] drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 098/172] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 099/172] USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe() Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 100/172] tty: n_gsm: Fix bogus i++ in gsm_data_kick Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 101/172] fpga: dfl: afu: Corrected error handling levels Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 102/172] clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1 Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 103/172] ARM: dts: meson: Switch existing boards with RGMII PHY to "rgmii-id" Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 104/172] scsi: target: tcmu: Userspace must not complete queued commands Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 105/172] arm64: tegra: Fix ethernet phy-mode for Jetson Xavier Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 106/172] powerpc/64s/pgtable: fix an undefined behaviour Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 107/172] dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 108/172] PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 109/172] PCI: dwc: Fix inner MSI IRQ domain registration Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 110/172] IB/cma: Fix ports memory leak in cma_configfs Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 111/172] watchdog: da9062: No need to ping manually before setting timeout Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 112/172] usb: dwc2: gadget: move gadget resume after the core is in L0 state Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 113/172] USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 114/172] usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 115/172] usb: gadget: fix potential double-free in m66592_probe Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 116/172] usb: gadget: Fix issue with config_ep_by_speed function Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 117/172] RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 118/172] x86/apic: Make TSC deadline timer detection message visible Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 119/172] ASoC: fix incomplete error-handling in img_i2s_in_probe Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 120/172] vfio/pci: fix memory leaks of eventfd ctx Sasha Levin
2020-06-18  1:26   ` Alex Williamson
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 121/172] scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd() Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 122/172] clk: bcm2835: Fix return type of bcm2835_register_gate Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 123/172] scsi: ufs-qcom: Fix scheduling while atomic issue Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 124/172] KVM: PPC: Book3S HV: Ignore kmemleak false positives Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 125/172] clk: sprd: return correct type of value for _sprd_pll_recalc_rate Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 126/172] net: sunrpc: Fix off-by-one issues in 'rpc_ntop6' Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 127/172] NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 128/172] PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0 Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 129/172] PCI: Avoid FLR for AMD Starship " Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 130/172] of: Fix a refcounting bug in __of_attach_node_sysfs() Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 131/172] powerpc/4xx: Don't unmap NULL mbase Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 132/172] extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()' Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 133/172] ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 134/172] vfio/mdev: Fix reference count leak in add_mdev_supported_type Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 135/172] rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 136/172] openrisc: Fix issue with argument clobbering for clone/fork Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 137/172] gfs2: Allow lock_nolock mount to specify jid=X Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 138/172] ovl: verify permissions in ovl_path_open() Sasha Levin
2020-06-23 15:35   ` Naresh Kamboju
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 139/172] scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 140/172] scsi: ufs: Don't update urgent bkops level when toggling auto bkops Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 141/172] pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()' Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 142/172] pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()' Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 143/172] crypto: omap-sham - add proper load balancing support for multicore Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 144/172] geneve: change from tx_error to tx_dropped on missing metadata Sasha Levin
2020-06-18  1:21 ` Sasha Levin [this message]
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 146/172] include/linux/bitops.h: avoid clang shift-count-overflow warnings Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 147/172] elfnote: mark all .note sections SHF_ALLOC Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 148/172] selftests/vm/pkeys: fix alloc_random_pkey() to make it really random Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 149/172] blktrace: use errno instead of bi_status Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 150/172] blktrace: fix endianness in get_pdu_int() Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 151/172] blktrace: fix endianness for blk_log_remap() Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 152/172] gfs2: fix use-after-free on transaction ail lists Sasha Levin
2020-06-18  1:21 ` [PATCH AUTOSEL 4.19 153/172] ntb_perf: pass correct struct device to dma_alloc_coherent Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 154/172] ntb_tool: " Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 155/172] NTB: ntb_tool: reading the link file should not end in a NULL byte Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 156/172] NTB: Revert the change to use the NTB device dev for DMA allocations Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 157/172] NTB: perf: Don't require one more memory window than number of peers Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 158/172] NTB: perf: Fix support for hardware that doesn't have port numbers Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 159/172] NTB: perf: Fix race condition when run with ntb_test Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 160/172] NTB: ntb_test: Fix bug when counting remote files Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 161/172] drivers/perf: hisi: Fix wrong value for all counters enable Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 162/172] selftests/net: in timestamping, strncpy needs to preserve null byte Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 163/172] afs: Fix memory leak in afs_put_sysnames() Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 164/172] ASoC: core: only convert non DPCM link to DPCM link Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 165/172] ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 166/172] ASoC: rt5645: Add platform-data for Asus T101HA Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 167/172] selftests/net: in rxtimestamp getopt_long needs terminating null entry Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 168/172] drm/sun4i: hdmi ddc clk: Fix size of m divider Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 169/172] scsi: acornscsi: Fix an error handling path in acornscsi_probe() Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 170/172] x86/idt: Keep spurious entries unset in system_vectors Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 171/172] net/filter: Permit reading NET in load_bytes_relative when MAC not set Sasha Levin
2020-06-18  1:22 ` [PATCH AUTOSEL 4.19 172/172] xdp: Fix xsk_generic_xmit errno 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=20200618012218.607130-145-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=jannh@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=zaslonko@linux.ibm.com \
    /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