Dear Friend:
I am sorry to encroach into your privacy in this manner, I find
it appropriate to offer you my partnership in business, I only
pray at this time that your email address is still valid. I am
contacting you because my status would not permit me to do this
alone.
I want to solicit your attention to receive money on my behalf.
Can I trust you to do business?
I will send you the full details when I receive your reply.
Best wishes.
The erratum 1024718 affects Cortex-A55 r0p0 to r2p0. However
we apply the work around for r0p0 - r1p0. Unfortunately this
won't be fixed for the future revisions for the CPU. Thus
extend the work around for all versions of A55, to cover
for r2p0 and any future revisions.
Cc: stable(a)vger.kernel.org
Cc: Catalin Marinas <catalin.marinas(a)arm.com>
Cc: Will Deacon <will(a)kernel.org>
Cc: James Morse <james.morse(a)arm.com>
Cc: Kunihiko Hayashi <hayashi.kunihiko(a)socionext.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose(a)arm.com>
---
arch/arm64/kernel/cpufeature.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index e99eddec0a46..db400ca77427 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -1455,7 +1455,7 @@ static bool cpu_has_broken_dbm(void)
/* List of CPUs which have broken DBM support. */
static const struct midr_range cpus[] = {
#ifdef CONFIG_ARM64_ERRATUM_1024718
- MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 1, 0), // A55 r0p0 -r1p0
+ MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
/* Kryo4xx Silver (rdpe => r1p0) */
MIDR_REV(MIDR_QCOM_KRYO_4XX_SILVER, 0xd, 0xe),
#endif
--
2.24.1
The first three patches are fixes for XSA-332. The avoid WARN splats
and a performance issue with interdomain events.
Patches 4 and 5 are some additions to event handling in order to add
some per pv-device statistics to sysfs and the ability to have a per
backend device spurious event delay control.
Patches 6 and 7 are minor fixes I had lying around.
Juergen Gross (7):
xen/events: reset affinity of 2-level event initially
xen/events: don't unmask an event channel when an eoi is pending
xen/events: fix lateeoi irq acknowledgement
xen/events: link interdomain events to associated xenbus device
xen/events: add per-xenbus device event statistics and settings
xen/evtch: use smp barriers for user event ring
xen/evtchn: read producer index only once
drivers/block/xen-blkback/xenbus.c | 2 +-
drivers/net/xen-netback/interface.c | 16 ++--
drivers/xen/events/events_2l.c | 20 +++++
drivers/xen/events/events_base.c | 133 ++++++++++++++++++++++------
drivers/xen/evtchn.c | 6 +-
drivers/xen/pvcalls-back.c | 4 +-
drivers/xen/xen-pciback/xenbus.c | 2 +-
drivers/xen/xen-scsiback.c | 2 +-
drivers/xen/xenbus/xenbus_probe.c | 66 ++++++++++++++
include/xen/events.h | 7 +-
include/xen/xenbus.h | 7 ++
11 files changed, 217 insertions(+), 48 deletions(-)
--
2.26.2
From: Xiao Ni <xni(a)redhat.com>
One customer reports a crash problem which causes by flush request. It
triggers a warning before crash.
/* new request after previous flush is completed */
if (ktime_after(req_start, mddev->prev_flush_start)) {
WARN_ON(mddev->flush_bio);
mddev->flush_bio = bio;
bio = NULL;
}
The WARN_ON is triggered. We use spin lock to protect prev_flush_start and
flush_bio in md_flush_request. But there is no lock protection in
md_submit_flush_data. It can set flush_bio to NULL first because of
compiler reordering write instructions.
For example, flush bio1 sets flush bio to NULL first in
md_submit_flush_data. An interrupt or vmware causing an extended stall
happen between updating flush_bio and prev_flush_start. Because flush_bio
is NULL, flush bio2 can get the lock and submit to underlayer disks. Then
flush bio1 updates prev_flush_start after the interrupt or extended stall.
Then flush bio3 enters in md_flush_request. The start time req_start is
behind prev_flush_start. The flush_bio is not NULL(flush bio2 hasn't
finished). So it can trigger the WARN_ON now. Then it calls INIT_WORK
again. INIT_WORK() will re-initialize the list pointers in the
work_struct, which then can result in a corrupted work list and the
work_struct queued a second time. With the work list corrupted, it can
lead in invalid work items being used and cause a crash in
process_one_work.
We need to make sure only one flush bio can be handled at one same time.
So add spin lock in md_submit_flush_data to protect prev_flush_start and
flush_bio in an atomic way.
Reviewed-by: David Jeffery <djeffery(a)redhat.com>
Signed-off-by: Xiao Ni <xni(a)redhat.com>
Signed-off-by: Song Liu <songliubraving(a)fb.com>
[jwang: backport dc5d17a3c39b06aef866afca19245a9cfb533a79 to 4.19]
Signed-off-by: Jack Wang <jinpu.wang(a)cloud.ionos.com>
---
drivers/md/md.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ea139d0c0bc3..2bd60bd9e2ca 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -639,8 +639,10 @@ static void md_submit_flush_data(struct work_struct *ws)
* could wait for this and below md_handle_request could wait for those
* bios because of suspend check
*/
+ spin_lock_irq(&mddev->lock);
mddev->last_flush = mddev->start_flush;
mddev->flush_bio = NULL;
+ spin_unlock_irq(&mddev->lock);
wake_up(&mddev->sb_wait);
if (bio->bi_iter.bi_size == 0) {
--
2.25.1
The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From f295c8cfec833c2707ff1512da10d65386dde7af Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied(a)redhat.com>
Date: Mon, 1 Feb 2021 10:56:32 +1000
Subject: [PATCH] drm/nouveau: fix dma syncing warning with debugging on.
Since I wrote the below patch if you run a debug kernel you can a
dma debug warning like:
nouveau 0000:1f:00.0: DMA-API: device driver tries to sync DMA memory it has not allocated [device address=0x000000016e012000] [size=4096 bytes]
The old nouveau code wasn't consolidate the pages like the ttm code,
but the dma-debug expects the sync code to give it the same base/range
pairs as the allocator.
Fix the nouveau sync code to consolidate pages before calling the
sync code.
Fixes: bd549d35b4be0 ("nouveau: use ttm populate mapping functions. (v2)")
Reported-by: Lyude Paul <lyude(a)redhat.com>
Reviewed-by: Ben Skeggs <bskeggs(a)redhat.com>
Signed-off-by: Dave Airlie <airlied(a)redhat.com>
Link: https://patchwork.freedesktop.org/patch/417588/
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index c85b1af06b7b..7ea367a5444d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -547,7 +547,7 @@ nouveau_bo_sync_for_device(struct nouveau_bo *nvbo)
{
struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev);
struct ttm_tt *ttm_dma = (struct ttm_tt *)nvbo->bo.ttm;
- int i;
+ int i, j;
if (!ttm_dma)
return;
@@ -556,10 +556,21 @@ nouveau_bo_sync_for_device(struct nouveau_bo *nvbo)
if (nvbo->force_coherent)
return;
- for (i = 0; i < ttm_dma->num_pages; i++)
+ for (i = 0; i < ttm_dma->num_pages; ++i) {
+ struct page *p = ttm_dma->pages[i];
+ size_t num_pages = 1;
+
+ for (j = i + 1; j < ttm_dma->num_pages; ++j) {
+ if (++p != ttm_dma->pages[j])
+ break;
+
+ ++num_pages;
+ }
dma_sync_single_for_device(drm->dev->dev,
ttm_dma->dma_address[i],
- PAGE_SIZE, DMA_TO_DEVICE);
+ num_pages * PAGE_SIZE, DMA_TO_DEVICE);
+ i += num_pages;
+ }
}
void
@@ -567,7 +578,7 @@ nouveau_bo_sync_for_cpu(struct nouveau_bo *nvbo)
{
struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev);
struct ttm_tt *ttm_dma = (struct ttm_tt *)nvbo->bo.ttm;
- int i;
+ int i, j;
if (!ttm_dma)
return;
@@ -576,9 +587,21 @@ nouveau_bo_sync_for_cpu(struct nouveau_bo *nvbo)
if (nvbo->force_coherent)
return;
- for (i = 0; i < ttm_dma->num_pages; i++)
+ for (i = 0; i < ttm_dma->num_pages; ++i) {
+ struct page *p = ttm_dma->pages[i];
+ size_t num_pages = 1;
+
+ for (j = i + 1; j < ttm_dma->num_pages; ++j) {
+ if (++p != ttm_dma->pages[j])
+ break;
+
+ ++num_pages;
+ }
+
dma_sync_single_for_cpu(drm->dev->dev, ttm_dma->dma_address[i],
- PAGE_SIZE, DMA_FROM_DEVICE);
+ num_pages * PAGE_SIZE, DMA_FROM_DEVICE);
+ i += num_pages;
+ }
}
void nouveau_bo_add_io_reserve_lru(struct ttm_buffer_object *bo)
The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 29b32839725f8c89a41cb6ee054c85f3116ea8b5 Mon Sep 17 00:00:00 2001
From: Nadav Amit <namit(a)vmware.com>
Date: Wed, 27 Jan 2021 09:53:17 -0800
Subject: [PATCH] iommu/vt-d: Do not use flush-queue when caching-mode is on
When an Intel IOMMU is virtualized, and a physical device is
passed-through to the VM, changes of the virtual IOMMU need to be
propagated to the physical IOMMU. The hypervisor therefore needs to
monitor PTE mappings in the IOMMU page-tables. Intel specifications
provide "caching-mode" capability that a virtual IOMMU uses to report
that the IOMMU is virtualized and a TLB flush is needed after mapping to
allow the hypervisor to propagate virtual IOMMU mappings to the physical
IOMMU. To the best of my knowledge no real physical IOMMU reports
"caching-mode" as turned on.
Synchronizing the virtual and the physical IOMMU tables is expensive if
the hypervisor is unaware which PTEs have changed, as the hypervisor is
required to walk all the virtualized tables and look for changes.
Consequently, domain flushes are much more expensive than page-specific
flushes on virtualized IOMMUs with passthrough devices. The kernel
therefore exploited the "caching-mode" indication to avoid domain
flushing and use page-specific flushing in virtualized environments. See
commit 78d5f0f500e6 ("intel-iommu: Avoid global flushes with caching
mode.")
This behavior changed after commit 13cf01744608 ("iommu/vt-d: Make use
of iova deferred flushing"). Now, when batched TLB flushing is used (the
default), full TLB domain flushes are performed frequently, requiring
the hypervisor to perform expensive synchronization between the virtual
TLB and the physical one.
Getting batched TLB flushes to use page-specific invalidations again in
such circumstances is not easy, since the TLB invalidation scheme
assumes that "full" domain TLB flushes are performed for scalability.
Disable batched TLB flushes when caching-mode is on, as the performance
benefit from using batched TLB invalidations is likely to be much
smaller than the overhead of the virtual-to-physical IOMMU page-tables
synchronization.
Fixes: 13cf01744608 ("iommu/vt-d: Make use of iova deferred flushing")
Signed-off-by: Nadav Amit <namit(a)vmware.com>
Cc: David Woodhouse <dwmw2(a)infradead.org>
Cc: Lu Baolu <baolu.lu(a)linux.intel.com>
Cc: Joerg Roedel <joro(a)8bytes.org>
Cc: Will Deacon <will(a)kernel.org>
Cc: stable(a)vger.kernel.org
Acked-by: Lu Baolu <baolu.lu(a)linux.intel.com>
Link: https://lore.kernel.org/r/20210127175317.1600473-1-namit@vmware.com
Signed-off-by: Joerg Roedel <jroedel(a)suse.de>
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index f665322a0991..06b00b5363d8 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -5440,6 +5440,36 @@ intel_iommu_domain_set_attr(struct iommu_domain *domain,
return ret;
}
+static bool domain_use_flush_queue(void)
+{
+ struct dmar_drhd_unit *drhd;
+ struct intel_iommu *iommu;
+ bool r = true;
+
+ if (intel_iommu_strict)
+ return false;
+
+ /*
+ * The flush queue implementation does not perform page-selective
+ * invalidations that are required for efficient TLB flushes in virtual
+ * environments. The benefit of batching is likely to be much lower than
+ * the overhead of synchronizing the virtual and physical IOMMU
+ * page-tables.
+ */
+ rcu_read_lock();
+ for_each_active_iommu(iommu, drhd) {
+ if (!cap_caching_mode(iommu->cap))
+ continue;
+
+ pr_warn_once("IOMMU batching is disabled due to virtualization");
+ r = false;
+ break;
+ }
+ rcu_read_unlock();
+
+ return r;
+}
+
static int
intel_iommu_domain_get_attr(struct iommu_domain *domain,
enum iommu_attr attr, void *data)
@@ -5450,7 +5480,7 @@ intel_iommu_domain_get_attr(struct iommu_domain *domain,
case IOMMU_DOMAIN_DMA:
switch (attr) {
case DOMAIN_ATTR_DMA_USE_FLUSH_QUEUE:
- *(int *)data = !intel_iommu_strict;
+ *(int *)data = domain_use_flush_queue();
return 0;
default:
return -ENODEV;
Upstream commit 81b704d3e4674e09781d331df73d76675d5ad8cb
Applies to 4.4-stable tree
----------->8---------------
From: "Rafael J. Wysocki" <rafael.j.wysocki(a)intel.com>
Date: Thu, 14 Jan 2021 19:34:22 +0100
Subject: [PATCH] ACPI: thermal: Do not call acpi_thermal_check() directly
Calling acpi_thermal_check() from acpi_thermal_notify() directly
is problematic if _TMP triggers Notify () on the thermal zone for
which it has been evaluated (which happens on some systems), because
it causes a new acpi_thermal_notify() invocation to be queued up
every time and if that takes place too often, an indefinite number of
pending work items may accumulate in kacpi_notify_wq over time.
Besides, it is not really useful to queue up a new invocation of
acpi_thermal_check() if one of them is pending already.
For these reasons, rework acpi_thermal_notify() to queue up a thermal
check instead of calling acpi_thermal_check() directly and only allow
one thermal check to be pending at a time. Moreover, only allow one
acpi_thermal_check_fn() instance at a time to run
thermal_zone_device_update() for one thermal zone and make it return
early if it sees other instances running for the same thermal zone.
While at it, fold acpi_thermal_check() into acpi_thermal_check_fn(),
as it is only called from there after the other changes made here.
[This issue appears to have been exposed by commit 6d25be5782e4
("sched/core, workqueues: Distangle worker accounting from rq
lock"), but it is unclear why it was not visible earlier.]
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208877
Reported-by: Stephen Berman <stephen.berman(a)gmx.net>
Diagnosed-by: Sebastian Andrzej Siewior <bigeasy(a)linutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy(a)linutronix.de>
Tested-by: Stephen Berman <stephen.berman(a)gmx.net>
Cc: All applicable <stable(a)vger.kernel.org>
[bigeasy: Backported to v4.4.y, use atomic_t instead of refcount_t]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy(a)linutronix.de>
---
drivers/acpi/thermal.c | 54 +++++++++++++++++++++++++++++-------------
1 file changed, 38 insertions(+), 16 deletions(-)
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 82707f9824cae..b4826335ad0b3 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -188,6 +188,8 @@ struct acpi_thermal {
int tz_enabled;
int kelvin_offset;
struct work_struct thermal_check_work;
+ struct mutex thermal_check_lock;
+ atomic_t thermal_check_count;
};
/* --------------------------------------------------------------------------
@@ -513,16 +515,6 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
return 0;
}
-static void acpi_thermal_check(void *data)
-{
- struct acpi_thermal *tz = data;
-
- if (!tz->tz_enabled)
- return;
-
- thermal_zone_device_update(tz->thermal_zone);
-}
-
/* sys I/F for generic thermal sysfs support */
static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
@@ -556,6 +548,8 @@ static int thermal_get_mode(struct thermal_zone_device *thermal,
return 0;
}
+static void acpi_thermal_check_fn(struct work_struct *work);
+
static int thermal_set_mode(struct thermal_zone_device *thermal,
enum thermal_device_mode mode)
{
@@ -581,7 +575,7 @@ static int thermal_set_mode(struct thermal_zone_device *thermal,
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"%s kernel ACPI thermal control\n",
tz->tz_enabled ? "Enable" : "Disable"));
- acpi_thermal_check(tz);
+ acpi_thermal_check_fn(&tz->thermal_check_work);
}
return 0;
}
@@ -950,6 +944,12 @@ static void acpi_thermal_unregister_thermal_zone(struct acpi_thermal *tz)
Driver Interface
-------------------------------------------------------------------------- */
+static void acpi_queue_thermal_check(struct acpi_thermal *tz)
+{
+ if (!work_pending(&tz->thermal_check_work))
+ queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+}
+
static void acpi_thermal_notify(struct acpi_device *device, u32 event)
{
struct acpi_thermal *tz = acpi_driver_data(device);
@@ -960,17 +960,17 @@ static void acpi_thermal_notify(struct acpi_device *device, u32 event)
switch (event) {
case ACPI_THERMAL_NOTIFY_TEMPERATURE:
- acpi_thermal_check(tz);
+ acpi_queue_thermal_check(tz);
break;
case ACPI_THERMAL_NOTIFY_THRESHOLDS:
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS);
- acpi_thermal_check(tz);
+ acpi_queue_thermal_check(tz);
acpi_bus_generate_netlink_event(device->pnp.device_class,
dev_name(&device->dev), event, 0);
break;
case ACPI_THERMAL_NOTIFY_DEVICES:
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
- acpi_thermal_check(tz);
+ acpi_queue_thermal_check(tz);
acpi_bus_generate_netlink_event(device->pnp.device_class,
dev_name(&device->dev), event, 0);
break;
@@ -1070,7 +1070,27 @@ static void acpi_thermal_check_fn(struct work_struct *work)
{
struct acpi_thermal *tz = container_of(work, struct acpi_thermal,
thermal_check_work);
- acpi_thermal_check(tz);
+
+ if (!tz->tz_enabled)
+ return;
+ /*
+ * In general, it is not sufficient to check the pending bit, because
+ * subsequent instances of this function may be queued after one of them
+ * has started running (e.g. if _TMP sleeps). Avoid bailing out if just
+ * one of them is running, though, because it may have done the actual
+ * check some time ago, so allow at least one of them to block on the
+ * mutex while another one is running the update.
+ */
+ if (!atomic_add_unless(&tz->thermal_check_count, -1, 1))
+ return;
+
+ mutex_lock(&tz->thermal_check_lock);
+
+ thermal_zone_device_update(tz->thermal_zone);
+
+ atomic_inc(&tz->thermal_check_count);
+
+ mutex_unlock(&tz->thermal_check_lock);
}
static int acpi_thermal_add(struct acpi_device *device)
@@ -1102,6 +1122,8 @@ static int acpi_thermal_add(struct acpi_device *device)
if (result)
goto free_memory;
+ atomic_set(&tz->thermal_check_count, 3);
+ mutex_init(&tz->thermal_check_lock);
INIT_WORK(&tz->thermal_check_work, acpi_thermal_check_fn);
pr_info(PREFIX "%s [%s] (%ld C)\n", acpi_device_name(device),
@@ -1167,7 +1189,7 @@ static int acpi_thermal_resume(struct device *dev)
tz->state.active |= tz->trips.active[i].flags.enabled;
}
- queue_work(acpi_thermal_pm_queue, &tz->thermal_check_work);
+ acpi_queue_thermal_check(tz);
return AE_OK;
}
--
2.30.0
This is the start of the stable review cycle for the 5.10.14 release.
There are 57 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sun, 07 Feb 2021 14:06:42 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.14-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.10.14-rc1
Peter Zijlstra <peterz(a)infradead.org>
workqueue: Restrict affinity change to rescuer
Peter Zijlstra <peterz(a)infradead.org>
kthread: Extract KTHREAD_IS_PER_CPU
Gayatri Kammela <gayatri.kammela(a)intel.com>
x86/cpu: Add another Alder Lake CPU to the Intel family
Josh Poimboeuf <jpoimboe(a)redhat.com>
objtool: Don't fail the kernel build on fatal errors
Oded Gabbay <ogabbay(a)kernel.org>
habanalabs: disable FW events on device removal
Oded Gabbay <ogabbay(a)kernel.org>
habanalabs: fix backward compatibility of idle check
Ofir Bitton <obitton(a)habana.ai>
habanalabs: zero pci counters packet before submit to FW
Vladimir Stempen <vladimir.stempen(a)amd.com>
drm/amd/display: Fixed corruptions on HPDRX link loss restore
Nicholas Kazlauskas <nicholas.kazlauskas(a)amd.com>
drm/amd/display: Use hardware sequencer functions for PG control
Bing Guo <bing.guo(a)amd.com>
drm/amd/display: Change function decide_dp_link_settings to avoid infinite looping
Aric Cyr <aric.cyr(a)amd.com>
drm/amd/display: Allow PSTATE chnage when no displays are enabled
Jake Wang <haonan.wang2(a)amd.com>
drm/amd/display: Update dram_clock_change_latency for DCN2.1
Michael Ellerman <mpe(a)ellerman.id.au>
selftests/powerpc: Only test lwm/stmw on big endian
Jeannie Stevenson <jeanniestevenson(a)protonmail.com>
platform/x86: thinkpad_acpi: Add P53/73 firmware to fan_quirk_table for dual fan control
Chaitanya Kulkarni <chaitanya.kulkarni(a)wdc.com>
nvmet: set right status on error in id-ns handler
Klaus Jensen <k.jensen(a)samsung.com>
nvme-pci: allow use of cmb on v1.4 controllers
Chao Leng <lengchao(a)huawei.com>
nvme-tcp: avoid request double completion for concurrent nvme_tcp_timeout
Chao Leng <lengchao(a)huawei.com>
nvme-rdma: avoid request double completion for concurrent nvme_rdma_timeout
Revanth Rajashekar <revanth.rajashekar(a)intel.com>
nvme: check the PRINFO bit before deciding the host buffer length
lianzhi chang <changlianzhi(a)uniontech.com>
udf: fix the problem that the disc content is not displayed
Sowjanya Komatineni <skomatineni(a)nvidia.com>
i2c: tegra: Create i2c_writesl_vi() to use with VI I2C for filling TX FIFO
Kai-Chuan Hsieh <kaichuan.hsieh(a)canonical.com>
ALSA: hda: Add Cometlake-R PCI ID
Brian King <brking(a)linux.vnet.ibm.com>
scsi: ibmvfc: Set default timeout to avoid crash during migration
Felix Fietkau <nbd(a)nbd.name>
mac80211: fix encryption key selection for 802.3 xmit
Felix Fietkau <nbd(a)nbd.name>
mac80211: fix fast-rx encryption check
Shayne Chen <shayne.chen(a)mediatek.com>
mac80211: fix incorrect strlen of .write in debugfs
Josh Poimboeuf <jpoimboe(a)redhat.com>
objtool: Don't add empty symbols to the rbtree
Kai Vehmanen <kai.vehmanen(a)linux.intel.com>
ALSA: hda: Add AlderLake-P PCI ID and HDMI codec vid
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
ASoC: SOF: Intel: hda: Resume codec to do jack detection
Dinghao Liu <dinghao.liu(a)zju.edu.cn>
scsi: fnic: Fix memleak in vnic_dev_init_devcmd2
Javed Hasan <jhasan(a)marvell.com>
scsi: libfc: Avoid invoking response handler twice if ep is already completed
Martin Wilck <mwilck(a)suse.com>
scsi: scsi_transport_srp: Don't block target in failfast state
Peter Zijlstra <peterz(a)infradead.org>
x86: __always_inline __{rd,wr}msr()
Peter Zijlstra <peterz(a)infradead.org>
locking/lockdep: Avoid noinstr warning for DEBUG_LOCKDEP
Oded Gabbay <ogabbay(a)kernel.org>
habanalabs: fix dma_addr passed to dma_mmap_coherent
Arnold Gozum <arngozum(a)gmail.com>
platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352
Hans de Goede <hdegoede(a)redhat.com>
platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on Estar Beauty HD tablet
Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
tools/power/x86/intel-speed-select: Set higher of cpuinfo_max_freq or base_frequency
Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
tools/power/x86/intel-speed-select: Set scaling_max_freq to base_frequency
Tony Lindgren <tony(a)atomide.com>
phy: cpcap-usb: Fix warning for missing regulator_disable
Nadav Amit <namit(a)vmware.com>
iommu/vt-d: Do not use flush-queue when caching-mode is on
Nick Desaulniers <ndesaulniers(a)google.com>
ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD
Mike Rapoport <rppt(a)kernel.org>
Revert "x86/setup: don't remove E820_TYPE_RAM for pfn 0"
Catalin Marinas <catalin.marinas(a)arm.com>
arm64: Do not pass tagged addresses to __is_lm_address()
Vincenzo Frascino <vincenzo.frascino(a)arm.com>
arm64: Fix kernel address detection of __is_lm_address()
Robin Murphy <robin.murphy(a)arm.com>
arm64: dts: meson: Describe G12b GPU as coherent
Robin Murphy <robin.murphy(a)arm.com>
drm/panfrost: Support cache-coherent integrations
Robin Murphy <robin.murphy(a)arm.com>
iommu/io-pgtable-arm: Support coherency for Mali LPAE
Lijun Pan <ljp(a)linux.ibm.com>
ibmvnic: Ensure that CRQ entry read are correctly ordered
Rasmus Villemoes <rasmus.villemoes(a)prevas.dk>
net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP
Pan Bian <bianpan2016(a)163.com>
net: dsa: bcm_sf2: put device node before return
Ido Schimmel <idosch(a)nvidia.com>
mlxsw: spectrum_span: Do not overwrite policer configuration
Voon Weifeng <weifeng.voon(a)intel.com>
stmmac: intel: Configure EHL PSE0 GbE and PSE1 GbE to 32 bits DMA addressing
Kevin Hao <haokexin(a)gmail.com>
net: octeontx2: Make sure the buffer is 128 byte aligned
Pan Bian <bianpan2016(a)163.com>
net: fec: put child node on error path
Pan Bian <bianpan2016(a)163.com>
net: stmmac: dwmac-intel-plat: remove config data on error
Marek Vasut <marex(a)denx.de>
net: dsa: microchip: Adjust reset release timing to match reference reset circuit
-------------
Diffstat:
Makefile | 4 +-
arch/arm/mm/Kconfig | 1 +
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 4 ++
arch/arm64/include/asm/memory.h | 10 ++---
arch/arm64/mm/physaddr.c | 2 +-
arch/x86/include/asm/intel-family.h | 1 +
arch/x86/include/asm/msr.h | 4 +-
arch/x86/kernel/setup.c | 20 +++++-----
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 6 ++-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 7 +++-
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 18 +++++++--
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 9 ++++-
.../gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 2 +-
drivers/gpu/drm/panfrost/panfrost_device.h | 1 +
drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +
drivers/gpu/drm/panfrost/panfrost_gem.c | 2 +
drivers/gpu/drm/panfrost/panfrost_mmu.c | 1 +
drivers/i2c/busses/i2c-tegra.c | 22 ++++++++++-
drivers/iommu/intel/iommu.c | 5 +++
drivers/iommu/io-pgtable-arm.c | 11 +++++-
drivers/misc/habanalabs/common/device.c | 9 +++++
drivers/misc/habanalabs/common/firmware_if.c | 5 +++
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 2 +
drivers/misc/habanalabs/gaudi/gaudi.c | 3 +-
drivers/misc/habanalabs/goya/goya.c | 3 +-
drivers/net/dsa/bcm_sf2.c | 8 +++-
drivers/net/dsa/microchip/ksz_common.c | 2 +-
drivers/net/ethernet/freescale/fec_main.c | 3 +-
drivers/net/ethernet/ibm/ibmvnic.c | 6 +++
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 3 +-
.../net/ethernet/mellanox/mlxsw/spectrum_span.c | 6 +++
.../net/ethernet/mellanox/mlxsw/spectrum_span.h | 1 +
.../net/ethernet/stmicro/stmmac/dwmac-intel-plat.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 2 +
drivers/nvme/host/core.c | 17 ++++++++-
drivers/nvme/host/pci.c | 14 +++++++
drivers/nvme/host/rdma.c | 15 ++++++--
drivers/nvme/host/tcp.c | 14 +++++--
drivers/nvme/target/admin-cmd.c | 8 +++-
drivers/phy/motorola/phy-cpcap-usb.c | 19 +++++++---
drivers/platform/x86/intel-vbtn.c | 6 +++
drivers/platform/x86/thinkpad_acpi.c | 1 +
drivers/platform/x86/touchscreen_dmi.c | 18 +++++++++
drivers/scsi/fnic/vnic_dev.c | 8 ++--
drivers/scsi/ibmvscsi/ibmvfc.c | 4 +-
drivers/scsi/libfc/fc_exch.c | 16 +++++++-
drivers/scsi/scsi_transport_srp.c | 9 ++++-
fs/udf/super.c | 7 ++--
include/linux/kthread.h | 3 ++
include/linux/nvme.h | 6 +++
kernel/kthread.c | 27 ++++++++++++-
kernel/locking/lockdep.c | 7 +++-
kernel/smpboot.c | 1 +
kernel/workqueue.c | 9 ++---
net/mac80211/debugfs.c | 44 ++++++++++------------
net/mac80211/rx.c | 2 +
net/mac80211/tx.c | 27 +++++++------
net/switchdev/switchdev.c | 23 ++++++-----
sound/pci/hda/hda_intel.c | 6 +++
sound/pci/hda/patch_hdmi.c | 1 +
sound/soc/sof/intel/hda-codec.c | 3 +-
tools/objtool/check.c | 14 +++----
tools/objtool/elf.c | 7 ++++
tools/power/x86/intel-speed-select/isst-config.c | 32 ++++++++++++++++
.../powerpc/alignment/alignment_handler.c | 5 ++-
65 files changed, 427 insertions(+), 135 deletions(-)
Hi,
commit 64f55156f7adedb1ac5bb9cdbcbc9ac05ff5a724 upstream
The requested patch allows the iwlwifi driver to work with newer AX200
wifi cards when MSI-X interrupts are not available. Without it,
bringing an interface "up" fails with a Microcode SW error. Xen PCI
passthrough with a linux stubdom doesn't enable MSI-X which triggers
this condition.
I think it's only applicable to 5.4 because it's in 5.10 and earlier
kernels don't have AX200 support.
I'm making this request to stable and CC-ing netdev since I saw a
message [1] on netdev saying:
"""
We're actually experimenting with letting Greg take networking patches
into stable like he does for every other tree. If the patch doesn't
appear in the next stable release please poke stable@ directly.
"""
Thanks,
Jason
[1] https://lore.kernel.org/netdev/20210129193030.46ef3b17@kicinski-fedora-pc1c…