From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Qian Cai <cai@lca.pw>,
Joerg Roedel <jroedel@suse.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.6 025/194] iommu/amd: Fix race in increase_address_space()/fetch_pte()
Date: Mon, 18 May 2020 19:35:15 +0200 [thread overview]
Message-ID: <20200518173533.632925454@linuxfoundation.org> (raw)
In-Reply-To: <20200518173531.455604187@linuxfoundation.org>
From: Joerg Roedel <jroedel@suse.de>
[ Upstream commit eb791aa70b90c559eeb371d807c8813d569393f0 ]
The 'pt_root' and 'mode' struct members of 'struct protection_domain'
need to be get/set atomically, otherwise the page-table of the domain
can get corrupted.
Merge the fields into one atomic64_t struct member which can be
get/set atomically.
Fixes: 92d420ec028d ("iommu/amd: Relax locking in dma_ops path")
Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Tested-by: Qian Cai <cai@lca.pw>
Link: https://lore.kernel.org/r/20200504125413.16798-2-joro@8bytes.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/iommu/amd_iommu.c | 140 ++++++++++++++++++++++++--------
drivers/iommu/amd_iommu_types.h | 9 +-
2 files changed, 112 insertions(+), 37 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 20cce366e9518..28229a38af4d2 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -151,6 +151,26 @@ static struct protection_domain *to_pdomain(struct iommu_domain *dom)
return container_of(dom, struct protection_domain, domain);
}
+static void amd_iommu_domain_get_pgtable(struct protection_domain *domain,
+ struct domain_pgtable *pgtable)
+{
+ u64 pt_root = atomic64_read(&domain->pt_root);
+
+ pgtable->root = (u64 *)(pt_root & PAGE_MASK);
+ pgtable->mode = pt_root & 7; /* lowest 3 bits encode pgtable mode */
+}
+
+static u64 amd_iommu_domain_encode_pgtable(u64 *root, int mode)
+{
+ u64 pt_root;
+
+ /* lowest 3 bits encode pgtable mode */
+ pt_root = mode & 7;
+ pt_root |= (u64)root;
+
+ return pt_root;
+}
+
static struct iommu_dev_data *alloc_dev_data(u16 devid)
{
struct iommu_dev_data *dev_data;
@@ -1397,13 +1417,18 @@ static struct page *free_sub_pt(unsigned long root, int mode,
static void free_pagetable(struct protection_domain *domain)
{
- unsigned long root = (unsigned long)domain->pt_root;
+ struct domain_pgtable pgtable;
struct page *freelist = NULL;
+ unsigned long root;
+
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ atomic64_set(&domain->pt_root, 0);
- BUG_ON(domain->mode < PAGE_MODE_NONE ||
- domain->mode > PAGE_MODE_6_LEVEL);
+ BUG_ON(pgtable.mode < PAGE_MODE_NONE ||
+ pgtable.mode > PAGE_MODE_6_LEVEL);
- freelist = free_sub_pt(root, domain->mode, freelist);
+ root = (unsigned long)pgtable.root;
+ freelist = free_sub_pt(root, pgtable.mode, freelist);
free_page_list(freelist);
}
@@ -1417,24 +1442,28 @@ static bool increase_address_space(struct protection_domain *domain,
unsigned long address,
gfp_t gfp)
{
+ struct domain_pgtable pgtable;
unsigned long flags;
bool ret = false;
- u64 *pte;
+ u64 *pte, root;
spin_lock_irqsave(&domain->lock, flags);
- if (address <= PM_LEVEL_SIZE(domain->mode) ||
- WARN_ON_ONCE(domain->mode == PAGE_MODE_6_LEVEL))
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
+ if (address <= PM_LEVEL_SIZE(pgtable.mode) ||
+ WARN_ON_ONCE(pgtable.mode == PAGE_MODE_6_LEVEL))
goto out;
pte = (void *)get_zeroed_page(gfp);
if (!pte)
goto out;
- *pte = PM_LEVEL_PDE(domain->mode,
- iommu_virt_to_phys(domain->pt_root));
- domain->pt_root = pte;
- domain->mode += 1;
+ *pte = PM_LEVEL_PDE(pgtable.mode, iommu_virt_to_phys(pgtable.root));
+
+ root = amd_iommu_domain_encode_pgtable(pte, pgtable.mode + 1);
+
+ atomic64_set(&domain->pt_root, root);
ret = true;
@@ -1451,16 +1480,22 @@ static u64 *alloc_pte(struct protection_domain *domain,
gfp_t gfp,
bool *updated)
{
+ struct domain_pgtable pgtable;
int level, end_lvl;
u64 *pte, *page;
BUG_ON(!is_power_of_2(page_size));
- while (address > PM_LEVEL_SIZE(domain->mode))
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
+ while (address > PM_LEVEL_SIZE(pgtable.mode)) {
*updated = increase_address_space(domain, address, gfp) || *updated;
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ }
+
- level = domain->mode - 1;
- pte = &domain->pt_root[PM_LEVEL_INDEX(level, address)];
+ level = pgtable.mode - 1;
+ pte = &pgtable.root[PM_LEVEL_INDEX(level, address)];
address = PAGE_SIZE_ALIGN(address, page_size);
end_lvl = PAGE_SIZE_LEVEL(page_size);
@@ -1536,16 +1571,19 @@ static u64 *fetch_pte(struct protection_domain *domain,
unsigned long address,
unsigned long *page_size)
{
+ struct domain_pgtable pgtable;
int level;
u64 *pte;
*page_size = 0;
- if (address > PM_LEVEL_SIZE(domain->mode))
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
+ if (address > PM_LEVEL_SIZE(pgtable.mode))
return NULL;
- level = domain->mode - 1;
- pte = &domain->pt_root[PM_LEVEL_INDEX(level, address)];
+ level = pgtable.mode - 1;
+ pte = &pgtable.root[PM_LEVEL_INDEX(level, address)];
*page_size = PTE_LEVEL_PAGE_SIZE(level);
while (level > 0) {
@@ -1806,6 +1844,7 @@ static void dma_ops_domain_free(struct protection_domain *domain)
static struct protection_domain *dma_ops_domain_alloc(void)
{
struct protection_domain *domain;
+ u64 *pt_root, root;
domain = kzalloc(sizeof(struct protection_domain), GFP_KERNEL);
if (!domain)
@@ -1814,12 +1853,14 @@ static struct protection_domain *dma_ops_domain_alloc(void)
if (protection_domain_init(domain))
goto free_domain;
- domain->mode = PAGE_MODE_3_LEVEL;
- domain->pt_root = (void *)get_zeroed_page(GFP_KERNEL);
- domain->flags = PD_DMA_OPS_MASK;
- if (!domain->pt_root)
+ pt_root = (void *)get_zeroed_page(GFP_KERNEL);
+ if (!pt_root)
goto free_domain;
+ root = amd_iommu_domain_encode_pgtable(pt_root, PAGE_MODE_3_LEVEL);
+ atomic64_set(&domain->pt_root, root);
+ domain->flags = PD_DMA_OPS_MASK;
+
if (iommu_get_dma_cookie(&domain->domain) == -ENOMEM)
goto free_domain;
@@ -1843,14 +1884,17 @@ static bool dma_ops_domain(struct protection_domain *domain)
static void set_dte_entry(u16 devid, struct protection_domain *domain,
bool ats, bool ppr)
{
+ struct domain_pgtable pgtable;
u64 pte_root = 0;
u64 flags = 0;
u32 old_domid;
- if (domain->mode != PAGE_MODE_NONE)
- pte_root = iommu_virt_to_phys(domain->pt_root);
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
+ if (pgtable.mode != PAGE_MODE_NONE)
+ pte_root = iommu_virt_to_phys(pgtable.root);
- pte_root |= (domain->mode & DEV_ENTRY_MODE_MASK)
+ pte_root |= (pgtable.mode & DEV_ENTRY_MODE_MASK)
<< DEV_ENTRY_MODE_SHIFT;
pte_root |= DTE_FLAG_IR | DTE_FLAG_IW | DTE_FLAG_V | DTE_FLAG_TV;
@@ -2375,6 +2419,7 @@ static struct protection_domain *protection_domain_alloc(void)
static struct iommu_domain *amd_iommu_domain_alloc(unsigned type)
{
struct protection_domain *pdomain;
+ u64 *pt_root, root;
switch (type) {
case IOMMU_DOMAIN_UNMANAGED:
@@ -2382,13 +2427,15 @@ static struct iommu_domain *amd_iommu_domain_alloc(unsigned type)
if (!pdomain)
return NULL;
- pdomain->mode = PAGE_MODE_3_LEVEL;
- pdomain->pt_root = (void *)get_zeroed_page(GFP_KERNEL);
- if (!pdomain->pt_root) {
+ pt_root = (void *)get_zeroed_page(GFP_KERNEL);
+ if (!pt_root) {
protection_domain_free(pdomain);
return NULL;
}
+ root = amd_iommu_domain_encode_pgtable(pt_root, PAGE_MODE_3_LEVEL);
+ atomic64_set(&pdomain->pt_root, root);
+
pdomain->domain.geometry.aperture_start = 0;
pdomain->domain.geometry.aperture_end = ~0ULL;
pdomain->domain.geometry.force_aperture = true;
@@ -2406,7 +2453,7 @@ static struct iommu_domain *amd_iommu_domain_alloc(unsigned type)
if (!pdomain)
return NULL;
- pdomain->mode = PAGE_MODE_NONE;
+ atomic64_set(&pdomain->pt_root, PAGE_MODE_NONE);
break;
default:
return NULL;
@@ -2418,6 +2465,7 @@ static struct iommu_domain *amd_iommu_domain_alloc(unsigned type)
static void amd_iommu_domain_free(struct iommu_domain *dom)
{
struct protection_domain *domain;
+ struct domain_pgtable pgtable;
domain = to_pdomain(dom);
@@ -2435,7 +2483,9 @@ static void amd_iommu_domain_free(struct iommu_domain *dom)
dma_ops_domain_free(domain);
break;
default:
- if (domain->mode != PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
+ if (pgtable.mode != PAGE_MODE_NONE)
free_pagetable(domain);
if (domain->flags & PD_IOMMUV2_MASK)
@@ -2518,10 +2568,12 @@ static int amd_iommu_map(struct iommu_domain *dom, unsigned long iova,
gfp_t gfp)
{
struct protection_domain *domain = to_pdomain(dom);
+ struct domain_pgtable pgtable;
int prot = 0;
int ret;
- if (domain->mode == PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ if (pgtable.mode == PAGE_MODE_NONE)
return -EINVAL;
if (iommu_prot & IOMMU_READ)
@@ -2541,8 +2593,10 @@ static size_t amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova,
struct iommu_iotlb_gather *gather)
{
struct protection_domain *domain = to_pdomain(dom);
+ struct domain_pgtable pgtable;
- if (domain->mode == PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ if (pgtable.mode == PAGE_MODE_NONE)
return 0;
return iommu_unmap_page(domain, iova, page_size);
@@ -2553,9 +2607,11 @@ static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom,
{
struct protection_domain *domain = to_pdomain(dom);
unsigned long offset_mask, pte_pgsize;
+ struct domain_pgtable pgtable;
u64 *pte, __pte;
- if (domain->mode == PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ if (pgtable.mode == PAGE_MODE_NONE)
return iova;
pte = fetch_pte(domain, iova, &pte_pgsize);
@@ -2708,16 +2764,26 @@ EXPORT_SYMBOL(amd_iommu_unregister_ppr_notifier);
void amd_iommu_domain_direct_map(struct iommu_domain *dom)
{
struct protection_domain *domain = to_pdomain(dom);
+ struct domain_pgtable pgtable;
unsigned long flags;
+ u64 pt_root;
spin_lock_irqsave(&domain->lock, flags);
+ /* First save pgtable configuration*/
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+
/* Update data structure */
- domain->mode = PAGE_MODE_NONE;
+ pt_root = amd_iommu_domain_encode_pgtable(NULL, PAGE_MODE_NONE);
+ atomic64_set(&domain->pt_root, pt_root);
/* Make changes visible to IOMMUs */
update_domain(domain);
+ /* Restore old pgtable in domain->ptroot to free page-table */
+ pt_root = amd_iommu_domain_encode_pgtable(pgtable.root, pgtable.mode);
+ atomic64_set(&domain->pt_root, pt_root);
+
/* Page-table is not visible to IOMMU anymore, so free it */
free_pagetable(domain);
@@ -2908,9 +2974,11 @@ static u64 *__get_gcr3_pte(u64 *root, int level, int pasid, bool alloc)
static int __set_gcr3(struct protection_domain *domain, int pasid,
unsigned long cr3)
{
+ struct domain_pgtable pgtable;
u64 *pte;
- if (domain->mode != PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ if (pgtable.mode != PAGE_MODE_NONE)
return -EINVAL;
pte = __get_gcr3_pte(domain->gcr3_tbl, domain->glx, pasid, true);
@@ -2924,9 +2992,11 @@ static int __set_gcr3(struct protection_domain *domain, int pasid,
static int __clear_gcr3(struct protection_domain *domain, int pasid)
{
+ struct domain_pgtable pgtable;
u64 *pte;
- if (domain->mode != PAGE_MODE_NONE)
+ amd_iommu_domain_get_pgtable(domain, &pgtable);
+ if (pgtable.mode != PAGE_MODE_NONE)
return -EINVAL;
pte = __get_gcr3_pte(domain->gcr3_tbl, domain->glx, pasid, false);
diff --git a/drivers/iommu/amd_iommu_types.h b/drivers/iommu/amd_iommu_types.h
index ca8c4522045b3..7a8fdec138bd1 100644
--- a/drivers/iommu/amd_iommu_types.h
+++ b/drivers/iommu/amd_iommu_types.h
@@ -468,8 +468,7 @@ struct protection_domain {
iommu core code */
spinlock_t lock; /* mostly used to lock the page table*/
u16 id; /* the domain id written to the device table */
- int mode; /* paging mode (0-6 levels) */
- u64 *pt_root; /* page table root pointer */
+ atomic64_t pt_root; /* pgtable root and pgtable mode */
int glx; /* Number of levels for GCR3 table */
u64 *gcr3_tbl; /* Guest CR3 table */
unsigned long flags; /* flags to find out type of domain */
@@ -477,6 +476,12 @@ struct protection_domain {
unsigned dev_iommu[MAX_IOMMUS]; /* per-IOMMU reference count */
};
+/* For decocded pt_root */
+struct domain_pgtable {
+ int mode;
+ u64 *root;
+};
+
/*
* Structure where we save information about one hardware AMD IOMMU in the
* system.
--
2.20.1
next prev parent reply other threads:[~2020-05-18 18:00 UTC|newest]
Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-18 17:34 [PATCH 5.6 000/194] 5.6.14-rc1 review Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 001/194] KVM: nVMX: Consolidate nested MTF checks to helper function Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 002/194] kvm: nVMX: reflect MTF VM-exits if injected by L1 Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 003/194] xprtrdma: Clean up the post_send path Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 004/194] xprtrdma: Fix trace point use-after-free race Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 005/194] drm/i915/tgl: Add Wa_14010477008:tgl Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 006/194] drm/i915/tgl: TBT AUX should use TC power well ops Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 007/194] drm/i915/display: Load DP_TP_CTL/STATUS offset before use it Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 008/194] shmem: fix possible deadlocks on shmlock_user_lock Greg Kroah-Hartman
2020-05-18 17:34 ` [PATCH 5.6 009/194] net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx phy Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 010/194] KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 011/194] KVM: arm: vgic-v2: Only use the virtual state when userspace accesses pending bits Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 012/194] gpio: pca953x: Fix pca953x_gpio_set_config Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 013/194] SUNRPC: Add "@len" parameter to gss_unwrap() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 014/194] SUNRPC: Fix GSS privacy computation of auth->au_ralign Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 015/194] net/sonic: Fix a resource leak in an error handling path in jazz_sonic_probe() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 016/194] net: moxa: Fix a potential double free_irq() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 017/194] ftrace/selftests: workaround cgroup RT scheduling issues Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 018/194] hv_netvsc: Fix netvsc_start_xmits return type Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 019/194] net: Make PTP-specific drivers depend on PTP_1588_CLOCK Greg Kroah-Hartman
2020-05-18 18:13 ` Grygorii Strashko
2020-05-18 20:25 ` Sasha Levin
2020-05-18 17:35 ` [PATCH 5.6 020/194] drop_monitor: work around gcc-10 stringop-overflow warning Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 021/194] virtio-blk: handle block_device_operations callbacks after hot unplug Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 022/194] sun6i: dsi: fix gcc-4.8 Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 023/194] net_sched: fix tcm_parent in tc filter dump Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 024/194] net: stmmac: gmac5+: fix potential integer overflow on 32 bit multiply Greg Kroah-Hartman
2020-05-18 17:35 ` Greg Kroah-Hartman [this message]
2020-05-18 17:35 ` [PATCH 5.6 026/194] iommu/amd: Update Device Table in increase_address_space() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 027/194] net: dsa: ocelot: the MAC table on Felix is twice as large Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 028/194] net: mscc: ocelot: ANA_AUTOAGE_AGE_PERIOD holds a value in seconds, not ms Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 029/194] mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040 Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 030/194] dpaa2-eth: properly handle buffer size restrictions Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 031/194] mptcp: set correct vfs info for subflows Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 032/194] net: fix a potential recursive NETDEV_FEAT_CHANGE Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 033/194] netlabel: cope with NULL catmap Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 034/194] net: phy: fix aneg restart in phy_ethtool_set_eee Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 035/194] net: stmmac: fix num_por initialization Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 036/194] pppoe: only process PADT targeted at local interfaces Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 037/194] Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu" Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 038/194] tcp: fix error recovery in tcp_zerocopy_receive() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 039/194] tcp: fix SO_RCVLOWAT hangs with fat skbs Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 040/194] virtio_net: fix lockdep warning on 32 bit Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 041/194] dpaa2-eth: prevent array underflow in update_cls_rule() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 042/194] hinic: fix a bug of ndo_stop Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 043/194] net: dsa: loop: Add module soft dependency Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 044/194] net: ipv4: really enforce backoff for redirects Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 045/194] netprio_cgroup: Fix unlimited memory leak of v2 cgroups Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 046/194] net: tcp: fix rx timestamp behavior for tcp_recvmsg Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 047/194] nfp: abm: fix error return code in nfp_abm_vnic_alloc() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 048/194] r8169: re-establish support for RTL8401 chip version Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 049/194] umh: fix memory leak on execve failure Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 050/194] net: broadcom: Select BROADCOM_PHY for BCMGENET Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 051/194] dmaengine: xilinx_dma: Add missing check for empty list Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 052/194] riscv: fix vdso build with lld Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 053/194] dmaengine: pch_dma.c: Avoid data race between probe and irq handler Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 054/194] dmaengine: mmp_tdma: Do not ignore slave config validation errors Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 055/194] dmaengine: mmp_tdma: Reset channel error on release Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 056/194] drm/amd/display: blank dp stream before re-train the link Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 057/194] selftests/ftrace: Check the first record for kprobe_args_type.tc Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 058/194] cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 059/194] ALSA: hda/hdmi: fix race in monitor detection during probe Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 060/194] drm/amd/powerplay: avoid using pm_en before it is initialized revised Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 061/194] drm/amdgpu: bump version for invalidate L2 before SDMA IBs Greg Kroah-Hartman
[not found] ` <CH2PR12MB42467AF7BC0405001FD91207F9B80@CH2PR12MB4246.namprd12.prod.outlook.com>
2020-05-19 5:44 ` Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 062/194] drm/amd/display: check if REFCLK_CNTL register is present Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 063/194] drm/amd/display: Defer cursor update around VUPDATE for all ASIC Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 064/194] drm/amd/display: Update downspread percent to match spreadsheet for DCN2.1 Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 065/194] drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 066/194] fibmap: Warn and return an error in case of block > INT_MAX Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 067/194] io_uring: use cond_resched() in io_ring_ctx_wait_and_kill() Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 068/194] io_uring: check non-sync defer_list carefully Greg Kroah-Hartman
2020-05-18 17:35 ` [PATCH 5.6 069/194] ipc/util.c: sysvipc_find_ipc() incorrectly updates position index Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 070/194] ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 071/194] gfs2: Another gfs2_walk_metadata fix Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 072/194] mmc: sdhci-pci-gli: Fix no irq handler from suspend Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 073/194] IB/hfi1: Fix another case where pq is left on waitlist Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 074/194] ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 075/194] pinctrl: sunrisepoint: Fix PAD lock register offset for SPT-H Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 076/194] pinctrl: baytrail: Enable pin configuration setting for GPIO chip Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 077/194] pinctrl: qcom: fix wrong write in update_dual_edge Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 078/194] pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 079/194] drm/tegra: Fix SMMU support on Tegra124 and Tegra210 Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 080/194] bpf: Fix error return code in map_lookup_and_delete_elem() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 081/194] ALSA: firewire-lib: fix function sizeof not defined error of tracepoints format Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 082/194] cachefiles: Fix corruption of the return value in cachefiles_read_or_alloc_pages() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 083/194] i40iw: Fix error handling in i40iw_manage_arp_cache() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 084/194] drm/i915/gt: Make timeslicing an explicit engine property Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 085/194] drm/i915: Dont enable WaIncreaseLatencyIPCEnabled when IPC is disabled Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 086/194] bpf, sockmap: msg_pop_data can incorrecty set an sge length Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 087/194] bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 088/194] drm/i915/gem: Remove object_is_locked assertion from unpin_from_display_plane Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 089/194] mmc: alcor: Fix a resource leak in the error path for ->probe() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 090/194] mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows 10 Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 091/194] mmc: core: Check request type before completing the request Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 092/194] mmc: core: Fix recursive locking issue in CQE recovery path Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 093/194] mmc: block: Fix request completion in the CQE timeout path Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 094/194] gfs2: More gfs2_find_jhead fixes Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 095/194] fork: prevent accidental access to clone3 features Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 096/194] drm/amdgpu: force fbdev into vram Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 097/194] NFS: Fix fscache super_cookie index_key from changing after umount Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 098/194] NFS: Fix fscache super_cookie allocation Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 099/194] NFSv4: Fix fscache cookie aux_data to ensure change_attr is included Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 100/194] hwmon: (drivetemp) Fix SCT support if SCT data tables are not supported Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 101/194] netfilter: conntrack: avoid gcc-10 zero-length-bounds warning Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 102/194] drm/i915/gvt: Fix kernel oops for 3-level ppgtt guest Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 103/194] arm64: fix the flush_icache_range arguments in machine_kexec Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 104/194] netfilter: conntrack: fix infinite loop on rmmod Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 105/194] drm/i915: Mark concurrent submissions with a weak-dependency Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 106/194] nfs: fix NULL deference in nfs4_get_valid_delegation Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 107/194] SUNRPC: Signalled ASYNC tasks need to exit Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 108/194] tracing: Wait for preempt irq delay thread to execute Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 109/194] netfilter: flowtable: set NF_FLOW_TEARDOWN flag on entry expiration Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 110/194] netfilter: nft_set_rbtree: Add missing expired checks Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 111/194] RDMA/rxe: Always return ERR_PTR from rxe_create_mmap_info() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 112/194] IB/mlx4: Test return value of calls to ib_get_cached_pkey Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 113/194] IB/core: Fix potential NULL pointer dereference in pkey cache Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 114/194] RDMA/core: Fix double put of resource Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 115/194] RDMA/iw_cxgb4: Fix incorrect function parameters Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 116/194] x86/ftrace: Have ftrace trampolines turn read-only at the end of system boot up Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 117/194] hwmon: (da9052) Synchronize access with mfd Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 118/194] s390/ism: fix error return code in ism_probe() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 119/194] drm/i915: Handle idling during i915_gem_evict_something busy loops Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 120/194] mm, memcg: fix inconsistent oom event behavior Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 121/194] epoll: call final ep_events_available() check under the lock Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 122/194] bpf: Fix bug in mmap() implementation for BPF array map Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 123/194] NFSv3: fix rpc receive buffer size for MOUNT call Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 124/194] pnp: Use list_for_each_entry() instead of open coding Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 125/194] net/rds: Use ERR_PTR for rds_message_alloc_sgs() Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 126/194] Stop the ad-hoc games with -Wno-maybe-initialized Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 127/194] gcc-10: disable zero-length-bounds warning for now Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 128/194] gcc-10: disable array-bounds " Greg Kroah-Hartman
2020-05-18 17:36 ` [PATCH 5.6 129/194] gcc-10: disable stringop-overflow " Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 130/194] gcc-10: disable restrict " Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 131/194] gcc-10 warnings: fix low-hanging fruit Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 132/194] gcc-10: mark more functions __init to avoid section mismatch warnings Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 133/194] gcc-10: avoid shadowing standard library free() in crypto Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 134/194] bootconfig: Fix to remove bootconfig data from initrd while boot Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 135/194] bootconfig: Fix to prevent warning message if no bootconfig option Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 136/194] usb: usbfs: correct kernel->user page attribute mismatch Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 137/194] USB: usbfs: fix mmap dma mismatch Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 138/194] ALSA: hda/realtek - Limit int mic boost for Thinkpad T530 Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 139/194] ALSA: hda/realtek - Add COEF workaround for ASUS ZenBook UX431DA Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 140/194] ALSA: rawmidi: Fix racy buffer resize under concurrent accesses Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 141/194] ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 142/194] usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 143/194] usb: host: xhci-plat: keep runtime active when removing host Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 144/194] usb: cdns3: gadget: prev_req->trb is NULL for ep0 Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 145/194] USB: gadget: fix illegal array access in binding with UDC Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 146/194] usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 147/194] Make the "Reducing compressed framebufer size" message be DRM_INFO_ONCE() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 148/194] ARM: dts: dra7: Fix bus_dma_limit for PCIe Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 149/194] ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 150/194] ARM: dts: imx6dl-yapp4: Fix Ursa board Ethernet connection Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 151/194] drm/amd/display: add basic atomic check for cursor plane Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 152/194] drm/amd/amdgpu: add raven1 part to the gfxoff quirk list Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 153/194] drm/i915/tgl+: Fix interrupt handling for DP AUX transactions Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 154/194] powerpc/vdso32: Fallback on getres syscall when clock is unknown Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 155/194] powerpc/32s: Fix build failure with CONFIG_PPC_KUAP_DEBUG Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 156/194] cifs: fix leaked reference on requeued write Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 157/194] KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 158/194] x86: Fix early boot crash on gcc-10, third try Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 159/194] x86/unwind/orc: Fix error handling in __unwind_start() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 160/194] exec: Move would_dump into flush_old_exec Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 161/194] clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 162/194] dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 163/194] fanotify: fix merging marks masks with FAN_ONDIR Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 164/194] arm64: dts: meson-g12b-ugoos-am6: fix usb vbus-supply Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 165/194] usb: gadget: tegra-xudc: Fix idle suspend/resume Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 166/194] usb: gadget: net2272: Fix a memory leak in an error handling path in net2272_plat_probe() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 167/194] usb: gadget: audio: Fix a missing error return value in audio_bind() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 168/194] usb: gadget: legacy: fix error return code in gncm_bind() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 169/194] usb: gadget: legacy: fix error return code in cdc_bind() Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 170/194] Revert "ALSA: hda/realtek: Fix pop noise on ALC225" Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 171/194] clk: ti: clkctrl: Fix Bad of_node_put within clkctrl_get_name Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 172/194] clk: Unlink clock if failed to prepare or enable Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 173/194] arm64: dts: meson-g12b-khadas-vim3: add missing frddr_a status property Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 174/194] arm64: dts: qcom: msm8996: Reduce vdd_apc voltage Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 175/194] arm64: dts: meson-g12-common: fix dwc2 clock names Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 176/194] arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 177/194] arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 178/194] arm64: dts: imx8mn: Change SDMA1 ahb clock for imx8mn Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 179/194] ARM: dts: r8a73a4: Add missing CMT1 interrupts Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 180/194] arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 181/194] ARM: dts: r8a7740: Add missing extal2 to CPG node Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 182/194] dt-bindings: dma: fsl-edma: fix ls1028a-edma compatible Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 183/194] SUNRPC: Revert 241b1f419f0e ("SUNRPC: Remove xdr_buf_trim()") Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 184/194] bpf: Fix sk_psock refcnt leak when receiving message Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 185/194] powerpc/uaccess: Evaluate macro arguments once, before user access is allowed Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 186/194] powerpc/ima: Fix secure boot rules in ima arch policy Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 187/194] RDMA/uverbs: Do not discard the IB_EVENT_DEVICE_FATAL event Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 188/194] RDMA/uverbs: Move IB_EVENT_DEVICE_FATAL to destroy_uobj Greg Kroah-Hartman
2020-05-18 17:37 ` [PATCH 5.6 189/194] riscv: perf: RISCV_BASE_PMU should be independent Greg Kroah-Hartman
2020-05-18 17:38 ` [PATCH 5.6 190/194] KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce Greg Kroah-Hartman
2020-05-18 17:38 ` [PATCH 5.6 191/194] bpf: Enforce returning 0 for fentry/fexit progs Greg Kroah-Hartman
2020-05-18 17:38 ` [PATCH 5.6 192/194] selftests/bpf: Enforce returning 0 for fentry/fexit programs Greg Kroah-Hartman
2020-05-18 17:38 ` [PATCH 5.6 193/194] bpf: Restrict bpf_trace_printk()s %s usage and add %pks, %pus specifier Greg Kroah-Hartman
2020-05-18 17:38 ` [PATCH 5.6 194/194] Makefile: disallow data races on gcc-10 as well Greg Kroah-Hartman
2020-05-18 23:01 ` [PATCH 5.6 000/194] 5.6.14-rc1 review Guenter Roeck
2020-05-19 2:10 ` Guenter Roeck
2020-05-19 5:43 ` Greg Kroah-Hartman
2020-05-19 8:52 ` Jon Hunter
2020-05-19 12:54 ` Greg Kroah-Hartman
2020-05-19 14:44 ` shuah
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=20200518173533.632925454@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=cai@lca.pw \
--cc=jroedel@suse.de \
--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).