From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Al Viro <viro@ZenIV.linux.org.uk>,
Gao Xiang <gaoxiang25@huawei.com>
Subject: [PATCH 4.19 142/149] staging: erofs: keep corrupted fs from crashing kernel in erofs_namei()
Date: Tue, 12 Mar 2019 10:09:20 -0700 [thread overview]
Message-ID: <20190312170401.210219451@linuxfoundation.org> (raw)
In-Reply-To: <20190312170349.421581206@linuxfoundation.org>
4.19-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gao Xiang <gaoxiang25@huawei.com>
commit 419d6efc50e94bcf5d6b35cd8c71f79edadec564 upstream.
As Al pointed out, "
... and while we are at it, what happens to
unsigned int nameoff = le16_to_cpu(de[mid].nameoff);
unsigned int matched = min(startprfx, endprfx);
struct qstr dname = QSTR_INIT(data + nameoff,
unlikely(mid >= ndirents - 1) ?
maxsize - nameoff :
le16_to_cpu(de[mid + 1].nameoff) - nameoff);
/* string comparison without already matched prefix */
int ret = dirnamecmp(name, &dname, &matched);
if le16_to_cpu(de[...].nameoff) is not monotonically increasing? I.e.
what's to prevent e.g. (unsigned)-1 ending up in dname.len?
Corrupted fs image shouldn't oops the kernel.. "
Revisit the related lookup flow to address the issue.
Fixes: d72d1ce60174 ("staging: erofs: add namei functions")
Cc: <stable@vger.kernel.org> # 4.19+
Suggested-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/erofs/namei.c | 189 ++++++++++++++++++++++--------------------
1 file changed, 100 insertions(+), 89 deletions(-)
--- a/drivers/staging/erofs/namei.c
+++ b/drivers/staging/erofs/namei.c
@@ -15,74 +15,77 @@
#include <trace/events/erofs.h>
-/* based on the value of qn->len is accurate */
-static inline int dirnamecmp(struct qstr *qn,
- struct qstr *qd, unsigned *matched)
+struct erofs_qstr {
+ const unsigned char *name;
+ const unsigned char *end;
+};
+
+/* based on the end of qn is accurate and it must have the trailing '\0' */
+static inline int dirnamecmp(const struct erofs_qstr *qn,
+ const struct erofs_qstr *qd,
+ unsigned int *matched)
{
- unsigned i = *matched, len = min(qn->len, qd->len);
-loop:
- if (unlikely(i >= len)) {
- *matched = i;
- if (qn->len < qd->len) {
- /*
- * actually (qn->len == qd->len)
- * when qd->name[i] == '\0'
- */
- return qd->name[i] == '\0' ? 0 : -1;
- }
- return (qn->len > qd->len);
- }
+ unsigned int i = *matched;
- if (qn->name[i] != qd->name[i]) {
- *matched = i;
- return qn->name[i] > qd->name[i] ? 1 : -1;
+ /*
+ * on-disk error, let's only BUG_ON in the debugging mode.
+ * otherwise, it will return 1 to just skip the invalid name
+ * and go on (in consideration of the lookup performance).
+ */
+ DBG_BUGON(qd->name > qd->end);
+
+ /* qd could not have trailing '\0' */
+ /* However it is absolutely safe if < qd->end */
+ while (qd->name + i < qd->end && qd->name[i] != '\0') {
+ if (qn->name[i] != qd->name[i]) {
+ *matched = i;
+ return qn->name[i] > qd->name[i] ? 1 : -1;
+ }
+ ++i;
}
-
- ++i;
- goto loop;
+ *matched = i;
+ /* See comments in __d_alloc on the terminating NUL character */
+ return qn->name[i] == '\0' ? 0 : 1;
}
-static struct erofs_dirent *find_target_dirent(
- struct qstr *name,
- u8 *data, int maxsize)
+#define nameoff_from_disk(off, sz) (le16_to_cpu(off) & ((sz) - 1))
+
+static struct erofs_dirent *find_target_dirent(struct erofs_qstr *name,
+ u8 *data,
+ unsigned int dirblksize,
+ const int ndirents)
{
- unsigned ndirents, head, back;
- unsigned startprfx, endprfx;
+ int head, back;
+ unsigned int startprfx, endprfx;
struct erofs_dirent *const de = (struct erofs_dirent *)data;
- /* make sure that maxsize is valid */
- BUG_ON(maxsize < sizeof(struct erofs_dirent));
-
- ndirents = le16_to_cpu(de->nameoff) / sizeof(*de);
-
- /* corrupted dir (may be unnecessary...) */
- BUG_ON(!ndirents);
-
- head = 0;
+ /* since the 1st dirent has been evaluated previously */
+ head = 1;
back = ndirents - 1;
startprfx = endprfx = 0;
while (head <= back) {
- unsigned mid = head + (back - head) / 2;
- unsigned nameoff = le16_to_cpu(de[mid].nameoff);
- unsigned matched = min(startprfx, endprfx);
-
- struct qstr dname = QSTR_INIT(data + nameoff,
- unlikely(mid >= ndirents - 1) ?
- maxsize - nameoff :
- le16_to_cpu(de[mid + 1].nameoff) - nameoff);
+ const int mid = head + (back - head) / 2;
+ const int nameoff = nameoff_from_disk(de[mid].nameoff,
+ dirblksize);
+ unsigned int matched = min(startprfx, endprfx);
+ struct erofs_qstr dname = {
+ .name = data + nameoff,
+ .end = unlikely(mid >= ndirents - 1) ?
+ data + dirblksize :
+ data + nameoff_from_disk(de[mid + 1].nameoff,
+ dirblksize)
+ };
/* string comparison without already matched prefix */
int ret = dirnamecmp(name, &dname, &matched);
- if (unlikely(!ret))
+ if (unlikely(!ret)) {
return de + mid;
- else if (ret > 0) {
+ } else if (ret > 0) {
head = mid + 1;
startprfx = matched;
- } else if (unlikely(mid < 1)) /* fix "mid" overflow */
- break;
- else {
+ } else {
back = mid - 1;
endprfx = matched;
}
@@ -91,12 +94,12 @@ static struct erofs_dirent *find_target_
return ERR_PTR(-ENOENT);
}
-static struct page *find_target_block_classic(
- struct inode *dir,
- struct qstr *name, int *_diff)
+static struct page *find_target_block_classic(struct inode *dir,
+ struct erofs_qstr *name,
+ int *_ndirents)
{
- unsigned startprfx, endprfx;
- unsigned head, back;
+ unsigned int startprfx, endprfx;
+ int head, back;
struct address_space *const mapping = dir->i_mapping;
struct page *candidate = ERR_PTR(-ENOENT);
@@ -105,41 +108,43 @@ static struct page *find_target_block_cl
back = inode_datablocks(dir) - 1;
while (head <= back) {
- unsigned mid = head + (back - head) / 2;
+ const int mid = head + (back - head) / 2;
struct page *page = read_mapping_page(mapping, mid, NULL);
- if (IS_ERR(page)) {
-exact_out:
- if (!IS_ERR(candidate)) /* valid candidate */
- put_page(candidate);
- return page;
- } else {
- int diff;
- unsigned ndirents, matched;
- struct qstr dname;
+ if (!IS_ERR(page)) {
struct erofs_dirent *de = kmap_atomic(page);
- unsigned nameoff = le16_to_cpu(de->nameoff);
-
- ndirents = nameoff / sizeof(*de);
+ const int nameoff = nameoff_from_disk(de->nameoff,
+ EROFS_BLKSIZ);
+ const int ndirents = nameoff / sizeof(*de);
+ int diff;
+ unsigned int matched;
+ struct erofs_qstr dname;
- /* corrupted dir (should have one entry at least) */
- BUG_ON(!ndirents || nameoff > PAGE_SIZE);
+ if (unlikely(!ndirents)) {
+ DBG_BUGON(1);
+ kunmap_atomic(de);
+ put_page(page);
+ page = ERR_PTR(-EIO);
+ goto out;
+ }
matched = min(startprfx, endprfx);
dname.name = (u8 *)de + nameoff;
- dname.len = ndirents == 1 ?
- /* since the rest of the last page is 0 */
- EROFS_BLKSIZ - nameoff
- : le16_to_cpu(de[1].nameoff) - nameoff;
+ if (ndirents == 1)
+ dname.end = (u8 *)de + EROFS_BLKSIZ;
+ else
+ dname.end = (u8 *)de +
+ nameoff_from_disk(de[1].nameoff,
+ EROFS_BLKSIZ);
/* string comparison without already matched prefix */
diff = dirnamecmp(name, &dname, &matched);
kunmap_atomic(de);
if (unlikely(!diff)) {
- *_diff = 0;
- goto exact_out;
+ *_ndirents = 0;
+ goto out;
} else if (diff > 0) {
head = mid + 1;
startprfx = matched;
@@ -147,45 +152,51 @@ exact_out:
if (likely(!IS_ERR(candidate)))
put_page(candidate);
candidate = page;
+ *_ndirents = ndirents;
} else {
put_page(page);
- if (unlikely(mid < 1)) /* fix "mid" overflow */
- break;
-
back = mid - 1;
endprfx = matched;
}
+ continue;
}
+out: /* free if the candidate is valid */
+ if (!IS_ERR(candidate))
+ put_page(candidate);
+ return page;
}
- *_diff = 1;
return candidate;
}
int erofs_namei(struct inode *dir,
- struct qstr *name,
- erofs_nid_t *nid, unsigned *d_type)
+ struct qstr *name,
+ erofs_nid_t *nid, unsigned int *d_type)
{
- int diff;
+ int ndirents;
struct page *page;
- u8 *data;
+ void *data;
struct erofs_dirent *de;
+ struct erofs_qstr qn;
if (unlikely(!dir->i_size))
return -ENOENT;
- diff = 1;
- page = find_target_block_classic(dir, name, &diff);
+ qn.name = name->name;
+ qn.end = name->name + name->len;
+
+ ndirents = 0;
+ page = find_target_block_classic(dir, &qn, &ndirents);
if (unlikely(IS_ERR(page)))
return PTR_ERR(page);
data = kmap_atomic(page);
/* the target page has been mapped */
- de = likely(diff) ?
- /* since the rest of the last page is 0 */
- find_target_dirent(name, data, EROFS_BLKSIZ) :
- (struct erofs_dirent *)data;
+ if (ndirents)
+ de = find_target_dirent(&qn, data, EROFS_BLKSIZ, ndirents);
+ else
+ de = (struct erofs_dirent *)data;
if (likely(!IS_ERR(de))) {
*nid = le64_to_cpu(de->nid);
next prev parent reply other threads:[~2019-03-12 17:46 UTC|newest]
Thread overview: 153+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-12 17:06 [PATCH 4.19 000/149] 4.19.29-stable review Greg Kroah-Hartman
2019-03-12 17:06 ` [PATCH 4.19 001/149] media: uvcvideo: Fix type check leading to overflow Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 002/149] vti4: Fix a ipip packet processing bug in IPCOMP virtual tunnel Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 003/149] perf script: Fix crash with printing mixed trace point and other events Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 004/149] perf core: Fix perf_proc_update_handler() bug Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 005/149] perf tools: Handle TOPOLOGY headers with no CPU Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 006/149] perf script: Fix crash when processing recorded stat data Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 007/149] IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 008/149] iommu/amd: Call free_iova_fast with pfn in map_sg Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 009/149] iommu/amd: Unmap all mapped pages in error path of map_sg Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 010/149] riscv: fixup max_low_pfn with PFN_DOWN Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 011/149] ipvs: Fix signed integer overflow when setsockopt timeout Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 012/149] iommu/amd: Fix IOMMU page flush when detach device from a domain Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 013/149] clk: ti: Fix error handling in ti_clk_parse_divider_data() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 014/149] clk: qcom: gcc: Use active only source for CPUSS clocks Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 015/149] xtensa: SMP: fix ccount_timer_shutdown Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 016/149] riscv: Adjust mmap base address at a third of task size Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 017/149] IB/ipoib: Fix for use-after-free in ipoib_cm_tx_start Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 018/149] selftests: cpu-hotplug: fix case where CPUs offline > CPUs present Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 019/149] xtensa: SMP: fix secondary CPU initialization Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 020/149] xtensa: smp_lx200_defconfig: fix vectors clash Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 021/149] xtensa: SMP: mark each possible CPU as present Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 022/149] iomap: get/put the page in iomap_page_create/release() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 023/149] iomap: fix a use after free in iomap_dio_rw Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 024/149] xtensa: SMP: limit number of possible CPUs by NR_CPUS Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 025/149] net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 026/149] net: hns: Fix for missing of_node_put() after of_parse_phandle() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 027/149] net: hns: Restart autoneg need return failed when autoneg off Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 028/149] net: hns: Fix wrong read accesses via Clause 45 MDIO protocol Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 029/149] net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 030/149] netfilter: ebtables: compat: un-break 32bit setsockopt when no rules are present Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 031/149] gpio: vf610: Mask all GPIO interrupts Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 032/149] selftests: net: use LDLIBS instead of LDFLAGS Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 033/149] selftests: timers: " Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 034/149] nfs: Fix NULL pointer dereference of dev_name Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 035/149] qed: Fix bug in tx promiscuous mode settings Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 036/149] qed: Fix LACP pdu drops for VFs Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 037/149] qed: Fix VF probe failure while FLR Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 038/149] qed: Fix system crash in ll2 xmit Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 039/149] qed: Fix stack out of bounds bug Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 040/149] scsi: libfc: free skb when receiving invalid flogi resp Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 041/149] scsi: scsi_debug: fix write_same with virtual_gb problem Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 042/149] scsi: bnx2fc: Fix error handling in probe() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 043/149] scsi: 53c700: pass correct "dev" to dma_alloc_attrs() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 044/149] platform/x86: Fix unmet dependency warning for ACPI_CMPC Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 045/149] platform/x86: Fix unmet dependency warning for SAMSUNG_Q10 Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 046/149] net: macb: Apply RXUBR workaround only to versions with errata Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 047/149] x86/boot/compressed/64: Set EFER.LME=1 in 32-bit trampoline before returning to long mode Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 048/149] cifs: fix computation for MAX_SMB2_HDR_SIZE Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 049/149] x86/microcode/amd: Dont falsely trick the late loading mechanism Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 050/149] arm64: kprobe: Always blacklist the KVM world-switch code Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 051/149] apparmor: Fix aa_label_build() error handling for failed merges Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 052/149] x86/kexec: Dont setup EFI info if EFI runtime is not enabled Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 053/149] proc: fix /proc/net/* after setns(2) Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 054/149] x86_64: increase stack size for KASAN_EXTRA Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 055/149] mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 056/149] mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 057/149] lib/test_kmod.c: potential double free in error handling Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 058/149] fs/drop_caches.c: avoid softlockups in drop_pagecache_sb() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 059/149] autofs: drop dentry reference only when it is never used Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 060/149] autofs: fix error return in autofs_fill_super() Greg Kroah-Hartman
2019-03-12 17:07 ` [PATCH 4.19 061/149] mm, memory_hotplug: fix off-by-one in is_pageblock_removable Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 062/149] ARM: OMAP: dts: N950/N9: fix onenand timings Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 063/149] ARM: dts: omap4-droid4: Fix typo in cpcap IRQ flags Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 064/149] ARM: dts: sun8i: h3: Add ethernet0 alias to Beelink X2 Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 065/149] arm: dts: meson: Fix IRQ trigger type for macirq Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 066/149] ARM: dts: meson8b: odroidc1: mark the SD card detection GPIO active-low Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 067/149] ARM: dts: meson8m2: mxiii-plus: " Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 068/149] ARM: dts: imx6sx: correct backward compatible of gpt Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 069/149] arm64: dts: renesas: r8a7796: Enable DMA for SCIF2 Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 070/149] arm64: dts: renesas: r8a77965: " Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 071/149] soc: fsl: qbman: avoid race in clearing QMan interrupt Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 072/149] pinctrl: mcp23s08: spi: Fix regmap allocation for mcp23s18 Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 073/149] wlcore: sdio: Fixup power on/off sequence Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 074/149] bpftool: Fix prog dump by tag Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 075/149] bpftool: fix percpu maps updating Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 076/149] bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt() Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 077/149] ARM: pxa: ssp: unneeded to free devm_ allocated data Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 078/149] arm64: dts: add msm8996 compatible to gicv3 Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 079/149] batman-adv: release station info tidstats Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 080/149] DTS: CI20: Fix bugs in ci20s device tree Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 081/149] usb: phy: fix link errors Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 082/149] irqchip/gic-v4: Fix occasional VLPI drop Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 083/149] irqchip/gic-v3-its: Gracefully fail on LPI exhaustion Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 084/149] irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 085/149] drm/amdgpu: Add missing power attribute to APU check Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 086/149] drm/radeon: check if device is root before getting pci speed caps Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 087/149] drm/amdgpu: Transfer fences to dmabuf importer Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 088/149] net: stmmac: Fallback to Platform Data clock in Watchdog conversion Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 089/149] net: stmmac: Send TSO packets always from Queue 0 Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 090/149] net: stmmac: Disable EEE mode earlier in XMIT callback Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 091/149] irqchip/gic-v3-its: Fix ITT_entry_size accessor Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 092/149] relay: check return of create_buf_file() properly Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 093/149] bpf, selftests: fix handling of sparse CPU allocations Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 094/149] bpf: fix lockdep false positive in percpu_freelist Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 095/149] bpf: fix potential deadlock in bpf_prog_register Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 096/149] bpf: Fix syscalls stackmap lookup potential deadlock Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 097/149] drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 098/149] dmaengine: at_xdmac: Fix wrongfull report of a channel as in use Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 099/149] vsock/virtio: fix kernel panic after device hot-unplug Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 100/149] vsock/virtio: reset connected sockets on device removal Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 101/149] dmaengine: dmatest: Abort test in case of mapping error Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 102/149] selftests: netfilter: fix config fragment CONFIG_NF_TABLES_INET Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 103/149] selftests: netfilter: add simple masq/redirect test cases Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 104/149] netfilter: nf_nat: skip nat clash resolution for same-origin entries Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 105/149] s390/qeth: release cmd buffer in error paths Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 106/149] s390/qeth: fix use-after-free in error path Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 107/149] s390/qeth: cancel close_dev work before removing a card Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 108/149] perf symbols: Filter out hidden symbols from labels Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 109/149] perf trace: Support multiple "vfs_getname" probes Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 110/149] MIPS: Loongson: Introduce and use loongson_llsc_mb() Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 111/149] MIPS: Remove function size check in get_frame_info() Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 112/149] Revert "scsi: libfc: Add WARN_ON() when deleting rports" Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 113/149] i2c: omap: Use noirq system sleep pm ops to idle device for suspend Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 114/149] drm/amdgpu: use spin_lock_irqsave to protect vm_manager.pasid_idr Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 115/149] nvme: lock NS list changes while handling command effects Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 116/149] nvme-pci: fix rapid add remove sequence Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 117/149] fs: ratelimit __find_get_block_slow() failure message Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 118/149] qed: Fix EQ full firmware assert Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 119/149] qed: Consider TX tcs while deriving the max num_queues for PF Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 120/149] qede: Fix system crash on configuring channels Greg Kroah-Hartman
2019-03-12 17:08 ` [PATCH 4.19 121/149] blk-iolatency: fix IO hang due to negative inflight counter Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 122/149] nvme-pci: add missing unlock for reset error Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 123/149] Input: wacom_serial4 - add support for Wacom ArtPad II tablet Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 124/149] Input: elan_i2c - add id for touchpad found in Lenovo s21e-20 Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 125/149] iscsi_ibft: Fix missing break in switch statement Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 126/149] scsi: aacraid: " Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 127/149] x86/PCI: Fixup RTIT_BAR of Intel Denverton Trace Hub Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 128/149] arm64: dts: zcu100-revC: Give wifi some time after power-on Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 129/149] arm64: dts: hikey: " Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 130/149] arm64: dts: hikey: Revert "Enable HS200 mode on eMMC" Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 131/149] ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3 Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 132/149] ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 133/149] ARM: dts: exynos: Fix max voltage for buck8 regulator on Odroid XU3/XU4 Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 134/149] drm: disable uncached DMA optimization for ARM and arm64 Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 135/149] netfilter: xt_TEE: fix wrong interface selection Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 136/149] netfilter: xt_TEE: add missing code to get interface index in checkentry Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 137/149] gfs2: Fix missed wakeups in find_insert_glock Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 138/149] staging: erofs: add error handling for xattr submodule Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 139/149] staging: erofs: fix fast symlink w/o xattr when fs xattr is on Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 140/149] staging: erofs: fix memleak of inodes shared xattr array Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 141/149] staging: erofs: fix race of initializing xattrs of a inode at the same time Greg Kroah-Hartman
2019-03-12 17:09 ` Greg Kroah-Hartman [this message]
2019-03-12 17:09 ` [PATCH 4.19 143/149] cifs: allow calling SMB2_xxx_free(NULL) Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 144/149] ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 145/149] driver core: Postpone DMA tear-down until after devres release Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 146/149] perf/x86/intel: Make cpuc allocations consistent Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 147/149] perf/x86/intel: Generalize dynamic constraint creation Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 148/149] x86: Add TSX Force Abort CPUID/MSR Greg Kroah-Hartman
2019-03-12 17:09 ` [PATCH 4.19 149/149] perf/x86/intel: Implement support for TSX Force Abort Greg Kroah-Hartman
2019-03-13 3:59 ` [PATCH 4.19 000/149] 4.19.29-stable review Naresh Kamboju
2019-03-13 17:36 ` Jon Hunter
2019-03-13 20:35 ` 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=20190312170401.210219451@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=gaoxiang25@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=viro@ZenIV.linux.org.uk \
/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
Powered by JetHome