Package: linux / 6.1.139-1
Metadata
Package | Version | Patches format |
---|---|---|
linux | 6.1.139-1 | 3.0 (quilt) |
Patch series
view the series filePatch | File delta | Description |
---|---|---|
debian/i386 686 pae pci set pci nobios by default.patch | (download) |
arch/x86/pci/common.c |
4 2 + 2 - 0 ! |
[i386/686-pae] pci: set pci=nobios by default |
debian/ntfs mark it as broken.patch | (download) |
fs/ntfs/Kconfig |
1 1 + 0 - 0 ! |
ntfs: mark it as broken NTFS has unfixed issues CVE-2018-12929, CVE-2018-12930, and CVE-2018-12931. ntfs-3g is a better supported alternative. Make sure it can't be enabled even in custom kernels. |
bugfix/all/module disable matching missing version crc.patch | (download) |
kernel/module/version.c |
5 2 + 3 - 0 ! |
module: disable matching missing version crc |
bugfix/all/usbip document tcp wrappers.patch | (download) |
tools/usb/usbip/doc/usbipd.8 |
6 4 + 2 - 0 ! |
usbip: document tcp wrappers |
bugfix/all/kbuild fix recordmcount dependency.patch | (download) |
scripts/Makefile.build |
5 5 + 0 - 0 ! |
kbuild: fix recordmcount dependency for oot modules Date: Mon, 08 Sep 2014 18:31:24 +0100 |
bugfix/all/tools perf man date.patch | (download) |
tools/perf/Documentation/Makefile |
3 3 + 0 - 0 ! |
perf tools: use $kbuild_build_timestamp as man page date |
bugfix/all/tools perf remove shebangs.patch | (download) |
tools/perf/scripts/perl/rw-by-file.pl |
1 0 + 1 - 0 ! |
tools/perf: remove shebang lines from perf scripts |
bugfix/x86/revert perf build fix libunwind feature detection on.patch | (download) |
tools/perf/Makefile.config |
2 1 + 1 - 0 ! |
revert "perf build: fix libunwind feature detection on 32-bit x86" |
bugfix/all/tools build remove bpf run time check at build time.patch | (download) |
tools/build/feature/test-bpf.c |
8 5 + 3 - 0 ! |
tools/build: remove bpf() run-time check at build time |
bugfix/all/cpupower bump soname version.patch | (download) |
tools/power/cpupower/Makefile |
2 1 + 1 - 0 ! |
cpupower: bump soname version |
bugfix/all/cpupower fix checks for cpu existence.patch | (download) |
tools/power/cpupower/bench/system.c |
13 10 + 3 - 0 ! |
cpupower: fix checks for cpu existence |
bugfix/all/tools perf pmu events fix reproducibility.patch | (download) |
tools/perf/pmu-events/jevents.py |
2 1 + 1 - 0 ! |
tools/perf: pmu-events: fix reproducibility |
bugfix/all/libapi define _fortify_source as 2 not empty.patch | (download) |
tools/lib/api/Makefile |
2 1 + 1 - 0 ! |
libapi: define _fortify_source as 2, not empty Signed-off-by: Ben Hutchings <benh@debian.org> |
bugfix/all/tools perf fix missing ldflags for some programs.patch | (download) |
tools/perf/Makefile.perf |
2 1 + 1 - 0 ! |
tools/perf: fix missing ldflags for some programs Signed-off-by: Ben Hutchings <benh@debian.org> |
features/all/ethernet microsoft/0001 net Remove the obsolte u64_stats_fetch_ _irq users d.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
8 4 + 4 - 0 ! |
[patch 01/44] net: remove the obsolte u64_stats_fetch_*_irq() users (drivers). Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. Convert to the regular interface. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
features/all/ethernet microsoft/0002 net mana Assign interrupts to CPUs based on NUMA nod.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma.h |
1 1 + 0 - 0 ! |
[patch 02/44] net: mana: assign interrupts to cpus based on numa nodes In large VMs with multiple NUMA nodes, network performance is usually best if network interrupts are all assigned to the same virtual NUMA node. This patch assigns online CPU according to a numa aware policy, local cpus are returned first, followed by non-local ones, then it wraps around. Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com> |
features/all/ethernet microsoft/0003 net mana Add support for auxiliary device.patch | (download) |
drivers/net/ethernet/microsoft/Kconfig |
1 1 + 0 - 0 ! |
[patch 03/44] net: mana: add support for auxiliary device In preparation for supporting MANA RDMA driver, add support for auxiliary device in the Ethernet driver. The RDMA device is modeled as an auxiliary device to the Ethernet device. |
features/all/ethernet microsoft/0004 net mana Record the physical address for doorbell pa.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma.h |
2 2 + 0 - 0 ! |
[patch 04/44] net: mana: record the physical address for doorbell page region For supporting RDMA device with multiple user contexts with their individual doorbell pages, record the start address of doorbell page region for use by the RDMA driver to allocate user context doorbell IDs. |
features/all/ethernet microsoft/0005 net mana Handle vport sharing between devices.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana.h |
7 7 + 0 - 0 ! |
[patch 05/44] net: mana: handle vport sharing between devices For outgoing packets, the PF requires the VF to configure the vport with corresponding protection domain and doorbell ID for the kernel or user |
features/all/ethernet microsoft/0006 net mana Set the DMA device max segment size.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
6 6 + 0 - 0 ! |
[patch 06/44] net: mana: set the dma device max segment size MANA hardware doesn't have any restrictions on the DMA segment size, set it to the max allowed value. Signed-off-by: Ajay Sharma <sharmaajay@microsoft.com> |
features/all/ethernet microsoft/0007 net mana Export Work Queue functions for use by RDMA.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
1 1 + 0 - 0 ! |
[patch 07/44] net: mana: export work queue functions for use by rdma driver RDMA device may need to create Ethernet device queues for use by Queue Pair type RAW. This allows a user-mode context accesses Ethernet hardware queues. Export the supporting functions for use by the RDMA driver. |
features/all/ethernet microsoft/0008 net mana Record port number in netdev.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
1 1 + 0 - 0 ! |
[patch 08/44] net: mana: record port number in netdev The port number is useful for user-mode application to identify this net device based on port index. Set to the correct value in ndev. |
features/all/ethernet microsoft/0009 net mana Move header files to a common location.patch | (download) |
MAINTAINERS |
1 1 + 0 - 0 ! |
[patch 09/44] net: mana: move header files to a common location In preparation to add MANA RDMA driver, move all the required header files to a common location for use by both Ethernet and RDMA drivers. |
features/all/ethernet microsoft/0010 net mana Define max values for SGL entries.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
2 1 + 1 - 0 ! |
[patch 10/44] net: mana: define max values for sgl entries The number of maximum SGl entries should be computed from the maximum WQE size for the intended queue type and the corresponding OOB data size. This guarantees the hardware queue can successfully queue requests up to the queue depth exposed to the upper layer. |
features/all/ethernet microsoft/0011 net mana Define and process GDMA response code GDMA_.patch | (download) |
drivers/net/ethernet/microsoft/mana/hw_channel.c |
2 1 + 1 - 0 ! |
[patch 11/44] net: mana: define and process gdma response code GDMA_STATUS_MORE_ENTRIES When doing memory registration, the PF may respond with GDMA_STATUS_MORE_ENTRIES to indicate a follow request is needed. This is not an error and should be processed as expected. Signed-off-by: Ajay Sharma <sharmaajay@microsoft.com> |
features/all/ethernet microsoft/0012 net mana Define data structures for protection domai.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
27 17 + 10 - 0 ! |
[patch 12/44] net: mana: define data structures for protection domain and memory registration The MANA hardware support protection domain and memory registration for use in RDMA environment. Add those definitions and expose them for use by the RDMA driver. Signed-off-by: Ajay Sharma <sharmaajay@microsoft.com> Signed-off-by: Long Li <longli@microsoft.com> Link: https://lore.kernel.org/r/1667502990-2559-12-git-send-email-longli@linuxonhyperv.com |
features/all/ethernet microsoft/0013 net mana Fix return type of mana_start_xmit.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
2 1 + 1 - 0 ! |
[patch 13/44] net: mana: fix return type of mana_start_xmit() The ndo_start_xmit field in net_device_ops is expected to be of type netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev). The mismatched return type breaks forward edge kCFI since the underlying function definition does not match the function hook definition. A new warning in clang will catch this at compile time: drivers/net/ethernet/microsoft/mana/mana_en.c:382:21: error: incompatible function pointer types initializing 'netdev_tx_t (*)(struct sk_buff *, struct net_device *)' (aka 'enum netdev_tx (*)(struct sk_buff *, struct net_device *)') with an expression of type 'int (struct sk_buff *, struct net_device *)' [-Werror,-Wincompatible-function-pointer-types-strict] .ndo_start_xmit = mana_start_xmit, ^~~~~~~~~~~~~~~ 1 error generated. The return type of mana_start_xmit should be changed from int to netdev_tx_t. Reported-by: Dan Carpenter <error27@gmail.com> Link: https://github.com/ClangBuiltLinux/linux/issues/1703 Link: https://github.com/ClangBuiltLinux/linux/issues/1750 Signed-off-by: Nathan Huckleberry <nhuck@google.com> |
features/all/ethernet microsoft/0014 net mana Fix accessing freed irq affinity_hint.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
37 11 + 26 - 0 ! |
[patch 14/44] net: mana: fix accessing freed irq affinity_hint After calling irq_set_affinity_and_hint(), the cpumask pointer is saved in desc->affinity_hint, and will be used later when reading /proc/irq/<num>/affinity_hint. So the cpumask variable needs to be persistent. Otherwise, we are accessing freed memory when reading the affinity_hint file. Also, need to clear affinity_hint before free_irq(), otherwise there is a one-time warning and stack trace during module unloading: [ 243.948687] WARNING: CPU: 10 PID: 1589 at kernel/irq/manage.c:1913 free_irq+0x318/0x360 ... [ 243.948753] Call Trace: [ 243.948754] <TASK> [ 243.948760] mana_gd_remove_irqs+0x78/0xc0 [mana] [ 243.948767] mana_gd_remove+0x3e/0x80 [mana] [ 243.948773] pci_device_remove+0x3d/0xb0 [ 243.948778] device_remove+0x46/0x70 [ 243.948782] device_release_driver_internal+0x1fe/0x280 [ 243.948785] driver_detach+0x4e/0xa0 [ 243.948787] bus_remove_driver+0x70/0xf0 [ 243.948789] driver_unregister+0x35/0x60 [ 243.948792] pci_unregister_driver+0x44/0x90 [ 243.948794] mana_driver_exit+0x14/0x3fe [mana] [ 243.948800] __do_sys_delete_module.constprop.0+0x185/0x2f0 To fix the bug, use the persistent mask, cpumask_of(cpu#), and set affinity_hint to NULL before freeing the IRQ, as required by free_irq(). Cc: stable@vger.kernel.org Fixes: 71fa6887eeca ("net: mana: Assign interrupts to CPUs based on NUMA nodes") Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0015 net mana Add new MANA VF performance counters for ea.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
62 59 + 3 - 0 ! |
[patch 15/44] net: mana: add new mana vf performance counters for easier troubleshooting Extended performance counter stats in 'ethtool -S <interface>' output for MANA VF to facilitate troubleshooting. Tested-on: Ubuntu22 Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit bd7fc6e1957c2102866f9e464c1f2302e891b7e9) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0016 net mana Remove redundant pci_clear_master.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
2 0 + 2 - 0 ! |
[patch 16/44] net: mana: remove redundant pci_clear_master Remove pci_clear_master to simplify the code, the bus-mastering is also cleared in do_pci_disable_device, like this: ./drivers/pci/pci.c:2197 static void do_pci_disable_device(struct pci_dev *dev) { u16 pci_command; pci_read_config_word(dev, PCI_COMMAND, &pci_command); if (pci_command & PCI_COMMAND_MASTER) { pci_command &= ~PCI_COMMAND_MASTER; pci_write_config_word(dev, PCI_COMMAND, pci_command); } pcibios_disable_device(dev); }. And dev->is_busmaster is set to 0 in pci_disable_device. Signed-off-by: Cai Huoqing <cai.huoqing@linux.dev> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 2d59af8307526f2829fdec9c5c5898a857d55180) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0017 net mana Use napi_build_skb in RX path.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
2 1 + 1 - 0 ! |
[patch 17/44] net: mana: use napi_build_skb in rx path Use napi_build_skb() instead of build_skb() to take advantage of the NAPI percpu caches to obtain skbuff_head. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0018 net mana Refactor RX buffer allocation code to prepa.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
154 90 + 64 - 0 ! |
[patch 18/44] net: mana: refactor rx buffer allocation code to prepare for various MTU Move out common buffer allocation code from mana_process_rx_cqe() and mana_alloc_rx_wqe() to helper functions. Refactor related variables so they can be changed in one place, and buffer sizes are in sync. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0019 net mana Enable RX path to handle various MTU sizes.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
38 28 + 10 - 0 ! |
[patch 19/44] net: mana: enable rx path to handle various mtu sizes Update RX data path to allocate and use RX queue DMA buffers with proper size based on potentially various MTU sizes. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0020 net mana Add support for jumbo frame.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_bpf.c |
22 11 + 11 - 0 ! |
[patch 20/44] net: mana: add support for jumbo frame During probe, get the hardware-allowed max MTU by querying the device configuration. Users can select MTU up to the device limit. When XDP is in use, limit MTU settings so the buffer size is within one page. And, when MTU is set to a too large value, XDP is not allowed to run. Also, to prevent changing MTU fails, and leaves the NIC in a bad state, pre-allocate all buffers before starting the change. So in low memory condition, it will return error, without affecting the NIC. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0021 net mana Check if netdev napi_alloc_frag returns sin.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
15 15 + 0 - 0 ! |
[patch 21/44] net: mana: check if netdev/napi_alloc_frag returns single page netdev/napi_alloc_frag() may fall back to single page which is smaller than the requested size. Add error checking to avoid memory overwritten. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit df18f2da302f169e1a29098c6ca3b474f1b0269e) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0022 net mana Fix perf regression remove rx_cqes tx_cqes .patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
10 0 + 10 - 0 ! |
[patch 22/44] net: mana: fix perf regression: remove rx_cqes, tx_cqes counters The apc->eth_stats.rx_cqes is one per NIC (vport), and it's on the frequent and parallel code path of all queues. So, r/w into this |
features/all/ethernet microsoft/0023 net mana Add support for vlan tagging.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
19 17 + 2 - 0 ! |
[patch 23/44] net: mana: add support for vlan tagging To support vlan, use MANA_LONG_PKT_FMT if vlan tag is present in TX skb. Then extract the vlan tag from the skb struct, and save it to tx_oob for the NIC to transmit. For vlan tags on the payload, they are accepted by the NIC too. For RX, extract the vlan tag from CQE and put it into skb. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit b803d1fded4085d268507a432dac8077ead68971) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0024 RDMA mana_ib Use v2 version of cfg_rx_steer_req to e.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
5 4 + 1 - 0 ! |
[patch 24/44] rdma/mana_ib: use v2 version of cfg_rx_steer_req to enable RX coalescing With RX coalescing, one CQE entry can be used to indicate multiple packets on the receive queue. This saves processing time and PCI bandwidth over the CQ. The MANA Ethernet driver also uses the v2 version of the protocol. It doesn't use RX coalescing and its behavior is not changed. Link: https://lore.kernel.org/r/1684045095-31228-1-git-send-email-longli@linuxonhyperv.com Signed-off-by: Long Li <longli@microsoft.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> (cherry picked from commit 2145328515c8fa9b8a9f7889250bc6c032f2a0e6) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0025 net mana use vmalloc_array and vcalloc.patch | (download) |
drivers/net/ethernet/microsoft/mana/hw_channel.c |
2 1 + 1 - 0 ! |
[patch 25/44] net: mana: use vmalloc_array and vcalloc Use vmalloc_array and vcalloc to protect against multiplication overflows. The changes were done using the following Coccinelle semantic patch: // <smpl> @initialize:ocaml@ @@ let rename alloc = match alloc with "vmalloc" -> "vmalloc_array" | "vzalloc" -> "vcalloc" | _ -> failwith "unknown" @@ size_t e1,e2; constant C1, C2; expression E1, E2, COUNT, x1, x2, x3; typedef u8; typedef __u8; type t = {u8,__u8,char,unsigned char}; identifier alloc = {vmalloc,vzalloc}; fresh identifier realloc = script:ocaml(alloc) { rename alloc }; @@ ( alloc(x1*x2*x3) | alloc(C1 * C2) | alloc((sizeof(t)) * (COUNT), ...) | - alloc((e1) * (e2)) + realloc(e1, e2) | - alloc((e1) * (COUNT)) + realloc(COUNT, e1) | - alloc((E1) * (E2)) + realloc(E1, E2) ) // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> Link: https://lore.kernel.org/r/20230627144339.144478-23-Julia.Lawall@inria.fr Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit e9c74f8b8a31f77f8e9d7bbed5fc9f2eacbf32a5) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0026 net mana Batch ringing RX queue doorbell on receivin.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
10 8 + 2 - 0 ! |
[patch 26/44] net: mana: batch ringing rx queue doorbell on receiving packets It's inefficient to ring the doorbell page every time a WQE is posted to the received queue. Excessive MMIO writes result in CPU spending more time waiting on LOCK instructions (atomic operations), resulting in poor scaling performance. Move the code for ringing doorbell page to where after we have posted all WQEs to the receive queue during a callback from napi_poll(). With this change, tests showed an improvement from 120G/s to 160G/s on a 200G physical link, with 16 or 32 hardware queues. Tests showed no regression in network latency benchmarks on single connection. |
features/all/ethernet microsoft/0027 net mana Use the correct WQE count for ringing RQ do.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
5 4 + 1 - 0 ! |
[patch 27/44] net: mana: use the correct wqe count for ringing rq doorbell The hardware specification specifies that WQE_COUNT should set to 0 for the Receive Queue. Although currently the hardware doesn't enforce the check, in the future releases it may check on this value. |
features/all/ethernet microsoft/0028 net mana Configure hwc timeout from hardware.patch | (download) |
drivers/net/ethernet/microsoft/mana/gdma_main.c |
30 29 + 1 - 0 ! |
[patch 28/44] net: mana: configure hwc timeout from hardware At present hwc timeout value is a fixed value. This patch sets the hwc timeout from the hardware. It now uses a new hardware capability GDMA_DRV_CAP_FLAG_1_HWC_TIMEOUT_RECONFIG to query and set the value in hwc_timeout. Signed-off-by: Souradeep Chakrabarti <schakrabarti@linux.microsoft.com> |
features/all/ethernet microsoft/0029 net mana Rename mana_refill_rxoob and remove some em.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
9 3 + 6 - 0 ! |
[patch 29/44] net: mana: rename mana_refill_rxoob and remove some empty lines Rename mana_refill_rxoob for naming consistency. And remove some empty lines between function call and error checking. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 5c74064f43c291d9add2b436a2d70205b71a7cc7) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0030 net mana Add gdma stats to ethtool output for mana.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
40 40 + 0 - 0 ! |
[patch 30/44] net: mana: add gdma stats to ethtool output for mana Extended performance counter stats in 'ethtool -S <interface>' for MANA VF to include GDMA tx LSO packets and bytes count. Tested-on: Ubuntu22 Testcases: 1. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-Synthetic 2. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-SRIOV 3. Validated the GDMA stat packets and byte counters Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com> |
features/all/ethernet microsoft/0031 net mana Add remaining GDMA stats for MANA to ethtoo.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
49 47 + 2 - 0 ! |
[patch 31/44] net :mana :add remaining gdma stats for mana to ethtool Extend performance counter stats in 'ethtool -S <interface>' for MANA VF to include all GDMA stat counter. Tested-on: Ubuntu22 Testcases: 1. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-Synthetic 2. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-SRIOV Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com> Link: https://lore.kernel.org/r/1700830950-803-1-git-send-email-shradhagupta@linux.microsoft.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> (cherry picked from commit e1df5202e879bce09845ac62bae30206e1edfb80) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0032 net mana Fix Rx DMA datasize and skb_over_panic.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
2 1 + 1 - 0 ! |
[patch 32/44] net: mana: fix rx dma datasize and skb_over_panic mana_get_rxbuf_cfg() aligns the RX buffer's DMA datasize to be multiple of 64. So a packet slightly bigger than mtu+14, say 1536, can be received and cause skb_over_panic. Sample dmesg: [ 5325.237162] skbuff: skb_over_panic: text:ffffffffc043277a len:1536 put:1536 head:ff1100018b517000 data:ff1100018b517100 tail:0x700 end:0x6ea dev:<NULL> [ 5325.243689] |
features/all/ethernet microsoft/0033 net mana Enable MANA driver on ARM64 with 4K page si.patch | (download) |
drivers/net/ethernet/microsoft/Kconfig |
3 2 + 1 - 0 ! |
[patch 33/44] net: mana: enable mana driver on arm64 with 4k page size Change the Kconfig dependency, so this driver can be built and run on ARM64 with 4K page size. 16/64K page sizes are not supported yet. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Link: https://lore.kernel.org/r/1715632141-8089-1-git-send-email-haiyangz@microsoft.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 40a1d11fc670ac03c5dc2e5a9724b330e74f38b0) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0034 net mana Fix the extra HZ in mana_hwc_send_request.patch | (download) |
drivers/net/ethernet/microsoft/mana/hw_channel.c |
2 1 + 1 - 0 ! |
[patch 34/44] net: mana: fix the extra hz in mana_hwc_send_request Commit 62c1bff593b7 added an extra HZ along with msecs_to_jiffies. This patch fixes that. Cc: stable@vger.kernel.org Fixes: 62c1bff593b7 ("net: mana: Configure hwc timeout from hardware") Signed-off-by: Souradeep Chakrabarti <schakrabarti@linux.microsoft.com> |
features/all/ethernet microsoft/0035 net mana Fix possible double free in error handling .patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
2 2 + 0 - 0 ! |
[patch 35/44] net: mana: fix possible double free in error handling path When auxiliary_device_add() returns error and then calls auxiliary_device_uninit(), callback function adev_release calls kfree(madev). We shouldn't call kfree(madev) again in the error handling path. Set 'madev' to NULL. Fixes: a69839d4327d ("net: mana: Add support for auxiliary device") Signed-off-by: Ma Ke <make24@iscas.ac.cn> Link: https://patch.msgid.link/20240625130314.2661257-1-make24@iscas.ac.cn Signed-off-by: Paolo Abeni <pabeni@redhat.com> (cherry picked from commit 1864b8224195d0e43ddb92a8151f54f6562090cc) Signed-off-by: Bastian Blank <waldi@debian.org> |
features/all/ethernet microsoft/0036 net mana Fix RX buf alloc_size alignment and atomic .patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
6 5 + 1 - 0 ! |
[patch 36/44] net: mana: fix rx buf alloc_size alignment and atomic op panic The MANA driver's RX buffer alloc_size is passed into napi_build_skb() to create SKB. skb_shinfo(skb) is located at the end of skb, and its alignment is affected by the alloc_size passed into napi_build_skb(). The size needs to be aligned properly for better performance and atomic operations. Otherwise, on ARM64 CPU, for certain MTU settings like 4000, atomic operations may panic on the skb_shinfo(skb)->dataref due to alignment fault. To fix this bug, add proper alignment to the alloc_size calculation. Sample panic info: [ 253.298819] Unable to handle kernel paging request at virtual address ffff000129ba5cce [ 253.300900] Mem abort info: [ 253.301760] ESR = 0x0000000096000021 [ 253.302825] EC = 0x25: DABT (current EL), IL = 32 bits [ 253.304268] SET = 0, FnV = 0 [ 253.305172] EA = 0, S1PTW = 0 [ 253.306103] FSC = 0x21: alignment fault Call trace: __skb_clone+0xfc/0x198 skb_clone+0x78/0xe0 raw6_local_deliver+0xfc/0x228 ip6_protocol_deliver_rcu+0x80/0x500 ip6_input_finish+0x48/0x80 ip6_input+0x48/0xc0 ip6_sublist_rcv_finish+0x50/0x78 ip6_sublist_rcv+0x1cc/0x2b8 ipv6_list_rcv+0x100/0x150 __netif_receive_skb_list_core+0x180/0x220 netif_receive_skb_list_internal+0x198/0x2a8 __napi_poll+0x138/0x250 net_rx_action+0x148/0x330 handle_softirqs+0x12c/0x3a0 Cc: stable@vger.kernel.org Fixes: 80f6215b450e ("net: mana: Add support for jumbo frame") Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0037 net mana Use mana_cleanup_port_context for rxq clean.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
6 2 + 4 - 0 ! |
[patch 37/44] net: mana: use mana_cleanup_port_context() for rxq cleanup To cleanup rxqs in port context structures, instead of duplicating the code, use existing function mana_cleanup_port_context() which does the exact cleanup that's needed. Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com> |
features/all/ethernet microsoft/0038 net mana Add support for page sizes other than 4KB o.patch | (download) |
drivers/net/ethernet/microsoft/Kconfig |
2 1 + 1 - 0 ! |
[patch 38/44] net: mana: add support for page sizes other than 4kb on ARM64 As defined by the MANA Hardware spec, the queue size for DMA is 4KB minimal, and power of 2. And, the HWC queue size has to be exactly 4KB. To support page sizes other than 4KB on ARM64, define the minimal queue size as a macro separately from the PAGE_SIZE, which we always assumed it to be 4KB before supporting ARM64. Also, add MANA specific macros and update code related to size alignment, DMA region calculations, etc. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |
features/all/ethernet microsoft/0039 net mana Add page pool for RX buffers.patch | (download) |
drivers/net/ethernet/microsoft/mana/mana_en.c |
89 73 + 16 - 0 ! |
[patch 39/44] net: mana: add page pool for rx buffers Add page pool for RX buffers for faster buffer cycle and reduce CPU usage. The standard page pool API is used. With iperf and 128 threads test, this patch improved the throughput by 12-15%, and decreased the IRQ associated CPU's usage from 99-100% to 10-50%. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> |