From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
------------- Pseudo-Shortlog of commits:
Greg Kroah-Hartman gregkh@linuxfoundation.org Linux 5.4.105-rc1
Pascal Terjan pterjan@google.com nvme-pci: add quirks for Lexar 256GB SSD
Julian Einwag jeinwag-nvme@marcapo.com nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
Hans de Goede hdegoede@redhat.com HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15
Jisheng Zhang Jisheng.Zhang@synaptics.com mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
AngeloGioacchino Del Regno angelogioacchino.delregno@somainline.org drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register
Aswath Govindraju a-govindraju@ti.com misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom
Bjorn Helgaas bhelgaas@google.com PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller
Chris Chiu chiu@endlessos.org ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140
Jasper St. Pierre jstpierre@mecheye.net ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807
Daniel Lee Kruse daniel.lee.kruse@protonmail.com media: cx23885: add more quirks for reset DMA on some AMD IOMMU
Ethan Warth redyoshi49q@gmail.com HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch 10E SW3-016
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Add new force_caps module parameter
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Cleanup accelerometer device handling
Hans de Goede hdegoede@redhat.com platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines
Tsuchiya Yuto kitakar@gmail.com mwifiex: pcie: skip cancel_work_sync() on reset failure path
Andrey Ryabinin arbn@yandex-team.com iommu/amd: Fix sleeping in atomic in increase_address_space()
Hans de Goede hdegoede@redhat.com ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling
Jeffle Xu jefflexu@linux.alibaba.com dm table: fix zoned iterate_devices based device capability checks
Jeffle Xu jefflexu@linux.alibaba.com dm table: fix DAX iterate_devices based device capability checks
Jeffle Xu jefflexu@linux.alibaba.com dm table: fix iterate_devices based device capability checks
Alexander Lobakin bloodyreaper@yandex.ru net: dsa: add GRO support via gro_cells
-------------
Diffstat:
Makefile | 4 +- drivers/acpi/acpica/acobject.h | 1 + drivers/acpi/acpica/evhandler.c | 7 ++ drivers/acpi/acpica/evregion.c | 64 +++++++--- drivers/acpi/acpica/evxfregn.c | 2 + drivers/acpi/video_detect.c | 7 ++ drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 - drivers/hid/hid-ids.h | 3 + drivers/hid/hid-mf.c | 2 + drivers/hid/hid-quirks.c | 2 + drivers/hid/i2c-hid/i2c-hid-core.c | 2 + drivers/iommu/amd_iommu.c | 10 +- drivers/md/dm-table.c | 174 ++++++++++++---------------- drivers/md/dm.c | 2 +- drivers/md/dm.h | 2 +- drivers/media/pci/cx23885/cx23885-core.c | 4 + drivers/misc/eeprom/eeprom_93xx46.c | 15 +++ drivers/mmc/host/sdhci-of-dwcmshc.c | 1 + drivers/net/wireless/marvell/mwifiex/pcie.c | 18 ++- drivers/net/wireless/marvell/mwifiex/pcie.h | 2 + drivers/nvme/host/pci.c | 6 +- drivers/pci/quirks.c | 3 + drivers/platform/x86/acer-wmi.c | 169 ++++++++++++++++++++++----- include/linux/eeprom_93xx46.h | 2 + net/dsa/Kconfig | 1 + net/dsa/dsa.c | 2 +- net/dsa/dsa_priv.h | 3 + net/dsa/slave.c | 10 +- sound/soc/intel/boards/bytcr_rt5640.c | 12 ++ 29 files changed, 371 insertions(+), 161 deletions(-)
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Alexander Lobakin bloodyreaper@yandex.ru
commit e131a5634830047923c694b4ce0c3b31745ff01b upstream.
gro_cells lib is used by different encapsulating netdevices, such as geneve, macsec, vxlan etc. to speed up decapsulated traffic processing. CPU tag is a sort of "encapsulation", and we can use the same mechs to greatly improve overall DSA performance. skbs are passed to the GRO layer after removing CPU tags, so we don't need any new packet offload types as it was firstly proposed by me in the first GRO-over-DSA variant [1].
The size of struct gro_cells is sizeof(void *), so hot struct dsa_slave_priv becomes only 4/8 bytes bigger, and all critical fields remain in one 32-byte cacheline. The other positive side effect is that drivers for network devices that can be shipped as CPU ports of DSA-driven switches can now use napi_gro_frags() to pass skbs to kernel. Packets built that way are completely non-linear and are likely being dropped without GRO.
This was tested on to-be-mainlined-soon Ethernet driver that uses napi_gro_frags(), and the overall performance was on par with the variant from [1], sometimes even better due to minimal overhead. net.core.gro_normal_batch tuning may help to push it to the limit on particular setups and platforms.
iperf3 IPoE VLAN NAT TCP forwarding (port1.218 -> port0) setup on 1.2 GHz MIPS board:
5.7-rc2 baseline:
[ID] Interval Transfer Bitrate Retr [ 5] 0.00-120.01 sec 9.00 GBytes 644 Mbits/sec 413 sender [ 5] 0.00-120.00 sec 8.99 GBytes 644 Mbits/sec receiver
Iface RX packets TX packets eth0 7097731 7097702 port0 426050 6671829 port1 6671681 425862 port1.218 6671677 425851
With this patch:
[ID] Interval Transfer Bitrate Retr [ 5] 0.00-120.01 sec 12.2 GBytes 870 Mbits/sec 122 sender [ 5] 0.00-120.00 sec 12.2 GBytes 870 Mbits/sec receiver
Iface RX packets TX packets eth0 9474792 9474777 port0 455200 353288 port1 9019592 455035 port1.218 353144 455024
v2: - Add some performance examples in the commit message; - No functional changes.
[1] https://lore.kernel.org/netdev/20191230143028.27313-1-alobakin@dlink.ru/
Signed-off-by: Alexander Lobakin bloodyreaper@yandex.ru Signed-off-by: David S. Miller davem@davemloft.net Cc: Pali Rohár pali@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- net/dsa/Kconfig | 1 + net/dsa/dsa.c | 2 +- net/dsa/dsa_priv.h | 3 +++ net/dsa/slave.c | 10 +++++++++- 4 files changed, 14 insertions(+), 2 deletions(-)
--- a/net/dsa/Kconfig +++ b/net/dsa/Kconfig @@ -9,6 +9,7 @@ menuconfig NET_DSA tristate "Distributed Switch Architecture" depends on HAVE_NET_DSA depends on BRIDGE || BRIDGE=n + select GRO_CELLS select NET_SWITCHDEV select PHYLINK select NET_DEVLINK --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c @@ -238,7 +238,7 @@ static int dsa_switch_rcv(struct sk_buff if (dsa_skb_defer_rx_timestamp(p, skb)) return 0;
- netif_receive_skb(skb); + gro_cells_receive(&p->gcells, skb);
return 0; } --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h @@ -11,6 +11,7 @@ #include <linux/netdevice.h> #include <linux/netpoll.h> #include <net/dsa.h> +#include <net/gro_cells.h>
enum { DSA_NOTIFIER_AGEING_TIME, @@ -68,6 +69,8 @@ struct dsa_slave_priv {
struct pcpu_sw_netstats *stats64;
+ struct gro_cells gcells; + /* DSA port data, such as switch, port index, etc. */ struct dsa_port *dp;
--- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1431,6 +1431,11 @@ int dsa_slave_create(struct dsa_port *po free_netdev(slave_dev); return -ENOMEM; } + + ret = gro_cells_init(&p->gcells, slave_dev); + if (ret) + goto out_free; + p->dp = port; INIT_LIST_HEAD(&p->mall_tc_list); INIT_WORK(&port->xmit_work, dsa_port_xmit_work); @@ -1443,7 +1448,7 @@ int dsa_slave_create(struct dsa_port *po ret = dsa_slave_phy_setup(slave_dev); if (ret) { netdev_err(master, "error %d setting up slave phy\n", ret); - goto out_free; + goto out_gcells; }
dsa_slave_notify(slave_dev, DSA_PORT_REGISTER); @@ -1462,6 +1467,8 @@ out_phy: phylink_disconnect_phy(p->dp->pl); rtnl_unlock(); phylink_destroy(p->dp->pl); +out_gcells: + gro_cells_destroy(&p->gcells); out_free: free_percpu(p->stats64); free_netdev(slave_dev); @@ -1482,6 +1489,7 @@ void dsa_slave_destroy(struct net_device dsa_slave_notify(slave_dev, DSA_PORT_UNREGISTER); unregister_netdev(slave_dev); phylink_destroy(dp->pl); + gro_cells_destroy(&p->gcells); free_percpu(p->stats64); free_netdev(slave_dev); }
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Jeffle Xu jefflexu@linux.alibaba.com
commit a4c8dd9c2d0987cf542a2a0c42684c9c6d78a04e upstream.
According to the definition of dm_iterate_devices_fn: * This function must iterate through each section of device used by the * target until it encounters a non-zero return code, which it then returns. * Returns zero if no callout returned non-zero.
For some target type (e.g. dm-stripe), one call of iterate_devices() may iterate multiple underlying devices internally, in which case a non-zero return code returned by iterate_devices_callout_fn will stop the iteration in advance. No iterate_devices_callout_fn should return non-zero unless device iteration should stop.
Rename dm_table_requires_stable_pages() to dm_table_any_dev_attr() and elevate it for reuse to stop iterating (and return non-zero) on the first device that causes iterate_devices_callout_fn to return non-zero. Use dm_table_any_dev_attr() to properly iterate through devices.
Rename device_is_nonrot() to device_is_rotational() and invert logic accordingly to fix improper disposition.
Fixes: c3c4555edd10 ("dm table: clear add_random unless all devices have it set") Fixes: 4693c9668fdc ("dm table: propagate non rotational flag") Cc: stable@vger.kernel.org Signed-off-by: Jeffle Xu jefflexu@linux.alibaba.com Signed-off-by: Mike Snitzer snitzer@redhat.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/md/dm-table.c | 103 ++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 49 deletions(-)
--- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -1376,6 +1376,46 @@ struct dm_target *dm_table_find_target(s return &t->targets[(KEYS_PER_NODE * n) + k]; }
+/* + * type->iterate_devices() should be called when the sanity check needs to + * iterate and check all underlying data devices. iterate_devices() will + * iterate all underlying data devices until it encounters a non-zero return + * code, returned by whether the input iterate_devices_callout_fn, or + * iterate_devices() itself internally. + * + * For some target type (e.g. dm-stripe), one call of iterate_devices() may + * iterate multiple underlying devices internally, in which case a non-zero + * return code returned by iterate_devices_callout_fn will stop the iteration + * in advance. + * + * Cases requiring _any_ underlying device supporting some kind of attribute, + * should use the iteration structure like dm_table_any_dev_attr(), or call + * it directly. @func should handle semantics of positive examples, e.g. + * capable of something. + * + * Cases requiring _all_ underlying devices supporting some kind of attribute, + * should use the iteration structure like dm_table_supports_nowait() or + * dm_table_supports_discards(). Or introduce dm_table_all_devs_attr() that + * uses an @anti_func that handle semantics of counter examples, e.g. not + * capable of something. So: return !dm_table_any_dev_attr(t, anti_func); + */ +static bool dm_table_any_dev_attr(struct dm_table *t, + iterate_devices_callout_fn func) +{ + struct dm_target *ti; + unsigned int i; + + for (i = 0; i < dm_table_get_num_targets(t); i++) { + ti = dm_table_get_target(t, i); + + if (ti->type->iterate_devices && + ti->type->iterate_devices(ti, func, NULL)) + return true; + } + + return false; +} + static int count_device(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { @@ -1692,12 +1732,12 @@ static int dm_table_supports_dax_write_c return false; }
-static int device_is_nonrot(struct dm_target *ti, struct dm_dev *dev, - sector_t start, sector_t len, void *data) +static int device_is_rotational(struct dm_target *ti, struct dm_dev *dev, + sector_t start, sector_t len, void *data) { struct request_queue *q = bdev_get_queue(dev->bdev);
- return q && blk_queue_nonrot(q); + return q && !blk_queue_nonrot(q); }
static int device_is_not_random(struct dm_target *ti, struct dm_dev *dev, @@ -1708,35 +1748,18 @@ static int device_is_not_random(struct d return q && !blk_queue_add_random(q); }
-static bool dm_table_all_devices_attribute(struct dm_table *t, - iterate_devices_callout_fn func) -{ - struct dm_target *ti; - unsigned i; - - for (i = 0; i < dm_table_get_num_targets(t); i++) { - ti = dm_table_get_target(t, i); - - if (!ti->type->iterate_devices || - !ti->type->iterate_devices(ti, func, NULL)) - return false; - } - - return true; -} - -static int device_no_partial_completion(struct dm_target *ti, struct dm_dev *dev, +static int device_is_partial_completion(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { char b[BDEVNAME_SIZE];
/* For now, NVMe devices are the only devices of this class */ - return (strncmp(bdevname(dev->bdev, b), "nvme", 4) == 0); + return (strncmp(bdevname(dev->bdev, b), "nvme", 4) != 0); }
static bool dm_table_does_not_support_partial_completion(struct dm_table *t) { - return dm_table_all_devices_attribute(t, device_no_partial_completion); + return !dm_table_any_dev_attr(t, device_is_partial_completion); }
static int device_not_write_same_capable(struct dm_target *ti, struct dm_dev *dev, @@ -1863,27 +1886,6 @@ static int device_requires_stable_pages( return q && bdi_cap_stable_pages_required(q->backing_dev_info); }
-/* - * If any underlying device requires stable pages, a table must require - * them as well. Only targets that support iterate_devices are considered: - * don't want error, zero, etc to require stable pages. - */ -static bool dm_table_requires_stable_pages(struct dm_table *t) -{ - struct dm_target *ti; - unsigned i; - - for (i = 0; i < dm_table_get_num_targets(t); i++) { - ti = dm_table_get_target(t, i); - - if (ti->type->iterate_devices && - ti->type->iterate_devices(ti, device_requires_stable_pages, NULL)) - return true; - } - - return false; -} - void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q, struct queue_limits *limits) { @@ -1928,10 +1930,10 @@ void dm_table_set_restrictions(struct dm dax_write_cache(t->md->dax_dev, true);
/* Ensure that all underlying devices are non-rotational. */ - if (dm_table_all_devices_attribute(t, device_is_nonrot)) - blk_queue_flag_set(QUEUE_FLAG_NONROT, q); - else + if (dm_table_any_dev_attr(t, device_is_rotational)) blk_queue_flag_clear(QUEUE_FLAG_NONROT, q); + else + blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
if (!dm_table_supports_write_same(t)) q->limits.max_write_same_sectors = 0; @@ -1943,8 +1945,11 @@ void dm_table_set_restrictions(struct dm /* * Some devices don't use blk_integrity but still want stable pages * because they do their own checksumming. + * If any underlying device requires stable pages, a table must require + * them as well. Only targets that support iterate_devices are considered: + * don't want error, zero, etc to require stable pages. */ - if (dm_table_requires_stable_pages(t)) + if (dm_table_any_dev_attr(t, device_requires_stable_pages)) q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; else q->backing_dev_info->capabilities &= ~BDI_CAP_STABLE_WRITES; @@ -1955,7 +1960,7 @@ void dm_table_set_restrictions(struct dm * Clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not * have it set. */ - if (blk_queue_add_random(q) && dm_table_all_devices_attribute(t, device_is_not_random)) + if (blk_queue_add_random(q) && dm_table_any_dev_attr(t, device_is_not_random)) blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, q);
/*
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Jeffle Xu jefflexu@linux.alibaba.com
commit 5b0fab508992c2e120971da658ce80027acbc405 upstream.
Fix dm_table_supports_dax() and invert logic of both iterate_devices_callout_fn so that all devices' DAX capabilities are properly checked.
Fixes: 545ed20e6df6 ("dm: add infrastructure for DAX support") Cc: stable@vger.kernel.org Signed-off-by: Jeffle Xu jefflexu@linux.alibaba.com Signed-off-by: Mike Snitzer snitzer@redhat.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/md/dm-table.c | 37 ++++++++++--------------------------- drivers/md/dm.c | 2 +- drivers/md/dm.h | 2 +- 3 files changed, 12 insertions(+), 29 deletions(-)
--- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -888,24 +888,24 @@ void dm_table_set_type(struct dm_table * EXPORT_SYMBOL_GPL(dm_table_set_type);
/* validate the dax capability of the target device span */ -int device_supports_dax(struct dm_target *ti, struct dm_dev *dev, +int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { int blocksize = *(int *) data, id; bool rc;
id = dax_read_lock(); - rc = dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len); + rc = !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len); dax_read_unlock(id);
return rc; }
/* Check devices support synchronous DAX */ -static int device_dax_synchronous(struct dm_target *ti, struct dm_dev *dev, - sector_t start, sector_t len, void *data) +static int device_not_dax_synchronous_capable(struct dm_target *ti, struct dm_dev *dev, + sector_t start, sector_t len, void *data) { - return dev->dax_dev && dax_synchronous(dev->dax_dev); + return !dev->dax_dev || !dax_synchronous(dev->dax_dev); }
bool dm_table_supports_dax(struct dm_table *t, @@ -922,7 +922,7 @@ bool dm_table_supports_dax(struct dm_tab return false;
if (!ti->type->iterate_devices || - !ti->type->iterate_devices(ti, iterate_fn, blocksize)) + ti->type->iterate_devices(ti, iterate_fn, blocksize)) return false; }
@@ -996,7 +996,7 @@ static int dm_table_determine_type(struc verify_bio_based: /* We must use this table as bio-based */ t->type = DM_TYPE_BIO_BASED; - if (dm_table_supports_dax(t, device_supports_dax, &page_size) || + if (dm_table_supports_dax(t, device_not_dax_capable, &page_size) || (list_empty(devices) && live_md_type == DM_TYPE_DAX_BIO_BASED)) { t->type = DM_TYPE_DAX_BIO_BASED; } else { @@ -1715,23 +1715,6 @@ static int device_dax_write_cache_enable return false; }
-static int dm_table_supports_dax_write_cache(struct dm_table *t) -{ - struct dm_target *ti; - unsigned i; - - for (i = 0; i < dm_table_get_num_targets(t); i++) { - ti = dm_table_get_target(t, i); - - if (ti->type->iterate_devices && - ti->type->iterate_devices(ti, - device_dax_write_cache_enabled, NULL)) - return true; - } - - return false; -} - static int device_is_rotational(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) { @@ -1918,15 +1901,15 @@ void dm_table_set_restrictions(struct dm } blk_queue_write_cache(q, wc, fua);
- if (dm_table_supports_dax(t, device_supports_dax, &page_size)) { + if (dm_table_supports_dax(t, device_not_dax_capable, &page_size)) { blk_queue_flag_set(QUEUE_FLAG_DAX, q); - if (dm_table_supports_dax(t, device_dax_synchronous, NULL)) + if (dm_table_supports_dax(t, device_not_dax_synchronous_capable, NULL)) set_dax_synchronous(t->md->dax_dev); } else blk_queue_flag_clear(QUEUE_FLAG_DAX, q);
- if (dm_table_supports_dax_write_cache(t)) + if (dm_table_any_dev_attr(t, device_dax_write_cache_enabled)) dax_write_cache(t->md->dax_dev, true);
/* Ensure that all underlying devices are non-rotational. */ --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1139,7 +1139,7 @@ static bool dm_dax_supported(struct dax_ if (!map) goto out;
- ret = dm_table_supports_dax(map, device_supports_dax, &blocksize); + ret = dm_table_supports_dax(map, device_not_dax_capable, &blocksize);
out: dm_put_live_table(md, srcu_idx); --- a/drivers/md/dm.h +++ b/drivers/md/dm.h @@ -74,7 +74,7 @@ void dm_table_free_md_mempools(struct dm struct dm_md_mempools *dm_table_get_md_mempools(struct dm_table *t); bool dm_table_supports_dax(struct dm_table *t, iterate_devices_callout_fn fn, int *blocksize); -int device_supports_dax(struct dm_target *ti, struct dm_dev *dev, +int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data);
void dm_lock_md_type(struct mapped_device *md);
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Jeffle Xu jefflexu@linux.alibaba.com
commit 24f6b6036c9eec21191646930ad42808e6180510 upstream.
Fix dm_table_supports_zoned_model() and invert logic of both iterate_devices_callout_fn so that all devices' zoned capabilities are properly checked.
Add one more parameter to dm_table_any_dev_attr(), which is actually used as the @data parameter of iterate_devices_callout_fn, so that dm_table_matches_zone_sectors() can be replaced by dm_table_any_dev_attr().
Fixes: dd88d313bef02 ("dm table: add zoned block devices validation") Cc: stable@vger.kernel.org Signed-off-by: Jeffle Xu jefflexu@linux.alibaba.com Signed-off-by: Mike Snitzer snitzer@redhat.com [jeffle: also convert partial completion check] Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/md/dm-table.c | 50 +++++++++++++++++--------------------------------- 1 file changed, 17 insertions(+), 33 deletions(-)
--- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -1397,10 +1397,10 @@ struct dm_target *dm_table_find_target(s * should use the iteration structure like dm_table_supports_nowait() or * dm_table_supports_discards(). Or introduce dm_table_all_devs_attr() that * uses an @anti_func that handle semantics of counter examples, e.g. not - * capable of something. So: return !dm_table_any_dev_attr(t, anti_func); + * capable of something. So: return !dm_table_any_dev_attr(t, anti_func, data); */ static bool dm_table_any_dev_attr(struct dm_table *t, - iterate_devices_callout_fn func) + iterate_devices_callout_fn func, void *data) { struct dm_target *ti; unsigned int i; @@ -1409,7 +1409,7 @@ static bool dm_table_any_dev_attr(struct ti = dm_table_get_target(t, i);
if (ti->type->iterate_devices && - ti->type->iterate_devices(ti, func, NULL)) + ti->type->iterate_devices(ti, func, data)) return true; }
@@ -1452,13 +1452,13 @@ bool dm_table_has_no_data_devices(struct return true; }
-static int device_is_zoned_model(struct dm_target *ti, struct dm_dev *dev, - sector_t start, sector_t len, void *data) +static int device_not_zoned_model(struct dm_target *ti, struct dm_dev *dev, + sector_t start, sector_t len, void *data) { struct request_queue *q = bdev_get_queue(dev->bdev); enum blk_zoned_model *zoned_model = data;
- return q && blk_queue_zoned_model(q) == *zoned_model; + return !q || blk_queue_zoned_model(q) != *zoned_model; }
static bool dm_table_supports_zoned_model(struct dm_table *t, @@ -1475,37 +1475,20 @@ static bool dm_table_supports_zoned_mode return false;
if (!ti->type->iterate_devices || - !ti->type->iterate_devices(ti, device_is_zoned_model, &zoned_model)) + ti->type->iterate_devices(ti, device_not_zoned_model, &zoned_model)) return false; }
return true; }
-static int device_matches_zone_sectors(struct dm_target *ti, struct dm_dev *dev, - sector_t start, sector_t len, void *data) +static int device_not_matches_zone_sectors(struct dm_target *ti, struct dm_dev *dev, + sector_t start, sector_t len, void *data) { struct request_queue *q = bdev_get_queue(dev->bdev); unsigned int *zone_sectors = data;
- return q && blk_queue_zone_sectors(q) == *zone_sectors; -} - -static bool dm_table_matches_zone_sectors(struct dm_table *t, - unsigned int zone_sectors) -{ - struct dm_target *ti; - unsigned i; - - for (i = 0; i < dm_table_get_num_targets(t); i++) { - ti = dm_table_get_target(t, i); - - if (!ti->type->iterate_devices || - !ti->type->iterate_devices(ti, device_matches_zone_sectors, &zone_sectors)) - return false; - } - - return true; + return !q || blk_queue_zone_sectors(q) != *zone_sectors; }
static int validate_hardware_zoned_model(struct dm_table *table, @@ -1525,7 +1508,7 @@ static int validate_hardware_zoned_model if (!zone_sectors || !is_power_of_2(zone_sectors)) return -EINVAL;
- if (!dm_table_matches_zone_sectors(table, zone_sectors)) { + if (dm_table_any_dev_attr(table, device_not_matches_zone_sectors, &zone_sectors)) { DMERR("%s: zone sectors is not consistent across all devices", dm_device_name(table->md)); return -EINVAL; @@ -1742,7 +1725,7 @@ static int device_is_partial_completion(
static bool dm_table_does_not_support_partial_completion(struct dm_table *t) { - return !dm_table_any_dev_attr(t, device_is_partial_completion); + return !dm_table_any_dev_attr(t, device_is_partial_completion, NULL); }
static int device_not_write_same_capable(struct dm_target *ti, struct dm_dev *dev, @@ -1909,11 +1892,11 @@ void dm_table_set_restrictions(struct dm else blk_queue_flag_clear(QUEUE_FLAG_DAX, q);
- if (dm_table_any_dev_attr(t, device_dax_write_cache_enabled)) + if (dm_table_any_dev_attr(t, device_dax_write_cache_enabled, NULL)) dax_write_cache(t->md->dax_dev, true);
/* Ensure that all underlying devices are non-rotational. */ - if (dm_table_any_dev_attr(t, device_is_rotational)) + if (dm_table_any_dev_attr(t, device_is_rotational, NULL)) blk_queue_flag_clear(QUEUE_FLAG_NONROT, q); else blk_queue_flag_set(QUEUE_FLAG_NONROT, q); @@ -1932,7 +1915,7 @@ void dm_table_set_restrictions(struct dm * them as well. Only targets that support iterate_devices are considered: * don't want error, zero, etc to require stable pages. */ - if (dm_table_any_dev_attr(t, device_requires_stable_pages)) + if (dm_table_any_dev_attr(t, device_requires_stable_pages, NULL)) q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; else q->backing_dev_info->capabilities &= ~BDI_CAP_STABLE_WRITES; @@ -1943,7 +1926,8 @@ void dm_table_set_restrictions(struct dm * Clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not * have it set. */ - if (blk_queue_add_random(q) && dm_table_any_dev_attr(t, device_is_not_random)) + if (blk_queue_add_random(q) && + dm_table_any_dev_attr(t, device_is_not_random, NULL)) blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, q);
/*
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
commit c27f3d011b08540e68233cf56274fdc34bebb9b5 upstream.
ACPICA commit c9e0116952363b0fa815143dca7e9a2eb4fefa61
The handling of the generic_serial_bus (I2C) and GPIO op_regions in acpi_ev_address_space_dispatch() passes a number of extra parameters to the address-space handler through the address-space Context pointer (instead of using more function parameters).
The Context is shared between threads, so if multiple threads try to call the handler for the same address-space at the same time, then a second thread could change the parameters of a first thread while the handler is running for the first thread.
An example of this race hitting is the Lenovo Yoga Tablet2 1015L, where there are both attrib_bytes accesses and attrib_byte accesses to the same address-space. The attrib_bytes access stores the number of bytes to transfer in Context->access_length. Where as for the attrib_byte access the number of bytes to transfer is always 1 and field_obj->Field.access_length is unused (so 0). Both types of accesses racing from different threads leads to the following problem:
1. Thread a. starts an attrib_bytes access, stores a non 0 value from field_obj->Field.access_length in Context->access_length
2. Thread b. starts an attrib_byte access, stores 0 in Context->access_length
3. Thread a. calls i2c_acpi_space_handler() (under Linux). Which sees that the access-type is ACPI_GSB_ACCESS_ATTRIB_MULTIBYTE and calls acpi_gsb_i2c_read_bytes(..., Context->access_length)
4. At this point Context->access_length is 0 (set by thread b.)
rather then the field_obj->Field.access_length value from thread a. This 0 length reads leads to the following errors being logged:
i2c i2c-0: adapter quirk: no zero length (addr 0x0078, size 0, read) i2c i2c-0: i2c read 0 bytes from client@0x78 starting at reg 0x0 failed, error: -95
Note this is just an example of the problems which this race can cause.
There are likely many more (sporadic) problems caused by this race.
This commit adds a new context_mutex to struct acpi_object_addr_handler and makes acpi_ev_address_space_dispatch() take that mutex when using the shared Context to pass extra parameters to an address-space handler, fixing this race.
Note the new mutex must be taken *after* exiting the interpreter, therefor the existing acpi_ex_exit_interpreter() call is moved to above the code which stores the extra parameters in the Context.
Link: https://github.com/acpica/acpica/commit/c9e01169 Signed-off-by: Hans de Goede hdegoede@redhat.com Signed-off-by: Bob Moore robert.moore@intel.com Signed-off-by: Erik Kaneda erik.kaneda@intel.com Signed-off-by: Rafael J. Wysocki rafael.j.wysocki@intel.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/acpi/acpica/acobject.h | 1 drivers/acpi/acpica/evhandler.c | 7 ++++ drivers/acpi/acpica/evregion.c | 64 +++++++++++++++++++++++++++++----------- drivers/acpi/acpica/evxfregn.c | 2 + 4 files changed, 57 insertions(+), 17 deletions(-)
--- a/drivers/acpi/acpica/acobject.h +++ b/drivers/acpi/acpica/acobject.h @@ -283,6 +283,7 @@ struct acpi_object_addr_handler { acpi_adr_space_handler handler; struct acpi_namespace_node *node; /* Parent device */ void *context; + acpi_mutex context_mutex; acpi_adr_space_setup setup; union acpi_operand_object *region_list; /* Regions using this handler */ union acpi_operand_object *next; --- a/drivers/acpi/acpica/evhandler.c +++ b/drivers/acpi/acpica/evhandler.c @@ -489,6 +489,13 @@ acpi_ev_install_space_handler(struct acp
/* Init handler obj */
+ status = + acpi_os_create_mutex(&handler_obj->address_space.context_mutex); + if (ACPI_FAILURE(status)) { + acpi_ut_remove_reference(handler_obj); + goto unlock_and_exit; + } + handler_obj->address_space.space_id = (u8)space_id; handler_obj->address_space.handler_flags = flags; handler_obj->address_space.region_list = NULL; --- a/drivers/acpi/acpica/evregion.c +++ b/drivers/acpi/acpica/evregion.c @@ -111,6 +111,8 @@ acpi_ev_address_space_dispatch(union acp union acpi_operand_object *region_obj2; void *region_context = NULL; struct acpi_connection_info *context; + acpi_mutex context_mutex; + u8 context_locked; acpi_physical_address address;
ACPI_FUNCTION_TRACE(ev_address_space_dispatch); @@ -135,6 +137,8 @@ acpi_ev_address_space_dispatch(union acp }
context = handler_desc->address_space.context; + context_mutex = handler_desc->address_space.context_mutex; + context_locked = FALSE;
/* * It may be the case that the region has never been initialized. @@ -203,6 +207,23 @@ acpi_ev_address_space_dispatch(union acp handler = handler_desc->address_space.handler; address = (region_obj->region.address + region_offset);
+ ACPI_DEBUG_PRINT((ACPI_DB_OPREGION, + "Handler %p (@%p) Address %8.8X%8.8X [%s]\n", + ®ion_obj->region.handler->address_space, handler, + ACPI_FORMAT_UINT64(address), + acpi_ut_get_region_name(region_obj->region. + space_id))); + + if (!(handler_desc->address_space.handler_flags & + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { + /* + * For handlers other than the default (supplied) handlers, we must + * exit the interpreter because the handler *might* block -- we don't + * know what it will do, so we can't hold the lock on the interpreter. + */ + acpi_ex_exit_interpreter(); + } + /* * Special handling for generic_serial_bus and general_purpose_io: * There are three extra parameters that must be passed to the @@ -211,6 +232,11 @@ acpi_ev_address_space_dispatch(union acp * 2) Length of the above buffer * 3) Actual access length from the access_as() op * + * Since we pass these extra parameters via the context, which is + * shared between threads, we must lock the context to avoid these + * parameters being changed from another thread before the handler + * has completed running. + * * In addition, for general_purpose_io, the Address and bit_width fields * are defined as follows: * 1) Address is the pin number index of the field (bit offset from @@ -220,6 +246,14 @@ acpi_ev_address_space_dispatch(union acp if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) && context && field_obj) {
+ status = + acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER); + if (ACPI_FAILURE(status)) { + goto re_enter_interpreter; + } + + context_locked = TRUE; + /* Get the Connection (resource_template) buffer */
context->connection = field_obj->field.resource_buffer; @@ -229,6 +263,14 @@ acpi_ev_address_space_dispatch(union acp if ((region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) && context && field_obj) {
+ status = + acpi_os_acquire_mutex(context_mutex, ACPI_WAIT_FOREVER); + if (ACPI_FAILURE(status)) { + goto re_enter_interpreter; + } + + context_locked = TRUE; + /* Get the Connection (resource_template) buffer */
context->connection = field_obj->field.resource_buffer; @@ -238,28 +280,15 @@ acpi_ev_address_space_dispatch(union acp bit_width = field_obj->field.bit_length; }
- ACPI_DEBUG_PRINT((ACPI_DB_OPREGION, - "Handler %p (@%p) Address %8.8X%8.8X [%s]\n", - ®ion_obj->region.handler->address_space, handler, - ACPI_FORMAT_UINT64(address), - acpi_ut_get_region_name(region_obj->region. - space_id))); - - if (!(handler_desc->address_space.handler_flags & - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { - /* - * For handlers other than the default (supplied) handlers, we must - * exit the interpreter because the handler *might* block -- we don't - * know what it will do, so we can't hold the lock on the interpreter. - */ - acpi_ex_exit_interpreter(); - } - /* Call the handler */
status = handler(function, address, bit_width, value, context, region_obj2->extra.region_context);
+ if (context_locked) { + acpi_os_release_mutex(context_mutex); + } + if (ACPI_FAILURE(status)) { ACPI_EXCEPTION((AE_INFO, status, "Returned by Handler for [%s]", acpi_ut_get_region_name(region_obj->region. @@ -276,6 +305,7 @@ acpi_ev_address_space_dispatch(union acp } }
+re_enter_interpreter: if (!(handler_desc->address_space.handler_flags & ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { /* --- a/drivers/acpi/acpica/evxfregn.c +++ b/drivers/acpi/acpica/evxfregn.c @@ -201,6 +201,8 @@ acpi_remove_address_space_handler(acpi_h
/* Now we can delete the handler object */
+ acpi_os_release_mutex(handler_obj->address_space. + context_mutex); acpi_ut_remove_reference(handler_obj); goto unlock_and_exit; }
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Andrey Ryabinin arbn@yandex-team.com
commit 140456f994195b568ecd7fc2287a34eadffef3ca upstream.
increase_address_space() calls get_zeroed_page(gfp) under spin_lock with disabled interrupts. gfp flags passed to increase_address_space() may allow sleeping, so it comes to this:
BUG: sleeping function called from invalid context at mm/page_alloc.c:4342 in_atomic(): 1, irqs_disabled(): 1, pid: 21555, name: epdcbbf1qnhbsd8
Call Trace: dump_stack+0x66/0x8b ___might_sleep+0xec/0x110 __alloc_pages_nodemask+0x104/0x300 get_zeroed_page+0x15/0x40 iommu_map_page+0xdd/0x3e0 amd_iommu_map+0x50/0x70 iommu_map+0x106/0x220 vfio_iommu_type1_ioctl+0x76e/0x950 [vfio_iommu_type1] do_vfs_ioctl+0xa3/0x6f0 ksys_ioctl+0x66/0x70 __x64_sys_ioctl+0x16/0x20 do_syscall_64+0x4e/0x100 entry_SYSCALL_64_after_hwframe+0x44/0xa9
Fix this by moving get_zeroed_page() out of spin_lock/unlock section.
Fixes: 754265bcab ("iommu/amd: Fix race in increase_address_space()") Signed-off-by: Andrey Ryabinin arbn@yandex-team.com Acked-by: Will Deacon will@kernel.org Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20210217143004.19165-1-arbn@yandex-team.com Signed-off-by: Joerg Roedel jroedel@suse.de Signed-off-by: Andrey Ryabinin arbn@yandex-team.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
--- drivers/iommu/amd_iommu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
--- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -1469,25 +1469,27 @@ static bool increase_address_space(struc bool ret = false; u64 *pte;
+ pte = (void *)get_zeroed_page(gfp); + if (!pte) + return false; + spin_lock_irqsave(&domain->lock, flags);
if (address <= PM_LEVEL_SIZE(domain->mode) || WARN_ON_ONCE(domain->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 = NULL; ret = true;
out: spin_unlock_irqrestore(&domain->lock, flags); + free_page((unsigned long)pte);
return ret; }
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Tsuchiya Yuto kitakar@gmail.com
[ Upstream commit 4add4d988f95f47493500a7a19c623827061589b ]
If a reset is performed, but even the reset fails for some reasons (e.g., on Surface devices, the fw reset requires another quirks), cancel_work_sync() hangs in mwifiex_cleanup_pcie().
# firmware went into a bad state [...] [ 1608.281690] mwifiex_pcie 0000:03:00.0: info: shutdown mwifiex... [ 1608.282724] mwifiex_pcie 0000:03:00.0: rx_pending=0, tx_pending=1, cmd_pending=0 [ 1608.292400] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed [ 1608.292405] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed # reset performed after firmware went into a bad state [ 1609.394320] mwifiex_pcie 0000:03:00.0: WLAN FW already running! Skip FW dnld [ 1609.394335] mwifiex_pcie 0000:03:00.0: WLAN FW is active # but even the reset failed [ 1619.499049] mwifiex_pcie 0000:03:00.0: mwifiex_cmd_timeout_func: Timeout cmd id = 0xfa, act = 0xe000 [ 1619.499094] mwifiex_pcie 0000:03:00.0: num_data_h2c_failure = 0 [ 1619.499103] mwifiex_pcie 0000:03:00.0: num_cmd_h2c_failure = 0 [ 1619.499110] mwifiex_pcie 0000:03:00.0: is_cmd_timedout = 1 [ 1619.499117] mwifiex_pcie 0000:03:00.0: num_tx_timeout = 0 [ 1619.499124] mwifiex_pcie 0000:03:00.0: last_cmd_index = 0 [ 1619.499133] mwifiex_pcie 0000:03:00.0: last_cmd_id: fa 00 07 01 07 01 07 01 07 01 [ 1619.499140] mwifiex_pcie 0000:03:00.0: last_cmd_act: 00 e0 00 00 00 00 00 00 00 00 [ 1619.499147] mwifiex_pcie 0000:03:00.0: last_cmd_resp_index = 3 [ 1619.499155] mwifiex_pcie 0000:03:00.0: last_cmd_resp_id: 07 81 07 81 07 81 07 81 07 81 [ 1619.499162] mwifiex_pcie 0000:03:00.0: last_event_index = 2 [ 1619.499169] mwifiex_pcie 0000:03:00.0: last_event: 58 00 58 00 58 00 58 00 58 00 [ 1619.499177] mwifiex_pcie 0000:03:00.0: data_sent=0 cmd_sent=1 [ 1619.499185] mwifiex_pcie 0000:03:00.0: ps_mode=0 ps_state=0 [ 1619.499215] mwifiex_pcie 0000:03:00.0: info: _mwifiex_fw_dpc: unregister device # mwifiex_pcie_work hang happening [ 1823.233923] INFO: task kworker/3:1:44 blocked for more than 122 seconds. [ 1823.233932] Tainted: G WC OE 5.10.0-rc1-1-mainline #1 [ 1823.233935] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 1823.233940] task:kworker/3:1 state:D stack: 0 pid: 44 ppid: 2 flags:0x00004000 [ 1823.233960] Workqueue: events mwifiex_pcie_work [mwifiex_pcie] [ 1823.233965] Call Trace: [ 1823.233981] __schedule+0x292/0x820 [ 1823.233990] schedule+0x45/0xe0 [ 1823.233995] schedule_timeout+0x11c/0x160 [ 1823.234003] wait_for_completion+0x9e/0x100 [ 1823.234012] __flush_work.isra.0+0x156/0x210 [ 1823.234018] ? flush_workqueue_prep_pwqs+0x130/0x130 [ 1823.234026] __cancel_work_timer+0x11e/0x1a0 [ 1823.234035] mwifiex_cleanup_pcie+0x28/0xd0 [mwifiex_pcie] [ 1823.234049] mwifiex_free_adapter+0x24/0xe0 [mwifiex] [ 1823.234060] _mwifiex_fw_dpc+0x294/0x560 [mwifiex] [ 1823.234074] mwifiex_reinit_sw+0x15d/0x300 [mwifiex] [ 1823.234080] mwifiex_pcie_reset_done+0x50/0x80 [mwifiex_pcie] [ 1823.234087] pci_try_reset_function+0x5c/0x90 [ 1823.234094] process_one_work+0x1d6/0x3a0 [ 1823.234100] worker_thread+0x4d/0x3d0 [ 1823.234107] ? rescuer_thread+0x410/0x410 [ 1823.234112] kthread+0x142/0x160 [ 1823.234117] ? __kthread_bind_mask+0x60/0x60 [ 1823.234124] ret_from_fork+0x22/0x30 [...]
This is a deadlock caused by calling cancel_work_sync() in mwifiex_cleanup_pcie():
- Device resets are done via mwifiex_pcie_card_reset() - which schedules card->work to call mwifiex_pcie_card_reset_work() - which calls pci_try_reset_function(). - This leads to mwifiex_pcie_reset_done() be called on the same workqueue, which in turn calls - mwifiex_reinit_sw() and that calls - _mwifiex_fw_dpc().
The problem is now that _mwifiex_fw_dpc() calls mwifiex_free_adapter() in case firmware initialization fails. That ends up calling mwifiex_cleanup_pcie().
Note that all those calls are still running on the workqueue. So when mwifiex_cleanup_pcie() now calls cancel_work_sync(), it's really waiting on itself to complete, causing a deadlock.
This commit fixes the deadlock by skipping cancel_work_sync() on a reset failure path.
After this commit, when reset fails, the following output is expected to be shown:
kernel: mwifiex_pcie 0000:03:00.0: info: _mwifiex_fw_dpc: unregister device kernel: mwifiex: Failed to bring up adapter: -5 kernel: mwifiex_pcie 0000:03:00.0: reinit failed: -5
To reproduce this issue, for example, try putting the root port of wifi into D3 (replace "00:1d.3" with your setup).
# put into D3 (root port) sudo setpci -v -s 00:1d.3 CAP_PM+4.b=0b
Cc: Maximilian Luz luzmaximilian@gmail.com Signed-off-by: Tsuchiya Yuto kitakar@gmail.com Signed-off-by: Kalle Valo kvalo@codeaurora.org Link: https://lore.kernel.org/r/20201028142346.18355-1-kitakar@gmail.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/net/wireless/marvell/mwifiex/pcie.c | 18 +++++++++++++++++- drivers/net/wireless/marvell/mwifiex/pcie.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c index fc1706d0647d..58c9623c3a91 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -377,6 +377,8 @@ static void mwifiex_pcie_reset_prepare(struct pci_dev *pdev) clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags); clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags); mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__); + + card->pci_reset_ongoing = true; }
/* @@ -405,6 +407,8 @@ static void mwifiex_pcie_reset_done(struct pci_dev *pdev) dev_err(&pdev->dev, "reinit failed: %d\n", ret); else mwifiex_dbg(adapter, INFO, "%s, successful\n", __func__); + + card->pci_reset_ongoing = false; }
static const struct pci_error_handlers mwifiex_pcie_err_handler = { @@ -2995,7 +2999,19 @@ static void mwifiex_cleanup_pcie(struct mwifiex_adapter *adapter) int ret; u32 fw_status;
- cancel_work_sync(&card->work); + /* Perform the cancel_work_sync() only when we're not resetting + * the card. It's because that function never returns if we're + * in reset path. If we're here when resetting the card, it means + * that we failed to reset the card (reset failure path). + */ + if (!card->pci_reset_ongoing) { + mwifiex_dbg(adapter, MSG, "performing cancel_work_sync()...\n"); + cancel_work_sync(&card->work); + mwifiex_dbg(adapter, MSG, "cancel_work_sync() done\n"); + } else { + mwifiex_dbg(adapter, MSG, + "skipped cancel_work_sync() because we're in card reset failure path\n"); + }
ret = mwifiex_read_reg(adapter, reg->fw_status, &fw_status); if (fw_status == FIRMWARE_READY_PCIE) { diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.h b/drivers/net/wireless/marvell/mwifiex/pcie.h index f7ce9b6db6b4..72d0c01ff359 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.h +++ b/drivers/net/wireless/marvell/mwifiex/pcie.h @@ -391,6 +391,8 @@ struct pcie_service_card { struct mwifiex_msix_context share_irq_ctx; struct work_struct work; unsigned long work_flags; + + bool pci_reset_ongoing; };
static inline int
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit 7c936d8d26afbc74deac0651d613dead2f76e81c ]
Cleanup the ACER_CAP_FOO defines: -Switch to using BIT() macro. -The ACER_CAP_RFBTN flag is set, but it is never checked anywhere, drop it. -Drop the unused ACER_CAP_ANY define.
Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201019185628.264473-2-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 7fa27e753691..daf692fe7f77 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -206,14 +206,12 @@ struct hotkey_function_type_aa { /* * Interface capability flags */ -#define ACER_CAP_MAILLED (1<<0) -#define ACER_CAP_WIRELESS (1<<1) -#define ACER_CAP_BLUETOOTH (1<<2) -#define ACER_CAP_BRIGHTNESS (1<<3) -#define ACER_CAP_THREEG (1<<4) -#define ACER_CAP_ACCEL (1<<5) -#define ACER_CAP_RFBTN (1<<6) -#define ACER_CAP_ANY (0xFFFFFFFF) +#define ACER_CAP_MAILLED BIT(0) +#define ACER_CAP_WIRELESS BIT(1) +#define ACER_CAP_BLUETOOTH BIT(2) +#define ACER_CAP_BRIGHTNESS BIT(3) +#define ACER_CAP_THREEG BIT(4) +#define ACER_CAP_ACCEL BIT(5)
/* * Interface type flags @@ -1253,10 +1251,8 @@ static void __init type_aa_dmi_decode(const struct dmi_header *header, void *d) interface->capability |= ACER_CAP_THREEG; if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_BLUETOOTH) interface->capability |= ACER_CAP_BLUETOOTH; - if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN) { - interface->capability |= ACER_CAP_RFBTN; + if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN) commun_func_bitmap &= ~ACER_WMID3_GDS_RFBTN; - }
commun_fn_key_number = type_aa->commun_fn_key_number; }
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit 9feb0763e4985ccfae632de3bb2f029cc8389842 ]
Cleanup accelerometer device handling: -Drop acer_wmi_accel_destroy instead directly call input_unregister_device. -The information tracked by the CAP_ACCEL flag mirrors acer_wmi_accel_dev being NULL. Drop the CAP flag, this is a preparation change for allowing users to override the capability flags. Dropping the flag stops users from causing a NULL pointer dereference by forcing the capability.
Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201019185628.264473-3-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index daf692fe7f77..167d0446f560 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -211,7 +211,6 @@ struct hotkey_function_type_aa { #define ACER_CAP_BLUETOOTH BIT(2) #define ACER_CAP_BRIGHTNESS BIT(3) #define ACER_CAP_THREEG BIT(4) -#define ACER_CAP_ACCEL BIT(5)
/* * Interface type flags @@ -1516,7 +1515,7 @@ static int acer_gsensor_event(void) struct acpi_buffer output; union acpi_object out_obj[5];
- if (!has_cap(ACER_CAP_ACCEL)) + if (!acer_wmi_accel_dev) return -1;
output.length = sizeof(out_obj); @@ -1890,8 +1889,6 @@ static int __init acer_wmi_accel_setup(void) gsensor_handle = acpi_device_handle(adev); acpi_dev_put(adev);
- interface->capability |= ACER_CAP_ACCEL; - acer_wmi_accel_dev = input_allocate_device(); if (!acer_wmi_accel_dev) return -ENOMEM; @@ -1917,11 +1914,6 @@ err_free_dev: return err; }
-static void acer_wmi_accel_destroy(void) -{ - input_unregister_device(acer_wmi_accel_dev); -} - static int __init acer_wmi_input_setup(void) { acpi_status status; @@ -2076,7 +2068,7 @@ static int acer_resume(struct device *dev) if (has_cap(ACER_CAP_BRIGHTNESS)) set_u32(data->brightness, ACER_CAP_BRIGHTNESS);
- if (has_cap(ACER_CAP_ACCEL)) + if (acer_wmi_accel_dev) acer_gsensor_init();
return 0; @@ -2266,8 +2258,8 @@ error_device_alloc: error_platform_register: if (wmi_has_guid(ACERWMID_EVENT_GUID)) acer_wmi_input_destroy(); - if (has_cap(ACER_CAP_ACCEL)) - acer_wmi_accel_destroy(); + if (acer_wmi_accel_dev) + input_unregister_device(acer_wmi_accel_dev);
return err; } @@ -2277,8 +2269,8 @@ static void __exit acer_wmi_exit(void) if (wmi_has_guid(ACERWMID_EVENT_GUID)) acer_wmi_input_destroy();
- if (has_cap(ACER_CAP_ACCEL)) - acer_wmi_accel_destroy(); + if (acer_wmi_accel_dev) + input_unregister_device(acer_wmi_accel_dev);
remove_debugfs(); platform_device_unregister(acer_platform_device);
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit 39aa009bb66f9d5fbd1e58ca4aa03d6e6f2c9915 ]
Add a new force_caps module parameter to allow overriding the drivers builtin capability detection mechanism.
This can be used to for example: -Disable rfkill functionality on devices where there is an AA OEM DMI record advertising non functional rfkill switches -Force loading of the driver on devices with a missing AA OEM DMI record
Note that force_caps is -1 when unset, this allows forcing the capability field to 0, which results in acer-wmi only providing WMI hotkey handling while disabling all other (led, rfkill, backlight) functionality.
Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201019185628.264473-4-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 167d0446f560..e26ae1d917ea 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -233,6 +233,7 @@ static int mailled = -1; static int brightness = -1; static int threeg = -1; static int force_series; +static int force_caps = -1; static bool ec_raw_mode; static bool has_type_aa; static u16 commun_func_bitmap; @@ -242,11 +243,13 @@ module_param(mailled, int, 0444); module_param(brightness, int, 0444); module_param(threeg, int, 0444); module_param(force_series, int, 0444); +module_param(force_caps, int, 0444); module_param(ec_raw_mode, bool, 0444); MODULE_PARM_DESC(mailled, "Set initial state of Mail LED"); MODULE_PARM_DESC(brightness, "Set initial LCD backlight brightness"); MODULE_PARM_DESC(threeg, "Set initial state of 3G hardware"); MODULE_PARM_DESC(force_series, "Force a different laptop series"); +MODULE_PARM_DESC(force_caps, "Force the capability bitmask to this value"); MODULE_PARM_DESC(ec_raw_mode, "Enable EC raw mode");
struct acer_data { @@ -2169,7 +2172,7 @@ static int __init acer_wmi_init(void) } /* WMID always provides brightness methods */ interface->capability |= ACER_CAP_BRIGHTNESS; - } else if (!wmi_has_guid(WMID_GUID2) && interface && !has_type_aa) { + } else if (!wmi_has_guid(WMID_GUID2) && interface && !has_type_aa && force_caps == -1) { pr_err("No WMID device detection method found\n"); return -ENODEV; } @@ -2199,6 +2202,9 @@ static int __init acer_wmi_init(void) if (acpi_video_get_backlight_type() != acpi_backlight_vendor) interface->capability &= ~ACER_CAP_BRIGHTNESS;
+ if (force_caps != -1) + interface->capability = force_caps; + if (wmi_has_guid(WMID_GUID3)) { if (ACPI_FAILURE(acer_wmi_enable_rf_button())) pr_warn("Cannot enable RF Button Driver\n");
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit 82cb8a5c395ea5be20e0fe31a8fe84380a502ca5 ]
Not all devices supporting WMID_GUID3 support the wmid3_set_function_mode() call, leading to errors like these:
[ 60.138358] acer_wmi: Enabling RF Button failed: 0x1 - 0xff [ 60.140036] acer_wmi: Enabling Launch Manager failed: 0x1 - 0xff
Add an ACER_CAP_SET_FUNCTION_MODE capability flag, so that these calls can be disabled through the new force_caps mechanism.
Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201019185628.264473-5-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index e26ae1d917ea..bde37be6973e 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -211,6 +211,7 @@ struct hotkey_function_type_aa { #define ACER_CAP_BLUETOOTH BIT(2) #define ACER_CAP_BRIGHTNESS BIT(3) #define ACER_CAP_THREEG BIT(4) +#define ACER_CAP_SET_FUNCTION_MODE BIT(5)
/* * Interface type flags @@ -2202,10 +2203,14 @@ static int __init acer_wmi_init(void) if (acpi_video_get_backlight_type() != acpi_backlight_vendor) interface->capability &= ~ACER_CAP_BRIGHTNESS;
+ if (wmi_has_guid(WMID_GUID3)) + interface->capability |= ACER_CAP_SET_FUNCTION_MODE; + if (force_caps != -1) interface->capability = force_caps;
- if (wmi_has_guid(WMID_GUID3)) { + if (wmi_has_guid(WMID_GUID3) && + (interface->capability & ACER_CAP_SET_FUNCTION_MODE)) { if (ACPI_FAILURE(acer_wmi_enable_rf_button())) pr_warn("Cannot enable RF Button Driver\n");
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit 5c54cb6c627e8f50f490e6b5656051a5ac29eab4 ]
Add support for SW_TABLET_MODE on the Acer Switch 10 (SW5-012) and the acer Switch 10 (S1003) models.
There is no way to detect if this is supported, so this uses DMI based quirks setting force_caps to ACER_CAP_KBD_DOCK (these devices have no other acer-wmi based functionality).
The new SW_TABLET_MODE functionality can be tested on devices which are not in the DMI table by passing acer_wmi.force_caps=0x40 on the kernel commandline.
Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201019185628.264473-6-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 109 +++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index bde37be6973e..427dd0987338 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -30,6 +30,7 @@ #include <linux/input/sparse-keymap.h> #include <acpi/video.h>
+ACPI_MODULE_NAME(KBUILD_MODNAME); MODULE_AUTHOR("Carlos Corbacho"); MODULE_DESCRIPTION("Acer Laptop WMI Extras Driver"); MODULE_LICENSE("GPL"); @@ -80,7 +81,7 @@ MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
enum acer_wmi_event_ids { WMID_HOTKEY_EVENT = 0x1, - WMID_ACCEL_EVENT = 0x5, + WMID_ACCEL_OR_KBD_DOCK_EVENT = 0x5, };
static const struct key_entry acer_wmi_keymap[] __initconst = { @@ -128,7 +129,9 @@ struct event_return_value { u8 function; u8 key_num; u16 device_state; - u32 reserved; + u16 reserved1; + u8 kbd_dock_state; + u8 reserved2; } __attribute__((packed));
/* @@ -212,6 +215,7 @@ struct hotkey_function_type_aa { #define ACER_CAP_BRIGHTNESS BIT(3) #define ACER_CAP_THREEG BIT(4) #define ACER_CAP_SET_FUNCTION_MODE BIT(5) +#define ACER_CAP_KBD_DOCK BIT(6)
/* * Interface type flags @@ -320,6 +324,15 @@ static int __init dmi_matched(const struct dmi_system_id *dmi) return 1; }
+static int __init set_force_caps(const struct dmi_system_id *dmi) +{ + if (force_caps == -1) { + force_caps = (uintptr_t)dmi->driver_data; + pr_info("Found %s, set force_caps to 0x%x\n", dmi->ident, force_caps); + } + return 1; +} + static struct quirk_entry quirk_unknown = { };
@@ -498,6 +511,24 @@ static const struct dmi_system_id acer_quirks[] __initconst = { }, .driver_data = &quirk_acer_travelmate_2490, }, + { + .callback = set_force_caps, + .ident = "Acer Aspire Switch 10 SW5-012", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"), + }, + .driver_data = (void *)ACER_CAP_KBD_DOCK, + }, + { + .callback = set_force_caps, + .ident = "Acer One 10 (S1003)", + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"), + }, + .driver_data = (void *)ACER_CAP_KBD_DOCK, + }, {} };
@@ -1542,6 +1573,71 @@ static int acer_gsensor_event(void) return 0; }
+/* + * Switch series keyboard dock status + */ +static int acer_kbd_dock_state_to_sw_tablet_mode(u8 kbd_dock_state) +{ + switch (kbd_dock_state) { + case 0x01: /* Docked, traditional clamshell laptop mode */ + return 0; + case 0x04: /* Stand-alone tablet */ + case 0x40: /* Docked, tent mode, keyboard not usable */ + return 1; + default: + pr_warn("Unknown kbd_dock_state 0x%02x\n", kbd_dock_state); + } + + return 0; +} + +static void acer_kbd_dock_get_initial_state(void) +{ + u8 *output, input[8] = { 0x05, 0x00, }; + struct acpi_buffer input_buf = { sizeof(input), input }; + struct acpi_buffer output_buf = { ACPI_ALLOCATE_BUFFER, NULL }; + union acpi_object *obj; + acpi_status status; + int sw_tablet_mode; + + status = wmi_evaluate_method(WMID_GUID3, 0, 0x2, &input_buf, &output_buf); + if (ACPI_FAILURE(status)) { + ACPI_EXCEPTION((AE_INFO, status, "Error getting keyboard-dock initial status")); + return; + } + + obj = output_buf.pointer; + if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length != 8) { + pr_err("Unexpected output format getting keyboard-dock initial status\n"); + goto out_free_obj; + } + + output = obj->buffer.pointer; + if (output[0] != 0x00 || (output[3] != 0x05 && output[3] != 0x45)) { + pr_err("Unexpected output [0]=0x%02x [3]=0x%02x getting keyboard-dock initial status\n", + output[0], output[3]); + goto out_free_obj; + } + + sw_tablet_mode = acer_kbd_dock_state_to_sw_tablet_mode(output[4]); + input_report_switch(acer_wmi_input_dev, SW_TABLET_MODE, sw_tablet_mode); + +out_free_obj: + kfree(obj); +} + +static void acer_kbd_dock_event(const struct event_return_value *event) +{ + int sw_tablet_mode; + + if (!has_cap(ACER_CAP_KBD_DOCK)) + return; + + sw_tablet_mode = acer_kbd_dock_state_to_sw_tablet_mode(event->kbd_dock_state); + input_report_switch(acer_wmi_input_dev, SW_TABLET_MODE, sw_tablet_mode); + input_sync(acer_wmi_input_dev); +} + /* * Rfkill devices */ @@ -1769,8 +1865,9 @@ static void acer_wmi_notify(u32 value, void *context) sparse_keymap_report_event(acer_wmi_input_dev, scancode, 1, true); } break; - case WMID_ACCEL_EVENT: + case WMID_ACCEL_OR_KBD_DOCK_EVENT: acer_gsensor_event(); + acer_kbd_dock_event(&return_value); break; default: pr_warn("Unknown function number - %d - %d\n", @@ -1935,6 +2032,9 @@ static int __init acer_wmi_input_setup(void) if (err) goto err_free_dev;
+ if (has_cap(ACER_CAP_KBD_DOCK)) + input_set_capability(acer_wmi_input_dev, EV_SW, SW_TABLET_MODE); + status = wmi_install_notify_handler(ACERWMID_EVENT_GUID, acer_wmi_notify, NULL); if (ACPI_FAILURE(status)) { @@ -1942,6 +2042,9 @@ static int __init acer_wmi_input_setup(void) goto err_free_dev; }
+ if (has_cap(ACER_CAP_KBD_DOCK)) + acer_kbd_dock_get_initial_state(); + err = input_register_device(acer_wmi_input_dev); if (err) goto err_uninstall_notifier;
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit bf753400280d1384abb783efc0b42c491d6deec3 ]
Add the Acer Aspire Switch 10E SW3-016 to the list of models which use the Acer Switch WMI interface for reporting SW_TABLET_MODE.
Signed-off-by: Hans de Goede hdegoede@redhat.com Link: https://lore.kernel.org/r/20201123151625.5530-1-hdegoede@redhat.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/platform/x86/acer-wmi.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 427dd0987338..d27a564389a4 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -511,6 +511,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = { }, .driver_data = &quirk_acer_travelmate_2490, }, + { + .callback = set_force_caps, + .ident = "Acer Aspire Switch 10E SW3-016", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW3-016"), + }, + .driver_data = (void *)ACER_CAP_KBD_DOCK, + }, { .callback = set_force_caps, .ident = "Acer Aspire Switch 10 SW5-012",
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Ethan Warth redyoshi49q@gmail.com
[ Upstream commit 1008230f2abeb624f6d71b2e1c424fa4eeebbf84 ]
Mayflash/Dragonrise seems to have yet another device ID for one of their Gamecube controller adapters. Previous to this commit, the adapter registered only one /dev/input/js* device, and all controller inputs (from any controller) were mapped to this device. This patch defines the 1846 USB device ID and enables the HID_QUIRK_MULTI_INPUT quirk for it, which fixes that (with the patch, four /dev/input/js* devices are created, one for each of the four controller ports).
Signed-off-by: Ethan Warth redyoshi49q@gmail.com Tested-by: Wladimir J. van der Laan laanwj@gmail.com Signed-off-by: Jiri Kosina jkosina@suse.cz Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-mf.c | 2 ++ drivers/hid/hid-quirks.c | 2 ++ 3 files changed, 5 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 33183933337a..fc499c9039a0 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -365,6 +365,7 @@ #define USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR 0x1803 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE1 0x1843 #define USB_DEVICE_ID_DRAGONRISE_GAMECUBE2 0x1844 +#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE3 0x1846
#define USB_VENDOR_ID_DWAV 0x0eef #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001 diff --git a/drivers/hid/hid-mf.c b/drivers/hid/hid-mf.c index fc75f30f537c..92d7ecd41a78 100644 --- a/drivers/hid/hid-mf.c +++ b/drivers/hid/hid-mf.c @@ -153,6 +153,8 @@ static const struct hid_device_id mf_devices[] = { .driver_data = HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2), .driver_data = 0 }, /* No quirk required */ + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3), + .driver_data = HID_QUIRK_MULTI_INPUT }, { } }; MODULE_DEVICE_TABLE(hid, mf_devices); diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index 60d188a704e5..f35d919c4eba 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -72,6 +72,7 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_REDRAGON_SEYMUR2), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1), HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER), HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET }, @@ -491,6 +492,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR) }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1) }, { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE3) }, #endif #if IS_ENABLED(CONFIG_HID_MICROSOFT) { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500) },
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Daniel Lee Kruse daniel.lee.kruse@protonmail.com
[ Upstream commit dbf0b3a7b719eb3f72cb53c2ce7d34a012a9c261 ]
On AMD Family 15h (Models 30h-3fh), I/O Memory Management Unit RiSC engine sometimes stalls, requiring a reset.
As result, MythTV and w-scan won't scan channels on the AMD Kaveri APU with the Hauppauge QuadHD TV tuner card.
For the solution I added the Input/Output Memory Management Unit's PCI Identity of 0x1423 to the broken_dev_id[] array, which is used by a quirks logic meant to fix similar problems with other AMD chipsets.
Signed-off-by: Daniel Lee Kruse daniel.lee.kruse@protonmail.com Signed-off-by: Hans Verkuil hverkuil-cisco@xs4all.nl Signed-off-by: Mauro Carvalho Chehab mchehab+huawei@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/media/pci/cx23885/cx23885-core.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c index 7e0b0b7cc2a3..ead0acb7807c 100644 --- a/drivers/media/pci/cx23885/cx23885-core.c +++ b/drivers/media/pci/cx23885/cx23885-core.c @@ -2074,6 +2074,10 @@ static struct { * 0x1451 is PCI ID for the IOMMU found on Ryzen */ { PCI_VENDOR_ID_AMD, 0x1451 }, + /* According to sudo lspci -nn, + * 0x1423 is the PCI ID for the IOMMU found on Kaveri + */ + { PCI_VENDOR_ID_AMD, 0x1423 }, };
static bool cx23885_does_need_dma_reset(void)
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Jasper St. Pierre jstpierre@mecheye.net
[ Upstream commit 25417185e9b5ff90746d50769d2a3fcd1629e254 ]
The GIGABYTE GB-BXBT-2807 is a mini-PC which uses off the shelf components, like an Intel GPU which is meant for mobile systems. As such, it, by default, has a backlight controller exposed.
Unfortunately, the backlight controller only confuses userspace, which sees the existence of a backlight device node and has the unrealistic belief that there is actually a backlight there!
Add a DMI quirk to force the backlight off on this system.
Signed-off-by: Jasper St. Pierre jstpierre@mecheye.net Reviewed-by: Chris Chiu chiu@endlessos.org Signed-off-by: Rafael J. Wysocki rafael.j.wysocki@intel.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/acpi/video_detect.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c index 55af78b55c51..301ffe5b8feb 100644 --- a/drivers/acpi/video_detect.c +++ b/drivers/acpi/video_detect.c @@ -143,6 +143,13 @@ static const struct dmi_system_id video_detect_dmi_table[] = { }, { .callback = video_detect_force_vendor, + .ident = "GIGABYTE GB-BXBT-2807", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), + DMI_MATCH(DMI_PRODUCT_NAME, "GB-BXBT-2807"), + }, + }, + { .ident = "Sony VPCEH3U1E", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Chris Chiu chiu@endlessos.org
[ Upstream commit 1bea2256aa96a2d7b1b576eb74e29d79edc9bea8 ]
Tha ARCHOS Cesium 140 tablet has problem with the jack-sensing, thus the heaset functions are not working.
Add quirk for this model to select the correct input map, jack-detect options and channel map to enable jack sensing and headset microphone. This device uses IN1 for its internal MIC and JD2 for jack-detect.
Signed-off-by: Chris Chiu chiu@endlessos.org Acked-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com Link: https://lore.kernel.org/r/20201208060414.27646-1-chiu@endlessos.org Signed-off-by: Mark Brown broonie@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org --- sound/soc/intel/boards/bytcr_rt5640.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index 9ee610504bac..cfd307717473 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -435,6 +435,18 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = { BYT_RT5640_SSP0_AIF1 | BYT_RT5640_MCLK_EN), }, + { + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ARCHOS"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ARCHOS 140 CESIUM"), + }, + .driver_data = (void *)(BYT_RT5640_IN1_MAP | + BYT_RT5640_JD_SRC_JD2_IN4N | + BYT_RT5640_OVCD_TH_2000UA | + BYT_RT5640_OVCD_SF_0P75 | + BYT_RT5640_SSP0_AIF1 | + BYT_RT5640_MCLK_EN), + }, { .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Bjorn Helgaas bhelgaas@google.com
[ Upstream commit 059983790a4c963d92943e55a61fca55be427d55 ]
Add function 1 DMA alias quirk for Marvell 88SS9215 PCIe SSD Controller.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 Link: https://lore.kernel.org/r/20201110220516.697934-1-helgaas@kernel.org Reported-by: John Smith LK7S2ED64JHGLKj75shg9klejHWG49h5hk@protonmail.com Signed-off-by: Bjorn Helgaas bhelgaas@google.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/pci/quirks.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c98067579e9f..53376bcda1f3 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4055,6 +4055,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9183, /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c46 */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0, quirk_dma_func1_alias); +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 */ +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9215, + quirk_dma_func1_alias); /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c127 */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9220, quirk_dma_func1_alias);
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Aswath Govindraju a-govindraju@ti.com
[ Upstream commit f6f1f8e6e3eea25f539105d48166e91f0ab46dd1 ]
A dummy zero bit is sent preceding the data during a read transfer by the Microchip 93LC46B eeprom (section 2.7 of[1]). This results in right shift of data during a read. In order to ignore this bit a quirk can be added to send an extra zero bit after the read address.
Add a quirk to ignore the zero bit sent before data by adding a zero bit after the read address.
[1] - https://www.mouser.com/datasheet/2/268/20001749K-277859.pdf
Signed-off-by: Aswath Govindraju a-govindraju@ti.com Link: https://lore.kernel.org/r/20210105105817.17644-3-a-govindraju@ti.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/misc/eeprom/eeprom_93xx46.c | 15 +++++++++++++++ include/linux/eeprom_93xx46.h | 2 ++ 2 files changed, 17 insertions(+)
diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c index 414dcbd3c3c2..8b355fc0607b 100644 --- a/drivers/misc/eeprom/eeprom_93xx46.c +++ b/drivers/misc/eeprom/eeprom_93xx46.c @@ -35,6 +35,10 @@ static const struct eeprom_93xx46_devtype_data atmel_at93c46d_data = { EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH, };
+static const struct eeprom_93xx46_devtype_data microchip_93lc46b_data = { + .quirks = EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE, +}; + struct eeprom_93xx46_dev { struct spi_device *spi; struct eeprom_93xx46_platform_data *pdata; @@ -55,6 +59,11 @@ static inline bool has_quirk_instruction_length(struct eeprom_93xx46_dev *edev) return edev->pdata->quirks & EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH; }
+static inline bool has_quirk_extra_read_cycle(struct eeprom_93xx46_dev *edev) +{ + return edev->pdata->quirks & EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE; +} + static int eeprom_93xx46_read(void *priv, unsigned int off, void *val, size_t count) { @@ -96,6 +105,11 @@ static int eeprom_93xx46_read(void *priv, unsigned int off, dev_dbg(&edev->spi->dev, "read cmd 0x%x, %d Hz\n", cmd_addr, edev->spi->max_speed_hz);
+ if (has_quirk_extra_read_cycle(edev)) { + cmd_addr <<= 1; + bits += 1; + } + spi_message_init(&m);
t[0].tx_buf = (char *)&cmd_addr; @@ -363,6 +377,7 @@ static void select_deassert(void *context) static const struct of_device_id eeprom_93xx46_of_table[] = { { .compatible = "eeprom-93xx46", }, { .compatible = "atmel,at93c46d", .data = &atmel_at93c46d_data, }, + { .compatible = "microchip,93lc46b", .data = µchip_93lc46b_data, }, {} }; MODULE_DEVICE_TABLE(of, eeprom_93xx46_of_table); diff --git a/include/linux/eeprom_93xx46.h b/include/linux/eeprom_93xx46.h index eec7928ff8fe..99580c22f91a 100644 --- a/include/linux/eeprom_93xx46.h +++ b/include/linux/eeprom_93xx46.h @@ -16,6 +16,8 @@ struct eeprom_93xx46_platform_data { #define EEPROM_93XX46_QUIRK_SINGLE_WORD_READ (1 << 0) /* Instructions such as EWEN are (addrlen + 2) in length. */ #define EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH (1 << 1) +/* Add extra cycle after address during a read */ +#define EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE BIT(2)
/* * optional hooks to control additional logic
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: AngeloGioacchino Del Regno angelogioacchino.delregno@somainline.org
[ Upstream commit 8f03c30cb814213e36032084a01f49a9e604a3e3 ]
The PC_DBG_ECO_CNTL register on the Adreno A5xx family gets programmed to some different values on a per-model basis. At least, this is what we intend to do here;
Unfortunately, though, this register is being overwritten with a static magic number, right after applying the GPU-specific configuration (including the GPU-specific quirks) and that is effectively nullifying the efforts.
Let's remove the redundant and wrong write to the PC_DBG_ECO_CNTL register in order to retain the wanted configuration for the target GPU.
Signed-off-by: AngeloGioacchino Del Regno angelogioacchino.delregno@somainline.org Reviewed-by: Jordan Crouse jcrouse@codeaurora.org Signed-off-by: Rob Clark robdclark@chromium.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c index c8fb21cc0d6f..f84049119f1c 100644 --- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c @@ -581,8 +581,6 @@ static int a5xx_hw_init(struct msm_gpu *gpu) if (adreno_gpu->info->quirks & ADRENO_QUIRK_TWO_PASS_USE_WFI) gpu_rmw(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0, (1 << 8));
- gpu_write(gpu, REG_A5XX_PC_DBG_ECO_CNTL, 0xc0200100); - /* Enable USE_RETENTION_FLOPS */ gpu_write(gpu, REG_A5XX_CP_CHICKEN_DBG, 0x02000000);
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Jisheng Zhang Jisheng.Zhang@synaptics.com
[ Upstream commit 5f7dfda4f2cec580c135fd81d96a05006651c128 ]
The SDHCI_PRESET_FOR_* registers are not set(all read as zeros), so set the quirk.
Signed-off-by: Jisheng Zhang Jisheng.Zhang@synaptics.com Link: https://lore.kernel.org/r/20201210165510.76b917e5@xhacker.debian Signed-off-by: Ulf Hansson ulf.hansson@linaro.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/mmc/host/sdhci-of-dwcmshc.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c index a5137845a1c7..6793fb8fe976 100644 --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c @@ -58,6 +58,7 @@ static const struct sdhci_ops sdhci_dwcmshc_ops = { static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = { .ops = &sdhci_dwcmshc_ops, .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, };
static int dwcmshc_probe(struct platform_device *pdev)
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Hans de Goede hdegoede@redhat.com
[ Upstream commit fc6a31b00739356809dd566e16f2c4325a63285d ]
The ITE8568 EC on the Voyo Winpad A15 presents itself as an I2C-HID attached keyboard and mouse (which seems to never send any events).
This needs the I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirk, otherwise we get the following errors:
[ 3688.770850] i2c_hid i2c-ITE8568:00: failed to reset device. [ 3694.915865] i2c_hid i2c-ITE8568:00: failed to reset device. [ 3701.059717] i2c_hid i2c-ITE8568:00: failed to reset device. [ 3707.205944] i2c_hid i2c-ITE8568:00: failed to reset device. [ 3708.227940] i2c_hid i2c-ITE8568:00: can't add hid device: -61 [ 3708.236518] i2c_hid: probe of i2c-ITE8568:00 failed with error -61
Which leads to a significant boot delay.
Signed-off-by: Hans de Goede hdegoede@redhat.com Signed-off-by: Jiri Kosina jkosina@suse.cz Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/hid/hid-ids.h | 2 ++ drivers/hid/i2c-hid/i2c-hid-core.c | 2 ++ 2 files changed, 4 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index fc499c9039a0..d004f5645b30 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -641,6 +641,8 @@ #define USB_DEVICE_ID_INNEX_GENESIS_ATARI 0x4745
#define USB_VENDOR_ID_ITE 0x048d +#define I2C_VENDOR_ID_ITE 0x103c +#define I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15 0x184f #define USB_DEVICE_ID_ITE_LENOVO_YOGA 0x8386 #define USB_DEVICE_ID_ITE_LENOVO_YOGA2 0x8350 #define I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720 0x837a diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c index 592176aff027..96898983db99 100644 --- a/drivers/hid/i2c-hid/i2c-hid-core.c +++ b/drivers/hid/i2c-hid/i2c-hid-core.c @@ -173,6 +173,8 @@ static const struct i2c_hid_quirks { I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV }, { I2C_VENDOR_ID_HANTICK, I2C_PRODUCT_ID_HANTICK_5288, I2C_HID_QUIRK_NO_IRQ_AFTER_RESET }, + { I2C_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_VOYO_WINPAD_A15, + I2C_HID_QUIRK_NO_IRQ_AFTER_RESET }, { I2C_VENDOR_ID_RAYDIUM, I2C_PRODUCT_ID_RAYDIUM_3118, I2C_HID_QUIRK_NO_IRQ_AFTER_RESET }, { USB_VENDOR_ID_ELAN, HID_ANY_ID,
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Julian Einwag jeinwag-nvme@marcapo.com
[ Upstream commit 5e112d3fb89703a4981ded60561b5647db3693bf ]
The kernel fails to fully detect these SSDs, only the character devices are present:
[ 10.785605] nvme nvme0: pci function 0000:04:00.0 [ 10.876787] nvme nvme1: pci function 0000:81:00.0 [ 13.198614] nvme nvme0: missing or invalid SUBNQN field. [ 13.198658] nvme nvme1: missing or invalid SUBNQN field. [ 13.206896] nvme nvme0: Shutdown timeout set to 20 seconds [ 13.215035] nvme nvme1: Shutdown timeout set to 20 seconds [ 13.225407] nvme nvme0: 16/0/0 default/read/poll queues [ 13.233602] nvme nvme1: 16/0/0 default/read/poll queues [ 13.239627] nvme nvme0: Identify Descriptors failed (8194) [ 13.246315] nvme nvme1: Identify Descriptors failed (8194)
Adding the NVME_QUIRK_NO_NS_DESC_LIST fixes this problem.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205679 Signed-off-by: Julian Einwag jeinwag-nvme@marcapo.com Signed-off-by: Christoph Hellwig hch@lst.de Reviewed-by: Keith Busch kbusch@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/nvme/host/pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index abc342db3b33..197a5cd253c3 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3164,7 +3164,8 @@ static const struct pci_device_id nvme_id_table[] = { { PCI_DEVICE(0x126f, 0x2263), /* Silicon Motion unidentified */ .driver_data = NVME_QUIRK_NO_NS_DESC_LIST, }, { PCI_DEVICE(0x1bb1, 0x0100), /* Seagate Nytro Flash Storage */ - .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, }, + .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY | + NVME_QUIRK_NO_NS_DESC_LIST, }, { PCI_DEVICE(0x1c58, 0x0003), /* HGST adapter */ .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, }, { PCI_DEVICE(0x1c58, 0x0023), /* WDC SN200 adapter */
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
From: Pascal Terjan pterjan@google.com
[ Upstream commit 6e6a6828c517fb6819479bf5187df5f39084eb9e ]
Add the NVME_QUIRK_NO_NS_DESC_LIST and NVME_QUIRK_IGNORE_DEV_SUBNQN quirks for this buggy device.
Reported and tested in https://bugs.mageia.org/show_bug.cgi?id=28417
Signed-off-by: Pascal Terjan pterjan@google.com Signed-off-by: Christoph Hellwig hch@lst.de Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/nvme/host/pci.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 197a5cd253c3..fc18738dcf8f 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3179,6 +3179,9 @@ static const struct pci_device_id nvme_id_table[] = { NVME_QUIRK_IGNORE_DEV_SUBNQN, }, { PCI_DEVICE(0x1987, 0x5016), /* Phison E16 */ .driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN, }, + { PCI_DEVICE(0x1b4b, 0x1092), /* Lexar 256 GB SSD */ + .driver_data = NVME_QUIRK_NO_NS_DESC_LIST | + NVME_QUIRK_IGNORE_DEV_SUBNQN, }, { PCI_DEVICE(0x1d1d, 0x1f1f), /* LighNVM qemu device */ .driver_data = NVME_QUIRK_LIGHTNVM, }, { PCI_DEVICE(0x1d1d, 0x2807), /* CNEX WL */
On 3/10/21 6:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
Tested-by: Shuah Khan skhan@linuxfoundation.org
thanks, -- Shuah
On Wed, Mar 10, 2021 at 02:24:12PM +0100, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +0000. Anything received after that time might be too late.
Build results: total: 157 pass: 157 fail: 0 Qemu test results: total: 431 pass: 431 fail: 0
Tested-by: Guenter Roeck linux@roeck-us.net
Guenter
On Wed, Mar 10, 2021 at 02:24:12PM +0100, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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.
Compiled and booted with no regressions on x86_64.
Tested-by: Ross Schmidt ross.schm.dev@gmail.com
thanks,
Ross
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged. Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
thanks,
greg k-h
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement? -- Florian
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Is 4.19 also failing for you now?
thanks,
greg k-h
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
From: Florian Fainelli f.fainelli@gmail.com Date: Thu, 11 Mar 2021 09:41:27 -0800
Hi Florian,
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
This patch was added to stable trees by Pali, not me (link: [0]). I added him to Ccs, so you can ask him. As you noted correctly, I don't work on/with stable releases.
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test. -- Florian
[0] https://lore.kernel.org/stable/20210308175757.8373-1-pali@kernel.org
Thanks, Al
On Friday 12 March 2021 12:54:18 Alexander Lobakin wrote:
From: Florian Fainelli f.fainelli@gmail.com Date: Thu, 11 Mar 2021 09:41:27 -0800
Hi Florian,
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote: > From: Greg Kroah-Hartman gregkh@linuxfoundation.org > > This is the start of the stable review cycle for the 5.4.105 release. > There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... > or in the git tree and branch at: > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y > and the diffstat can be found below. > > thanks, > > greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Hello Florian!
I have heavily tested this change backported to 4.19 and 5.4 kernels and it radically increased network performance on DSA setup with mv88e6xxx switch. I have not seen any stability issues. So based on tests I have sent backport request as patch is relatively small, is already in mainline kernel and can be cleanly applied to 4.19 and 5.4 kernel.
But if this patch really cause issues, I think based on 'no regression' rule we have no other options, just to drop this patch from stable queue.
Greg, please drop this patch (for now).
But I would be really interested why this patch does not cause any regression with mainline kernel and cause with 5.4...
Florian, which DSA driver and hardware is causing this issue?
Could you checkout kernel at e131a5634830047923c694b4ce0c3b31745ff01b commit and test if this issue happen too?
This patch was added to stable trees by Pali, not me (link: [0]). I added him to Ccs, so you can ask him. As you noted correctly, I don't work on/with stable releases.
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
Ok, if you have some results let me know.
-- Florian
[0] https://lore.kernel.org/stable/20210308175757.8373-1-pali@kernel.org
Thanks, Al
On 3/15/2021 2:50 AM, Pali Rohár wrote:
On Friday 12 March 2021 12:54:18 Alexander Lobakin wrote:
From: Florian Fainelli f.fainelli@gmail.com Date: Thu, 11 Mar 2021 09:41:27 -0800
Hi Florian,
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote: > +Alex, > > On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote: >> From: Greg Kroah-Hartman gregkh@linuxfoundation.org >> >> This is the start of the stable review cycle for the 5.4.105 release. >> There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... >> or in the git tree and branch at: >> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y >> and the diffstat can be found below. >> >> thanks, >> >> greg k-h > > I believe you need to drop "net: dsa: add GRO support via gro_cells" as > it causes the following kernel panic on a DSA-enabled platform: > > Configuring rgmii_2 interface > [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring > for fixed/rgmii-txid link mode > [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 > [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - > 1Gbps/Full - flow control off > [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready > Configuring sit0 interface > [ 10.254346] 8<--- cut here --- > [ 10.257438] Unable to handle kernel paging request at virtual address > d6df6190 > [ 10.264685] pgd = (ptrval) > [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 > [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM > [ 10.277661] Modules linked in: > [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted > 5.4.105-1.0pre-geff642e2af2b #4 > [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) > [ 10.294292] PC is at gro_cells_receive+0x90/0x11c > [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 > [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 > [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 > [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c > [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 > [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc > [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM > Segment user > [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd > [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) > [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) > [ 10.356434] 3cc0: c8adc300 > c4927000 c1d33d04 c1d33ce8 > [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 > 00000000 c1d33d5c c1d33d08 > [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 > c89015c0 04b87700 c89015c0 > [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 > c8adc300 c89015c0 00000000 > [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac > c1d33d60 c0a0b5c0 c0a0b180 > [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c > c1d33d80 c029daf8 00976ec2 > [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 > 00000001 0000016c 00000162 > [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 > c8adc300 c1d33dfc c1d33dc8 > [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc > c1d33de0 c8901540 c8adc300 > [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 > c1d33e00 c083df00 c0a0c4fc > [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 > c0fbd9cc c0fbd9e0 c0fbd98c > [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 > 00000000 00000000 00000000 > [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 > 00000040 c22b07e4 0000012c > [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c > c083dafc d051ad80 c2204cc8 > [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 > c2203d00 c022bc70 c1d33e9c > [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 > c220308c 00000003 c1d32000 > [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 > c1d33ee0 c020238c c0a0c6cc > [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 > fffb942f c206b2e4 c2076040 > [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 > 00000004 c90c9500 ffffe000 > [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 > 00000000 c1d33f5c c1d33f48 > [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 > c1d33f60 c027feb4 c022bb88 > [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 > d1003000 c1d33fac c1d33f88 > [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff > 30c5387d 30c5387d 00000000 > [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 > b6f32094 62632e73 62740000 > [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 > 00000000 00000000 00000006 > [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 > ffffffff 00000000 00000000 > [ 10.569508] Backtrace: > [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] > (dsa_switch_rcv+0x120/0x1d4) > [ 10.580338] r5:c4927000 r4:c8adc300 > [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] > (__netif_receive_skb_list_core+0x218/0x238) > [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 > [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from > [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) > [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 > r6:00000000 r5:c89015c0 > [ 10.617755] r4:c8adc300 > [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from > [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) > [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 > r6:c8901540 r5:c89015c0 > [ 10.638342] r4:c8901540 > [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] > (napi_complete_done+0x170/0x1d0) > [ 10.650123] r5:c8adc300 r4:00000000 > [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] > (bcm_sysport_poll+0x410/0x4b4) > [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e > r5:c8adc300 r4:c8901540 > [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] > (net_rx_action+0x28c/0x44c) > [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 > r6:00000040 r5:00000001 > [ 10.686146] r4:c8901540 > [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] > (__do_softirq+0x134/0x414) > [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 > r6:c1d32000 r5:00000003 > [ 10.704387] r4:c220308c > [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] > (irq_exit+0xf4/0x100) > [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 > r6:00000000 r5:00000000 > [ 10.722104] r4:ffffe000 > [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] > (__handle_domain_irq+0x70/0xc4) > [ 10.732497] r5:00000000 r4:c2075fbc > [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] > (gic_handle_irq+0x5c/0xa0) > [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c > r5:c220565c r4:c226d668 > [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] > (__irq_usr+0x4c/0x60) > [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) > [ 10.764776] 3fa0: b6ec1778 > b6f32094 62632e73 62740000 > [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 > 00000000 00000000 00000006 > [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff > [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff > r5:000f0030 r4:b6f1e0b6 > [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) > [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- > [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt > [ 10.812678] CPU2: stopping > [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D > 5.4.105-1.0pre-geff642e2af2b #4 > [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) > [ 10.830573] Backtrace: > [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] > (show_stack+0x20/0x24) > [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 > [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] > (dump_stack+0xb8/0xe4) > [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] > (handle_IPI+0x344/0x3cc) > [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 > r6:c22b0744 r5:00000004 > [ 10.868807] r4:c22ce308 r3:00976ec2 > [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] > (gic_handle_irq+0x9c/0xa0) > [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 > r6:d100200c r5:c220565c > [ 10.887829] r4:c226d668 > [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] > (__irq_svc+0x5c/0x7c) > [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) > [ 10.902934] 1f00: > c020a47c 00000000 > [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 > 00000004 00000000 c20757b0 > [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 > c020a480 600c0013 ffffffff > [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff > r5:600c0013 r4:c020a480 > [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] > (default_idle_call+0x34/0x48) > [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] > (do_idle+0x1d4/0x2c0) > [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] > (cpu_startup_entry+0x28/0x2c) > [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 > r6:30c0387d r5:00000002 > [ 10.966598] r4:0000008a > [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] > (secondary_start_kernel+0x17c/0x1a0) > [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] > (0x20270c) > [ 10.985447] r5:00000000 r4:090eaa40 > [ 10.989032] CPU3: stopping > [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D > 5.4.105-1.0pre-geff642e2af2b #4 > [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) > [ 11.006924] Backtrace: > [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] > (show_stack+0x20/0x24) > [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 > [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] > (dump_stack+0xb8/0xe4) > [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] > (handle_IPI+0x344/0x3cc) > [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 > r6:c22b0744 r5:00000004 > [ 11.045154] r4:c22ce308 r3:00976ec2 > [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] > (gic_handle_irq+0x9c/0xa0) > [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 > r6:d100200c r5:c220565c > [ 11.064176] r4:c226d668 > [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] > (__irq_svc+0x5c/0x7c) > [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) > [ 11.079280] 3f00: > c020a47c 00000000 > [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 > 00000008 00000000 c20757b0 > [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 > c020a480 600f0013 ffffffff > [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff > r5:600f0013 r4:c020a480 > [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] > (default_idle_call+0x34/0x48) > [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] > (do_idle+0x1d4/0x2c0) > [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] > (cpu_startup_entry+0x28/0x2c) > [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 > r6:30c0387d r5:00000003 > [ 11.142939] r4:0000008a > [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] > (secondary_start_kernel+0x17c/0x1a0) > [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] > (0x20270c) > [ 11.161788] r5:00000000 r4:090eaa40 > [ 11.165372] CPU1: stopping > [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D > 5.4.105-1.0pre-geff642e2af2b #4 > [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) > [ 11.183264] Backtrace: > [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] > (show_stack+0x20/0x24) > [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 > [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] > (dump_stack+0xb8/0xe4) > [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] > (handle_IPI+0x344/0x3cc) > [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 > r6:c22b0744 r5:00000004 > [ 11.221491] r4:c22ce308 r3:00976ec2 > [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] > (gic_handle_irq+0x9c/0xa0) > [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 > r6:d100200c r5:c220565c > [ 11.240512] r4:c226d668 > [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] > (__irq_svc+0x5c/0x7c) > [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) > [ 11.255617] ff00: > c020a47c 00000000 > [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 > 00000002 00000000 c20757b0 > [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 > c020a480 600c0013 ffffffff > [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff > r5:600c0013 r4:c020a480 > [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] > (default_idle_call+0x34/0x48) > [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] > (do_idle+0x1d4/0x2c0) > [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] > (cpu_startup_entry+0x28/0x2c) > [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 > r6:30c0387d r5:00000001 > [ 11.319275] r4:0000008a > [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] > (secondary_start_kernel+0x17c/0x1a0) > [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] > (0x20270c) > [ 11.338124] r5:00000000 r4:090eaa40 > [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in > interrupt ]--- > > it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Hello Florian!
I have heavily tested this change backported to 4.19 and 5.4 kernels and it radically increased network performance on DSA setup with mv88e6xxx switch. I have not seen any stability issues. So based on tests I have sent backport request as patch is relatively small, is already in mainline kernel and can be cleanly applied to 4.19 and 5.4 kernel.
But if this patch really cause issues, I think based on 'no regression' rule we have no other options, just to drop this patch from stable queue.
Greg, please drop this patch (for now).
But I would be really interested why this patch does not cause any regression with mainline kernel and cause with 5.4...
Florian, which DSA driver and hardware is causing this issue?
This is using drivers/net/dsa/bcm_sf2.c for the switch driver (which uses b53 as the library for switch operations) and drivers/net/ethernet/broadcom/bcmsysport.c for the DSA "master".
Could you checkout kernel at e131a5634830047923c694b4ce0c3b31745ff01b commit and test if this issue happen too?
This patch was added to stable trees by Pali, not me (link: [0]). I added him to Ccs, so you can ask him. As you noted correctly, I don't work on/with stable releases.
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
Ok, if you have some results let me know.
I did test 4.19 eventually and was not able to reproduce the problem, and have not been able to reproduce the problem on 5.4 a second time around and ever since merging v5.4.105 in the past couple weeks.
I would consider this a non-issue and just a fluke. The board that exposed the problem is known for having power distribution issues when an aggressive CPU frequency scaling governor like schedutil is used. And it makes sense that the CPU frequency would be changed when traffic picks up. The boards have since been hard coded to the "performance" governor, that is the problematic ones at least.
On Tuesday 23 March 2021 10:20:27 Florian Fainelli wrote:
On 3/15/2021 2:50 AM, Pali Rohár wrote:
On Friday 12 March 2021 12:54:18 Alexander Lobakin wrote:
From: Florian Fainelli f.fainelli@gmail.com Date: Thu, 11 Mar 2021 09:41:27 -0800
Hi Florian,
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote: > On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote: >> +Alex, >> >> On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote: >>> From: Greg Kroah-Hartman gregkh@linuxfoundation.org >>> >>> This is the start of the stable review cycle for the 5.4.105 release. >>> There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... >>> or in the git tree and branch at: >>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y >>> and the diffstat can be found below. >>> >>> thanks, >>> >>> greg k-h >> >> I believe you need to drop "net: dsa: add GRO support via gro_cells" as >> it causes the following kernel panic on a DSA-enabled platform: >> >> Configuring rgmii_2 interface >> [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring >> for fixed/rgmii-txid link mode >> [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 >> [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - >> 1Gbps/Full - flow control off >> [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready >> Configuring sit0 interface >> [ 10.254346] 8<--- cut here --- >> [ 10.257438] Unable to handle kernel paging request at virtual address >> d6df6190 >> [ 10.264685] pgd = (ptrval) >> [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 >> [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM >> [ 10.277661] Modules linked in: >> [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 10.294292] PC is at gro_cells_receive+0x90/0x11c >> [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 >> [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 >> [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 >> [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c >> [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 >> [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc >> [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM >> Segment user >> [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd >> [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) >> [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) >> [ 10.356434] 3cc0: c8adc300 >> c4927000 c1d33d04 c1d33ce8 >> [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 >> 00000000 c1d33d5c c1d33d08 >> [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 >> c89015c0 04b87700 c89015c0 >> [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 >> c8adc300 c89015c0 00000000 >> [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac >> c1d33d60 c0a0b5c0 c0a0b180 >> [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c >> c1d33d80 c029daf8 00976ec2 >> [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 >> 00000001 0000016c 00000162 >> [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 >> c8adc300 c1d33dfc c1d33dc8 >> [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc >> c1d33de0 c8901540 c8adc300 >> [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 >> c1d33e00 c083df00 c0a0c4fc >> [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 >> c0fbd9cc c0fbd9e0 c0fbd98c >> [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 >> 00000000 00000000 00000000 >> [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 >> 00000040 c22b07e4 0000012c >> [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c >> c083dafc d051ad80 c2204cc8 >> [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 >> c2203d00 c022bc70 c1d33e9c >> [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 >> c220308c 00000003 c1d32000 >> [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 >> c1d33ee0 c020238c c0a0c6cc >> [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 >> fffb942f c206b2e4 c2076040 >> [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 >> 00000004 c90c9500 ffffe000 >> [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 >> 00000000 c1d33f5c c1d33f48 >> [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 >> c1d33f60 c027feb4 c022bb88 >> [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 >> d1003000 c1d33fac c1d33f88 >> [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff >> 30c5387d 30c5387d 00000000 >> [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 >> b6f32094 62632e73 62740000 >> [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 >> 00000000 00000000 00000006 >> [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 >> ffffffff 00000000 00000000 >> [ 10.569508] Backtrace: >> [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] >> (dsa_switch_rcv+0x120/0x1d4) >> [ 10.580338] r5:c4927000 r4:c8adc300 >> [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] >> (__netif_receive_skb_list_core+0x218/0x238) >> [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 >> [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from >> [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) >> [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 >> r6:00000000 r5:c89015c0 >> [ 10.617755] r4:c8adc300 >> [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from >> [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) >> [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 >> r6:c8901540 r5:c89015c0 >> [ 10.638342] r4:c8901540 >> [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] >> (napi_complete_done+0x170/0x1d0) >> [ 10.650123] r5:c8adc300 r4:00000000 >> [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] >> (bcm_sysport_poll+0x410/0x4b4) >> [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e >> r5:c8adc300 r4:c8901540 >> [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] >> (net_rx_action+0x28c/0x44c) >> [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 >> r6:00000040 r5:00000001 >> [ 10.686146] r4:c8901540 >> [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] >> (__do_softirq+0x134/0x414) >> [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 >> r6:c1d32000 r5:00000003 >> [ 10.704387] r4:c220308c >> [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] >> (irq_exit+0xf4/0x100) >> [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 >> r6:00000000 r5:00000000 >> [ 10.722104] r4:ffffe000 >> [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] >> (__handle_domain_irq+0x70/0xc4) >> [ 10.732497] r5:00000000 r4:c2075fbc >> [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] >> (gic_handle_irq+0x5c/0xa0) >> [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c >> r5:c220565c r4:c226d668 >> [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] >> (__irq_usr+0x4c/0x60) >> [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) >> [ 10.764776] 3fa0: b6ec1778 >> b6f32094 62632e73 62740000 >> [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 >> 00000000 00000000 00000006 >> [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff >> [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff >> r5:000f0030 r4:b6f1e0b6 >> [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) >> [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- >> [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt >> [ 10.812678] CPU2: stopping >> [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 10.830573] Backtrace: >> [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 >> [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 >> r6:c22b0744 r5:00000004 >> [ 10.868807] r4:c22ce308 r3:00976ec2 >> [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 >> r6:d100200c r5:c220565c >> [ 10.887829] r4:c226d668 >> [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) >> [ 10.902934] 1f00: >> c020a47c 00000000 >> [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 >> 00000004 00000000 c20757b0 >> [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 >> c020a480 600c0013 ffffffff >> [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff >> r5:600c0013 r4:c020a480 >> [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000002 >> [ 10.966598] r4:0000008a >> [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 10.985447] r5:00000000 r4:090eaa40 >> [ 10.989032] CPU3: stopping >> [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 11.006924] Backtrace: >> [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 >> [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 >> r6:c22b0744 r5:00000004 >> [ 11.045154] r4:c22ce308 r3:00976ec2 >> [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 >> r6:d100200c r5:c220565c >> [ 11.064176] r4:c226d668 >> [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) >> [ 11.079280] 3f00: >> c020a47c 00000000 >> [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 >> 00000008 00000000 c20757b0 >> [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 >> c020a480 600f0013 ffffffff >> [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff >> r5:600f0013 r4:c020a480 >> [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000003 >> [ 11.142939] r4:0000008a >> [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 11.161788] r5:00000000 r4:090eaa40 >> [ 11.165372] CPU1: stopping >> [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 11.183264] Backtrace: >> [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 >> [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 >> r6:c22b0744 r5:00000004 >> [ 11.221491] r4:c22ce308 r3:00976ec2 >> [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 >> r6:d100200c r5:c220565c >> [ 11.240512] r4:c226d668 >> [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) >> [ 11.255617] ff00: >> c020a47c 00000000 >> [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 >> 00000002 00000000 c20757b0 >> [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 >> c020a480 600c0013 ffffffff >> [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff >> r5:600c0013 r4:c020a480 >> [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000001 >> [ 11.319275] r4:0000008a >> [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 11.338124] r5:00000000 r4:090eaa40 >> [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in >> interrupt ]--- >> >> it is not marked as fixing anything so I wonder how it landed in stable? > > It was requested to be merged.
OK.
> Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Hello Florian!
I have heavily tested this change backported to 4.19 and 5.4 kernels and it radically increased network performance on DSA setup with mv88e6xxx switch. I have not seen any stability issues. So based on tests I have sent backport request as patch is relatively small, is already in mainline kernel and can be cleanly applied to 4.19 and 5.4 kernel.
But if this patch really cause issues, I think based on 'no regression' rule we have no other options, just to drop this patch from stable queue.
Greg, please drop this patch (for now).
But I would be really interested why this patch does not cause any regression with mainline kernel and cause with 5.4...
Florian, which DSA driver and hardware is causing this issue?
This is using drivers/net/dsa/bcm_sf2.c for the switch driver (which uses b53 as the library for switch operations) and drivers/net/ethernet/broadcom/bcmsysport.c for the DSA "master".
Could you checkout kernel at e131a5634830047923c694b4ce0c3b31745ff01b commit and test if this issue happen too?
This patch was added to stable trees by Pali, not me (link: [0]). I added him to Ccs, so you can ask him. As you noted correctly, I don't work on/with stable releases.
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
Ok, if you have some results let me know.
I did test 4.19 eventually and was not able to reproduce the problem, and have not been able to reproduce the problem on 5.4 a second time around and ever since merging v5.4.105 in the past couple weeks.
Ok, fine! Nice to have this information.
I would consider this a non-issue and just a fluke. The board that exposed the problem is known for having power distribution issues when an aggressive CPU frequency scaling governor like schedutil is used. And it makes sense that the CPU frequency would be changed when traffic picks up. The boards have since been hard coded to the "performance" governor, that is the problematic ones at least. -- Florian
Makes sense. This patch increase bandwidth throw DSA ports so it can also increase CPU usage or frequency. And if board has CPU instability issues then increased CPU usage can hit this issue with higher probability. But in this case patch itself should be safe-
Thank you for sharing results of your investigation. Original DSA patch in this case can be backported into stable kernels and boards with DSA switches can benefit from better performance.
On Tue, Mar 23, 2021 at 10:20:27AM -0700, Florian Fainelli wrote:
On 3/15/2021 2:50 AM, Pali Rohár wrote:
On Friday 12 March 2021 12:54:18 Alexander Lobakin wrote:
From: Florian Fainelli f.fainelli@gmail.com Date: Thu, 11 Mar 2021 09:41:27 -0800
Hi Florian,
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote: > On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote: >> +Alex, >> >> On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote: >>> From: Greg Kroah-Hartman gregkh@linuxfoundation.org >>> >>> This is the start of the stable review cycle for the 5.4.105 release. >>> There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... >>> or in the git tree and branch at: >>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y >>> and the diffstat can be found below. >>> >>> thanks, >>> >>> greg k-h >> >> I believe you need to drop "net: dsa: add GRO support via gro_cells" as >> it causes the following kernel panic on a DSA-enabled platform: >> >> Configuring rgmii_2 interface >> [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring >> for fixed/rgmii-txid link mode >> [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 >> [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - >> 1Gbps/Full - flow control off >> [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready >> Configuring sit0 interface >> [ 10.254346] 8<--- cut here --- >> [ 10.257438] Unable to handle kernel paging request at virtual address >> d6df6190 >> [ 10.264685] pgd = (ptrval) >> [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 >> [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM >> [ 10.277661] Modules linked in: >> [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 10.294292] PC is at gro_cells_receive+0x90/0x11c >> [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 >> [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 >> [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 >> [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c >> [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 >> [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc >> [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM >> Segment user >> [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd >> [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) >> [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) >> [ 10.356434] 3cc0: c8adc300 >> c4927000 c1d33d04 c1d33ce8 >> [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 >> 00000000 c1d33d5c c1d33d08 >> [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 >> c89015c0 04b87700 c89015c0 >> [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 >> c8adc300 c89015c0 00000000 >> [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac >> c1d33d60 c0a0b5c0 c0a0b180 >> [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c >> c1d33d80 c029daf8 00976ec2 >> [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 >> 00000001 0000016c 00000162 >> [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 >> c8adc300 c1d33dfc c1d33dc8 >> [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc >> c1d33de0 c8901540 c8adc300 >> [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 >> c1d33e00 c083df00 c0a0c4fc >> [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 >> c0fbd9cc c0fbd9e0 c0fbd98c >> [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 >> 00000000 00000000 00000000 >> [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 >> 00000040 c22b07e4 0000012c >> [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c >> c083dafc d051ad80 c2204cc8 >> [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 >> c2203d00 c022bc70 c1d33e9c >> [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 >> c220308c 00000003 c1d32000 >> [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 >> c1d33ee0 c020238c c0a0c6cc >> [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 >> fffb942f c206b2e4 c2076040 >> [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 >> 00000004 c90c9500 ffffe000 >> [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 >> 00000000 c1d33f5c c1d33f48 >> [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 >> c1d33f60 c027feb4 c022bb88 >> [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 >> d1003000 c1d33fac c1d33f88 >> [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff >> 30c5387d 30c5387d 00000000 >> [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 >> b6f32094 62632e73 62740000 >> [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 >> 00000000 00000000 00000006 >> [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 >> ffffffff 00000000 00000000 >> [ 10.569508] Backtrace: >> [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] >> (dsa_switch_rcv+0x120/0x1d4) >> [ 10.580338] r5:c4927000 r4:c8adc300 >> [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] >> (__netif_receive_skb_list_core+0x218/0x238) >> [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 >> [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from >> [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) >> [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 >> r6:00000000 r5:c89015c0 >> [ 10.617755] r4:c8adc300 >> [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from >> [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) >> [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 >> r6:c8901540 r5:c89015c0 >> [ 10.638342] r4:c8901540 >> [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] >> (napi_complete_done+0x170/0x1d0) >> [ 10.650123] r5:c8adc300 r4:00000000 >> [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] >> (bcm_sysport_poll+0x410/0x4b4) >> [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e >> r5:c8adc300 r4:c8901540 >> [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] >> (net_rx_action+0x28c/0x44c) >> [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 >> r6:00000040 r5:00000001 >> [ 10.686146] r4:c8901540 >> [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] >> (__do_softirq+0x134/0x414) >> [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 >> r6:c1d32000 r5:00000003 >> [ 10.704387] r4:c220308c >> [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] >> (irq_exit+0xf4/0x100) >> [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 >> r6:00000000 r5:00000000 >> [ 10.722104] r4:ffffe000 >> [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] >> (__handle_domain_irq+0x70/0xc4) >> [ 10.732497] r5:00000000 r4:c2075fbc >> [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] >> (gic_handle_irq+0x5c/0xa0) >> [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c >> r5:c220565c r4:c226d668 >> [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] >> (__irq_usr+0x4c/0x60) >> [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) >> [ 10.764776] 3fa0: b6ec1778 >> b6f32094 62632e73 62740000 >> [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 >> 00000000 00000000 00000006 >> [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff >> [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff >> r5:000f0030 r4:b6f1e0b6 >> [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) >> [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- >> [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt >> [ 10.812678] CPU2: stopping >> [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 10.830573] Backtrace: >> [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 >> [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 >> r6:c22b0744 r5:00000004 >> [ 10.868807] r4:c22ce308 r3:00976ec2 >> [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 >> r6:d100200c r5:c220565c >> [ 10.887829] r4:c226d668 >> [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) >> [ 10.902934] 1f00: >> c020a47c 00000000 >> [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 >> 00000004 00000000 c20757b0 >> [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 >> c020a480 600c0013 ffffffff >> [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff >> r5:600c0013 r4:c020a480 >> [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000002 >> [ 10.966598] r4:0000008a >> [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 10.985447] r5:00000000 r4:090eaa40 >> [ 10.989032] CPU3: stopping >> [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 11.006924] Backtrace: >> [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 >> [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 >> r6:c22b0744 r5:00000004 >> [ 11.045154] r4:c22ce308 r3:00976ec2 >> [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 >> r6:d100200c r5:c220565c >> [ 11.064176] r4:c226d668 >> [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) >> [ 11.079280] 3f00: >> c020a47c 00000000 >> [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 >> 00000008 00000000 c20757b0 >> [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 >> c020a480 600f0013 ffffffff >> [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff >> r5:600f0013 r4:c020a480 >> [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000003 >> [ 11.142939] r4:0000008a >> [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 11.161788] r5:00000000 r4:090eaa40 >> [ 11.165372] CPU1: stopping >> [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D >> 5.4.105-1.0pre-geff642e2af2b #4 >> [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) >> [ 11.183264] Backtrace: >> [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] >> (show_stack+0x20/0x24) >> [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 >> [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] >> (dump_stack+0xb8/0xe4) >> [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] >> (handle_IPI+0x344/0x3cc) >> [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 >> r6:c22b0744 r5:00000004 >> [ 11.221491] r4:c22ce308 r3:00976ec2 >> [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] >> (gic_handle_irq+0x9c/0xa0) >> [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 >> r6:d100200c r5:c220565c >> [ 11.240512] r4:c226d668 >> [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] >> (__irq_svc+0x5c/0x7c) >> [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) >> [ 11.255617] ff00: >> c020a47c 00000000 >> [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 >> 00000002 00000000 c20757b0 >> [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 >> c020a480 600c0013 ffffffff >> [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff >> r5:600c0013 r4:c020a480 >> [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] >> (default_idle_call+0x34/0x48) >> [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] >> (do_idle+0x1d4/0x2c0) >> [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] >> (cpu_startup_entry+0x28/0x2c) >> [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 >> r6:30c0387d r5:00000001 >> [ 11.319275] r4:0000008a >> [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] >> (secondary_start_kernel+0x17c/0x1a0) >> [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] >> (0x20270c) >> [ 11.338124] r5:00000000 r4:090eaa40 >> [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in >> interrupt ]--- >> >> it is not marked as fixing anything so I wonder how it landed in stable? > > It was requested to be merged.
OK.
> Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Hello Florian!
I have heavily tested this change backported to 4.19 and 5.4 kernels and it radically increased network performance on DSA setup with mv88e6xxx switch. I have not seen any stability issues. So based on tests I have sent backport request as patch is relatively small, is already in mainline kernel and can be cleanly applied to 4.19 and 5.4 kernel.
But if this patch really cause issues, I think based on 'no regression' rule we have no other options, just to drop this patch from stable queue.
Greg, please drop this patch (for now).
But I would be really interested why this patch does not cause any regression with mainline kernel and cause with 5.4...
Florian, which DSA driver and hardware is causing this issue?
This is using drivers/net/dsa/bcm_sf2.c for the switch driver (which uses b53 as the library for switch operations) and drivers/net/ethernet/broadcom/bcmsysport.c for the DSA "master".
Could you checkout kernel at e131a5634830047923c694b4ce0c3b31745ff01b commit and test if this issue happen too?
This patch was added to stable trees by Pali, not me (link: [0]). I added him to Ccs, so you can ask him. As you noted correctly, I don't work on/with stable releases.
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
Ok, if you have some results let me know.
I did test 4.19 eventually and was not able to reproduce the problem, and have not been able to reproduce the problem on 5.4 a second time around and ever since merging v5.4.105 in the past couple weeks.
I would consider this a non-issue and just a fluke. The board that exposed the problem is known for having power distribution issues when an aggressive CPU frequency scaling governor like schedutil is used. And it makes sense that the CPU frequency would be changed when traffic picks up. The boards have since been hard coded to the "performance" governor, that is the problematic ones at least.
THanks for tracking this down and letting us know.
greg k-h
On 3/11/21 9:41 AM, Florian Fainelli wrote:
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
I have not been able to reproduce this failure since merging the official v5.4.105 tag (more on that below), and 4.19 did not seem to trigger the problem either after applying the necessary patches to bring up the Ethernet PHY, switch and controller's clocks.
So maybe this was just a fluke, I know our CPU frequency scaling driver may be too aggressive and the boards may suffer from power distribution problems leading to crashes, although I have never seen anything like that before, and the call trace was pretty obvious as to what had changed compared to v5.4.104 which had no such issues.
So I guess we are good, until we are not. It concerns me however that this (latent at the time) issue was reported at Wed, 10 Mar 2021 20:19:48 -0800 which is well before the deadline of Fri, 12 Mar 2021 13:23:09 +0000, and yet, the v5.4.105 was announced on Thu, 11 Mar 2021 05:33:31 -0800 (PST) and it went through with that patch nonetheless.
On Fri, Mar 12, 2021 at 02:55:49PM -0800, Florian Fainelli wrote:
On 3/11/21 9:41 AM, Florian Fainelli wrote:
On 3/11/21 9:40 AM, Greg KH wrote:
On Thu, Mar 11, 2021 at 09:23:56AM -0800, Florian Fainelli wrote:
On 3/11/21 5:08 AM, Greg KH wrote:
On Wed, Mar 10, 2021 at 08:19:45PM -0800, Florian Fainelli wrote:
+Alex,
On 3/10/2021 5:24 AM, gregkh@linuxfoundation.org wrote: > From: Greg Kroah-Hartman gregkh@linuxfoundation.org > > This is the start of the stable review cycle for the 5.4.105 release. > There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... > or in the git tree and branch at: > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y > and the diffstat can be found below. > > thanks, > > greg k-h
I believe you need to drop "net: dsa: add GRO support via gro_cells" as it causes the following kernel panic on a DSA-enabled platform:
Configuring rgmii_2 interface [ 10.170527] brcm-sf2 f0b00000.ethernet_switch rgmii_2: configuring for fixed/rgmii-txid link mode [ 10.179597] 8021q: adding VLAN 0 to HW filter on device rgmii_2 [ 10.185608] brcm-sf2 f0b00000.ethernet_switch rgmii_2: Link is Up - 1Gbps/Full - flow control off [ 10.198631] IPv6: ADDRCONF(NETDEV_CHANGE): rgmii_2: link becomes ready Configuring sit0 interface [ 10.254346] 8<--- cut here --- [ 10.257438] Unable to handle kernel paging request at virtual address d6df6190 [ 10.264685] pgd = (ptrval) [ 10.267411] [d6df6190] *pgd=80000000007003, *pmd=00000000 [ 10.272846] Internal error: Oops: 206 [#1] SMP ARM [ 10.277661] Modules linked in: [ 10.280739] CPU: 0 PID: 1886 Comm: sed Not tainted 5.4.105-1.0pre-geff642e2af2b #4 [ 10.288337] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.294292] PC is at gro_cells_receive+0x90/0x11c [ 10.299020] LR is at dsa_switch_rcv+0x120/0x1d4 [ 10.303562] pc : [<c0a57a28>] lr : [<c0b4a65c>] psr: 600f0113 [ 10.309841] sp : c1d33cd0 ip : 000003e8 fp : c1d33ce4 [ 10.315078] r10: c8901000 r9 : c8901000 r8 : c0b4a53c [ 10.320314] r7 : c2208920 r6 : 00000000 r5 : 00000000 r4 : 00004000 [ 10.326855] r3 : d6df6188 r2 : c4927000 r1 : c8adc300 r0 : c22069dc [ 10.333398] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 10.340547] Control: 30c5387d Table: 04ac4c80 DAC: fffffffd [ 10.346307] Process sed (pid: 1886, stack limit = 0x(ptrval)) [ 10.352066] Stack: (0xc1d33cd0 to 0xc1d34000) [ 10.356434] 3cc0: c8adc300 c4927000 c1d33d04 c1d33ce8 [ 10.364631] 3ce0: c0b4a65c c0a579a4 c1d33d24 c2208920 c1d33d24 00000000 c1d33d5c c1d33d08 [ 10.372827] 3d00: c0a0b38c c0b4a548 c021e070 c2204cc8 00000000 c89015c0 04b87700 c89015c0 [ 10.381023] 3d20: c2208920 c1d33d24 c1d33d24 00976ec2 04b87700 c8adc300 c89015c0 00000000 [ 10.389218] 3d40: c1d33d74 c1d32000 00000000 c230742c c1d33dac c1d33d60 c0a0b5c0 c0a0b180 [ 10.397414] 3d60: 00000000 c2204cc8 00000000 c1d33d6c c1d33d6c c1d33d80 c029daf8 00976ec2 [ 10.405610] 3d80: 00000800 c8901540 c89015c0 c8901540 00000000 00000001 0000016c 00000162 [ 10.413805] 3da0: c1d33dc4 c1d33db0 c0a0b7fc c0a0b3b8 00000000 c8adc300 c1d33dfc c1d33dc8 [ 10.422001] 3dc0: c0a0c660 c0a0b7e4 c8901540 c8adc300 c1d33dfc c1d33de0 c8901540 c8adc300 [ 10.430196] 3de0: 0000015e c8901000 00000001 0000016c c1d33e74 c1d33e00 c083df00 c0a0c4fc [ 10.438391] 3e00: 0000012c c22b0f14 c1d33e4c c1d33e18 c0fbd9b8 c0fbd9cc c0fbd9e0 c0fbd98c [ 10.446586] 3e20: 00000001 00000040 c8901500 00000001 00000000 00000000 00000000 00000000 [ 10.454780] 3e40: 00000000 00000000 c02f65a0 c8901540 00000001 00000040 c22b07e4 0000012c [ 10.462975] 3e60: d1003000 fffb942f c1d33edc c1d33e78 c0a0c94c c083dafc d051ad80 c2204cc8 [ 10.471170] 3e80: c2204cf0 c1d32000 c22b40b0 0e4a4000 c2076d80 c2203d00 c022bc70 c1d33e9c [ 10.479365] 3ea0: c1d33e9c c1d33ea4 c1d33ea4 00976ec2 c02f65a0 c220308c 00000003 c1d32000 [ 10.487561] 3ec0: c22b07e4 00000100 d1003000 00000008 c1d33f44 c1d33ee0 c020238c c0a0c6cc [ 10.495755] 3ee0: c1d33f14 c1d33ef0 00000001 00400000 c2203d00 fffb942f c206b2e4 c2076040 [ 10.503950] 3f00: c2076040 0000000a c2203080 c206b358 c1d33ee0 00000004 c90c9500 ffffe000 [ 10.512145] 3f20: 00000000 00000000 00000001 c9019000 d1003000 00000000 c1d33f5c c1d33f48 [ 10.520339] 3f40: c022bc70 c0202264 c2075fbc 00000000 c1d33f84 c1d33f60 c027feb4 c022bb88 [ 10.528535] 3f60: c226d668 c220565c d100200c c1d33fb0 d1002000 d1003000 c1d33fac c1d33f88 [ 10.536730] 3f80: c0202214 c027fe50 b6f1e0b6 000f0030 ffffffff 30c5387d 30c5387d 00000000 [ 10.544924] 3fa0: 00000000 c1d33fb0 c0201d8c c02021c4 b6ec1778 b6f32094 62632e73 62740000 [ 10.553120] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.561316] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff 00000000 00000000 [ 10.569508] Backtrace: [ 10.571970] [<c0a57998>] (gro_cells_receive) from [<c0b4a65c>] (dsa_switch_rcv+0x120/0x1d4) [ 10.580338] r5:c4927000 r4:c8adc300 [ 10.583929] [<c0b4a53c>] (dsa_switch_rcv) from [<c0a0b38c>] (__netif_receive_skb_list_core+0x218/0x238) [ 10.593343] r7:00000000 r6:c1d33d24 r5:c2208920 r4:c1d33d24 [ 10.599017] [<c0a0b174>] (__netif_receive_skb_list_core) from [<c0a0b5c0>] (netif_receive_skb_list_internal+0x214/0x2dc) [ 10.609909] r10:c230742c r9:00000000 r8:c1d32000 r7:c1d33d74 r6:00000000 r5:c89015c0 [ 10.617755] r4:c8adc300 [ 10.620300] [<c0a0b3ac>] (netif_receive_skb_list_internal) from [<c0a0b7fc>] (gro_normal_list.part.42+0x24/0x38) [ 10.630496] r10:00000162 r9:0000016c r8:00000001 r7:00000000 r6:c8901540 r5:c89015c0 [ 10.638342] r4:c8901540 [ 10.640885] [<c0a0b7d8>] (gro_normal_list.part.42) from [<c0a0c660>] (napi_complete_done+0x170/0x1d0) [ 10.650123] r5:c8adc300 r4:00000000 [ 10.653712] [<c0a0c4f0>] (napi_complete_done) from [<c083df00>] (bcm_sysport_poll+0x410/0x4b4) [ 10.662343] r9:0000016c r8:00000001 r7:c8901000 r6:0000015e r5:c8adc300 r4:c8901540 [ 10.670104] [<c083daf0>] (bcm_sysport_poll) from [<c0a0c94c>] (net_rx_action+0x28c/0x44c) [ 10.678301] r10:fffb942f r9:d1003000 r8:0000012c r7:c22b07e4 r6:00000040 r5:00000001 [ 10.686146] r4:c8901540 [ 10.688693] [<c0a0c6c0>] (net_rx_action) from [<c020238c>] (__do_softirq+0x134/0x414) [ 10.696542] r10:00000008 r9:d1003000 r8:00000100 r7:c22b07e4 r6:c1d32000 r5:00000003 [ 10.704387] r4:c220308c [ 10.706931] [<c0202258>] (__do_softirq) from [<c022bc70>] (irq_exit+0xf4/0x100) [ 10.714257] r10:00000000 r9:d1003000 r8:c9019000 r7:00000001 r6:00000000 r5:00000000 [ 10.722104] r4:ffffe000 [ 10.724650] [<c022bb7c>] (irq_exit) from [<c027feb4>] (__handle_domain_irq+0x70/0xc4) [ 10.732497] r5:00000000 r4:c2075fbc [ 10.736083] [<c027fe44>] (__handle_domain_irq) from [<c0202214>] (gic_handle_irq+0x5c/0xa0) [ 10.744453] r9:d1003000 r8:d1002000 r7:c1d33fb0 r6:d100200c r5:c220565c r4:c226d668 [ 10.752215] [<c02021b8>] (gic_handle_irq) from [<c0201d8c>] (__irq_usr+0x4c/0x60) [ 10.759713] Exception stack(0xc1d33fb0 to 0xc1d33ff8) [ 10.764776] 3fa0: b6ec1778 b6f32094 62632e73 62740000 [ 10.772973] 3fc0: 00172e73 00001700 b6f3293c 00000001 00000001 00000000 00000000 00000006 [ 10.781167] 3fe0: ffffffff bef37ac8 b6f18151 b6f1e0b6 000f0030 ffffffff [ 10.787797] r9:00000000 r8:30c5387d r7:30c5387d r6:ffffffff r5:000f0030 r4:b6f1e0b6 [ 10.795559] Code: e30609dc e34c0220 e083300c e590c000 (e5930008) [ 10.801670] ---[ end trace 97c3942fa73eff4c ]--- [ 10.806300] Kernel panic - not syncing: Fatal exception in interrupt [ 10.812678] CPU2: stopping [ 10.815403] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 10.824641] Hardware name: Broadcom STB (Flattened Device Tree) [ 10.830573] Backtrace: [ 10.833036] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 10.840624] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 10.846302] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 10.853546] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 10.860960] r10:00000000 r9:c2205400 r8:00000000 r7:00000002 r6:c22b0744 r5:00000004 [ 10.868807] r4:c22ce308 r3:00976ec2 [ 10.872395] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 10.879983] r10:00000000 r9:d1003000 r8:d1002000 r7:c9131f18 r6:d100200c r5:c220565c [ 10.887829] r4:c226d668 [ 10.890373] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 10.897871] Exception stack(0xc9131f18 to 0xc9131f60) [ 10.902934] 1f00: c020a47c 00000000 [ 10.911131] 1f20: 0e4ca000 600c0093 c9130000 c2204cf0 c2204d34 00000004 00000000 c20757b0 [ 10.919327] 1f40: 00000000 c9131f74 c9130000 c9131f68 00000000 c020a480 600c0013 ffffffff [ 10.927523] r9:c9130000 r8:00000000 r7:c9131f4c r6:ffffffff r5:600c0013 r4:c020a480 [ 10.935291] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 10.943403] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 10.951164] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 10.958752] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000002 [ 10.966598] r4:0000008a [ 10.969142] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 10.978210] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 10.985447] r5:00000000 r4:090eaa40 [ 10.989032] CPU3: stopping [ 10.991754] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.000992] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.006924] Backtrace: [ 11.009384] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.016972] r7:c22a86d0 r6:00000000 r5:600f0193 r4:c22a86d0 [ 11.022649] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.029892] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.037307] r10:00000000 r9:c2205400 r8:00000000 r7:00000003 r6:c22b0744 r5:00000004 [ 11.045154] r4:c22ce308 r3:00976ec2 [ 11.048741] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.056329] r10:00000000 r9:d1003000 r8:d1002000 r7:c9133f18 r6:d100200c r5:c220565c [ 11.064176] r4:c226d668 [ 11.066719] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.074216] Exception stack(0xc9133f18 to 0xc9133f60) [ 11.079280] 3f00: c020a47c 00000000 [ 11.087476] 3f20: 0e4dd000 600f0093 c9132000 c2204cf0 c2204d34 00000008 00000000 c20757b0 [ 11.095671] 3f40: 00000000 c9133f74 c9132000 c9133f68 00000000 c020a480 600f0013 ffffffff [ 11.103867] r9:c9132000 r8:00000000 r7:c9133f4c r6:ffffffff r5:600f0013 r4:c020a480 [ 11.111633] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.119744] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.127506] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.135093] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000003 [ 11.142939] r4:0000008a [ 11.145484] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.154550] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.161788] r5:00000000 r4:090eaa40 [ 11.165372] CPU1: stopping [ 11.168094] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 5.4.105-1.0pre-geff642e2af2b #4 [ 11.177332] Hardware name: Broadcom STB (Flattened Device Tree) [ 11.183264] Backtrace: [ 11.185723] [<c020dd30>] (dump_backtrace) from [<c020e04c>] (show_stack+0x20/0x24) [ 11.193311] r7:c22a86d0 r6:00000000 r5:600c0193 r4:c22a86d0 [ 11.198988] [<c020e02c>] (show_stack) from [<c0c09924>] (dump_stack+0xb8/0xe4) [ 11.206230] [<c0c0986c>] (dump_stack) from [<c0212160>] (handle_IPI+0x344/0x3cc) [ 11.213644] r10:00000000 r9:c2205400 r8:00000000 r7:00000001 r6:c22b0744 r5:00000004 [ 11.221491] r4:c22ce308 r3:00976ec2 [ 11.225078] [<c0211e1c>] (handle_IPI) from [<c0202254>] (gic_handle_irq+0x9c/0xa0) [ 11.232666] r10:00000000 r9:d1003000 r8:d1002000 r7:c912ff18 r6:d100200c r5:c220565c [ 11.240512] r4:c226d668 [ 11.243054] [<c02021b8>] (gic_handle_irq) from [<c0201a3c>] (__irq_svc+0x5c/0x7c) [ 11.250553] Exception stack(0xc912ff18 to 0xc912ff60) [ 11.255617] ff00: c020a47c 00000000 [ 11.263814] ff20: 0e4b7000 600c0093 c912e000 c2204cf0 c2204d34 00000002 00000000 c20757b0 [ 11.272010] ff40: 00000000 c912ff74 c912e000 c912ff68 00000000 c020a480 600c0013 ffffffff [ 11.280206] r9:c912e000 r8:00000000 r7:c912ff4c r6:ffffffff r5:600c0013 r4:c020a480 [ 11.287970] [<c020a44c>] (arch_cpu_idle) from [<c0c1316c>] (default_idle_call+0x34/0x48) [ 11.296081] [<c0c13138>] (default_idle_call) from [<c02580c0>] (do_idle+0x1d4/0x2c0) [ 11.303842] [<c0257eec>] (do_idle) from [<c0258494>] (cpu_startup_entry+0x28/0x2c) [ 11.311430] r10:00000000 r9:420f00f3 r8:00007000 r7:c22ce318 r6:30c0387d r5:00000001 [ 11.319275] r4:0000008a [ 11.321819] [<c025846c>] (cpu_startup_entry) from [<c0211644>] (secondary_start_kernel+0x17c/0x1a0) [ 11.330886] [<c02114c8>] (secondary_start_kernel) from [<0020270c>] (0x20270c) [ 11.338124] r5:00000000 r4:090eaa40 [ 11.341729] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
it is not marked as fixing anything so I wonder how it landed in stable?
It was requested to be merged.
OK.
Do you have the same crash on newer kernels with this commit in it (like Linus's tree?)
There are no crashes with 5.10 or upstream otherwise it would have been noticed earlier, I have not kept track of which additional changes/fixes we may need but I would suggest we drop this one for now.
Alexander, do you want me to test additional patches if your change somehow must be included in an upcoming 5.4? I thought the platform you are working is still not upstream, so who is going to benefit from this performance improvement?
Is 4.19 also failing for you now?
I cannot easily test 4.19 without applying some additional patches bringing in various ARM SCMI changes, I would suspect the same to happen. Give me a few hours and I will see if I can give you a better answer with an actual test.
I have not been able to reproduce this failure since merging the official v5.4.105 tag (more on that below), and 4.19 did not seem to trigger the problem either after applying the necessary patches to bring up the Ethernet PHY, switch and controller's clocks.
Great, thanks for working to figure this out.
So maybe this was just a fluke, I know our CPU frequency scaling driver may be too aggressive and the boards may suffer from power distribution problems leading to crashes, although I have never seen anything like that before, and the call trace was pretty obvious as to what had changed compared to v5.4.104 which had no such issues.
So I guess we are good, until we are not. It concerns me however that this (latent at the time) issue was reported at Wed, 10 Mar 2021 20:19:48 -0800 which is well before the deadline of Fri, 12 Mar 2021 13:23:09 +0000, and yet, the v5.4.105 was announced on Thu, 11 Mar 2021 05:33:31 -0800 (PST) and it went through with that patch nonetheless.
It's a judgement call on my side as to when to do the release, based on the testing that has happened, any reports, and my knowledge of what is in the patches themselves. For this patchset, all of the expected testers came back with no problems, except for your report.
And if your report turned out to be real (the fact that it was a backport of an "old" patch made it much less likely to be real), I can always instantly revert it and push out a new release quickly for the tiny subset of those that have problems with this.
So I took a guess based on all of this and decided it was more important to get the release out early, so that it can start to make its way to the huge majority of systems that did report testing worked fine, than to delay it to wait for your single system report. Because again, if this turned out to be a real issue, a quick release for any affected systems would have been trivial to create.
thanks,
greg k-h
Hi!
So I guess we are good, until we are not. It concerns me however that this (latent at the time) issue was reported at Wed, 10 Mar 2021 20:19:48 -0800 which is well before the deadline of Fri, 12 Mar 2021 13:23:09 +0000, and yet, the v5.4.105 was announced on Thu, 11 Mar 2021 05:33:31 -0800 (PST) and it went through with that patch nonetheless.
It's a judgement call on my side as to when to do the release, based on the testing that has happened, any reports, and my knowledge of what is in the patches themselves. For this patchset, all of the expected testers came back with no problems, except for your report.
And if your report turned out to be real (the fact that it was a backport of an "old" patch made it much less likely to be real), I can always instantly revert it and push out a new release quickly for the tiny subset of those that have problems with this.
So I took a guess based on all of this and decided it was more important to get the release out early, so that it can start to make its way to the huge majority of systems that did report testing worked fine, than to delay it to wait for your single system report. Because again, if this turned out to be a real issue, a quick release for any affected systems would have been trivial to create.
You are setting yourself (and testers) a deadline... and then you ignore it.
People are not only testing the release, they are also reviewing the patches, and having at least two days for that is useful.
You clearly disagree, but in any case you should not mention deadline in the initial if you don't intend to keep them. Thats confusing, and clearly it is not only confusing to me.
Best regards, Pavel
On Wed, 10 Mar 2021 at 18:55, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
Results from Linaro’s test farm. No regressions on arm64, arm, x86_64, and i386.
Tested-by: Linux Kernel Functional Testing lkft@linaro.org
Summary ------------------------------------------------------------------------
kernel: 5.4.105-rc1 git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git branch: linux-5.4.y git commit: 62f8f08c9d2fbc6c5692d90f64dd70e3a8edd986 git describe: v5.4.104-25-g62f8f08c9d2f Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.10...
No regressions (compared to build v5.4.104)
No fixes (compared to build v5.4.104)
Ran 53992 total tests in the following environments and test suites.
Environments -------------- - arc - arm - arm64 - dragonboard-410c - hi6220-hikey - i386 - juno-r2 - juno-r2-compat - juno-r2-kasan - mips - nxp-ls2088 - nxp-ls2088-64k_page_size - parisc - powerpc - qemu-arm-clang - qemu-arm64-clang - qemu-arm64-kasan - qemu-x86_64-clang - qemu-x86_64-kasan - qemu-x86_64-kcsan - qemu_arm - qemu_arm64 - qemu_arm64-compat - qemu_i386 - qemu_x86_64 - qemu_x86_64-compat - riscv - s390 - sh - sparc - x15 - x86 - x86-kasan - x86_64
Test Suites ----------- * build * linux-log-parser * igt-gpu-tools * install-android-platform-tools-r2600 * kselftest- * kselftest-android * kselftest-bpf * kselftest-capabilities * kselftest-cgroup * kselftest-clone3 * kselftest-core * kselftest-cpu-hotplug * kselftest-cpufreq * kselftest-efivarfs * kselftest-filesystems * kselftest-firmware * kselftest-fpu * kselftest-futex * kselftest-gpio * kselftest-intel_pstate * kselftest-ipc * kselftest-ir * kselftest-kcmp * kselftest-kvm * kselftest-livepatch * kselftest-lkdtm * kselftest-net * kselftest-netfilter * kselftest-nsfs * kselftest-ptrace * kselftest-rseq * kselftest-rtc * kselftest-seccomp * kselftest-sigaltstack * kselftest-size * kselftest-splice * kselftest-static_keys * kselftest-sync * kselftest-sysctl * kselftest-tc-testing * ltp-cap_bounds-tests * ltp-containers-tests * ltp-cpuhotplug-tests * ltp-crypto-tests * ltp-cve-tests * ltp-dio-tests * ltp-fs-tests * ltp-hugetlb-tests * ltp-io-tests * ltp-mm-tests * ltp-nptl-tests * ltp-pty-tests * ltp-sched-tests * ltp-securebits-tests * ltp-syscalls-tests * ltp-tracing-tests * perf * fwts * kselftest-lib * kselftest-membarrier * kselftest-memfd * kselftest-memory-hotplug * kselftest-mincore * kselftest-mount * kselftest-mqueue * kselftest-openat2 * kselftest-pid_namespace * kselftest-pidfd * kselftest-proc * kselftest-pstore * kselftest-timens * kselftest-timers * kselftest-tmpfs * kselftest-tpm2 * kselftest-user * kselftest-zram * libhugetlbfs * ltp-commands-tests * ltp-controllers-tests * ltp-fcntl-locktests-tests * ltp-filecaps-tests * ltp-fs_bind-tests * ltp-fs_perms_simple-tests * ltp-fsx-tests * ltp-ipc-tests * ltp-math-tests * network-basic-tests * v4l2-compliance * kselftest-kexec * kselftest-vm * kselftest-x86 * ltp-open-posix-tests * kvm-unit-tests * rcutorture * kselftest-vsyscall-mode-native- * ssuite
On Wed, 10 Mar 2021 14:24:12 +0100, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.4: 12 builds: 12 pass, 0 fail 26 boots: 26 pass, 0 fail 57 tests: 57 pass, 0 fail
Linux version: 5.4.105-rc1-g62f8f08c9d2f Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000, tegra194-p2972-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04
Tested-by: Jon Hunter jonathanh@nvidia.com
Jon
On 2021/3/10 21:24, gregkh@linuxfoundation.org wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This is the start of the stable review cycle for the 5.4.105 release. There are 24 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 Fri, 12 Mar 2021 13:23:09 +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.4.105-rc1... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y and the diffstat can be found below.
thanks,
greg k-h
Tested on arm64 and x86 for 5.4.105-rc1,
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git Branch: linux-5.4.y Version: 5.4.105-rc1+ Commit: 62f8f08c9d2fbc6c5692d90f64dd70e3a8edd986 Compiler: gcc version 7.3.0 (GCC)
arm64: -------------------------------------------------------------------- Testcase Result Summary: total_num: 4703 succeed_num: 4703 failed_num: 0 timeout_num: 0
x86: -------------------------------------------------------------------- Testcase Result Summary: total_num: 4703 succeed_num: 4703 failed_num: 0 timeout_num: 0
Tested-by: Hulk Robot hulkrobot@huawei.com
linux-stable-mirror@lists.linaro.org