android_kernel_samsung_sm8650/net/wireless/util.c
Greg Kroah-Hartman bf9a785d04 Merge tag 'android14-6.1.57_r00' into branch 'android14-6.1'
This merges the upstream 6.1.y LTS releases up to 6.1.57 into the
android14-6.1 branch.

Included in here are the following commits:

* d0be54afac ANDROID: mm/mempolicy.c fix up conversion to queue_folios_pte_range
* c8da9c614c Revert "net: add sysctl accept_ra_min_rtr_lft"
* ee96408e49 Revert "net: change accept_ra_min_rtr_lft to affect all RA lifetimes"
* d9fef973fe Revert "net: release reference to inet6_dev pointer"
* a39cabc386 Revert "ata,scsi: do not issue START STOP UNIT on resume"
* 88af92d5d2 Revert "scsi: sd: Differentiate system and runtime start/stop management"
* d2a83cf376 Revert "scsi: sd: Do not issue commands to suspended disks on shutdown"
* 66a17692b1 Revert "wifi: cfg80211: fix cqm_config access race"
* 92a425f8ff Revert "netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp"
* 2e4a779114 Revert "arm64: errata: Add Cortex-A520 speculative unprivileged load workaround"
*   c259cc9cb4 Merge 6.1.57 into android14-6.1-lts
|\
| * 082280fe94 Linux 6.1.57
| * a4cc925e2e xen/events: replace evtchn_rwlock with RCU
| * a4fcf8a242 ipv6: remove one read_lock()/read_unlock() pair in rt6_check_neigh()
| * 6e4c40aa27 btrfs: file_remove_privs needs an exclusive lock in direct io write
| * ff81d1c77d netlink: remove the flex array from struct nlmsghdr
| * 6cd57f5c77 btrfs: fix fscrypt name leak after failure to join log transaction
| * 6d05a1a7a4 btrfs: fix an error handling path in btrfs_rename()
| * 5aaa45025f vrf: Fix lockdep splat in output path
| * fd32f1eee6 ipv6: remove nexthop_fib6_nh_bh()
| * edeccce85c parisc: Restore __ldcw_align for PA-RISC 2.0 processors
| * 8226ffc759 ksmbd: fix uaf in smb20_oplock_break_ack
| * a2ca5fd3db ksmbd: fix race condition between session lookup and expire
| * 64301a9354 x86/sev: Use the GHCB protocol when available for SNP CPUID requests
| * 76b6a980e8 RDMA/mlx5: Fix NULL string error
| * 26eb1307c7 RDMA/mlx5: Fix mutex unlocking on error flow for steering anchor creation
| * 5cf38e638e RDMA/siw: Fix connection failure handling
| * 2b298f9181 RDMA/srp: Do not call scsi_done() from srp_abort()
| * c54204d796 RDMA/uverbs: Fix typo of sizeof argument
| * 233229fa57 RDMA/cma: Fix truncation compilation warning in make_cma_ports
| * 39f7018701 RDMA/cma: Initialize ib_sa_multicast structure to 0 when join
| * 52b0bb7139 gpio: pxa: disable pinctrl calls for MMP_GPIO
| * d09e467491 gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
| * 7e47a8419d IB/mlx4: Fix the size of a buffer in add_port_entries()
| * 315ae63050 of: dynamic: Fix potential memory leak in of_changeset_action()
| * 9c480fb41a RDMA/core: Require admin capabilities to set system parameters
| * f60287b2d2 dm zoned: free dmz->ddev array in dmz_put_zoned_devices
| * 485f0bac83 parisc: Fix crash with nr_cpus=1 option
| * c9c110ce37 smb: use kernel_connect() and kernel_bind()
| * ec02b89223 intel_idle: add Emerald Rapids Xeon support
| * cdcc04e844 HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit
| * 07c6338acb HID: sony: remove duplicate NULL check before calling usb_free_urb()
| * 40d609b6ad netlink: annotate data-races around sk->sk_err
| * 0915de8c60 netlink: Fix potential skb memleak in netlink_ack
| * 1a6e2da05f netlink: split up copies in the ack construction
| * 220f0f866d sctp: update hb timer immediately after users change hb_interval
| * 63cb52e75f sctp: update transport state when processing a dupcook packet
| * 419b2c5766 tcp: fix delayed ACKs for MSS boundary condition
| * 4acf07bafb tcp: fix quick-ack counting to count actual ACKs of new data
| * 143e72757a tipc: fix a potential deadlock on &tx->lock
| * f2697457ab net: stmmac: dwmac-stm32: fix resume on STM32 MCU
| * da7fa17bd9 ipv4: Set offload_failed flag in fibmatch results
| * 56a6ea76dd netfilter: nf_tables: nft_set_rbtree: fix spurious insertion failure
| * 7ff9a9857b netfilter: nf_tables: Deduplicate nft_register_obj audit logs
| * e1bbe4afe1 selftests: netfilter: Extend nft_audit.sh
| * 82273f15e3 selftests: netfilter: Test nf_tables audit logging
| * 00d35e6b16 netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp
| * 6e1dbbf290 ibmveth: Remove condition to recompute TCP header checksum.
| * 2428c557cd net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns()
| * 7562780e32 net: nfc: llcp: Add lock when modifying device list
| * 9ffc501802 net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
| * 7f04204136 ipv6: tcp: add a missing nf_reset_ct() in 3WHS handling
| * a003d49940 net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
| * 6a91ec7cfd ptp: ocp: Fix error handling in ptp_ocp_device_init
| * f6a7182179 ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
| * a8ed1b2e16 neighbour: fix data-races around n->output
| * 2b76aad68b neighbour: switch to standard rcu, instead of rcu_bh
| * 0526933c10 neighbour: annotate lockless accesses to n->nud_state
| * 8904d8848b bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup
| * f82aac8162 net: fix possible store tearing in neigh_periodic_work()
| * 8ef7f9acbe modpost: add missing else to the "of" check
| * b8f97e47b6 bpf, sockmap: Reject sk_msg egress redirects to non-TCP sockets
| * c024db9603 bpf, sockmap: Do not inc copied_seq when PEEK flag set
| * 46052a9885 bpf: tcp_read_skb needs to pop skb regardless of seq
| * 99fe9a1207 NFSv4: Fix a nfs4_state_manager() race
| * 23acd1784e ima: rework CONFIG_IMA dependency block
| * 6c5d7f5416 scsi: target: core: Fix deadlock due to recursive locking
| * f23c35f068 ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
| * 937ec4434e regulator/core: regulator_register: set device->class earlier
| * fbac416e25 iommu/mediatek: Fix share pgtable for iova over 4GB
| * 183e0f9da6 perf/x86/amd: Do not WARN() on every IRQ
| * 2f4e16e39e wifi: mac80211: fix potential key use-after-free
| * 89192c6cbe regmap: rbtree: Fix wrong register marked as in-cache when creating new node
| * e485a69d9b perf/x86/amd/core: Fix overflow reset on hotplug
| * 6150d45968 wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
| * b9eded289b drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close()
| * 6bfc4c7043 Bluetooth: ISO: Fix handling of listen for unicast
| * c201d944bc Bluetooth: Delete unused hci_req_prepare_suspend() declaration
| * b46384a681 regulator: mt6358: split ops for buck and linear range LDO regulators
| * a01576f58b regulator: mt6358: Use linear voltage helpers for single range regulators
| * c6ac402567 regulator: mt6358: Drop *_SSHUB regulators
| * 163042a015 bpf: Fix tr dereferencing
| * c14c7214fc leds: Drop BUG_ON check for LED_COLOR_ID_MULTI
| * 6b70628647 wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
| * 42970d32fe wifi: cfg80211: add missing kernel-doc for cqm_rssi_work
| * c797498e86 wifi: cfg80211: fix cqm_config access race
| * 3fcc6d7d5f wifi: cfg80211: add a work abstraction with special semantics
| * 2ae4585f74 wifi: cfg80211: move wowlan disable under locks
| * fb195ff418 wifi: cfg80211: hold wiphy lock in auto-disconnect
| * 6b3223449c wifi: iwlwifi: mvm: Fix a memory corruption issue
| * 78b5c62ede wifi: iwlwifi: dbg_ini: fix structure packing
| * 6a5a8f0a97 erofs: fix memory leak of LZMA global compressed deduplication
| * 91aeb418b9 ubi: Refuse attaching if mtd's erasesize is 0
| * f237b17611 HID: sony: Fix a potential memory leak in sony_probe()
| * 6e3ae2927b arm64: errata: Add Cortex-A520 speculative unprivileged load workaround
| * 0a4ae26348 arm64: Add Cortex-A520 CPU part definition
| * d2894c4f47 drm/amd: Fix logic error in sienna_cichlid_update_pcie_parameters()
| * c8bd3e12b3 drm/amd: Fix detection of _PR3 on the PCIe root port
| * fc8d9630c8 net: prevent rewrite of msg_name in sock_sendmsg()
| * 34f9370ae4 net: replace calls to sock->ops->connect() with kernel_connect()
| * 2dfb5f324d PCI: qcom: Fix IPQ8074 enumeration
| * ebf2d9a782 md/raid5: release batch_last before waiting for another stripe_head
| * c404d39e77 wifi: mwifiex: Fix tlv_buf_left calculation
| * 794ae3a9f8 Bluetooth: hci_sync: Fix handling of HCI_QUIRK_STRICT_DUPLICATE_FILTER
| * 626535077b Bluetooth: hci_codec: Fix leaking content of local_codecs
| * 01afbfb395 qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
| * 454bb54b8f mptcp: userspace pm allow creating id 0 subflow
| * 4674e9626b net: ethernet: mediatek: disable irq before schedule napi
| * 3a72decd6b vringh: don't use vringh_kiov_advance() in vringh_iov_xfer()
| * c12ef025ad iommu/vt-d: Avoid memory allocation in iommu_suspend()
| * cdf18e7585 scsi: zfcp: Fix a double put in zfcp_port_enqueue()
| * ef167cc188 i40e: fix the wrong PTP frequency calculation
| * a0829d9cf2 hwmon: (nzxt-smart2) add another USB ID
| * 6ddb9e6b9b hwmon: (nzxt-smart2) Add device id
| * 752ec2d93e block: fix use-after-free of q->q_usage_counter
| * 77d0e7e8e5 rbd: take header_rwsem in rbd_dev_refresh() only when updating
| * 698039a461 rbd: decouple parent info read-in from updating rbd_dev
| * 377d26174e rbd: decouple header read-in from updating rbd_dev->header
| * 33ecf5f5a8 rbd: move rbd_dev_refresh() definition
| * ff09fa5f23 iommu/arm-smmu-v3: Avoid constructing invalid range commands
| * 357ba59b9d iommu/arm-smmu-v3: Set TTL invalidation hint better
| * 7147287293 drm/amd/display: Adjust the MST resume flow
| * b0fe378674 arm64: cpufeature: Fix CLRBHB and BC detection
| * b691264274 net: release reference to inet6_dev pointer
| * bad004c384 net: change accept_ra_min_rtr_lft to affect all RA lifetimes
| * ec4162bb70 net: add sysctl accept_ra_min_rtr_lft
| * 9d91134c16 arm64: Avoid repeated AA64MMFR1_EL1 register read on pagefault path
| * dd8c836930 Revert "NFSv4: Retry LOCK on OLD_STATEID during delegation return"
| * ef54db5b5d btrfs: use struct fscrypt_str instead of struct qstr
| * 68ad364ec8 btrfs: setup qstr from dentrys using fscrypt helper
| * 1cf474cd47 btrfs: use struct qstr instead of name and namelen pairs
| * 87efd87d36 ring-buffer: Fix bytes info in per_cpu buffer stats
| * 62eed43e03 ring-buffer: remove obsolete comment for free_buffer_page()
| * 836adaddc6 mm: page_alloc: fix CMA and HIGHATOMIC landing on the wrong buddy list
| * d1da921452 mm/page_alloc: leave IRQs enabled for per-cpu page allocations
| * 570786ac6f mm/page_alloc: always remove pages from temporary list
| * 939189aedf mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified
| * ce9f3441fc mm/mempolicy: convert migrate_page_add() to migrate_folio_add()
| * dc0a8466cd mm/mempolicy: convert queue_pages_pte_range() to queue_folios_pte_range()
| * 6c2c728d29 mm/mempolicy: convert queue_pages_pmd() to queue_folios_pmd()
| * 6d6635749d mm/memory: add vm_normal_folio()
| * 89f2ace6d0 NFSv4: Fix a state manager thread deadlock regression
| * 80ba4fd1ac NFS: rename nfs_client_kset to nfs_kset
| * 15ff587023 NFS: Cleanup unused rpc_clnt variable
| * 2f09a09d73 ata: libata-scsi: Fix delayed scsi_rescan_device() execution
| * f2b359e3a4 scsi: Do not attempt to rescan suspended devices
| * 5d3b0fcb3c scsi: core: Improve type safety of scsi_rescan_device()
| * deacabef68 scsi: sd: Do not issue commands to suspended disks on shutdown
| * 8de6d8449a scsi: sd: Differentiate system and runtime start/stop management
| * dc3354c961 ata,scsi: do not issue START STOP UNIT on resume
| * 0786516470 mptcp: process pending subflow error on close
| * fc8917b790 mptcp: move __mptcp_error_report in protocol.c
| * c1432ece79 mptcp: annotate lockless accesses to sk->sk_err
| * 09b6fdf7a1 mptcp: fix dangling connection hang-up
| * 7544918e48 mptcp: rename timer related helper to less confusing names
| * bbdfef7609 ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates
| * 5f9d737615 ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol
| * 1031f68108 spi: zynqmp-gqspi: fix clock imbalance on probe failure
* | 064668b55e Revert "video/aperture: Only remove sysfb on the default vga pci device"
* | 900112a6dc Revert "drm/ast: Use drm_aperture_remove_conflicting_pci_framebuffers"
* | c0584fbc45 Revert "fbdev/radeon: use pci aperture helpers"
* | 3e052a378b Revert "drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers"
* | 6603cc468d Revert "drm/aperture: Remove primary argument"
* | 33b12f8e48 Revert "video/aperture: Only kick vgacon when the pdev is decoding vga"
* | a81c232edd Revert "video/aperture: Move vga handling to pci function"
* | aa5b12e90a Revert "fs/nls: make load_nls() take a const parameter"
* | 7bcb060a61 Revert "dm: fix a race condition in retrieve_deps"
* | d07ffd5565 Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
* | 2950de8b2d Merge 6.1.56 into android14-6.1-lts
|\|
| * ecda77b468 Linux 6.1.56
| * 8c515d4f2d ASoC: amd: yc: Fix a non-functional mic on Lenovo 82TL
| * a3c1da4483 mm, memcg: reconsider kmem.limit_in_bytes deprecation
| * b8901b6c2e memcg: drop kmem.limit_in_bytes
| * ee335e0094 drm/meson: fix memory leak on ->hpd_notify callback
| * b60028c81e drm/amdkfd: Use gpu_offset for user queue's wptr
| * 48a22f13fb fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
| * 69e61ee8ea power: supply: ab8500: Set typing and props
| * c038ebffbb power: supply: rk817: Add missing module alias
| * 69dd84470b drm/i915/gt: Fix reservation address in ggtt_reserve_guc_top
| * 60d2e06ad6 ata: libata-sata: increase PMP SRST timeout to 10s
| * 886f387db1 ata: libata-core: Do not register PM operations for SAS ports
| * 5cfbe6da83 ata: libata-core: Fix port and device removal
| * 0b7aaf2058 ata: libata-core: Fix ata_port_request_pm() locking
| * f555a50808 fs/smb/client: Reset password pointer to NULL
| * 1983fd7870 net: thunderbolt: Fix TCPv6 GSO checksum calculation
| * 4fb56e82d9 bpf: Fix BTF_ID symbol generation collision in tools/
| * 4f1e3e0277 bpf: Fix BTF_ID symbol generation collision
| * b1041cab47 bpf: Add override check to kprobe multi link attach
| * 09635bf4cd media: uvcvideo: Fix OOB read
| * d6a749e4ca btrfs: properly report 0 avail for very full file systems
| * f3ad887454 ring-buffer: Update "shortest_full" in polling
| * 6bacdb914a mm: memcontrol: fix GFP_NOFS recursion in memory.high enforcement
| * a5569bb187 mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()
| * 9a4fe81a86 mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions()
| * 68a63a077e arm64: defconfig: remove CONFIG_COMMON_CLK_NPCM8XX=y
| * b29756aefe drm/tests: Fix incorrect argument in drm_test_mm_insert_range
| * a90eafbf16 timers: Tag (hr)timer softirq as hotplug safe
| * f32340c70e Revert "SUNRPC dont update timeout value on connection reset"
| * 1e4c03d530 netfilter: nf_tables: fix kdoc warnings after gc rework
| * 49903f70d7 sched/rt: Fix live lock between select_fallback_rq() and RT push
| * 787256ec9b kernel/sched: Modify initial boot task idle setup
| * afa2bbd682 ASoC: amd: yc: Fix non-functional mic on Lenovo 82QF and 82UG
| * 829ff08be5 i2c: i801: unregister tco_pdev in i801_probe() error path
| * 75c307d9f2 io_uring/fs: remove sqe->rw_flags checking from LINKAT
| * 06fba8a8de ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
| * 476fd029e7 ata: libata-scsi: link ata port and scsi device
| * 490f3b805e LoongArch: numa: Fix high_memory calculation
| * 7bc8585aa0 LoongArch: Define relocation types for ABI v2.10
| * f04ded9ae2 ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q
| * 9af8bb2afe netfilter: nf_tables: disallow rule removal from chain binding
| * 980663f1d1 nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
| * e14f68a48f serial: 8250_port: Check IRQ data before use
| * c61d0b87a7 Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux"
| * 37435ddfad misc: rtsx: Fix some platforms can not boot and move the l1ss judgment to probe
| * 5d6613ed2b mptcp: fix bogus receive window shrinkage with multiple subflows
| * 00c27bffdb KVM: x86/mmu: Do not filter address spaces in for_each_tdp_mmu_root_yield_safe()
| * cd41db6cb2 KVM: x86/mmu: Open code leaf invalidation from mmu_notifier
| * 733d7a5451 KVM: SVM: Fix TSC_AUX virtualization setup
| * e86a3a6226 KVM: SVM: INTERCEPT_RDTSCP is never intercepted anyway
| * 6ce2f297a7 x86/srso: Add SRSO mitigation for Hygon processors
| * 811ba2ef0c x86/sgx: Resolves SECS reclaim vs. page fault for EAUG race
| * f90f4c5620 iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range
| * a09446ac04 smack: Retrieve transmuting information in smack_inode_getsecurity()
| * cbb16d0f49 smack: Record transmuting in smk_transmuted
| * 4b8ef68e39 nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev
| * 1d7bc76b58 scsi: qla2xxx: Fix NULL pointer dereference in target mode
| * 1a51d35ba7 wifi: ath11k: Don't drop tx_status when peer cannot be found
| * a60768c05b nvme-pci: do not set the NUMA node of device if it has none
| * 6b2165cae4 nvme-pci: factor out a nvme_pci_alloc_dev helper
| * 69bc295d0e nvme-pci: factor the iod mempool creation into a helper
| * 9ebee88a89 perf build: Define YYNOMEM as YYNOABORT for bison < 3.81
| * 8e85af2c68 fbdev/sh7760fb: Depend on FB=y
| * f105e893a8 LoongArch: Set all reserved memblocks on Node#0 at initialization
| * 146ba159f5 tsnep: Fix NAPI polling with budget 0
| * 78ac1e7dec tsnep: Fix NAPI scheduling
| * b09c1359e4 net: hsr: Add __packed to struct hsr_sup_tlv.
| * 97788f0757 ncsi: Propagate carrier gain/loss events to the NCSI controller
| * c93aa8cfae powerpc/watchpoints: Annotate atomic context in more places
| * 3632e9fd82 powerpc/watchpoint: Disable pagefaults when getting user instruction
| * 16722418cb powerpc/watchpoints: Disable preemption in thread_change_pc()
| * ee8bbb2a31 ASoC: SOF: Intel: MTL: Reduce the DSP init timeout
| * 3608be186a NFSv4.1: fix zero value filehandle in post open getattr
| * e9f05ae6f6 media: vb2: frame_vector.c: replace WARN_ONCE with a comment
| * 28c3693249 ASoC: imx-rpmsg: Set ignore_pmdown_time for dai_link
| * 1c88886587 memblock tests: fix warning ‘struct seq_file’ declared inside parameter list
| * 729757fe97 memblock tests: fix warning: "__ALIGN_KERNEL" redefined
| * 53618d56bf firmware: cirrus: cs_dsp: Only log list of algorithms in debug build
| * 110e6f5750 ASoC: cs42l42: Don't rely on GPIOD_OUT_LOW to set RESET initially low
| * cbc43ddd5c ASoC: cs42l42: Ensure a reset pulse meets minimum pulse width.
| * 019f01f818 ALSA: hda: intel-sdw-acpi: Use u8 type for link index
| * 92f24f98d5 bpf: Clarify error expectations from bpf_clone_redirect
| * 60446b5e74 spi: intel-pci: Add support for Granite Rapids SPI serial flash
| * 1271644928 ASoC: fsl: imx-pcm-rpmsg: Add SNDRV_PCM_INFO_BATCH flag
| * 85ca138f92 spi: stm32: add a delay before SPI disable
| * 84592ec591 spi: nxp-fspi: reset the FLSHxCR1 registers
| * d5ae9d9f0c ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
| * 2132ea3f9f smb3: correct places where ENOTSUPP is used instead of preferred EOPNOTSUPP
| * 2259e1901b scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command
| * 82f575a7e8 scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command
| * 6e392ff884 riscv: errata: fix T-Head dcache.cva encoding
| * 91b6845ef3 drm/amdgpu: Handle null atom context in VBIOS info ioctl
| * ad3c37f90b drm/amdgpu/nbio4.3: set proper rmmio_remap.reg_offset for SR-IOV
| * cca15a8279 drm/amdgpu/soc21: don't remap HDP registers for SR-IOV
| * b9971393d4 drm/amd/display: Don't check registers, if using AUX BL control
| * 49bdfc83c7 thermal/of: add missing of_node_put()
| * d6a68f1632 platform/x86: asus-wmi: Support 2023 ROG X16 tablet mode
| * d1f916c6eb platform/mellanox: mlxbf-bootctl: add NET dependency into Kconfig
| * dfbcef80dd ata: sata_mv: Fix incorrect string length computation in mv_dump_mem()
| * 797d75bd57 net/smc: bugfix for smcr v2 server connect success statistic
| * b08a493822 ring-buffer: Do not attempt to read past "commit"
| * baa1634bc9 selftests: fix dependency checker script
| * 45ad79c9cb btrfs: assert delayed node locked when removing delayed item
| * 11054f0b88 ring-buffer: Avoid softlockup in ring_buffer_resize()
| * a687e817d8 selftests/ftrace: Correctly enable event in instance-event.tc
| * 5fb322df09 scsi: ufs: core: Poll HCS.UCRDY before issuing a UIC command
| * 81a6cdfcfd scsi: ufs: core: Move __ufshcd_send_uic_cmd() outside host_lock
| * 843348f9e4 scsi: qedf: Add synchronization between I/O completions and abort
| * 655e9d209c parisc: irq: Make irq_stack_union static to avoid sparse warning
| * 8a2c2630e1 parisc: drivers: Fix sparse warning
| * 60caeaf090 parisc: iosapic.c: Fix sparse warnings
| * 632e0fcf40 parisc: sba: Fix compile warning wrt list of SBA devices
| * be90c9e29d nvme-fc: Prevent null pointer dereference in nvme_fc_io_getuuid()
| * 36b29974a7 spi: sun6i: fix race between DMA RX transfer completion and RX FIFO drain
| * e15bb292b2 spi: sun6i: reduce DMA RX transfer width to single byte
| * 5685f8a6fa bpf: Annotate bpf_long_memcpy with data_race
| * be8f49029e dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
| * 89744b6491 ceph: drop messages from MDS when unmounting
| * 1375d9600c x86/reboot: VMCLEAR active VMCSes before emergency reboot
| * 85fafa7ef0 i2c: npcm7xx: Fix callback completion ordering
| * 0d6c2f0942 gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
| * e578a26084 firmware: arm_ffa: Don't set the memory region attributes for MEM_LEND
| * 099cfc6e5d arm64: dts: imx: Add imx8mm-prt8mm.dtb to build
| * 328efccc78 soc: imx8m: Enable OCOTP clock for imx8mm before reading registers
| * aab681bcb1 selftests/powerpc: Fix emit_tests to work with run_kselftest.sh
| * 763f029f8c selftests/powerpc: Pass make context to children
| * b9dc3d6b76 selftests/powerpc: Use CLEAN macro to fix make warning
| * fe6406238d power: supply: rk817: Fix node refcount leak
| * 1005010b73 xtensa: boot/lib: fix function prototypes
| * 6438653ad1 xtensa: umulsidi3: fix conditional expression
| * 45661247d1 xtensa: boot: don't add include-dirs
| * fca1b09645 xtensa: iss/network: make functions static
| * b4e666fa38 xtensa: add default definition for XCHAL_HAVE_DIV32
| * 7cad564599 firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels()
| * 33ed60d8b9 power: supply: ucs1002: fix error code in ucs1002_get_property()
| * 1ec48a9fac bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
| * dd19672aaa ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
| * fe1379c0f6 ARM: dts: Unify pinctrl-single pin group nodes for omap4
| * 16455bed4f ARM: dts: Unify pwm-omap-dmtimer node names
| * 4ccb05618b ARM: dts: ti: omap: Fix bandgap thermal cells addressing for omap3/4
| * fe4da07a7f ARM: dts: omap: correct indentation
| * ea4efaf546 clk: tegra: fix error return case for recalc_rate
| * efad31b6c0 clk: sprd: Fix thm_parents incorrect configuration
| * 1ea6975aa6 power: supply: mt6370: Fix missing error code in mt6370_chg_toggle_cfo()
| * 64adb41644 firmware: arm_scmi: Fixup perf power-cost/microwatt support
| * a135c88138 firmware: arm_scmi: Harden perf domain info access
| * 3a21635aed bus: ti-sysc: Fix missing AM35xx SoC matching
| * 771eb7c3f3 bus: ti-sysc: Use fsleep() instead of usleep_range() in sysc_reset()
| * e6389d61b7 drm/bridge: ti-sn65dsi83: Do not generate HFP/HBP/HSA and EOT packet
| * 404b8bc418 spi: spi-gxp: BUG: Correct spi write return value
| * d3dc8acb60 MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
| * c01b2e0ee2 vfio/mdev: Fix a null-ptr-deref bug for mdev_unregister_parent()
| * cca10592ff btrfs: reset destination buffer when read_extent_buffer() gets invalid range
| * cdfcaa4e80 drm/amdkfd: Insert missing TLB flush on GFX10 and later
| * 9becfff9f9 drm/amdkfd: Flush TLB after unmapping for GFX v9.4.3
| * 52c7b41ad6 scsi: qla2xxx: Use raw_smp_processor_id() instead of smp_processor_id()
| * 35c02a333d scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called
| * 3a8ac77a70 wifi: ath11k: Cleanup mac80211 references on failure during tx_complete
| * 1cccd28aa5 wifi: ath11k: fix tx status reporting in encap offload mode
| * dc1ab65774 arm64: dts: qcom: sdm845-db845c: Mark cont splash memory region as reserved
| * 03b808058a s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_CLR2SECK2 IOCTL
| * a84ac8995a f2fs: get out of a repeat loop when getting a locked data page
| * 8b3b859bf8 f2fs: optimize iteration over sparse directories
| * 3134156e34 ARM: dts: qcom: msm8974pro-castor: correct touchscreen syna,nosleep-mode
| * 064f57151d ARM: dts: qcom: msm8974pro-castor: correct touchscreen function names
| * 21e5e3c3f7 ARM: dts: qcom: msm8974pro-castor: correct inverted X of touchscreen
| * 05951f5c26 ARM: dts: samsung: exynos4210-i9100: Fix LCD screen's physical size
| * 226590fbd9 ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
| * 70a1df9e0b i2c: xiic: Correct return value check for xiic_reinit()
| * fb9cfb28bd i2c: mux: gpio: Add missing fwnode_handle_put()
| * 976c8c1c40 i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
| * 50a096aab6 gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
| * 908b3b5e97 cifs: Fix UAF in cifs_demultiplex_thread()
| * 7e4f49cd2b proc: nommu: fix empty /proc/<pid>/maps
| * 1d45e6d995 proc: nommu: /proc/<pid>/maps: release mmap read lock
| * c5c9ee3887 igc: Expose tx-usecs coalesce setting to user
| * cae59ae731 octeontx2-pf: Do xdp_do_flush() after redirects.
| * 98ebbdefe4 bnxt_en: Flush XDP for bnxt_poll_nitroa0()'s NAPI
| * 26f1829c85 net: ena: Flush XDP packets on error.
| * d64e738adc locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested()
| * 987a7f5311 i915/pmu: Move execlist stats initialization to execlist specific setup
| * ea5a61d588 netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
| * c4b0facd5c netfilter: nf_tables: disable toggling dormant table state more than once
| * 51fa66024a net: rds: Fix possible NULL-pointer dereference
| * 2f0acb0736 team: fix null-ptr-deref when team device type is changed
| * 89f9f20b1c net: bridge: use DEV_STATS_INC()
| * 69d7eef31e net: hns3: add 5ms delay before clear firmware reset irq source
| * b1b85b3d76 net: hns3: fix fail to delete tc flower rules during reset issue
| * d3f7af41de net: hns3: only enable unicast promisc when mac table full
| * ed6a0b21b6 net: hns3: fix GRE checksum offload issue
| * 430f18eed1 net: hns3: add cmdq check for vf periodic service task
| * adbcec23c8 x86/srso: Fix SBPB enablement for spec_rstack_overflow=off
| * 755195b2d2 x86/srso: Fix srso_show_state() side effect
| * 7f301aa243 platform/x86: intel_scu_ipc: Fail IPC send if still busy
| * b34121a8fe platform/x86: intel_scu_ipc: Don't override scu in intel_scu_ipc_dev_simple_command()
| * 9624445958 platform/x86: intel_scu_ipc: Check status upon timeout in ipc_wait_for_interrupt()
| * 98a5a7f344 platform/x86: intel_scu_ipc: Check status after timeout in busy_loop()
| * 8ef5cc6b4e net: hsr: Properly parse HSRv1 supervisor frames.
| * eef16bfdb2 x86/mm, kexec, ima: Use memblock_free_late() from ima_free_kexec_buffer()
| * 73be49248a dccp: fix dccp_v4_err()/dccp_v6_err() again
| * c2019f0a68 powerpc/perf/hv-24x7: Update domain value check
| * 5734d22c9e scsi: iscsi_tcp: restrict to TCP sockets
| * 2712545e53 ipv4: fix null-deref in ipv4_link_failure
| * 54228157fb igc: Fix infinite initialization loop with early XDP redirect
| * 40b5032c99 ionic: fix 16bit math issue when PAGE_SIZE >= 64KB
| * f2c6e5945d netfilter, bpf: Adjust timeouts of non-confirmed CTs in bpf_ct_insert_entry()
| * d98bad2998 i40e: Fix VF VLAN offloading when port VLAN is configured
| * 0546cd5734 iavf: schedule a request immediately after add/delete vlan
| * 00bbedbd7c iavf: add iavf_schedule_aq_request() helper
| * 16fd3c37d1 ASoC: SOF: core: Only call sof_ops_free() on remove if the probe was successful
| * 211aac2ef6 iavf: do not process adminq tasks when __IAVF_IN_REMOVE_TASK is set
| * 65976385d4 octeon_ep: fix tx dma unmap len values in SG
| * 66823a9025 ASoC: imx-audmix: Fix return error with devm_clk_get()
| * ee79256b16 ASoC: hdaudio.c: Add missing check for devm_kstrdup
| * 488ea2a3e2 net/core: Fix ETH_P_1588 flow dissector
| * bf560c8a83 selftests: tls: swap the TX and RX sockets in some tests
| * f5a75b3d31 netfilter: conntrack: fix extension size table
| * 09424e8812 ALSA: hda/realtek: Splitting the UX3402 into two separate models
| * 1698854b03 ASoC: rt5640: Fix IRQ not being free-ed for HDA jack detect mode
| * 293e4920f7 ASoC: rt5640: Revert "Fix sleep in atomic context"
| * e388671635 bpf: Avoid deadlock when using queue and stack maps from NMI
| * 1e01b12768 netfilter: nf_tables: disallow element removal on anonymous sets
| * 7a7fd89102 ASoC: meson: spdifin: start hw on dai probe
| * 7e5d732e69 netfilter: nf_tables: fix memleak when more than 255 elements expired
| * be4fbbbcd2 netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration
| * 973288e9d9 netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails
| * 8c643a8e04 netfilter: nft_set_pipapo: call nft_trans_gc_queue_sync() in catchall GC
| * 92b4b4bde9 netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention
| * 9a8c544158 netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction
| * a42ac74c96 netfilter: nf_tables: defer gc run if previous batch is still pending
| * 620e594be3 netfilter: nf_tables: use correct lock to protect gc_list
| * 5d319f7a81 netfilter: nf_tables: GC transaction race with abort path
| * afa584c350 netfilter: nf_tables: GC transaction race with netns dismantle
| * 41113aa569 netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path
| * 59ee68c437 netfilter: nf_tables: don't fail inserts if duplicate has expired
| * 0b9af4860a netfilter: nf_tables: remove busy mark and gc batch API
| * 4ead4f74b3 netfilter: nft_set_hash: mark set element as dead when deleting from packet path
| * df650d6a4b netfilter: nf_tables: adapt set backend to use GC transaction API
| * ea3eb9f219 netfilter: nf_tables: GC transaction API to avoid race with control plane
| * 59dab3bf0b netfilter: nf_tables: don't skip expired elements during walk
| * 6bb88a0344 ext4: do not let fstrim block system suspend
| * b4d5db1c77 ext4: move setting of trimmed bit into ext4_try_to_trim_range()
| * 1e3c25df7d ext4: replace the traditional ternary conditional operator with with max()/min()
| * 39c4a9522d btrfs: remove BUG() after failure to insert delayed dir index item
| * 0d1a761dec btrfs: improve error message after failure to add delayed dir index item
| * dbf1a71985 dm: fix a race condition in retrieve_deps
| * df9950d37d netfs: Only call folio_start_fscache() one time for each folio
| * 2d9757480b media: via: Use correct dependency for camera sensor drivers
| * ae68541d52 media: v4l: Use correct dependency for camera sensor drivers
| * a997d58357 NFSv4.1: fix pnfs MDS=DS session trunking
| * f86a2c2ea0 NFSv4.1: use EXCHGID4_FLAG_USE_PNFS_DS for DS server
| * 839e07de9a SUNRPC: Mark the cred for revalidation if the server rejects it
| * 13acbca81e NFS/pNFS: Report EINVAL errors from connect() to the server
| * edd1f06145 NFS: More fixes for nfs_direct_write_reschedule_io()
| * d4729af1c7 NFS: Use the correct commit info in nfs_join_page_group()
| * 1f49386d67 NFS: More O_DIRECT accounting fixes for error paths
| * 4d98038e5b NFS: Fix O_DIRECT locking issues
| * f16fd0b11f NFS: Fix error handling for O_DIRECT write scheduling
* | 320c8b56ff ANDROID: GKI: db845c: add new dma_buf symbols to list
* | 1c5ec1e54d Merge 6.1.55 into android14-6.1-lts
|\|
| * d23900f974 Linux 6.1.55
| * 0db211ec0f interconnect: Teach lockdep about icc_bw_lock order
| * b93aeb6352 net/sched: Retire rsvp classifier
| * 4c6bb91581 drm/amdgpu: fix amdgpu_cs_p1_user_fence
| * 45ea58f9db Revert "memcg: drop kmem.limit_in_bytes"
| * 4422080e77 drm/amd/display: fix the white screen issue when >= 64GB DRAM
| * 97d4186c35 ext4: fix rec_len verify error
| * 89365b624a scsi: pm8001: Setup IRQs on resume
| * c2cb422dca scsi: megaraid_sas: Fix deadlock on firmware crashdump
| * 890e1e5dd8 ata: libahci: clear pending interrupt status
| * a3517ee1d4 ata: libata: disallow dev-initiated LPM transitions to unsupported states
| * 30057f4add i2c: aspeed: Reset the i2c controller when timeout occurs
| * 8b0f7d55b2 tracefs: Add missing lockdown check to tracefs_create_dir()
| * dcf3caeee4 nfsd: fix change_info in NFSv4 RENAME replies
| * 978b86fbdb selinux: fix handling of empty opts in selinux_fs_context_submount()
| * 2617afde0c tracing: Have option files inc the trace array ref count
| * 6dc57c3a1d tracing: Have current_trace inc the trace array ref count
| * a46bf337a2 tracing: Increase trace array ref count on enable and filter files
| * 0c2982b015 tracing: Have event inject files inc the trace array ref count
| * d65553fe52 tracing: Have tracing_max_latency inc the trace array ref count
| * 1f89e6daf2 btrfs: check for BTRFS_FS_ERROR in pending ordered assert
| * 50e385d98b btrfs: release path before inode lookup during the ino lookup ioctl
| * 52932bbc6d btrfs: fix a compilation error if DEBUG is defined in btree_dirty_folio
| * 32247b9526 btrfs: fix lockdep splat and potential deadlock after failure running delayed items
| * d7b2abd87d dm: don't attempt to queue IO under RCU protection
| * 216eae7d7d Revert "drm/amd: Disable S/G for APUs when 64GB or more host memory"
| * 98ea94f162 md: Put the right device in md_seq_next
| * f07c0bc27b nvme: avoid bogus CRTO values
| * 6a1d1365fa io_uring/net: fix iter retargeting for selected buf
| * e7dcf8339a ovl: fix incorrect fdput() on aio completion
| * 17854d92fa ovl: fix failed copyup of fileattr on a symlink
| * 6a84939cc7 attr: block mode changes of symlinks
| * 3494a0066d Revert "SUNRPC: Fail faster on bad verifier"
| * ba4f28a1d3 md/raid1: fix error: ISO C90 forbids mixed declarations
| * 2076b4b677 samples/hw_breakpoint: fix building without module unloading
| * 0dea068499 x86/purgatory: Remove LTO flags
| * 2074cb608c x86/boot/compressed: Reserve more memory for page tables
| * 038249ee72 panic: Reenable preemption in WARN slowpath
| * 6069b9d805 scsi: lpfc: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
| * 1cd41d1669 scsi: target: core: Fix target_cmd_counter leak
| * dd8fce4e2d riscv: kexec: Align the kexeced kernel entry
| * e9b8e26610 x86/ibt: Suppress spurious ENDBR
| * 03425393f4 selftests: tracing: Fix to unmount tracefs for recovering environment
| * bc912eed8a scsi: qla2xxx: Fix NULL vs IS_ERR() bug for debugfs_create_dir()
| * cbf226355e drm: gm12u320: Fix the timeout usage for usb_bulk_msg()
| * 64561352c0 nvmet-tcp: pass iov_len instead of sg->length to bvec_set_page()
| * 5ee5c928db nvmet: use bvec_set_page to initialize bvecs
| * 00cf1dc13c block: factor out a bvec_set_page helper
| * 2174731a17 btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
| * 31242daa10 btrfs: add a helper to read the superblock metadata_uuid
| * 44751b057c MIPS: Use "grep -E" instead of "egrep"
| * 8332311cd0 misc: fastrpc: Fix incorrect DMA mapping unmap request
| * 5a5641755c misc: fastrpc: Prepare to dynamic dma-buf locking specification
| * b4539ff7a4 dma-buf: Add unlocked variant of attachment-mapping functions
| * 6ca28642dd printk: Consolidate console deferred printing
| * 13ebf3ff08 printk: Keep non-panic-CPUs out of console lock
| * ee42bfc791 interconnect: Fix locking for runpm vs reclaim
| * 48aebbe801 kobject: Add sanity check for kset->kobj.ktype in kset_register()
| * 240571c49f media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
| * 91f400233e usb: chipidea: add workaround for chipidea PEC bug
| * 8e3556f2f4 usb: ehci: add workaround for chipidea PORTSC.PEC bug
| * 48c135c30a misc: open-dice: make OPEN_DICE depend on HAS_IOMEM
| * a3c9315a8c serial: cpm_uart: Avoid suspicious locking
| * 4738bf8b2d scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
| * 6c440fec96 tools: iio: iio_generic_buffer: Fix some integer type and calculation
| * 826e9c91a2 usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
| * bbc9c36527 usb: cdns3: Put the cdns set active part outside the spin lock
| * 96a0bf5827 media: pci: cx23885: replace BUG with error return
| * 257092cb54 media: tuners: qt1010: replace BUG_ON with a regular error
| * b2a019ec8b scsi: lpfc: Abort outstanding ELS cmds when mailbox timeout error is detected
| * dfcd3c0102 media: dvb-usb-v2: gl861: Fix null-ptr-deref in gl861_i2c_master_xfer
| * 6ab7ea4e17 media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
| * 14b94154a7 media: anysee: fix null-ptr-deref in anysee_master_xfer
| * abb6fd93e0 media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
| * 08dfcbd03b media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
| * 0143f282b1 media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
| * 8ba9d91c8f media: mdp3: Fix resource leaks in of_find_device_by_node
| * b78796126f PCI: fu740: Set the number of MSI vectors
| * 9318c3ae15 PCI: vmd: Disable bridge window for domain reset
| * 96f27ff732 powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
| * ee378f45a7 ARM: 9317/1: kexec: Make smp stop calls asynchronous
| * 09066c19d9 PCI: dwc: Provide deinit callback for i.MX
| * 4de3a60301 jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
| * 2f7a36448f fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
| * 035bc86fbf ext2: fix datatype of block number in ext2_xattr_set2()
| * 4f7d853b45 md: raid1: fix potential OOB in raid1_remove_disk()
| * 4e547968a6 bus: ti-sysc: Configure uart quirks for k3 SoC
| * 4c743c1dd2 drm/mediatek: dp: Change logging to dev for mtk_dp_aux_transfer()
| * edddbdb812 drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable()
| * a101b1bdd2 drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN314
| * 2c0f5b6972 drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN31
| * 506d2ee72a drm/amd/display: Use DTBCLK as refclk instead of DPREFCLK
| * 2d027da82a ALSA: hda: intel-dsp-cfg: add LunarLake support
| * cc4553c14f ASoC: Intel: sof_sdw: Update BT offload config for soundwire config
| * d843bcc7ad ASoC: SOF: topology: simplify code to prevent static analysis warnings
| * 2ec715bf88 drm/amd/display: Fix underflow issue on 175hz timing
| * 4630c27c55 samples/hw_breakpoint: Fix kernel BUG 'invalid opcode: 0000'
| * 306c7903de arm64: dts: qcom: sm8250-edo: correct ramoops pmsg-size
| * 41ff904a7c arm64: dts: qcom: sm8150-kumano: correct ramoops pmsg-size
| * 23f9d0c671 arm64: dts: qcom: sm6350: correct ramoops pmsg-size
| * 03499a6857 arm64: dts: qcom: sm6125-pdx201: correct ramoops pmsg-size
| * 766cc11e85 drm/edid: Add quirk for OSVR HDK 2.0
| * 8178dac6ee drm/bridge: tc358762: Instruct DSI host to generate HSE packets
| * d5feaef143 libbpf: Free btf_vmlinux when closing bpf_object
| * b9a175e3b2 wifi: mac80211_hwsim: drop short frames
| * 7e1cda5cf0 wifi: mac80211: check for station first in client probe
| * d7b0fe3487 wifi: cfg80211: ocb: don't leave if not joined
| * 676a423410 wifi: cfg80211: reject auth/assoc to AP with our address
| * 28b07e30bc netfilter: ebtables: fix fortify warnings in size_entry_mwt()
| * 7ae7a1378a wifi: mac80211: check S1G action frame size
| * 1c27b73ffa alx: fix OOB-read compiler warning
| * a13c1f6c32 mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
| * b62e8838e9 tpm_tis: Resend command to recover from data transfer errors
| * c2b226f223 netlink: convert nlk->flags to atomic flags
| * 06e2b5ad72 Bluetooth: Fix hci_suspend_sync crash
| * d3ad023a39 crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
| * e5d94c98a7 net/ipv4: return the real errno instead of -EINVAL
| * d5372a1f0c net: Use sockaddr_storage for getsockopt(SO_PEERNAME).
| * ab0ae0af0a can: sun4i_can: Add support for the Allwinner D1
| * 4eb79abf91 can: sun4i_can: Add acceptance register quirk
| * f04b40cb70 wifi: wil6210: fix fortify warnings
| * 5c8bbb79c7 mt76: mt7921: don't assume adequate headroom for SDIO headers
| * 4f621fe1ac wifi: mwifiex: fix fortify warning
| * 2640a8e54f wifi: ath9k: fix printk specifier
| * 1800a27a3d wifi: ath9k: fix fortify warnings
| * 5760a72b30 ice: Don't tx before switchdev is fully configured
| * ad58d7ebbf crypto: lrw,xts - Replace strlcpy with strscpy
| * ac70101e5b devlink: remove reload failed checks in params get/set callbacks
| * a0300edca5 selftests/nolibc: fix up kernel parameters support
| * 1ea7e47807 ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects
| * dc1d81ee93 hw_breakpoint: fix single-stepping when using bpf_overflow_handler
| * d42d342d31 perf/imx_ddr: speed up overflow frequency of cycle
| * 9d9b5cbc12 perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
| * 4cb0612cf2 ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
| * 9f10b4eb1b scftorture: Forgive memory-allocation failure if KASAN
| * 83ed0cdb6a rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle()
| * 3b1107abdc kernel/fork: beware of __put_task_struct() calling context
| * e1f686930e ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
| * 34bff6d850 locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
| * 28062cd6ed btrfs: output extra debug info if we failed to find an inline backref
| * 726deae613 autofs: fix memory leak of waitqueues in autofs_catatonic_mode
* | 9f7988e6d7 UPSTREAM: lib/test_meminit: fix off-by-one error in test_pages()
* | 5cdaba14b8 ANDROID: GKI: add guards for an include file in net/ethtool/ioctl.c
* | 4f94769349 Merge 6.1.54 into android14-6.1-lts
|\|
| * a356197db1 Linux 6.1.54
| * 77b49370a2 drm/amd/display: Fix a bug when searching for insert_above_mpcc
| * 3ce9925584 MIPS: Only fiddle with CHECKFLAGS if `need-compiler'
| * e5b28ce127 kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
| * a47db2caae ixgbe: fix timestamp configuration code
| * 6f0d85d501 tcp: Fix bind() regression for v4-mapped-v6 non-wildcard address.
| * 63830afece tcp: Fix bind() regression for v4-mapped-v6 wildcard address.
| * 489ced24c7 tcp: Factorise sk_family-independent comparison in inet_bind2_bucket_match(_addr_any).
| * 82f9af464e ipv6: Remove in6addr_any alternatives.
| * 8b6556c4c4 ipv6: fix ip6_sock_set_addr_preferences() typo
| * d5d315cf76 net: macb: fix sleep inside spinlock
| * 7aa720c350 net: macb: Enable PTP unicast
| * 7f4116c6f9 net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
| * f72497c521 platform/mellanox: NVSW_SN2201 should depend on ACPI
| * 9d392695f3 platform/mellanox: mlxbf-pmc: Fix reading of unprogrammed events
| * 3f16330a48 platform/mellanox: mlxbf-pmc: Fix potential buffer overflows
| * 3a45dcfb4d platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
| * 30c8bbe1ed platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
| * 16989de754 kcm: Fix memory leak in error path of kcm_sendmsg()
| * 2323397e58 r8152: check budget for r8152_poll()
| * 44c8ffd482 net: dsa: sja1105: block FDB accesses that are concurrent with a switch reset
| * e74bd1b229 net: dsa: sja1105: serialize sja1105_port_mcast_flood() with other FDB accesses
| * d766cf9ddb net: dsa: sja1105: fix multicast forwarding working only for last added mdb entry
| * 538e7fe66c net: dsa: sja1105: propagate exact error code from sja1105_dynamic_config_poll_valid()
| * 9a3e7eca2b net: dsa: sja1105: hide all multicast addresses from "bridge fdb show"
| * 66e79c2f3a net:ethernet:adi:adin1110: Fix forwarding offload
| * c281948ceb net: ethernet: adi: adin1110: use eth_broadcast_addr() to assign broadcast address
| * 61866f7d81 hsr: Fix uninit-value access in fill_frame_info()
| * ff5faed5f5 net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fdir_all()
| * 349638f7e5 net: ethernet: mvpp2_main: fix possible OOB write in mvpp2_ethtool_get_rxnfc()
| * 9dbbc87d5b net: stmmac: fix handling of zero coalescing tx-usecs
| * 70c8d17007 net/smc: use smc_lgr_list.lock to protect smc_lgr_list.list iterate in smcr_port_add
| * ef5d546b9d selftests: Keep symlinks, when possible
| * cdd61a27fb kselftest/runner.sh: Propagate SIGTERM to runner child
| * 980f844547 net: ipv4: fix one memleak in __inet_del_ifa()
| * 9acb294ebd kunit: Fix wild-memory-access bug in kunit_free_suite_set()
| * cb30ff2adb drm/amdgpu: register a dirty framebuffer callback for fbcon
| * b53fee19ec drm/amd/display: Remove wait while locked
| * 2d7a6fcb1f drm/amd/display: always switch off ODM before committing more streams
| * c29bfda64b perf hists browser: Fix the number of entries for 'e' key
| * f4618f1316 perf tools: Handle old data in PERF_RECORD_ATTR
| * be69e8c8f5 perf test shell stat_bpf_counters: Fix test on Intel
| * cb0940640d perf hists browser: Fix hierarchy mode header
| * ec54096122 MIPS: Fix CONFIG_CPU_DADDI_WORKAROUNDS `modules_install' regression
| * 60b5ef4cf8 KVM: SVM: Skip VMSA init in sev_es_init_vmcb() if pointer is NULL
| * 12645e623f KVM: SVM: Set target pCPU during IRTE update if target vCPU is running
| * 5b2b0535fa KVM: nSVM: Load L1's TSC multiplier based on L1 state, not L2 state
| * 6c1ecfea1d KVM: nSVM: Check instead of asserting on nested TSC scaling support
| * 5c18ace750 KVM: SVM: Get source vCPUs from source VM for SEV-ES intrahost migration
| * ba82001e41 KVM: SVM: Don't inject #UD if KVM attempts to skip SEV guest insn
| * 3988692acc KVM: SVM: Take and hold ir_list_lock when updating vCPU's Physical ID entry
| * ff536a9668 drm/amd/display: prevent potential division by zero errors
| * e1769b1dfc drm/amd/display: enable cursor degamma for DCN3+ DRM legacy gamma
| * 3388ca3a38 mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
| * 31d42146fa mtd: rawnand: brcmnand: Fix potential false time out warning
| * 7c6ba20a0b mtd: spi-nor: Correct flags for Winbond w25q128
| * 45fe4ad7f4 mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
| * a7e118fcc8 mtd: rawnand: brcmnand: Fix crash during the panic_write
| * 8bf2d4ca52 drm/mxsfb: Disable overlay plane in mxsfb_plane_overlay_atomic_disable()
| * 09974a1352 btrfs: use the correct superblock to compare fsid in btrfs_validate_super
| * b692f7d157 btrfs: zoned: re-enable metadata over-commit for zoned mode
| * 08daa38ca2 btrfs: set page extent mapped after read_folio in relocate_one_page
| * 91f6a538d6 btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
| * f933a1c43b btrfs: free qgroup rsv on io failure
| * cdc3ba292d btrfs: fix start transaction qgroup rsv double free
| * 59c38f050d btrfs: zoned: do not zone finish data relocation block group
| * ef819c2f8e fuse: nlookup missing decrement in fuse_direntplus_link
| * 6694be119f ata: pata_ftide010: Add missing MODULE_DESCRIPTION
| * ae73b94ad7 ata: sata_gemini: Add missing MODULE_DESCRIPTION
| * 1605f27090 ata: pata_falcon: fix IO base selection for Q40
| * cdd0d70735 ata: ahci: Add Elkhart Lake AHCI controller
| * e93bc372db hwspinlock: qcom: add missing regmap config for SFPB MMIO implementation
| * 0649dc0af9 lib: test_scanf: Add explicit type cast to result initialization in test_number_prefix()
| * 980b592c60 f2fs: avoid false alarm of circular locking
| * 1c64dbe8fa f2fs: flush inode if atomic file is aborted
| * 1fb3f1bbfd ext4: fix memory leaks in ext4_fname_{setup_filename,prepare_lookup}
| * 03393857a9 ext4: add correct group descriptors and reserved GDT blocks to system zone
| * 20108975ec jbd2: correct the end of the journal recovery scan range
| * dbafe636db jbd2: check 'jh->b_transaction' before removing it from checkpoint
| * c5f23305f8 jbd2: fix checkpoint cleanup performance regression
| * 6ea18981bb dmaengine: sh: rz-dmac: Fix destination and source data size setting
| * de43bc1798 clocksource/drivers/arm_arch_timer: Disable timer before programming CVAL
| * f2953184bf ARC: atomics: Add compiler barrier to atomic operations...
| * 8eea0afbcc net/mlx5: Free IRQ rmap and notifier on kernel shutdown
| * 017a058053 Multi-gen LRU: avoid race in inc_min_seq()
| * 6956147840 sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
| * 9cd5cf0bfe net: hns3: remove GSO partial feature bit
| * 1368067718 net: hns3: fix the port information display when sfp is absent
| * 9bd9afd55c net: hns3: fix invalid mutex between tc qdisc and dcb ets command issue
| * d76436e269 net: hns3: fix debugfs concurrency issue between kfree buffer and read
| * b508769713 net: hns3: fix byte order conversion issue in hclge_dbg_fd_tcam_read()
| * 5c28780f42 net: hns3: fix tx timeout issue
| * 7bb8d52b42 netfilter: nfnetlink_osf: avoid OOB read
| * d9ebfc0f21 netfilter: nftables: exthdr: fix 4-byte stack OOB write
| * 6cf0d1d5a5 bpf: Assign bpf_tramp_run_ctx::saved_run_ctx before recursion check.
| * 04f92e67b3 bpf: Invoke __bpf_prog_exit_sleepable_recur() on recursion in kern_sys_bpf().
| * a12f15d1f8 bpf: Remove prog->active check for bpf_lsm and bpf_iter
| * 5f09b79e99 net: dsa: sja1105: complete tc-cbs offload support on SJA1110
| * ec9f203ad7 net: dsa: sja1105: fix -ENOSPC when replacing the same tc-cbs too many times
| * 483f0e3975 net: dsa: sja1105: fix bandwidth discrepancy between tc-cbs software and offload
| * 54b59bc18d ip_tunnels: use DEV_STATS_INC()
| * 175f290dc9 idr: fix param name in idr_alloc_cyclic() doc
| * 147d8da33a s390/zcrypt: don't leak memory if dev_set_name() fails
| * ccb048dae8 igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
| * 74b98c61c9 igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
| * 30acc4f954 igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
| * e2e2c839d8 octeontx2-af: Fix truncation of smq in CN10K NIX AQ enqueue mbox handler
| * e30388b80d kcm: Destroy mutex in kcm_exit_net()
| * a18349dc8d net: sched: sch_qfq: Fix UAF in qfq_dequeue()
| * 2100bbf55e af_unix: Fix data race around sk->sk_err.
| * ce3aa88cec af_unix: Fix data-races around sk->sk_shutdown.
| * 2d8933ca86 af_unix: Fix data-race around unix_tot_inflight.
| * b9cdbb38e0 af_unix: Fix data-races around user->unix_inflight.
| * 923877254f bpf, sockmap: Fix skb refcnt race after locking changes
| * 71fb38b222 net: phy: micrel: Correct bit assignments for phy_device flags
| * aa8fd3a636 net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
| * e752860bbc veth: Fixing transmit return status for dropped packets
| * a47ad6d226 gve: fix frag_list chaining
| * 24b1e835db igb: disable virtualization features on 82580
| * 7ddfe350e2 ipv6: ignore dst hint for multipath routes
| * 0b2ee66411 ipv4: ignore dst hint for multipath routes
| * b7d25ac362 mptcp: annotate data-races around msk->rmem_fwd_alloc
| * 787c582968 net: annotate data-races around sk->sk_forward_alloc
| * f1175881dd net: use sk_forward_alloc_get() in sk_get_meminfo()
| * bd9bd085c6 drm/i915/gvt: Drop unused helper intel_vgpu_reset_gtt()
| * 2b7510bb92 drm/i915/gvt: Put the page reference obtained by KVM's gfn_to_pfn()
| * f5738399ed drm/i915/gvt: Verify pfn is "valid" before dereferencing "struct page"
| * 6436973164 xsk: Fix xsk_diag use-after-free error during socket cleanup
| * d92c34348b net: fib: avoid warn splat in flow dissector
| * 9036b6342f net: read sk->sk_family once in sk_mc_loop()
| * 5aaa7ee232 ipv4: annotate data-races around fi->fib_dead
| * 471f534971 sctp: annotate data-races around sk->sk_wmem_queued
| * f39b49077a net/sched: fq_pie: avoid stalls in fq_pie_timer()
| * 47f72ee502 smb: propagate error code of extract_sharename()
| * 60e3318e3e cifs: use fs_context for automounts
| * 84d5779234 blk-throttle: consider 'carryover_ios/bytes' in throtl_trim_slice()
| * fd2420905c blk-throttle: use calculate_io/bytes_allowed() for throtl_trim_slice()
| * 8017a27cec drm/i915: mark requests for GuC virtual engines to avoid use-after-free
| * 0686336f73 perf test stat_bpf_counters_cgrp: Enhance perf stat cgroup BPF counter test
| * 66b23e7b08 perf test stat_bpf_counters_cgrp: Fix shellcheck issue about logical operators
| * 523f6268e8 pwm: lpc32xx: Remove handling of PWM channels
| * fa53928736 watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
| * 032cd8ce89 perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
| * adeb9f392d perf vendor events: Drop STORES_PER_INST metric event for power10 platform
| * 6ade9094b4 perf vendor events: Drop some of the JSON/events for power10 platform
| * b7cbcafb6d perf vendor events: Update the JSON/events descriptions for power10 platform
| * 6a43e0d623 x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
| * 6522397e75 perf annotate bpf: Don't enclose non-debug code with an assert()
| * e62e740009 Input: tca6416-keypad - fix interrupt enable disbalance
| * a7345501a3 Input: tca6416-keypad - always expect proper IRQ number in i2c client
| * d7add20019 backlight: gpio_backlight: Drop output GPIO direction check for initial power state
| * 9de7eb95bb pwm: atmel-tcb: Fix resource freeing in error path and remove
| * c42256a283 pwm: atmel-tcb: Harmonize resource allocation order
| * b9734e8505 pwm: atmel-tcb: Convert to platform remove callback returning void
| * 62dd514c34 perf trace: Really free the evsel->priv area
| * e5dee8222d perf trace: Use zfree() to reduce chances of use after free
| * eb17c3d005 Input: iqs7222 - configure power mode before triggering ATI
| * 8ab5942239 kconfig: fix possible buffer overflow
| * 39c29d0753 mailbox: qcom-ipcc: fix incorrect num_chans counting
| * 36201d559b gfs2: low-memory forced flush fixes
| * 694e43f22c gfs2: Switch to wait_event in gfs2_logd
| * c4807163e2 tpm_crb: Fix an error handling path in crb_acpi_add()
| * 46d3bc902b kbuild: do not run depmod for 'make modules_sign'
| * 390275d7a8 kbuild: rpm-pkg: define _arch conditionally
| * 31cf7853a9 net: deal with integer overflows in kmalloc_reserve()
| * 2b39866f0a net: factorize code in kmalloc_reserve()
| * 36974c3a54 net: remove osize variable in __alloc_skb()
| * 5f7676fdaf net: add SKB_HEAD_ALIGN() helper
| * 8b4d0f3890 bus: mhi: host: Skip MHI reset if device is in RDDM
| * fd9a8ad2cf NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
| * dac14a1dbe NFS: Fix a potential data corruption
| * 1bb9546c7a clk: qcom: mss-sc7180: fix missing resume during probe
| * 017e60a215 clk: qcom: q6sstop-qcs404: fix missing resume during probe
| * eab2ece5e4 clk: qcom: lpasscc-sc7280: fix missing resume during probe
| * 5310f71215 clk: qcom: dispcc-sm8450: fix runtime PM imbalance on probe errors
| * f6250ecb7f soc: qcom: qmi_encdec: Restrict string length in decode
| * c4e1204bd7 clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
| * 5b3b0f7f73 clk: imx: pll14xx: align pdiv with reference manual
| * 871244f8ef clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz
| * 311db21d4a dt-bindings: clock: xlnx,versal-clk: drop select:false
| * 54e5ff4af7 pinctrl: cherryview: fix address_space_handler() argument
| * 9c8fc05bd4 cifs: update desired access while requesting for directory lease
| * db5d5673ab parisc: led: Reduce CPU overhead for disk & lan LED computation
| * ff2c44f011 parisc: led: Fix LAN receive and transmit LEDs
| * 421855d0d2 lib/test_meminit: allocate pages up to order MAX_ORDER
| * 84a212a72c mm: hugetlb_vmemmap: fix a race between vmemmap pmd split
| * 21ef9e1120 memcg: drop kmem.limit_in_bytes
| * 0f73390568 send channel sequence number in SMB3 requests after reconnects
| * 22ec50d7b5 arm64: dts: renesas: rzg2l: Fix txdv-skew-psec typos
| * df2d596e7e clk: qcom: turingcc-qcs404: fix missing resume during probe
| * b83ae66d82 ASoC: tegra: Fix SFC conversion for few rates
| * 3c9881fd22 drm/ast: Fix DRAM init on AST2200
| * c0341bddd6 clk: qcom: camcc-sc7180: fix async resume during probe
| * f83c1b13f8 fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
| * a0b4a0666b null_blk: fix poll request timeout handling
| * f557970849 scsi: qla2xxx: Fix firmware resource tracking
| * 3a9d4db2d2 scsi: qla2xxx: Error code did not return to upper layer
| * c7355cbb9c scsi: qla2xxx: Fix smatch warn for qla_init_iocb_limit()
| * 974887e1d6 scsi: qla2xxx: Flush mailbox commands on chip reset
| * 98643561d8 scsi: qla2xxx: Remove unsupported ql2xenabledif option
| * 1f0e3814ad scsi: qla2xxx: Fix TMF leak through
| * e6aabf0654 scsi: qla2xxx: Fix session hang in gnl
| * addaa136f1 scsi: qla2xxx: Turn off noisy message log
| * 01e3440ce0 scsi: qla2xxx: Fix erroneous link up failure
| * ddb8fa0598 scsi: qla2xxx: Fix command flush during TMF
| * 6e44a7e2a0 scsi: qla2xxx: fix inconsistent TMF timeout
| * cd06c45b32 scsi: qla2xxx: Fix deletion race condition
| * 820010cfe5 scsi: qla2xxx: Limit TMF to 8 per function
| * faf7e224b4 scsi: qla2xxx: Adjust IOCB resource on qpair create
| * 98d3e7c5f7 drm/virtio: Conditionally allocate virtio_gpu_fence
| * 3e8b9b06de io_uring: Don't set affinity on a dying sqpoll thread
| * 9704cfcf1f io_uring/sqpoll: fix io-wq affinity when IORING_SETUP_SQPOLL is used
| * 605d055452 io_uring: break out of iowq iopoll on teardown
| * b04f22b686 io_uring/net: don't overflow multishot accept
| * 5afbf7fdb7 io_uring: revert "io_uring fix multishot accept ordering"
| * fd459200ff io_uring: always lock in io_apoll_task_func
| * f367915961 Multi-gen LRU: fix per-zone reclaim
| * a73d04c460 mm: multi-gen LRU: rename lrugen->lists[] to lrugen->folios[]
| * 7164d74aae net/ipv6: SKB symmetric hash should incorporate transport ports
* |   7732c16f40 Merge changes Ib5bb4a55,I5ad48ff8,I2b41b3ba,Ib36deff9,Ib271c569, ... into android14-6.1-lts
|\ \
| * | d7156e9445 ANDROID: GKI: update .stg due to internal zswap and tracing changes
| * | 59ff7fa115 ANDROID: GKI: db845c: add pcie_capability_clear_and_set_word to the symbol list
| * | 1d14a4d9ce ANDROID: GKI: sched: put back the cpu_capacity_inverted variable
| * | d78a231453 Revert "ipv4: fix data-races around inet->inet_id"
| * | acef80535a Revert "usb: typec: bus: verify partner exists in typec_altmode_attention"
| * | 1592fd4684 Revert "scsi: core: Use 32-bit hostnum in scsi_host_lookup()"
| * | ecf3d93213 Revert "media: cec: core: add adap_nb_transmit_canceled() callback"
| * | 045f98748d Revert "media: cec: core: add adap_unconfigured() callback"
| * | cb6717439c Revert "tracing: Introduce pipe_cpumask to avoid race on trace_pipes"
| * | 8d71a1ef6a Revert "tracing: Zero the pipe cpumask on alloc to avoid spurious -EBUSY"
| * | 5c4d483e7c Revert "PCI: Allow drivers to request exclusive config regions"
| * | 79dd1a60c7 Revert "PCI: Add locking to RMW PCI Express Capability Register accessors"
| * | 41aa552887 Revert "crypto: api - Use work queue in crypto_destroy_instance"
| * | 8f38111724 Revert "media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field"
| * | 9e3a2d05a6 ANDROID: GKI: Fix firmware: smccc build error
| * | 82a49ac6c8 ANDROID: GKI: fix up merge issue in drivers/scsi/storvsc_drv.c
| * | dbb69752f7 Merge 6.1.53 into android14-6.1-lts
| |\|
| | * 09045dae0d Linux 6.1.53
| | * 41cb5369cb udf: initialize newblock to 0
| | * c74b1cd93f clk: Avoid invalid function names in CLK_OF_DECLARE()
| | * 59e0dd5bef treewide: Fix probing of devices in DT overlays
| | * abb597c85a clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macro
| | * b372816ad6 md: fix regression for null-ptr-deference in __md_stop()
| | * adac9f0ddd NFSv4.2: Rework scratch handling for READ_PLUS (again)
| | * 7795634751 NFSv4.2: Fix a potential double free with READ_PLUS
| | * d9ece8c026 md: Free resources in __md_stop
| | * ba6a70adb5 Revert "drm/amd/display: Do not set drr on pipe commit"
| | * 1dd387668d tracing: Zero the pipe cpumask on alloc to avoid spurious -EBUSY
| | * e43a7ae58d serial: sc16is7xx: fix regression with GPIO configuration
| | * 8aaef0a3eb serial: sc16is7xx: remove obsolete out_thread label
| | * cc8a853c2d perf/x86/uncore: Correct the number of CHAs on EMR
| | * e1eb041912 x86/sgx: Break up long non-preemptible delays in sgx_vepc_release()
| | * f705617bab USB: core: Fix oversight in SuperSpeed initialization
| | * 8186596a66 USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
| | * d309fa69c2 USB: core: Change usb_get_device_descriptor() API
| | * 90b01f8df5 USB: core: Unite old scheme and new scheme descriptor reads
| | * 0d3b5fe479 usb: typec: bus: verify partner exists in typec_altmode_attention
| | * 9b7cd3fe01 usb: typec: tcpm: set initial svdm version based on pd revision
| | * 33a3106421 of: property: fw_devlink: Add a devlink for panel followers
| | * 7f3d84cfae cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
| | * 08c8615636 crypto: stm32 - fix loop iterating through scatterlist for DMA
| | * 73e64c5eed s390/dasd: fix string length handling
| | * f9a3d6f037 s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
| | * 6489ec0107 s390/dcssblk: fix kernel crash with list_add corruption
| | * 8bf567b63c arm64: sdei: abort running SDEI handlers during crash
| | * e95d7a8a6e pstore/ram: Check start of empty przs during init
| | * 351705a446 mmc: renesas_sdhi: register irqs before registering controller
| | * a3f6c1447d platform/chrome: chromeos_acpi: print hex string for ACPI_TYPE_BUFFER
| | * e6e6a5f50f x86/MCE: Always save CS register on AMD Zen IF Poison errors
| | * d08b39bb3d fsverity: skip PKCS#7 parser when keyring is empty
| | * 40a1ef4bb0 net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
| | * 342d130205 X.509: if signature is unsupported skip validation
| | * 3d5fed8c79 r8169: fix ASPM-related issues on a number of systems with NIC version from RTL8168h
| | * ba50e7773a x86/sev: Make enc_dec_hypercall() accept a size instead of npages
| | * f8a7f10a1d dccp: Fix out of bounds access in DCCP error handler
| | * 9667854e69 dlm: fix plock lookup when using multiple lockspaces
| | * c96c67991a bpf: Fix issue in verifying allow_ptr_leaks
| | * b23c96589f drm/amd/display: Add smu write msg id fail retry process
| | * 5ad3e53460 parisc: Fix /proc/cpuinfo output for lscpu
| | * 316a4a329a procfs: block chmod on /proc/thread-self/comm
| | * 5e4e9900e6 block: don't add or resize partition on the disk with GENHD_FL_NO_PART
| | * 1654635bed Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
| | * 5a3e327dc3 ntb: Fix calculation ntb_transport_tx_free_entry()
| | * 88c7931f81 ntb: Clean up tx tail index on link down
| | * 4f4af6b8b7 ntb: Drop packets when qp link is down
| | * e95e31a860 PCI/PM: Only read PCI_PM_CTRL register when available
| | * 223fc53520 PCI: hv: Fix a crash in hv_pci_restore_msi_msg() during hibernation
| | * 4443f3695d PCI: Free released resource after coalescing
| | * 316f398429 scsi: mpt3sas: Perform additional retries if doorbell read returns 0
| | * 6c4f87e523 Revert "scsi: qla2xxx: Fix buffer overrun"
| | * ab8c52977f media: venus: hfi_venus: Write to VIDC_CTRL_INIT after unmasking interrupts
| | * 25934d8f6e media: dvb: symbol fixup for dvb_attach()
| | * fd4d61f85e ALSA: hda/cirrus: Fix broken audio on hardware with two CS42L42 codecs.
| | * ba0b46166b arm64: csum: Fix OoB access in IP checksum code for negative lengths
| | * ad661951a9 i3c: master: svc: fix probe failure when no i3c device exist
| | * cc9bf2d62f LoongArch: mm: Add p?d_leaf() definitions
| | * 5a8b2c1665 xtensa: PMU: fix base address for the newer hardware
| | * 9a9b8596c3 drm/amd/display: register edp_backlight_control() for DCN301
| | * 47636d32a0 backlight/lv5207lp: Compare against struct fb_info.device
| | * 83166d03a5 backlight/bd6107: Compare against struct fb_info.device
| | * b4ab337aad backlight/gpio_backlight: Compare against struct fb_info.device
| | * 8fa9cb5844 io_uring: break iopolling on signal
| | * 4a3e0d51c3 XArray: Do not return sibling entries from xa_load()
| | * 7a7f112833 ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
| | * 09cb2a71b2 ipmi_si: fix a memleak in try_smi_init()
| | * dafe7acfed PCI: rockchip: Use 64-bit mask on MSI 64-bit PCI address
| | * 823f52daef media: i2c: Add a camera sensor top level menu
| | * ceedc62a3b media: i2c: ccs: Check rules is non-NULL
| | * fea9dd8653 cpu/hotplug: Prevent self deadlock on CPU hot-unplug
| | * 4245ca8f40 mm/vmalloc: add a safer version of find_vm_area() for debug
| | * 157c46360c scsi: core: Fix the scsi_set_resid() documentation
| | * 2344b13976 printk: ringbuffer: Fix truncating buffer size min_t cast
| | * 3f7a4e88e4 rcu: dump vmalloc memory info safely
| | * 8ad2e7efb2 ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
| | * 8918025feb PM / devfreq: Fix leak in devfreq_dev_release()
| | * d2e906c725 igb: set max size RX buffer when store bad packet is enabled
| | * 04c3eee4e1 skbuff: skb_segment, Call zero copy functions before using skbuff frags
| | * 4921f9349b netfilter: xt_sctp: validate the flag_info count
| | * 1c164c1e9e netfilter: xt_u32: validate user space input
| | * bcdb4a5c42 netfilter: nft_exthdr: Fix non-linear header modification
| | * 7ca0706c68 netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
| | * 6678912b4d igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
| | * ad8900dd8a virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
| | * 4927edc23e cpufreq: Fix the race condition while updating the transition_task of policy
| | * 96db43aced Drivers: hv: vmbus: Don't dereference ACPI root object handle
| | * e351933e4a dmaengine: ste_dma40: Add missing IRQ check in d40_probe
| | * 43a57ca7dd um: Fix hostaudio build errors
| | * 222b85e748 mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
| | * eaf4c78982 mtd: spi-nor: Check bus width while setting QE bit
| | * 3e313b6c47 leds: trigger: tty: Do not use LED_ON/OFF constants, use led_blink_set_oneshot instead
| | * f741121a22 leds: Fix BUG_ON check for LED_COLOR_ID_MULTI that is always false
| | * a253c416e6 leds: multicolor: Use rounded division when calculating color components
| | * 2804cc3508 leds: pwm: Fix error code in led_pwm_create_fwnode()
| | * cae0787e40 rpmsg: glink: Add check for kstrdup
| | * f309ac8a4d phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
| | * 8f0f5452cb phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
| | * 0d86292e3f phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
| | * 50fa01243d dmaengine: idxd: Modify the dependence of attribute pasid_enabled
| | * 6453a2fbc8 mtd: rawnand: brcmnand: Fix mtd oobsize
| | * 74c85396bd tracing: Fix race issue between cpu buffer write and swap
| | * fb34716c9e tracing: Remove extra space at the end of hwlat_detector/mode
| | * ca5e8427e2 x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
| | * 55a448e8d8 tick/rcu: Fix false positive "softirq work is pending" messages
| | * 69b8d7bf83 platform/x86/amd/pmf: Fix a missing cleanup path
| | * 2763732ec1 HID: multitouch: Correct devm device reference for hidinput input_dev name
| | * f283805d98 HID: uclogic: Correct devm device reference for hidinput input_dev name
| | * 6e59609541 HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
| | * cf38960386 RDMA/efa: Fix wrong resources deallocation order
| | * 9d9a405303 RDMA/siw: Correct wrong debug message
| | * bbd1b1b508 RDMA/siw: Balance the reference of cep->kref in the error path
| | * 3f39698e7e Revert "IB/isert: Fix incorrect release of isert connection"
| | * 81ff633a88 amba: bus: fix refcount leak
| | * db18d5e3ee serial: tegra: handle clk prepare error in tegra_uart_hw_init()
| | * 93e9085453 interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting
| | * e9ef8b5099 interconnect: qcom: bcm-voter: Improve enable_mask handling
| | * 1d085c6a25 interconnect: qcom: sm8450: Enable sync_state
| | * 5a5fb3b175 scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
| | * f06c7d823a scsi: core: Use 32-bit hostnum in scsi_host_lookup()
| | * f01cfec8d3 RDMA/irdma: Prevent zero-length STAG registration
| | * 5fa1552877 coresight: trbe: Fix TRBE potential sleep in atomic context
| | * 848cd6f24a cgroup:namespace: Remove unused cgroup_namespaces_init()
| | * 0d545a8e77 Revert "f2fs: fix to do sanity check on extent cache correctly"
| | * 3f60a36ed6 f2fs: Only lfs mode is allowed with zoned block device feature
| | * 33d4c00725 f2fs: judge whether discard_unit is section only when have CONFIG_BLK_DEV_ZONED
| | * 4d7e804f49 f2fs: fix to avoid mmap vs set_compress_option case
| | * 3a2cf76cfb media: i2c: rdacm21: Fix uninitialized value
| | * 86a41ad012 media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
| | * 85fb0b963f media: ov2680: Fix ov2680_set_fmt() which == V4L2_SUBDEV_FORMAT_TRY not working
| | * 0790c09140 media: ov2680: Add ov2680_fill_format() helper function
| | * 90fbf01c80 media: ov2680: Don't take the lock for try_fmt calls
| | * e0b6edf4a3 media: ov2680: Remove VIDEO_V4L2_SUBDEV_API ifdef-s
| | * 6d51cdf66b media: ov2680: Fix vflip / hflip set functions
| | * 7263c39fd7 media: ov2680: Fix ov2680_bayer_order()
| | * ef9055e9a7 media: ov2680: Remove auto-gain and auto-exposure controls
| | * 9e6e509c08 media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
| | * 2b9d0a65d1 media: ov5640: Fix initial RESETB state and annotate timings
| | * 5074c70795 media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
| | * a4cd2c3eff HID: input: Support devices sending Eraser without Invert
| | * 297992e5c6 drivers: base: Free devm resources when unregistering a device
| | * 66eb45e7d5 USB: gadget: f_mass_storage: Fix unused variable warning
| | * 324da2f3ee USB: gadget: core: Add missing kerneldoc for vbus_work
| | * 365ce3f86b docs: ABI: fix spelling/grammar in SBEFIFO timeout interface
| | * c90182cffb media: venus: hfi_venus: Only consider sys_idle_indicator on V1
| | * d52509fdb2 media: go7007: Remove redundant if statement
| | * 0294e24750 media: cec: core: add adap_unconfigured() callback
| | * d6610151ae media: cec: core: add adap_nb_transmit_canceled() callback
| | * 6ced15ff17 platform/x86: dell-sysman: Fix reference leak
| | * 45e3181d79 iommu/vt-d: Fix to flush cache of PASID directory table
| | * d9c47d2bf3 iommu/qcom: Disable and reset context bank before programming
| | * a30f26dc3a fsi: aspeed: Reset master errors after CFAM reset
| | * d020963638 IB/uverbs: Fix an potential error pointer dereference
| | * 4dca13c30b RDMA/hns: Fix CQ and QP cache affinity
| | * 2368ce8cd5 RDMA/hns: Fix inaccurate error label name in init instance
| | * 93c986805f RDMA/hns: Fix incorrect post-send with direct wqe of wr-list
| | * c48b0b30ac RDMA/hns: Fix port active speed
| | * 117a1b903b iommu/sprd: Add missing force_aperture
| | * fadc62aa82 iommu/mediatek: Fix two IOMMU share pagetable issue
| | * f81325a709 iommu/mediatek: Remove unused "mapping" member from mtk_iommu_data
| | * 343ccde5ad extcon: cht_wc: add POWER_SUPPLY dependency
| | * d3e075a3f0 kernfs: add stub helper for kernfs_generic_poll()
| | * 91a05d4c12 driver core: Call dma_cleanup() on the test_remove path
| | * 58a3b87be6 driver core: test_async: fix an error code
| | * 636f5b8a66 dma-buf/sync_file: Fix docs syntax
| | * ae867cab6b interconnect: qcom: qcm2290: Enable sync state
| | * 7e1476f277 coresight: tmc: Explicit type conversions to prevent integer overflow
| | * ee8f58b40e RDMA/irdma: Replace one-element array with flexible-array member
| | * af6fd0b3bc scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly
| | * dd8ce1c9ff scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly
| | * 472f2497a4 scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
| | * 70518f3aaf RDMA/rxe: Fix incomplete state save in rxe_requester
| | * 59a4f61fec RDMA/rxe: Split rxe_run_task() into two subroutines
| | * 0ad56bf59d x86/APM: drop the duplicate APM_MINOR_DEV macro
| | * 6d209ed70f serial: sprd: Fix DMA buffer leak issue
| | * 70f7513342 serial: sprd: Assign sprd_port after initialized to avoid wrong access
| | * 21608d2ba5 iio: accel: adxl313: Fix adxl313_i2c_id[] table
| | * 25feffb3fb scsi: qla4xxx: Add length check when parsing nlattrs
| | * 1806edae97 scsi: be2iscsi: Add length check when parsing nlattrs
| | * 85b8c282d1 scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
| | * bb8d101b83 scsi: iscsi: Add length check for nlattr payload
| | * 2737d82760 scsi: iscsi: Rename iscsi_set_param() to iscsi_if_set_param()
| | * bdc4f8f681 scsi: RDMA/srp: Fix residual handling
| | * 67b02818e2 usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
| | * 858322c409 media: mediatek: vcodec: fix resource leaks in vdec_msg_queue_init()
| | * bdc00039fd media: mediatek: vcodec: fix potential double free
| | * a356b60031 media: mediatek: vcodec: Return NULL if no vdec_fb is found
| | * b4ee61e5a1 media: amphion: ensure the bitops don't cross boundaries
| | * 932d84a8a8 media: amphion: fix UNUSED_VALUE issue reported by coverity
| | * 60f6392bde media: amphion: fix UNINIT issues reported by coverity
| | * bddd678fd2 media: amphion: fix REVERSE_INULL issues reported by coverity
| | * 3930d62f5d media: amphion: fix CHECKED_RETURN issues reported by coverity
| | * 9ada33ee83 media: rkvdec: increase max supported height for H.264
| | * 715c0200b4 media: mtk-jpeg: Fix use after free bug due to uncanceled work
| | * 62ea218a7e media: amphion: add helper function to get id name
| | * 745f40a96c media: amphion: reinit vpu if reqbufs output 0
| | * 6f0d0f5613 dt-bindings: extcon: maxim,max77843: restrict connector properties
| | * dd0dadb938 scsi: hisi_sas: Fix normally completed I/O analysed as failed
| | * ab0719d7b6 scsi: hisi_sas: Fix warnings detected by sparse
| | * 79a1a8f838 RDMA/siw: Fabricate a GID on tun and loopback devices
| | * a96892a40f media: cx24120: Add retval check for cx24120_message_send()
| | * 2b6e20ef05 media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
| | * 323ee5fc98 media: dib7000p: Fix potential division by zero
| | * 90e0ea8e9b drivers: usb: smsusb: fix error handling code in smsusb_init_device
| | * 92e2dcf941 iommu: rockchip: Fix directory table address encoding
| | * 13ed255248 iommu/amd/iommu_v2: Fix pasid_state refcount dec hit 0 warning on pasid unbind
| | * 25afb3e03b media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
| | * aeb79a1778 media: i2c: tvp5150: check return value of devm_kasprintf()
| | * d7d47edf78 media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables
| | * 79e2cc5c4c media: ov5640: fix low resolution image abnormal issue
| | * 5643c936d1 RDMA/qedr: Remove a duplicate assignment in irdma_query_ah()
| | * 8199a46af2 cgroup/cpuset: Inherit parent's load balance state in v2
| | * 590b45e5cd pNFS: Fix assignment of xprtdata.cred
| | * 4030ace74d NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ
| | * fdbc9637bf NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
| | * 6d08bd22fa NFSD: da_addr_body field missing in some GETDEVICEINFO replies
| | * 02a29a2455 fs: lockd: avoid possible wrong NULL parameter
| | * f27f759f4c jfs: validate max amount of blocks before allocation.
| | * b648f57175 ext4: fix unttached inode after power cut with orphan file feature enabled
| | * f17d5efaaf powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
| | * e83f5e2108 powerpc/mpc5xxx: Add missing fwnode_handle_put()
| | * 4515f1676d powerpc/pseries: Fix hcall tracepoints with JUMP_LABEL=n
| | * ebbfe48dd1 nfs/blocklayout: Use the passed in gfp flags
| | * 4c8568cf4c powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT
| | * a5b6b008e3 powerpc: Don't include lppaca.h in paca.h
| | * 18d51547fe NFSv4.2: Fix READ_PLUS size calculations
| | * fccdafa51d NFSv4.2: Fix up READ_PLUS alignment
| | * 5c47974263 NFSv4.2: Fix READ_PLUS smatch warnings
| | * 886959f425 NFSv4.2: Rework scratch handling for READ_PLUS
| | * e12e13952b wifi: ath10k: Use RMW accessors for changing LNKCTL
| | * 811ec8bc68 wifi: ath11k: Use RMW accessors for changing LNKCTL
| | * 7f4c9c44d1 net/mlx5: Use RMW accessors for changing LNKCTL
| | * 433330fb12 drm/radeon: Use RMW accessors for changing LNKCTL
| | * a0f0daf60b drm/amdgpu: Use RMW accessors for changing LNKCTL
| | * ed6483fac4 powerpc/perf: Convert fsl_emb notifier to state machine callbacks
| | * 1d58a92469 powerpc/fadump: reset dump area size if fadump memory reserve fails
| | * ab8094db59 nvdimm: Fix dereference after free in register_nvdimm_pmu()
| | * 500a6ff9c2 nvdimm: Fix memleak of pmu attr_groups in unregister_nvdimm_pmu()
| | * f6f300ecc1 vfio/type1: fix cap_migration information leak
| | * aae5a866d3 powerpc/radix: Move some functions into #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
| | * dd9241fc4b clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
| | * cc7e04d7ff clk: imx8mp: fix sai4 clock
| | * fcaf148b20 clk: imx: imx8ulp: update SPLL2 type
| | * e1139dea2c clk: imx: pllv4: Fix SPLL2 MULT range
| | * 402e73f645 clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs
| | * 6c88c9d9c6 PCI/ASPM: Use RMW accessors for changing LNKCTL
| | * 952da7c6e1 PCI: pciehp: Use RMW accessors for changing LNKCTL
| | * f2d7da8faf PCI: Add locking to RMW PCI Express Capability Register accessors
| | * 3108f7c788 PCI: Allow drivers to request exclusive config regions
| | * 8a5e87f9e9 pinctrl: mcp23s08: check return value of devm_kasprintf()
| | * 8562df72cf PCI: Mark NVIDIA T4 GPUs to avoid bus reset
| | * f3229c9cb6 PCI: microchip: Correct the DED and SEC interrupt bit offsets
| | * 9daefd2275 clk: qcom: gcc-sm6350: Fix gcc_sdcc2_apps_clk_src
| | * a1801d14a8 clk: qcom: reset: Use the correct type of sleep/delay based on length
| | * a4ff4b54f3 kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add()
| | * fef33ca5e2 kvm/vfio: Prepare for accepting vfio device fd
| | * cc16a50d50 clk: qcom: gcc-sm8250: Fix gcc_sdcc2_apps_clk_src
| | * e0f5698757 ext4: avoid potential data overflow in next_linear_group
| | * 772ca4bc1d ext4: correct grp validation in ext4_mb_good_group
| | * d5fc7d6813 EDAC/igen6: Fix the issue of no error events
| | * 8f43c4000c clk: qcom: gcc-sc7180: Fix up gcc_sdcc2_apps_clk_src
| | * d1a5f22aba clk: sunxi-ng: Modify mismatched function name
| | * d96799ee3b PCI/DOE: Fix destroy_work_on_stack() race
| | * 4a43285900 drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
| | * d96da888dc PCI: qcom-ep: Switch MHI bus master clock off during L1SS
| | * c53d53006d PCI: apple: Initialize pcie->nvecs before use
| | * 7618133eda clk: rockchip: rk3568: Fix PLL rate setting for 78.75MHz
| | * eb613f81d0 clk: qcom: gcc-sc8280xp: Add missing GDSCs
| | * 57fc62c506 dt-bindings: clock: qcom,gcc-sc8280xp: Add missing GDSCs
| | * 06d3a7e03c clk: qcom: gcc-sc8280xp: Add missing GDSC flags
| | * 747848b4af clk: qcom: gcc-sc8280xp: Add EMAC GDSCs
| | * 9cba16beca clk: qcom: gpucc-sm6350: Fix clock source names
| | * 6ace98cb61 clk: qcom: gpucc-sm6350: Introduce index-based clk lookup
| | * 74a1194cce ipmi:ssif: Fix a memory leak when scanning for an adapter
| | * 2e7d90a81b ipmi:ssif: Add check for kstrdup
| | * abbd28d04c ALSA: ac97: Fix possible error value of *rac97
| | * 53996463f8 of: unittest: Fix overlay type in apply/revert check
| | * 3fb210cd52 of: overlay: Call of_changeset_init() early
| | * b13b0c84a4 ASoC: SOF: amd: clear dsp to host interrupt status
| | * c4b06324fc md: raid0: account for split bio in iostat accounting
| | * cc54fa43de md/raid0: Fix performance regression for large sequential writes
| | * cd1dd83888 md/raid0: Factor out helper for mapping and submitting a bio
| | * c227aa1416 md: add error_handlers for raid0 and linear
| | * bc82cd1e7f firmware: cs_dsp: Fix new control name check
| | * 711fb92606 md/raid5-cache: fix null-ptr-deref for r5l_flush_stripe_to_raid()
| | * ac9e103f28 md/raid5-cache: fix a deadlock in r5l_exit_log()
| | * 26bf790b8e bus: ti-sysc: Fix cast to enum warning
| | * 5abfee5e40 arm64: dts: qcom: sc8280xp-x13s: Unreserve NC pins
| | * b386c3e169 arm64: dts: qcom: msm8996: Fix dsi1 interrupts
| | * c6035ee015 arm64: dts: qcom: msm8998: Add missing power domain to MMSS SMMU
| | * cab4cdb2a4 arm64: dts: qcom: msm8998: Drop bus clock reference from MMSS SMMU
| | * 67b4726cb8 arm64: dts: qcom: apq8016-sbc: Fix ov5640 regulator supply names
| | * 867aa88c9e drm/mediatek: Fix potential memory leak if vmap() fail
| | * 1e47d1ac20 ARM: dts: qcom: ipq4019: correct SDHCI XO clock
| | * 4d6a25792f drm/mediatek: Remove freeing not dynamic allocated memory
| | * 635051576f bus: ti-sysc: Fix build warning for 64-bit build
| | * b625a6eaf2 drm/mediatek: dp: Add missing error checks in mtk_dp_parse_capabilities
| | * 0c323430e4 io_uring: fix drain stalls by invalid SQE
| | * 9183c4fe91 block/mq-deadline: use correct way to throttling write requests
| | * 9ca08adb75 audit: fix possible soft lockup in __audit_inode_child()
| | * 607eda339b drm/msm/a2xx: Call adreno_gpu_init() earlier
| | * f27dff881f drm/amd/pm: fix variable dereferenced issue in amdgpu_device_attr_create()
| | * d41ceafe3d smackfs: Prevent underflow in smk_set_cipso()
| | * d1994bb594 drm/msm/dpu: fix the irq index in dpu_encoder_phys_wb_wait_for_commit_done
| | * bd3a6b6d5d firmware: meson_sm: fix to avoid potential NULL pointer dereference
| | * 2965015006 drm/msm/mdp5: Don't leak some plane state
| | * 0cd481c27b soc: qcom: smem: Fix incompatible types in comparison
| | * 3b1f1999a3 drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask
| | * 9b372d2fdc ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
| | * 92eaa18403 drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01
| | * 4174f889c4 drm/repaper: Reduce temporary buffer size in repaper_fb_dirty()
| | * d544c89bb1 drm/armada: Fix off-by-one error in armada_overlay_get_property()
| | * 0ef736fec6 ARM: dts: BCM53573: Fix Tenda AC9 switch CPU port
| | * 976eca4cbd arm64: dts: qcom: sm8150: Fix the I2C7 interrupt
| | * 43cc228099 of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name()
| | * 4ab834ff9f drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
| | * 508383dc27 drm/msm: Update dev core dump to not print backwards
| | * f9b9c6b0d4 md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
| | * e970bc3828 md/md-bitmap: remove unnecessary local variable in backlog_store()
| | * 3829cb3cae md/raid10: use dereference_rdev_and_rrdev() to get devices
| | * 27acd8c131 md/raid10: factor out dereference_rdev_and_rrdev()
| | * 097f30f0ce md: restore 'noio_flag' for the last mddev_resume()
| | * 835cbfebc1 md: Change active_io to percpu
| | * 3db3922570 md: Factor out is_md_suspended helper
| | * 8dcc23191a drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
| | * 13f5c43e09 arm64: dts: qcom: msm8996-gemini: fix touchscreen VIO supply
| | * 5ccd294df2 arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk"
| | * 4aaced381c arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
| | * a80621bb23 ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
| | * b9fa4e10b5 drm: adv7511: Fix low refresh rate register for ADV7533/5
| | * 1a73147347 ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
| | * 9a91a5466a ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
| | * 4e184a7320 ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
| | * 075ee661ba drm/bridge: anx7625: Use common macros for HDCP capabilities
| | * ba1ca2cf4d drm/bridge: anx7625: Use common macros for DP power sequencing commands
| | * d309b170ea x86/mm: Fix PAT bit missing from page protection modify mask
| | * 00c0b2825b block: don't allow enabling a cache on devices that don't support it
| | * e5e0ec8ff1 block: cleanup queue_wc_store
| | * 7db90dd1c5 drm/etnaviv: fix dumping of active MMU context
| | * 800bf8a222 arm64: tegra: Fix HSUART for Smaug
| | * ee5e1d6480 arm64: dts: qcom: pmi8994: Add missing OVP interrupt
| | * 31fe89ccf5 arm64: dts: qcom: pm660l: Add missing short interrupt
| | * cd1ba241d2 arm64: dts: qcom: pm6150l: Add missing short interrupt
| | * 6fd913f0f6 arm64: dts: qcom: sm8250-sony-xperia: correct GPIO keys wakeup again
| | * 0f0e696370 arm64: tegra: Fix HSUART for Jetson AGX Orin
| | * f5ff689709 ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
| | * ab5154ae26 ARM: dts: BCM53573: Add cells sizes to PCIe node
| | * ee1d740374 ARM: dts: BCM53573: Drop nonexistent #usb-cells
| | * fd28ce30b5 drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
| | * 1f3b03863e firmware: ti_sci: Use system_state to determine polling
| | * 0765a80c16 ARM: dts: stm32: Add missing detach mailbox for DHCOM SoM
| | * e3c7b7ce7c ARM: dts: stm32: Update to generic ADC channel binding on DHSOM systems
| | * 9d77a7fc5d ARM: dts: stm32: Add missing detach mailbox for Odyssey SoM
| | * c0929f2bbd ARM: dts: stm32: YAML validation fails for Odyssey Boards
| | * aa72079a19 ARM: dts: stm32: Add missing detach mailbox for emtrion emSBC-Argon
| | * 0746cab476 ARM: dts: stm32: adopt generic iio bindings for adc channels on emstamp-argon
| | * a5274a79ef ARM: dts: stm32: YAML validation fails for Argon Boards
| | * e62c091b6d ARM: dts: stm32: Rename mdio0 to mdio
| | * e8d6e54daf arm64: dts: qcom: sm8250: Mark PCIe hosts as DMA coherent
| | * c755b194d7 arm64: dts: qcom: pmk8350: fix ADC-TM compatible string
| | * 5aa1969ce7 arm64: dts: qcom: pmr735b: fix thermal zone name
| | * de4688dcc0 arm64: dts: qcom: pm8350b: fix thermal zone name
| | * 0f52060fa1 arm64: dts: qcom: pm8350: fix thermal zone name
| | * 8fd3533f4b arm64: dts: qcom: sm8350: Use proper CPU compatibles
| | * db336dcb01 arm64: dts: qcom: sm8350: Add missing LMH interrupts to cpufreq
| | * 0c32fba735 arm64: dts: qcom: sm8350: Fix CPU idle state residency times
| | * c97633eaf5 arm64: dts: qcom: sdm845-tama: Set serial indices and stdout-path
| | * 8622340505 arm64: dts: qcom: msm8996: Add missing interrupt to the USB2 controller
| | * 82c3d3490b arm64: dts: qcom: sc8280xp: Add missing SCM interconnect
| | * e5bf98ceac arm64: dts: qcom: sc8280xp-crd: Correct vreg_misc_3p3 GPIO
| | * 4c7477d0da arm64: dts: qcom: sm8250-edo: Rectify gpio-keys
| | * 7852d20788 arm64: dts: qcom: sm8250-edo: Add GPIO line names for PMIC GPIOs
| | * 4a36d16cdf arm64: dts: qcom: sm8250-edo: Add gpio line names for TLMM
| | * 537346ff2a arm64: dts: qcom: msm8916-l8150: correct light sensor VDDIO supply
| | * d244c92988 arm64: dts: qcom: sm8250: correct dynamic power coefficients
| | * e2040c1101 arm64: dts: qcom: sm6350: Fix ZAP region
| | * ba7ff6085b soc: qcom: ocmem: Fix NUM_PORTS & NUM_MACROS macros
| | * fb4a774a66 soc: qcom: ocmem: Add OCMEM hardware version print
| | * 7bdeb7679f ASoC: stac9766: fix build errors with REGMAP_AC97
| | * c2c6dfc042 drm/hyperv: Fix a compilation issue because of not including screen_info.h
| | * a9fa161b83 drm/amd/display: Do not set drr on pipe commit
| | * 3027e200dd quota: fix dqput() to follow the guarantees dquot_srcu should provide
| | * d57af071cf quota: add new helper dquot_active()
| | * fdcc50d506 quota: rename dquot_active() to inode_quota_active()
| | * 622789ebe1 quota: factor out dquot_write_dquot()
| | * 25193037e0 ASoC: cs43130: Fix numerator/denominator mixup
| | * aa449fa41e drm/bridge: tc358764: Fix debug print parameter order
| | * 45107f9ca8 netrom: Deny concurrent connect().
| | * a1e820fc78 net/sched: sch_hfsc: Ensure inner classes have fsc curve
| | * 85da5ec068 sfc: Check firmware supports Ethernet PTP filter
| | * ea701e0eba cteonxt2-pf: Fix backpressure config for multiple PFC priorities to work simultaneously
| | * 1b7f266e02 octeontx2-pf: Fix PFC TX scheduler free
| | * 80de42d9af octeontx2-pf: Refactor schedular queue alloc/free calls
| | * 23a7b87289 hwmon: (tmp513) Fix the channel number in tmp51x_is_visible()
| | * 8b2fb4b671 mlxsw: core_hwmon: Adjust module label names based on MTCAP sensor counter
| | * 6406a95c4a mlxsw: i2c: Limit single transaction buffer size
| | * 2fc2400940 mlxsw: i2c: Fix chunk size setting in output mailbox buffer
| | * ec9538da6c net: arcnet: Do not call kfree_skb() under local_irq_disable()
| | * cb09afe905 ice: avoid executing commands on other ports when driving sync
| | * 90e7778660 wifi: ath9k: use IS_ERR() with debugfs_create_dir()
| | * 4a8fadcf37 arm64: mm: use ptep_clear() instead of pte_clear() in clear_flush()
| | * a33ae132ee Bluetooth: btusb: Do not call kfree_skb() under spin_lock_irqsave()
| | * 7e7197e4d6 wifi: mwifiex: avoid possible NULL skb pointer dereference
| | * 7930fa4ca8 mac80211: make ieee80211_tx_info padding explicit
| | * 4381d60832 wifi: nl80211/cfg80211: add forgotten nla_policy for BSS color attribute
| | * 4c340bfddc wifi: ath9k: protect WMI command response buffer replacement with a lock
| | * 8ba31f946a wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
| | * 7984c381bb samples/bpf: fix broken map lookup probe
| | * c813db76bc samples/bpf: fix bio latency check with tracepoint
| | * ef67f3a959 ARM: dts: Add .dts files missing from the build
| | * cde525d611 wifi: mwifiex: Fix missed return in oob checks failed path
| | * 84081b4baa wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
| | * 9257a1d6f2 net: annotate data-races around sk->sk_lingertime
| | * 844d60cc5e fs: ocfs2: namei: check return value of ocfs2_add_entry()
| | * a485a4bd82 lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
| | * 065d5f1709 lwt: Fix return values of BPF xmit ops
| | * 0159a21b9d hwrng: iproc-rng200 - Implement suspend and resume calls
| | * 92651ce45b crypto: caam - fix unchecked return value error
| | * 841d2fffd0 ice: ice_aq_check_events: fix off-by-one check when filling buffer
| | * 0f50641222 net-memcg: Fix scope of sockmem pressure indicators
| | * 8d61adfb59 selftests/bpf: Clean up fmod_ret in bench_rename test script
| | * eafa3465c8 selftests/bpf: Fix repeat option when kfunc_call verification fails
| | * d6702008fc net: tcp: fix unexcepted socket die when snd_wnd is 0
| | * 81d8e9f59d Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_add_adv_monitor()
| | * bd39b55240 Bluetooth: hci_sync: Don't double print name in add/remove adv_monitor
| | * 94617b736c Bluetooth: Fix potential use-after-free when clear keys
| | * 9246d9310c Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
| | * c4cb61c5f9 crypto: api - Use work queue in crypto_destroy_instance
| | * 501f77cfce crypto: stm32 - Properly handle pm_runtime_get failing
| | * 6fc09c8d76 kbuild: rust_is_available: fix confusion when a version appears in the path
| | * 4f8c55ae5d kbuild: rust_is_available: add check for `bindgen` invocation
| | * bb15fb4e49 kbuild: rust_is_available: fix version check when CC has multiple arguments
| | * 6c7182b9c8 kbuild: rust_is_available: remove -v option
| | * 90978b2ff4 selftests/bpf: fix static assert compilation issue for test_cls_*.c
| | * c015029dfc wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
| | * 3975e21d4d wifi: mwifiex: Fix OOB and integer underflow when rx packets
| | * 49b6db89ab wifi: mt76: mt7915: fix power-limits while chan_switch
| | * 2dd5c7f420 can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
| | * ce60bfc24c spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe()
| | * f5f7aa2b6b wifi: mt76: testmode: add nla_policy for MT76_TM_ATTR_TX_LENGTH
| | * c0ce0fb766 bpf: reject unhashed sockets in bpf_sk_assign
| | * 99331d7c6e udp: re-score reuseport groups when connected sockets are present
| | * 328b85e7b1 wifi: mt76: mt7921: fix non-PSC channel scan fail
| | * 6bf4ccafb3 wifi: rtw89: debug: Fix error handling in rtw89_debug_priv_btc_manual_set()
| | * 39a6b4bbc5 regmap: rbtree: Use alloc_flags for memory allocations
| | * 684431894e hwrng: pic32 - use devm_clk_get_enabled
| | * 79a8ea5bf4 hwrng: nomadik - keep clock enabled while hwrng is registered
| | * 73d97508ab tcp: tcp_enter_quickack_mode() should be static
| | * 01964c6308 crypto: qat - change value of default idle filter
| | * 912310dd84 bpf: Fix an error in verifying a field in a union
| | * 780f072f4f bpf: Clear the probe_addr for uprobe
| | * 0cfbadb153 libbpf: Fix realloc API handling in zero-sized edge cases
| | * fc7ed36a31 bpftool: Use a local bpf_perf_event_value to fix accessing its fields
| | * 0b20dc1edd bpftool: Use a local copy of BPF_LINK_TYPE_PERF_EVENT in pid_iter.bpf.c
| | * 840c64d96e bpftool: Define a local bpf_perf_link to fix accessing its fields
| | * 4d5f00b2fa bpftool: use a local copy of perf_event to fix accessing :: Bpf_cookie
| | * 010c6a02e6 selftests/bpf: Fix bpf_nf failure upon test rerun
| | * 6f2b84248b cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
| | * 91f76271ec x86/efistub: Fix PCI ROM preservation in mixed mode
| | * fcf78a17bb cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver
| | * 14920fb907 cpufreq: amd-pstate-ut: Remove module parameter access
| | * 7da6250d29 thermal/of: Fix potential uninitialized value access
| | * 7c70932568 ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table
| | * a99f32b81c ACPI: x86: s2idle: Post-increment variables when getting constraints
| | * 8ee6d04ef2 irqchip/loongson-eiointc: Fix return value checking of eiointc_index
| | * 14e37e08b4 s390/paes: fix PKEY_TYPE_EP11_AES handling for secure keyblobs
| | * f326e37a21 s390/pkey: fix PKEY_TYPE_EP11_AES handling for sysfs attributes
| | * f98ea9abc1 s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_GENSECK2 IOCTL
| | * 87d452a076 s390/pkey: fix/harmonize internal keyblob headers
| | * 7d31730c5d selftests/futex: Order calls to futex_lock_pi
| | * 048d1a8b9d perf/imx_ddr: don't enable counter0 if none of 4 counters are used
| | * 5fce29ab20 sched/rt: Fix sysctl_sched_rr_timeslice intial value
| | * dfadde1697 arm64/fpsimd: Only provide the length to cpufeature for xCR registers
| | * 8efd042029 arm64/sme: Don't use streaming mode to probe the maximum SME VL
| | * 1d9a735d4e x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
| | * be361e5ec4 sched/psi: Select KERNFS as needed
| | * 287aeeb731 arm64/ptrace: Clean up error handling path in sve_set_common()
| | * 9d8f66d6de selftests/resctrl: Close perf value read fd on errors
| | * f046a88cba selftests/resctrl: Unmount resctrl FS if child fails to run benchmark
| | * d4b1f43944 selftests/resctrl: Don't leak buffer in fill_cache()
| | * 1051a1c5dd selftests/resctrl: Add resctrl.h into build deps
| | * 5d343b4907 OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
| | * e0322a255a refscale: Fix uninitalized use of wait_queue_head_t
| | * 085fe43238 ARM: ptrace: Restore syscall skipping for tracers
| | * 916ca81922 ARM: ptrace: Restore syscall restart tracing
| | * ed134f284b vfs, security: Fix automount superblock LSM init problem, preventing NFS sb sharing
| | * 1cdf51b4e5 selftests/harness: Actually report SKIP for signal tests
| | * c13e6edbad tmpfs: verify {g,u}id mount options correctly
| | * 254c396da3 iomap: Remove large folio handling in iomap_invalidate_folio()
| | * b553ac4894 fs: Fix error checking for d_hash_and_lookup()
| | * e12214c7ad eventfd: prevent underflow for eventfd semaphores
| | * 9720f89428 reiserfs: Check the return value from __getblk()
| | * 0c7e6ff75e tools/resolve_btfids: Fix setting HOSTCFLAGS
| | * 1ad863e91a tools/resolve_btfids: Pass HOSTCFLAGS as EXTRA_CFLAGS to prepare targets
| | * a2a9f5bccc tools/resolve_btfids: Tidy HOST_OVERRIDES
| | * b3f1d78c67 tools/resolve_btfids: Compile resolve_btfids as host program
| | * 833a654b51 tools/resolve_btfids: Alter how HOSTCC is forced
| | * 2457021a4f tools/resolve_btfids: Install subcmd headers
| | * d35187340a tools/resolve_btfids: Use pkg-config to locate libelf
| | * 05026e944b tools lib subcmd: Add dependency test to install_headers
| | * 424fd56932 tools lib subcmd: Make install_headers clearer
| | * a07388d1a7 tools lib subcmd: Add install target
| | * b9c54fd376 Revert "net: macsec: preserve ingress frame ordering"
| | * 786e09ae59 Revert "PCI: tegra194: Enable support for 256 Byte payload"
| | * f725ae7f0e Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
| | * b990ac5644 udf: Handle error when adding extent to a file
| | * 6ac8f2c836 udf: Check consistency of Space Bitmap Descriptor
| | * 7ac1467f94 drm/amd/display: ensure async flips are only accepted for fast updates
| | * 8f965b5b52 net: Avoid address overwrite in kernel_connect
| | * 8c737d950c KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages
| | * 45e3dfbf0e KVM: x86/mmu: Use kstrtobool() instead of strtobool()
| | * 181831df9d tpm: Enable hwrng only for Pluton on AMD CPUs
| | * 9c8dab18f8 crypto: rsa-pkcs1pad - Use helper to set reqsize
| | * 63f1117db5 cpufreq: intel_pstate: set stale CPU frequency to minimum
| | * c50fdd5334 of: property: Simplify of_link_to_phandle()
| | * 8f647ac91a platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE notifications
| | * 10f358cd4b tracing: Introduce pipe_cpumask to avoid race on trace_pipes
| | * 41103f7f68 net: sfp: handle 100G/25G active optical cables in sfp_parse_support
| | * f24681b816 ALSA: seq: oss: Fix racy open/close of MIDI devices
| | * ab5c5c10d0 LoongArch: Fix the write_fcsr() macro
| | * 9920a52362 LoongArch: Let pmd_present() return true when splitting pmd
| | * 790587097c scsi: lpfc: Fix incorrect big endian type assignment in bsg loopback path
| | * 1a7f80f33a scsi: storvsc: Always set no_report_opcodes
| | * 7d1ac3c2eb scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity
| | * dcfd75bca8 sctp: handle invalid error codes without calling BUG()
| | * fbd3ae6997 cifs: fix max_credits implementation
| | * 8a424afa08 cifs: fix sockaddr comparison in iface_cmp
| | * ea13eff14e bnx2x: fix page fault following EEH recovery
| | * 179b9b062f netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
| | * 78ef22febd wifi: mac80211: Use active_links instead of valid_links in Tx
| | * 41b446e490 wifi: cfg80211: remove links only on AP
| | * 5251c83532 drm/amdgpu: Match against exact bootloader status
| | * f20bee49dc net: hns3: restore user pause configure when disable autoneg
| | * c61d104612 scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
| | * 24d9cc9335 scsi: lpfc: Remove reftag check in DIF paths
| | * c70b9758ee platform/x86/amd/pmf: Fix unsigned comparison with less than zero
| | * acf4ec3b42 idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
| | * 59c4b9a2ca powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
| | * 54d3fba7d8 wifi: brcmfmac: Fix field-spanning write in brcmf_scan_params_v2_to_v1()
| | * 71f5a7f174 net: usb: qmi_wwan: add Quectel EM05GV2
| | * a2b5a9654a net: annotate data-races around sk->sk_{rcv|snd}timeo
| | * 94515e9aa8 net: dsa: microchip: KSZ9477 register regmap alignment to 32 bit boundaries
| | * 848477e083 Revert "wifi: ath6k: silence false positive -Wno-dangling-pointer warning on GCC 12"
| | * 51edd7383b vmbus_testing: fix wrong python syntax for integer value comparison
| | * 98f933716a clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
| | * 473a55cfc1 kprobes: Prohibit probing on CFI preamble symbol
| | * 896e9e5778 security: keys: perform capable check only on privileged operations
| | * 0ffed24af5 staging: fbtft: ili9341: use macro FBTFT_REGISTER_SPI_DRIVER
| | * 55954eea70 ALSA: usb-audio: Update for native DSD support quirks
| | * d676d02be8 ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer()
| | * fbf4048d8f ovl: Always reevaluate the file signature for IMA
| | * ae1cb9656e drm/amd/display: Exit idle optimizations before attempt to access PHY
| | * faa77cf5f2 drm/amd/display: Guard DCN31 PHYD32CLK logic against chip family
| | * d7b1aa3e20 drm/amd/smu: use AverageGfxclkFrequency* to replace previous GFX Curr Clock
| | * 7c2d13fb9b platform/x86: huawei-wmi: Silence ambient light sensor
| | * 5c5628287b platform/x86: asus-wmi: Fix setting RGB mode on some TUF laptops
| | * aeee50c152 platform/x86: think-lmi: Use kfree_sensitive instead of kfree
| | * dea41980d7 platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks
| | * 7d0f7924ef platform/x86: intel: hid: Always call BTNL ACPI method
| | * eb54ad1ed6 ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset
| | * 9c12633201 ASoC: atmel: Fix the 8K sample parameter in I2SC master
| | * 2e780a9f4a ASoC: rt711-sdca: fix for JD event handling in ClockStop Mode0
| | * a1fbf45a24 ASoC: rt711: fix for JD event handling in ClockStop Mode0
| | * 82e17577b6 ASoc: codecs: ES8316: Fix DMIC config
| | * 10999df817 ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0
| | * 952af5cfd5 fs/nls: make load_nls() take a const parameter
| | * d28f76be79 s390/dasd: fix hanging device after request requeue
| | * d563f679a2 s390/dasd: use correct number of retries for ERP requests
| | * a41f2f6aff m68k: Fix invalid .section syntax
| | * 328fcde050 ethernet: atheros: fix return value check in atl1c_tso_csum()
| | * 0f7b43a577 ASoC: nau8821: Add DMI quirk mechanism for active-high jack-detect
| | * eb746c4750 ASoC: da7219: Check for failure reading AAD IRQ events
| | * 3c59ad8d6e ASoC: da7219: Flush pending AAD IRQ when suspending
| | * 330d900620 ksmbd: fix out of bounds in init_smb2_rsp_hdr()
| | * 99a2426b13 ksmbd: no response from compound read
| | * becb5191d1 ksmbd: validate session id and tree id in compound request
| | * 9776024ee0 ksmbd: fix out of bounds in smb3_decrypt_req()
| | * 513eac8b85 9p: virtio: make sure 'offs' is initialized in zc_request
| | * 05d88512e8 9p: virtio: fix unlikely null pointer deref in handle_rerror
| | * 72c90ebb2d media: pci: cx23885: fix error handling for cx23885 ATSC boards
| | * eb3c2b3519 media: pulse8-cec: handle possible ping error
| | * 0b6e7170cc media: amphion: use dev_err_probe
| | * 026e918b36 phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code
| | * 2981ff271d Revert "MIPS: unhide PATA_PLATFORM"
| | * b608025733 media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field
| | * 36148a9b14 powerpc/boot: Disable power10 features after BOOTAFLAGS assignment
| | * 4e005f5dd5 ALSA: hda/realtek: Enable 4 amplifiers instead of 2 on a HP platform
| | * f4bd9a4315 ARM: dts: imx: Set default tuning step for imx7d usdhc
| | * 7f483ce469 Revert "Revert drm/amd/display: Enable Freesync Video Mode by default"
| | * 6ab081571f scsi: ufs: Try harder to change the power mode
| | * 9fc3adc6d0 Partially revert "drm/amd/display: Fix possible underflow for displays with large vblank"
| | * 9186398472 Revert "bridge: Add extack warning when enabling STP in netns."
| * | 7454138ade Merge 6.1.52 into android14-6.1-lts
| |\|
| | * 59b13c2b64 Linux 6.1.52
| | * 4a6284a2fc pinctrl: amd: Don't show `Invalid config param` errors
| | * 7bec12fa98 usb: typec: tcpci: clear the fault status bit
| | * 4da07e958b nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
| | * fdbfc54d53 nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
| | * 689561db68 dt-bindings: sc16is7xx: Add property to change GPIO function
| | * dca7c99651 tcpm: Avoid soft reset when partner does not support get_status
| | * a1fc009692 fsi: master-ast-cf: Add MODULE_FIRMWARE macro
| | * b5c7bc370e firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
| | * b736642962 serial: sc16is7xx: fix bug when first setting GPIO direction
| | * 682f9b9443 serial: sc16is7xx: fix broken port 0 uart init
| | * 4b3de7d2f8 serial: qcom-geni: fix opp vote on shutdown
| | * 1cd102aaed wifi: mt76: mt7921: fix skb leak by txs missing in AMSDU
| | * 74ceef6e69 wifi: mt76: mt7921: do not support one stream on secondary antenna only
| | * 179c658285 Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition
| | * 86b818e249 staging: rtl8712: fix race condition
| | * bd69537c1a HID: wacom: remove the battery when the EKR is off
| | * 48729a1d2a usb: chipidea: imx: improve logic if samsung,picophy-* parameter is 0
| | * c564d4f91a usb: dwc3: meson-g12a: do post init to fix broken usb after resumption
| | * bfc4ccc0bc ALSA: usb-audio: Fix init call orders for UAC1
| | * 69d9330f2e USB: serial: option: add FOXCONN T99W368/T99W373 product
| | * 34f396f7ab USB: serial: option: add Quectel EM05G variant (0x030e)
| | * 5d0fe30be4 modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
| | * 36231e2c4e rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
| | * 915219699d net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
| | * 4dab89cccd mmc: au1xmmc: force non-modular build and remove symbol_get usage
| | * ac6fa0e04b ARM: pxa: remove use of symbol_get()
| | * cf859267e6 ksmbd: reduce descriptor size if remaining bytes is less than request size
| | * d070c4dd2a ksmbd: replace one-element array with flex-array member in struct smb2_ea_info
| | * 30fd6521b2 ksmbd: fix slub overflow in ksmbd_decode_ntlmssp_auth_blob()
| | * 7d8855fd84 ksmbd: fix wrong DataOffset validation of create context
| | * 1ce9ebc96e erofs: ensure that the post-EOF tails are all zeroed
| * | b92d1cb293 Merge 6.1.51 into android14-6.1-lts
| |\|
| | * c2cbfe5f51 Linux 6.1.51
| | * ae0188f9c2 thunderbolt: Fix a backport error for display flickering issue
| | * 583a8426ab kallsyms: Fix kallsyms_selftest failure
| | * 5d54040e9d io_uring/parisc: Adjust pgoff in io_uring mmap() for parisc
| | * fff21bc26b parisc: sys_parisc: parisc_personality() is called from asm code
| | * e8ac4be717 parisc: Cleanup mmap implementation regarding color alignment
| | * b3d099df68 lockdep: fix static memory detection even more
| | * 1cb79e7e05 ARM: module: Use module_init_layout_section() to spot init sections
| | * 8d99105d6a arm64: module: Use module_init_layout_section() to spot init sections
| | * 42efdb3531 arm64: module-plts: inline linux/moduleloader.h
| | * 207e228bf1 module: Expose module_init_layout_section()
| | * b0dc0aac20 ACPI: thermal: Drop nocrt parameter
| * | 0910193fd6 Merge 6.1.50 into android14-6.1-lts
| |\|
| | * a2943d2d9a Linux 6.1.50
| | * 19641b979b ASoC: amd: vangogh: select CONFIG_SND_AMD_ACP_CONFIG
| | * 9d5a3b4aee maple_tree: disable mas_wr_append() when other readers are possible
| | * 936cf79649 ASoC: amd: yc: Fix a non-functional mic on Lenovo 82SJ
| | * d10ab996bd gpio: sim: pass the GPIO device's software node to irq domain
| | * 3c839f8332 gpio: sim: dispose of irq mappings before destroying the irq_sim domain
| | * 3282e79a85 dma-buf/sw_sync: Avoid recursive lock during fence signal
| | * 6ed06b94f6 pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function}
| | * 3fb1b959af pinctrl: renesas: rzv2m: Fix NULL pointer dereference in rzv2m_dt_subnode_to_map()
| | * 4a75bf3f6f pinctrl: renesas: rzg2l: Fix NULL pointer dereference in rzg2l_dt_subnode_to_map()
| | * 0ba9a242a6 clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
| | * 70461151d0 scsi: core: raid_class: Remove raid_component_add()
| | * 774cb3de7a scsi: snic: Fix double free in snic_tgt_create()
| | * bd20e20c4d madvise:madvise_free_pte_range(): don't use mapcount() against large folio for sharing check
| | * f67e3a725b can: raw: add missing refcount for memory leak fix
| | * b7803afc77 ublk: remove check IO_URING_F_SQE128 in ublk_ch_uring_cmd
| | * f016326d31 thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards
| | * d3ff67076b cgroup/cpuset: Free DL BW in case can_attach() fails
| | * f0135131bb sched/deadline: Create DL BW alloc, free & check overflow interface
| | * 064b960dbe cgroup/cpuset: Iterate only if DEADLINE tasks are present
| | * d1b4262b78 sched/cpuset: Keep track of SCHED_DEADLINE task in cpusets
| | * 9bcfe15278 sched/cpuset: Bring back cpuset_mutex
| | * 7030fbf75f cgroup/cpuset: Rename functions dealing with DEADLINE accounting
| | * ce59b7c1b0 nfsd: use vfs setgid helper
| | * 362ed5d931 nfs: use vfs setgid helper
| | * a0ec52f36c selftests/net: mv bpf/nat6to4.c to net folder
| | * f1fa6e6f85 hwmon: (aquacomputer_d5next) Add selective 200ms delay after sending ctrl report
| | * d8f9a9cfdc x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
| | * 6bcb9c7d04 x86/fpu: Invalidate FPU state correctly on exec()
| | * 3bc9b0364a drm/display/dp: Fix the DP DSC Receiver cap size
| | * 3abffee609 drm/i915/dgfx: Enable d3cold at s2idle
| | * 115f2ccd3a drm/vmwgfx: Fix shader stage validation
| | * 1900e193b5 PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus
| | * fe04122b93 media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
| | * 4919043ab9 pinctrl: amd: Mask wake bits on probe again
| | * c6b7d89020 of: dynamic: Refactor action prints to not use "%pOF" inside devtree_lock
| | * 2d00ca90b8 of: unittest: Fix EXPECT for parse_phandle_with_args_map() test
| | * e75de82b37 radix tree: remove unused variable
| | * aa096bc3c8 riscv: Fix build errors using binutils2.37 toolchains
| | * 3383597574 riscv: Handle zicsr/zifencei issue between gcc and binutils
| | * 30ffd5890a lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
| | * 82bb5f8aba batman-adv: Hold rtnl lock during MTU update via netlink
| | * cb1f73e691 batman-adv: Fix batadv_v_ogm_aggr_send memory leak
| | * f1bead97f0 batman-adv: Fix TT global entry leak when client roamed back
| | * fc9b87d8b7 batman-adv: Do not get eth header before batadv_check_management_packet
| | * ed1eb19806 batman-adv: Don't increase MTU when set by user
| | * efef746c5a batman-adv: Trigger events for auto adjusted MTU
| | * d6b64d710e selinux: set next pointer before attaching to list
| | * 36c5aecc78 nfsd: Fix race to FREE_STATEID and cl_revoked
| | * 96fb46ef82 NFS: Fix a use after free in nfs_direct_join_group()
| | * bdc544a87d mm: memory-failure: fix unexpected return value in soft_offline_page()
| | * 07fad410aa mm: add a call to flush_cache_vmap() in vmap_pfn()
| | * a8a60bc802 mm/gup: handle cont-PTE hugetlb pages correctly in gup_must_unshare() via GUP-fast
| | * d4e11b85a2 ALSA: ymfpci: Fix the missing snd_card_free() call at probe error
| | * d13f3a63d2 shmem: fix smaps BUG sleeping while atomic
| | * 091591f6e7 mm,ima,kexec,of: use memblock_free_late from ima_free_kexec_buffer
| | * a7d172252b clk: Fix slab-out-of-bounds error in devm_clk_release()
| | * 14904f4d8b NFSv4: Fix dropped lock for racing OPEN and delegation return
| | * ac467d7405 platform/x86: ideapad-laptop: Add support for new hotkeys found on ThinkBook 14s Yoga ITL
| | * e6a60eccd0 wifi: mac80211: limit reorder_buf_filtered to avoid UBSAN warning
| | * b8b7243aaf ibmveth: Use dcbf rather than dcbfl
| | * 85607ef399 ASoC: cs35l41: Correct amp_gain_tlv values
| | * 014fec5540 ASoC: amd: yc: Add VivoBook Pro 15 to quirks list for acp6x
| | * 22a406b362 io_uring/msg_ring: fix missing lock on overflow for IOPOLL
| | * 816c7cecf6 io_uring/msg_ring: move double lock/unlock helpers higher up
| | * 4f59375285 io_uring: extract a io_msg_install_complete helper
| | * 0d617fb6d5 io_uring: get rid of double locking
| | * 82d811ff56 KVM: x86/mmu: Fix an sign-extension bug with mmu_seq that hangs vCPUs
| | * 2800385fda KVM: x86: Preserve TDP MMU roots until they are explicitly invalidated
| | * a0559fd0e1 bonding: fix macvlan over alb bond support
| | * b15dea3de4 rtnetlink: Reject negative ifindexes in RTM_NEWLINK
| | * ed3fe5f902 netfilter: nf_tables: fix out of memory error handling
| | * 41841b585e netfilter: nf_tables: flush pending destroy work before netlink notifier
| | * 136861956a i40e: fix potential NULL pointer dereferencing of pf->vf i40e_sync_vsi_filters()
| | * 581668893e net/sched: fix a qdisc modification with ambiguous command request
| | * f94f30e2ab igc: Fix the typo in the PTM Control macro
| | * 9b7fd6beec igb: Avoid starting unnecessary workqueues
| | * 39d43b9cdf can: isotp: fix support for transmission of SF without flow control
| | * f41781b9d8 selftests: bonding: do not set port down before adding to bond
| | * 850e2322ae ice: Fix NULL pointer deref during VF reset
| | * 7cddaed2a3 Revert "ice: Fix ice VF reset during iavf initialization"
| | * 1188e9dd7a ice: fix receive buffer size miscalculation
| | * 417e7ec0d6 ipv4: fix data-races around inet->inet_id
| | * 4af1fe642f net: validate veth and vxcan peer ifindexes
| | * afc9d3d217 net: bcmgenet: Fix return value check for fixed_phy_register()
| | * 029e491b8c net: bgmac: Fix return value check for fixed_phy_register()
| | * ac25925148 net: dsa: mt7530: fix handling of 802.1X PAE frames
| | * c663607202 selftests: mlxsw: Fix test failure on Spectrum-4
| | * 1288f99075 mlxsw: Fix the size of 'VIRT_ROUTER_MSB'
| | * 7134565a82 mlxsw: reg: Fix SSPR register layout
| | * 22f9b5468d mlxsw: pci: Set time stamp fields also when its type is MIRROR_UTC
| | * 4496f6ccf5 ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
| | * 265ed382e0 dccp: annotate data-races in dccp_poll()
| | * b516a24f4c sock: annotate data-races around prot->memory_pressure
| | * cfee17993d net: dsa: felix: fix oversize frame dropping for always closed tc-taprio gates
| | * b701b8d191 devlink: add missing unregister linecard notification
| | * 1375d20612 devlink: move code to a dedicated directory
| | * eaeef5c865 octeontx2-af: SDP: fix receive link config
| | * 2cb0c037c9 tracing: Fix memleak due to race between current_tracer and trace
| | * 7d0c2b0de2 tracing: Fix cpu buffers unavailable due to 'record_disabled' missed
| | * 7e862cce34 drm/i915/gt: Support aux invalidation on all engines
| | * 8e3f138b96 drm/i915/gt: Poll aux invalidation register bit on invalidation
| | * 017d440431 drm/i915/gt: Ensure memory quiesced before invalidation
| | * c23126f2c7 drm/i915: Add the gen12_needs_ccs_aux_inv helper
| | * d4f5dcf68c s390/zcrypt: fix reply buffer calculations for CCA replies
| | * 246d763b79 s390/zcrypt: remove unnecessary (void *) conversions
| | * 40dafcab9d can: raw: fix lockdep issue in raw_release()
| | * 335987e212 can: raw: fix receiver memory leak
| | * e5c768d809 jbd2: fix a race when checking checkpoint buffer busy
| | * 5fda50e262 jbd2: remove journal_clean_one_cp_list()
| | * 8168c96c24 jbd2: remove t_checkpoint_io_list
| | * 1fa68a7810 MIPS: cpu-features: Use boot_cpu_type for CPU type based features
| | * 92c568c82e MIPS: cpu-features: Enable octeon_cache by cpu_type
| | * 3e4d038da3 PCI: acpiphp: Reassign resources on bridge if necessary
| | * 28916927b7 video/aperture: Move vga handling to pci function
| | * 4aad3b82b9 video/aperture: Only kick vgacon when the pdev is decoding vga
| | * 437e99f2a1 drm/aperture: Remove primary argument
| | * cccfcbb9e5 drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers
| | * 6db53af154 fbdev/radeon: use pci aperture helpers
| | * cd1f889c99 drm/ast: Use drm_aperture_remove_conflicting_pci_framebuffers
| | * 26ea8668b8 xprtrdma: Remap Receive buffers after a reconnect
| | * d9aac9cdd6 NFSv4: fix out path in __nfs4_get_acl_uncached
| | * 4a289d123f NFSv4.2: fix error handling in nfs42_proc_getxattr
| * | d8c0666a03 Merge 6.1.49 into android14-6.1-lts
| |\|
| | * 024f76bca9 Linux 6.1.49
| | * db05f8449b Revert "f2fs: fix to do sanity check on direct node in truncate_dnode()"
| | * c5bd20577f Revert "f2fs: fix to set flush_merge opt and show noflush_merge"
| | * 76e18e6709 Revert "f2fs: don't reset unchangable mount option in f2fs_remount()"
| | * 77c576602d objtool/x86: Fix SRSO mess
| * | 13f6afea0c Merge 6.1.48 into android14-6.1-lts
| |\|
| | * cd363bb954 Linux 6.1.48
| | * 7487244912 x86/srso: Correct the mitigation status when SMT is disabled
| | * 4da4aae04b objtool/x86: Fixup frame-pointer vs rethunk
| | * c8b056a3b4 x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG
| | * dae93ed961 x86/srso: Disable the mitigation on unaffected configurations
| | * e4679a0342 x86/CPU/AMD: Fix the DIV(0) initial fix attempt
| | * b41eb316c9 x86/retpoline: Don't clobber RFLAGS during srso_safe_ret()
| | * c1f831425f x86/static_call: Fix __static_call_fixup()
| | * c16d0b3baf x86/srso: Explain the untraining sequences a bit more
| | * 529a9f087a x86/cpu: Cleanup the untrain mess
| | * e6b40d2cb5 x86/cpu: Rename srso_(.*)_alias to srso_alias_\1
| | * 54dde78a50 x86/cpu: Rename original retbleed methods
| | * 44dbc912fd x86/cpu: Clean up SRSO return thunk mess
| | * 53ebbe1c8c x86/alternative: Make custom return thunk unconditional
| | * 8bb1ed390d x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk()
| | * 6e4dd7d263 x86/cpu: Fix __x86_return_thunk symbol type
| * | 50874c58d8 Merge 6.1.47 into android14-6.1-lts
| |\|
| | * 802aacbbff Linux 6.1.47
| | * 0768ecc49e mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
| | * b2c55af89b net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled
| | * 3f27451c9f drm/nouveau/disp: fix use-after-free in error handling of nouveau_connector_create
| | * 790c2f9d15 af_unix: Fix null-ptr-deref in unix_stream_sendpage().
| | * ab63f883bf drm/amdgpu: keep irq count in amdgpu_irq_disable_all
| | * 8abce61273 drm/amd/pm: skip the RLC stop when S0i3 suspend for SMU v13.0.4/11
| | * 21614ba608 arm64/ptrace: Ensure that SME is set up for target when writing SSVE state
| | * 1be35f5c16 netfilter: set default timeout to 3 secs for sctp shutdown send and recv state
| | * 1b4ce2952b hugetlb: do not clear hugetlb dtor until allocating vmemmap
| | * 4bdfe20d85 drm/amd/display: Implement workaround for writing to OTG_PIXEL_RATE_DIV register
| | * 8517d73992 sched/fair: Remove capacity inversion detection
| | * e8acf9971f sched/fair: unlink misfit task from cpu overutilized
| | * 5274bf1f74 zsmalloc: allow only one active pool compaction context
| | * d4008eadfc drm/amd/display: disable RCO for DCN314
| | * b2f599c014 ASoC: amd: vangogh: select CONFIG_SND_AMD_ACP_CONFIG
| | * 7de99bf5bc drm/amdgpu/pm: fix throttle_status for other than MP1 11.0.7
| | * 9c8c2cf9f9 drm/amdgpu: skip fence GFX interrupts disable/enable for S0ix
| | * e1cbd5637f drm/amd: flush any delayed gfxoff on suspend entry
| | * df1566ce41 drm/i915/sdvo: fix panel_type initialization
| | * a1fa8f0fc5 drm/qxl: fix UAF on handle creation
| | * 5818da46a2 mmc: block: Fix in_flight[issue_type] value error
| | * dccd07b0d9 mmc: wbsd: fix double mmc_free_host() in wbsd_init()
| | * 8ad3bfdd22 blk-crypto: dynamically allocate fallback profile
| | * 65bcb07b12 arm64: dts: rockchip: Fix Wifi/Bluetooth on ROCK Pi 4 boards
| | * fc66f81579 virtio-net: Zero max_tx_vq field for VIRTIO_NET_CTRL_MQ_HASH_CONFIG case
| | * 9e725386d4 cifs: Release folio lock on fscache read hit.
| | * bfd25f5e64 ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces.
| | * 0c05493341 serial: 8250: Fix oops for port->pm on uart_change_pm()
| | * af7ca7ad37 riscv: uaccess: Return the number of bytes effectively not copied
| | * ea65d78ef9 ALSA: hda/realtek - Remodified 3k pull low procedure
| | * b662856b71 soc: aspeed: socinfo: Add kfree for kstrdup
| | * 15db1e594e soc: aspeed: uart-routing: Use __sysfs_match_string
| | * 6c889d2123 ALSA: hda/realtek: Add quirks for HP G11 Laptops
| | * 7b041466ed ASoC: meson: axg-tdm-formatter: fix channel slot allocation
| | * f0451002a4 ASoC: rt5665: add missed regulator_bulk_disable
| | * 2b34636b50 arm64: dts: imx93: Fix anatop node size
| | * 9ba52bd267 ARM: dts: imx: Set default tuning step for imx6sx usdhc
| | * 6777c4379b arm64: dts: imx8mm: Drop CSI1 PHY reference clock configuration
| | * ca69bb1453 ARM: dts: imx6: phytec: fix RTC interrupt level
| | * d2d6d51d75 ARM: dts: imx: align LED node names with dtschema
| | * 66d761a229 arm64: dts: rockchip: Disable HS400 for eMMC on ROCK 4C+
| | * 52d3607db0 arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4
| | * 9657a754c5 arm64: dts: qcom: qrb5165-rb5: fix thermal zone conflict
| | * fae3868be8 bus: ti-sysc: Flush posted write on enable before reset
| | * 1c82d1b736 ice: Block switchdev mode when ADQ is active and vice versa
| | * fbc7b1dad8 qede: fix firmware halt over suspend and resume
| | * 2e03a92b24 net: do not allow gso_size to be set to GSO_BY_FRAGS
| | * 06b8f06f93 sock: Fix misuse of sk_under_memory_pressure()
| | * 3d820924c0 sfc: don't unregister flow_indr if it was never registered
| | * df83af3b99 net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
| | * 740924313a i40e: fix misleading debug logs
| | * ea749b5e3b iavf: fix FDIR rule fields masks validation
| | * c965a58376 net: openvswitch: reject negative ifindex
| | * d5e4c0e78f team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
| | * 85bd0af939 net: phy: broadcom: stub c45 read/write for 54810
| | * 7148bca63b netfilter: nft_dynset: disallow object maps
| | * 7f8a160d40 ipvs: fix racy memcpy in proc_do_sync_threshold
| | * 00ea7eb1c6 netfilter: nf_tables: deactivate catchall elements in next generation
| | * a800fcd8f1 netfilter: nf_tables: fix false-positive lockdep splat
| | * 75c724e2b7 octeon_ep: cancel tx_timeout_task later in remove sequence
| | * 58a54bad3a net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source
| | * 06af678c60 drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs
| | * 2f07f1302e selftests: mirror_gre_changes: Tighten up the TTL test match
| | * cd4460b217 net: phy: fix IRQ-based wake-on-lan over hibernate / power off
| | * a41e5a79a0 net: pcs: Add missing put_device call in miic_create
| | * 120a89c36d virtio-net: set queues after driver_ok
| | * 45085ba966 virtio_net: notify MAC address change on device initialization
| | * a442cd1701 xfrm: add forgotten nla_policy for XFRMA_MTIMER_THRESH
| | * 87b655f493 xfrm: add NULL check in xfrm_update_ae_params
| | * 2b05bf5dc4 ip_vti: fix potential slab-use-after-free in decode_session6
| | * 55ad230920 ip6_vti: fix slab-use-after-free in decode_session6
| | * 0d27567fde xfrm: fix slab-use-after-free in decode_session6
| | * 71dfe71df1 net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
| | * 479884b4ce net: af_key: fix sadb_x_filter validation
| | * 9a0056276f net: xfrm: Fix xfrm_address_filter OOB read
| | * 5a47c2fa0d i2c: designware: Handle invalid SMBus block data response length value
| | * 5211496330 i2c: designware: Correct length byte validation logic
| | * ceb9ba8e30 btrfs: fix BUG_ON condition in btrfs_cancel_balance
| | * 9f68e2105d btrfs: fix incorrect splitting in btrfs_drop_extent_map_range
| | * 0693c8f134 tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms
| | * 31311a9a4b tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux
| | * d6aa03bda8 vdpa: Enable strict validation for netlinks ops
| | * ff71709445 vdpa: Add max vqp attr to vdpa_nl_policy for nlattr length check
| | * 8ad9bc25cb vdpa: Add queue index attr to vdpa_nl_policy for nlattr length check
| | * 44b508cc96 vdpa: Add features attr to vdpa_nl_policy for nlattr length check
| | * b8fee83aa4 powerpc/rtas_flash: allow user copy to flash block cache objects
| | * 9fedcd07ab fbdev: mmp: fix value check in mmphw_probe()
| | * 3461e6492c i2c: tegra: Fix i2c-tegra DMA config option processing
| | * ba249011f6 i2c: hisi: Only handle the interrupt of the driver's transfer
| | * db0416c155 i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
| | * 5ee28bcfba cifs: fix potential oops in cifs_oplock_break
| | * cba26abc3f vdpa/mlx5: Delete control vq iotlb in destroy_mr only when necessary
| | * bb4983ec9e vdpa/mlx5: Fix mr->initialized semantics
| | * e706675bee vduse: Use proper spinlock for IRQ injection
| | * af5818c351 virtio-mmio: don't break lifecycle of vm_dev
| | * 6297644db2 btrfs: fix use-after-free of new block group that became unused
| | * 29cebf8087 btrfs: convert btrfs_block_group::seq_zone to runtime flag
| | * 94cde94169 btrfs: convert btrfs_block_group::needs_free_space to runtime flag
| | * 01eca70ef8 btrfs: move out now unused BG from the reclaim list
| | * 485ec8f8e1 video/aperture: Only remove sysfb on the default vga pci device
| | * f83ab817ef fbdev/hyperv-fb: Do not set struct fb_info.apertures
| | * e41170d128 ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node
| | * 3d2d051be1 KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption
| | * 402f1d86ea drm/amd/display: fix access hdcp_workqueue assert
| | * 81e6cf447a drm/amd/display: phase3 mst hdcp for multiple displays
| | * d90f97cb38 drm/amd/display: save restore hdcp state when display is unplugged from mst hub
| | * 48f0671be2 igc: read before write to SRRCTL register
| | * 128c06a34c ring-buffer: Do not swap cpu_buffer during resize process
| | * 356fe907df Bluetooth: MGMT: Use correct address for memcpy()
| | * a1ceb87128 powerpc/kasan: Disable KCOV in KASAN code
| | * 6d06cf0f02 ALSA: hda/realtek: Add quirk for ASUS ROG GZ301V
| | * 2b248cf8b6 ALSA: hda/realtek: Add quirk for ASUS ROG GA402X
| | * c48616e52d ALSA: hda/realtek: Add quirk for ASUS ROG GX650P
| | * cdd412b528 ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()
| | * 63e0b5d76d ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
| | * 9e79f3e8f1 fs/ntfs3: Mark ntfs dirty when on-disk struct is corrupted
| | * 1e2205568b fs: ntfs3: Fix possible null-pointer dereferences in mi_read()
| | * 4246bbef04 fs/ntfs3: Enhance sanity check while generating attr_list
| | * dd0b3b367c drm/amdgpu: Fix potential fence use-after-free v2
| | * 3a89f3bfbf ceph: try to dump the msgs when decoding fails
| | * d92613aa43 Bluetooth: btusb: Add MT7922 bluetooth ID for the Asus Ally
| | * 149daab459 Bluetooth: L2CAP: Fix use-after-free
| | * de8677ccf8 watchdog: sp5100_tco: support Hygon FCH/SCH (Server Controller Hub)
| | * 9040adc38c firewire: net: fix use after free in fwnet_finish_incoming_packet()
| | * ef87750cae thunderbolt: Limit Intel Barlow Ridge USB3 bandwidth
| | * acb9038e1d thunderbolt: Add Intel Barlow Ridge PCI ID
| | * e8a80cf06b pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
| | * a4f71523ed gfs2: Fix possible data races in gfs2_show_options()
| | * 8277a215c8 usb: chipidea: imx: add missing USB PHY DPDM wakeup setting
| | * 31f8efefa2 usb: chipidea: imx: don't request QoS for imx8ulp
| | * 809625f441 thunderbolt: Read retimer NVM authentication status prior tb_retimer_set_inbound_sbtx()
| | * b7bd48f0be media: platform: mediatek: vpu: fix NULL ptr dereference
| | * 28d900836d usb: gadget: uvc: queue empty isoc requests if no video buffer is available
| | * 49038877f9 usb: gadget: u_serial: Avoid spinlock recursion in __gs_console_push
| | * 54a55c345c media: camss: set VFE bpl_alignment to 16 for sdm845 and sm8250
| | * c71aa5f1cf media: v4l2-mem2mem: add lock to protect parameter num_rdy
| | * 6c9317f73b led: qcom-lpg: Fix resource leaks in for_each_available_child_of_node() loops
| | * bda3f46354 serial: stm32: Ignore return value of uart_remove_one_port() in .remove()
| | * 7e4f5c3f01 cifs: fix session state check in reconnect to avoid use-after-free issue
| | * 945f4a7aff smb: client: fix warning in cifs_smb3_do_mount()
| | * a783230585 ALSA: hda/realtek: Add quirks for ROG ALLY CS35l41 audio
| | * de840f77f5 HID: intel-ish-hid: ipc: Add Arrow Lake PCI device ID
| | * 055971715f ASoC: SOF: core: Free the firmware trace before calling snd_sof_shutdown()
| | * 359ec0952c drm/amd/display: Enable dcn314 DPP RCO
| | * 5447155001 drm/amd/display: Skip DPP DTO update if root clock is gated
| | * 5fe7815e78 RDMA/mlx5: Return the firmware result upon destroying QP/RQ
| | * fbd9332d32 drm/amd/display: Apply 60us prefetch for DCFCLK <= 300Mhz
| | * 78b25110eb drm/amdgpu: install stub fence into potential unused fence pointers
| | * 96522cf9c7 iommu/amd: Introduce Disable IRTE Caching Support
| | * 83c22663ac HID: logitech-hidpp: Add USB and Bluetooth IDs for the Logitech G915 TKL Keyboard
| | * d7933b92c4 accel/habanalabs: add pci health check during heartbeat
| | * b7a34e30d4 dma-remap: use kvmalloc_array/kvfree for larger dma memory remap
| | * 3dd5c90c48 ASoC: SOF: Intel: fix SoundWire/HDaudio mutual exclusion
| | * ff1b4b1e02 iopoll: Call cpu_relax() in busy loops
| | * b3e662ece0 ASoC: Intel: sof_sdw: Add support for Rex soundwire
| | * c01ec45a7c ASoC: Intel: sof_sdw_rt_sdca_jack_common: test SOF_JACK_JDSRC in _exit
| | * 31149bb94f ARM: dts: imx6dl: prtrvt, prtvt7, prti6q, prtwd2: fix USB related warnings
| | * a7d4d28d2c ASoC: amd: vangogh: Add check for acp config flags in vangogh platform
| | * 633ac567bd drm: rcar-du: remove R-Car H3 ES1.* workarounds
| | * 340dba127b drm/stm: ltdc: fix late dereference check
| | * f934cad913 ASoC: SOF: amd: Add pci revision id check
| | * ea88c6c781 PCI: tegra194: Fix possible array out of bounds access
| | * 5c23d9bd5f ASoC: Intel: sof_sdw: add quirk for LNL RVP
| | * 3f498ae94c ASoC: Intel: sof_sdw: add quirk for MTL RVP
| | * ce3288d8d6 drm/amdgpu: fix memory leak in mes self test
| | * 9f55d30054 drm/amdgpu: Fix integer overflow in amdgpu_cs_pass1
| | * ab6f446c22 drm/amdgpu: fix calltrace warning in amddrm_buddy_fini
| | * caa2d40a0d net: phy: at803x: fix the wol setting functions
| | * 7dcc894e15 net: phy: at803x: Use devm_regulator_get_enable_optional()
| | * 0d52759710 net/smc: Fix setsockopt and sysctl to specify same buffer size again
| | * 206381cee9 net/smc: replace mutex rmbs_lock and sndbufs_lock with rw_semaphore
| | * 0fc3c55a3a selftests: forwarding: tc_actions: Use ncat instead of nc
| | * 306a5dddfb selftests: forwarding: tc_actions: cleanup temporary files when test is aborted
| | * f872672edd zsmalloc: fix races between modifications of fullness and isolated
| | * 802b34e992 zsmalloc: consolidate zs_pool's migrate_lock and size_class's locks
| | * 8a214f88e8 cpuidle: psci: Move enabling OSI mode after power domains creation
| | * ad1fa1a028 cpuidle: psci: Extend information in log about OSI/PC mode
| | * 78721c8f93 mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
| * | 094c282d92 Merge 6.1.46 into android14-6.1-lts
| |\|
| | * 6c44e13dc2 Linux 6.1.46
| | * 5525c289db drm/amd/pm/smu7: move variables to where they are used
| | * 4346a66ad1 sch_netem: fix issues in netem_change() vs get_dist_table()
| | * 3ae919c317 alpha: remove __init annotation from exported page_is_ram()
| | * cbce265f95 ACPI: scan: Create platform device for CS35L56
| | * afc4ddd950 platform/x86: serial-multi-instantiate: Auto detect IRQ resource for CSC3551
| | * 38b0020f68 scsi: qedf: Fix firmware halt over suspend and resume
| | * a9518f4a49 scsi: qedi: Fix firmware halt over suspend and resume
| | * fb004497b3 scsi: fnic: Replace return codes in fnic_clean_pending_aborts()
| | * b191ff1f07 scsi: core: Fix possible memory leak if device_add() fails
| | * 7723a5d5d1 scsi: snic: Fix possible memory leak if device_add() fails
| | * 9fdb273ede scsi: 53c700: Check that command slot is not NULL
| | * 8282d0b358 scsi: ufs: renesas: Fix private allocation
| | * ed70fa5629 scsi: storvsc: Fix handling of virtual Fibre Channel timeouts
| | * 0e1605ec5b scsi: core: Fix legacy /proc parsing buffer overflow
| | * f3f0f95a02 netfilter: nf_tables: report use refcount overflow
| | * c21fddce7e nvme-rdma: fix potential unbalanced freeze & unfreeze
| | * cddbaa8dee nvme-tcp: fix potential unbalanced freeze & unfreeze
| | * bf67802453 btrfs: set cache_block_group_error if we find an error
| | * 3ae93b316c btrfs: reject invalid reloc tree root keys with stack dump
| | * 9d04716e36 btrfs: exit gracefully if reloc roots don't match
| | * 7112abc9e8 btrfs: properly clear end of the unreserved range in cow_file_range
| | * 504d81c512 btrfs: don't stop integrity writeback too early
| | * 4e18c827d6 btrfs: wait for actual caching progress during allocation
| | * b8cd871d0a gpio: sim: mark the GPIO chip as a one that can sleep
| | * 227bd2c1ea gpio: ws16c48: Fix off-by-one error in WS16C48 resource region extent
| | * 5e17b8ee64 ibmvnic: Ensure login failure recovery is safe from other resets
| | * 206ccf4f09 ibmvnic: Do partial reset on login failure
| | * 31ccd1ba20 ibmvnic: Handle DMA unmapping of login buffs in release functions
| | * 24556c1cc9 ibmvnic: Unmap DMA login rsp buffer on send login fail
| | * 2c5dd8805e ibmvnic: Enforce stronger sanity checks on login response
| | * ad0f73cbac net/mlx5: Reload auxiliary devices in pci error handlers
| | * 88ec484ef8 net/mlx5: Skip clock update work when device is in error state
| | * 4276f3e7ae net/mlx5: LAG, Check correct bucket when modifying LAG
| | * a824d012ad net/mlx5: Allow 0 for total host VFs
| | * ab06983c5b dmaengine: owl-dma: Modify mismatched function name
| | * dff2200371 dmaengine: mcf-edma: Fix a potential un-allocated memory access
| | * c4f7de3e8c net: hns3: fix strscpy causing content truncation issue
| | * 87d7e14008 nexthop: Fix infinite nexthop bucket dump when using maximum nexthop ID
| | * 8d6df2c523 nexthop: Make nexthop bucket dump more efficient
| | * 0b10d8d1cf nexthop: Fix infinite nexthop dump when using maximum nexthop ID
| | * 743f7c1762 net: hns3: fix deadlock issue when externel_lb and reset are executed together
| | * 59bad9190a net: hns3: add wait until mac link down
| | * 667ce6a0ff net: hns3: refactor hclge_mac_link_status_wait for interface reuse
| | * 758dbcfb25 net: dsa: ocelot: call dsa_tag_8021q_unregister() under rtnl_lock() on driver remove
| | * 001b7d6706 net: phy: at803x: remove set/get wol callbacks for AR8032
| | * a3e5f3b7f2 net: marvell: prestera: fix handling IPv4 routes with nhid
| | * 059ec8287f net: tls: avoid discarding data on record close
| | * 05e6b93da4 RDMA/umem: Set iova in ODP flow
| | * 521860ddf3 wifi: cfg80211: fix sband iftype data lookup for AP_VLAN
| | * 94916b3148 drm/rockchip: Don't spam logs in atomic check
| | * ac6640f419 IB/hfi1: Fix possible panic during hotplug remove
| | * c2efcaf304 iavf: fix potential races for FDIR filters
| | * bcbc48b120 drivers: vxlan: vnifilter: free percpu vni stats on error path
| | * eeb0e4c1db drivers: net: prevent tun_build_skb() to exceed the packet size limit
| | * a6ddc1c774 dccp: fix data-race around dp->dccps_mss_cache
| | * 00f033d451 bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
| | * 15b453cf73 xsk: fix refcount underflow in error path
| | * da5f42a6e7 tunnels: fix kasan splat when generating ipv4 pmtu error
| | * f20a941bc2 tcp: add missing family to tcp_set_ca_state() tracepoint
| | * ddebdaec1a net/smc: Use correct buffer sizes when switching between TCP and SMC
| | * 584a783270 net/packet: annotate data-races around tp->status
| | * b249c510b4 mptcp: fix the incorrect judgment for msk->cb_flags
| | * fc0b41ac11 macsec: use DEV_STATS_INC()
| | * ebceef298c mISDN: Update parameter type of dsp_cmx_send()
| | * 6b2824b198 bpf, sockmap: Fix bug that strp_done cannot be called
| | * ed90fe7435 bpf, sockmap: Fix map type error in sock_map_del_link
| | * 20acffcdc2 net: core: remove unnecessary frame_sz check in bpf_xdp_adjust_tail()
| | * e59a2e5a31 selftests: forwarding: tc_flower: Relax success criterion
| | * 352dc3ee33 selftests: forwarding: Switch off timeout
| | * 2df0e43735 selftests: forwarding: Skip test when no interfaces are specified
| | * 9ff7465b91 selftests: forwarding: hw_stats_l3_gre: Skip when using veth pairs
| | * 693c0a5a02 selftests: forwarding: ethtool_extended_state: Skip when using veth pairs
| | * 10519d0b26 selftests: forwarding: ethtool: Skip when using veth pairs
| | * 1455765e28 selftests: forwarding: Add a helper to skip test when using veth pairs
| | * e146162dcf selftests/rseq: Fix build with undefined __weak
| | * e12b1ebc75 interconnect: qcom: sm8450: add enable_mask for bcm nodes
| | * 8d0e2802b1 interconnect: qcom: Add support for mask-based BCMs
| | * 312f04ede2 iio: core: Prevent invalid memory access when there is no parent
| | * 98e470dc73 drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
| | * 19e7feda89 x86: Move gds_ucode_mitigated() declaration to header
| | * f276899f8d x86/speculation: Add cpu_show_gds() prototype
| | * 179430c2aa x86/sev: Do not try to parse for the CC blob on non-AMD hardware
| | * 9ad49178c0 x86/mm: Fix VDSO and VVAR placement on 5-level paging machines
| | * 25085250a1 x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405
| | * d93eeac34e x86/srso: Fix build breakage with the LLVM linker
| | * 6f75e09343 usb: typec: altmodes/displayport: Signal hpd when configuring pin assignment
| | * 57b8f5fb8f usb: typec: tcpm: Fix response to vsafe0V event
| | * e3b3775498 usb: common: usb-conn-gpio: Prevent bailing out if initial role is none
| | * bed19d95fc USB: Gadget: core: Help prevent panic during UVC unconfigure
| | * d2a4ded0ee usb: dwc3: Properly handle processing of pending events
| | * 0d2d5282d3 usb-storage: alauda: Fix uninit-value in alauda_check_media()
| | * 8ee39ec479 misc: rtsx: judge ASPM Mode to set PETXCFG Reg
| | * f11a26633e binder: fix memory leak in binder_init()
| | * 77b689cc27 iio: adc: ina2xx: avoid NULL pointer dereference on OF device match
| | * 2f8ebbd0f0 iio: adc: ad7192: Fix ac excitation feature
| | * 5e1ed816a0 iio: frequency: admv1013: propagate errors from regulator_get_voltage()
| | * 366563c14f iio: cros_ec: Fix the allocation size for cros_ec_command
| | * 5aac2726b6 io_uring: correct check for O_TMPFILE
| | * b61a06eca1 drm/amd/display: trigger timing sync only if TG is running
| | * 07152d9e87 drm/amd/display: fix the build when DRM_AMD_DC_DCN is not set
| | * 647e12741e drm/amd/display: Retain phantom plane/stream if validation fails
| | * e61f0ad736 drm/amd/display: Disable phantom OTG after enable for plane disable
| | * 9caac2a9f6 drm/amd/display: Use update plane and stream routine for DCN32x
| | * e93ae6e6b6 drm/amd/display: Avoid ABM when ODM combine is enabled for eDP
| | * 4fe91c51aa drm/amd/display: Update OTG instance in the commit stream
| | * b2415df0af drm/amd/display: Handle seamless boot stream
| | * 9b1a1f168c drm/amd/display: Add function for validate and update new stream
| | * 60334c0cba drm/amd/display: Handle virtual hardware detect
| | * 0f19195d63 drm/amd/pm: avoid unintentional shutdown due to temperature momentary fluctuation
| | * b064f9ccf1 drm/amd/pm: fulfill powerplay peak profiling mode shader/memory clock settings
| | * b844033ea8 drm/amd/pm: expose swctf threshold setting for legacy powerplay
| | * 2368afd60f drm/amd/pm: fulfill swsmu peak profiling mode shader/memory clock settings
| | * 7532ff6edb nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput
| | * 79a9697029 radix tree test suite: fix incorrect allocation size for pthreads
| | * 0176533f5a hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100
| | * 088773aaaf cpuidle: dt_idle_genpd: Add helper function to remove genpd topology
| | * 3d3fd58bfc drm/amd/display: limit DPIA link rate to HBR3
| | * 10347b115d drm/amd: Disable S/G for APUs when 64GB or more host memory
| | * f6166ca452 drm/amdgpu: add S/G display parameter
| | * c3d2d4b02e drm/amd/display: check attr flag before set cursor degamma on DCN3+
| | * 9a2393af1f drm/amdgpu: fix possible UAF in amdgpu_cs_pass1()
| | * 2322dd8c9d drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap()
| | * a372c3f0db drm/nouveau/nvkm/dp: Add workaround to fix DP 1.3+ DPCD issues
| | * e179b058d7 drm/nouveau/gr: enable memory loads on helper invocation on all channels
| | * 56c79fcae6 nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G
| | * 3fdaa7fbc8 riscv/kexec: handle R_RISCV_CALL_PLT relocation type
| | * b374684018 riscv,mmio: Fix readX()-to-delay() ordering
| | * 98a34f50c1 riscv/kexec: load initrd high in available memory
| | * 593615bf14 net: mana: Fix MANA VF unload when hardware is unresponsive
| | * aec1ce9a30 dmaengine: pl330: Return DMA_PAUSED when transaction is paused
| | * ded9f5551c mptcp: fix disconnect vs accept race
| | * 84aa65a525 mptcp: avoid bogus reset on fallback close
| | * d143c73602 selftests: mptcp: join: fix 'implicit EP' test
| | * aae988c096 selftests: mptcp: join: fix 'delete and re-add' test
| | * a537fd9096 ipv6: adjust ndisc_is_useropt() to also return true for PIO
| | * ecab78febf mmc: moxart: read scr register without changing byte order
| | * 260ec73757 wireguard: allowedips: expand maximum node depth
| | * 839aae189e selftests: forwarding: Set default IPv6 traceroute utility
| | * aa4b5895a8 wifi: rtw89: fix 8852AE disconnection caused by RX full flags
| | * e642eb67b8 wifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems()
| | * 5bdf1c1f34 KVM: SEV: only access GHCB fields once
| | * ec18273e41 KVM: SEV: snapshot the GHCB before accessing it
| | * f339d76a3a ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea()
| | * c6bef3bc30 ksmbd: validate command request size
| | * ccb1700ed6 tpm: Add a helper for checking hwrng enabled
| | * d8a7d6136c tpm: Disable RNG for all AMD fTPMs
| | * ed2f8701fb Revert "loongarch/cpu: Switch to arch_cpu_finalize_init()"
| | * 65383fe060 gcc-plugins: Reorganize gimple includes for GCC 13
| * | 706ba4ef8d Merge 6.1.45 into android14-6.1-lts
| |\|
| | * 1321ab403b Linux 6.1.45
| | * f2615bb47b x86/CPU/AMD: Do not leak quotient data after a division by 0
| | * 673cdde74f Revert "drm/i915: Disable DC states for all commits"
| | * af72151824 drm/amdgpu: Use apt name for FW reserved region
| | * 3d0a34c42f drm/amdgpu: Remove unnecessary domain argument
| | * 526defeec4 drm/amdgpu: add vram reservation based on vram_usagebyfirmware_v2_2
| | * 99255a2b68 arm64/ptrace: Don't enable SVE when setting streaming SVE
| | * c2fdf827f8 exfat: check if filename entries exceeds max filename length
| | * e2fb24ce37 f2fs: don't reset unchangable mount option in f2fs_remount()
| | * 6ba0594a81 f2fs: fix to set flush_merge opt and show noflush_merge
| | * e355972aff selftests/rseq: Play nice with binaries statically linked against glibc 2.35+
| | * 5656267610 drm/amd/display: skip CLEAR_PAYLOAD_ID_TABLE if device mst_en is 0
| | * 63eeb50fa1 drm/amd/display: Ensure that planes are in the same order
| | * 740d4cae24 drm/imx/ipuv3: Fix front porch adjustment upon hactive aligning
| | * a492b8281c powerpc/mm/altmap: Fix altmap boundary check
| | * f4b700c718 mtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op()
| | * b71c00256d mtd: rawnand: rockchip: Align hwecc vs. raw page helper layouts
| | * 5a8a35b71b mtd: rawnand: rockchip: fix oobfree offset and description
| | * 6c591fce48 mtd: rawnand: omap_elm: Fix incorrect type in assignment
| | * 88b1958fb5 io_uring: annotate offset timeout races
| | * a78a8bcdc2 f2fs: fix to do sanity check on direct node in truncate_dnode()
| | * 23e72231f8 btrfs: remove BUG_ON()'s in add_new_free_space()
| | * 56c0d76a97 ext2: Drop fragment support
| | * 295ef44a2a fs: Protect reconfiguration of sb read-write from racing writes
| | * 1bebbd9b80 net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb
| | * 203d58930d debugobjects: Recheck debug_objects_enabled before reporting
| | * 29fac18499 Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
| | * 1416eebaad fs/sysv: Null check to prevent null-ptr-deref bug
| | * ccc6de4d4f fs/ntfs3: Use __GFP_NOWARN allocation at ntfs_load_attr_list()
| | * 33d9490b27 mm: kmem: fix a NULL pointer dereference in obj_stock_flush_required()
| | * 4968484ac8 file: reinstate f_pos locking optimization for regular files
| | * 7a1178a367 bpf, cpumap: Make sure kthread is running before map update returns
| | * 8a211e9118 clk: imx93: Propagate correct error in imx93_clocks_probe()
| | * 37f6073f7d drm/i915/gt: Cleanup aux invalidation registers
| | * 4db8b39418 drm/i915: Fix premature release of request's reusable memory
| | * 1fdd16d89c drm/ttm: check null pointer before accessing when swapping
| | * 4f03b0471e open: make RESOLVE_CACHED correctly test for O_TMPFILE
| | * 61f96da37d arm64/fpsimd: Sync FPSIMD state with SVE for SME only systems
| | * 654c1dd350 arm64/fpsimd: Clear SME state in the target task when setting the VL
| | * bae353469a arm64/fpsimd: Sync and zero pad FPSIMD state for streaming SVE
| | * b8ea2a4691 powerpc/ftrace: Create a dummy stackframe to fix stack unwind
| | * 36dd8ca330 bpf: Disable preemption in bpf_event_output
| | * ec062367fa rbd: prevent busy loop when requesting exclusive lock
| | * 98cccbd0a1 x86/hyperv: Disable IBT when hypercall page lacks ENDBR instruction
| | * 0526119bf5 wifi: mt76: mt7615: do not advertise 5 GHz on first phy of MT7615D (DBDC)
| | * 767800fc40 net: tap_open(): set sk_uid from current_fsuid()
| | * b6846d7c40 net: tun_chr_open(): set sk_uid from current_fsuid()
| | * 367fdf369d arm64: dts: stratix10: fix incorrect I2C property for SCL signal
| | * 3654ed5daf bpf: Disable preemption in bpf_perf_event_output
| | * 680f4d8aec mtd: rawnand: meson: fix OOB available bytes for ECC
| | * 67327cadba mtd: spinand: toshiba: Fix ecc_get_status
| | * 724ce05212 exfat: release s_lock before calling dir_emit()
| | * 1427a7e96f exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree
| | * bc41119995 firmware: arm_scmi: Drop OF node reference in the transport channel setup
| | * a062da58ed ceph: defer stopping mdsc delayed_work
| | * ad82aac732 USB: zaurus: Add ID for A-300/B-500/C-700
| | * be52667ba2 libceph: fix potential hang in ceph_osdc_notify()
| | * f62faadc79 scsi: storvsc: Limit max_sectors for virtual Fibre Channel devices
| | * 645603ab5f scsi: zfcp: Defer fc_rport blocking until after ADISC response
| | * f0618c305b rust: allocator: Prevent mis-aligned allocation
| | * cd4bdf8f98 tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
| | * e53917e7ef tcp_metrics: annotate data-races around tm->tcpm_net
| | * 6dea95d8ca tcp_metrics: annotate data-races around tm->tcpm_vals[]
| | * fee608e802 tcp_metrics: annotate data-races around tm->tcpm_lock
| | * 4a77a0f752 tcp_metrics: annotate data-races around tm->tcpm_stamp
| | * 71f891a254 tcp_metrics: fix addr_same() helper
| | * afac854f82 prestera: fix fallback to previous version on same major version
| | * 72b3aea345 net/mlx5: fs_core: Skip the FTs in the same FS_TYPE_PRIO_CHAINS fs_prio
| | * 1ca50e5de4 net/mlx5: fs_core: Make find_closest_ft more generic
| | * 7b8717658d vxlan: Fix nexthop hash size
| | * 691a09eeca ip6mr: Fix skb_under_panic in ip6mr_cache_report()
| | * 86818409f9 s390/qeth: Don't call dev_close/dev_open (DOWN/UP)
| | * ecff20e193 net: dcb: choose correct policy to parse DCB_ATTR_BCN
| | * 421e02bda0 bnxt_en: Fix max_mtu setting for multi-buf XDP
| | * e9f11bfc03 bnxt_en: Fix page pool logic for page size >= 64K
| | * 64763dd851 net: netsec: Ignore 'phy-mode' on SynQuacer in DT mode
| | * 8afe27770d net: korina: handle clk prepare error in korina_probe()
| | * 58660666b4 net: ll_temac: fix error checking of irq_of_parse_and_map()
| | * 834422b06c bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire
| | * d4d3b53a4c net/sched: cls_route: No longer copy tcf_result on update to avoid use-after-free
| | * 7f691439b2 net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-free
| | * aab2d095ce net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-free
| | * cbd0004518 bpf, cpumap: Handle skb as well when clean up ptr_ring
| | * 4461b2cae3 ice: Fix RDMA VSI removal during queue rebuild
| | * 0b45af982a net/sched: taprio: Limit TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME to INT_MAX.
| | * 12d4ba1814 net: annotate data-races around sk->sk_priority
| | * 6326c83ee2 net: add missing data-race annotation for sk_ll_usec
| | * dd7a1ff07c net: add missing data-race annotations around sk->sk_peek_off
| | * b53468041d net: annotate data-races around sk->sk_mark
| | * c7bb686064 net: add missing READ_ONCE(sk->sk_rcvbuf) annotation
| | * 10c8321596 net: add missing READ_ONCE(sk->sk_sndbuf) annotation
| | * 0a40103c91 net: add missing READ_ONCE(sk->sk_rcvlowat) annotation
| | * be43c8f1c9 net: annotate data-races around sk->sk_max_pacing_rate
| | * 0317c8322d net: annotate data-race around sk->sk_txrehash
| | * 60d92bc9c0 net: annotate data-races around sk->sk_reserved_mem
| | * 9da9ea9b13 qed: Fix scheduling in a tasklet while getting stats
| | * 3c42307abe mISDN: hfcpci: Fix potential deadlock on &hc->lock
| | * d652c080b6 net: sched: cls_u32: Fix match key mis-addressing
| | * 22709d8537 perf test uprobe_from_different_cu: Skip if there is no gcc
| | * 5ef5b6e9c1 net: dsa: fix value check in bcm_sf2_sw_probe()
| | * 8dfac8071d rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length
| | * 24772cc31f bpf: Add length check for SK_DIAG_BPF_STORAGE_REQ_MAP_FD parsing
| | * d628ba98eb net/mlx5e: Move representor neigh cleanup to profile cleanup_tx
| | * 94a0eb9c12 net/mlx5e: Fix crash moving to switchdev mode when ntuple offload is set
| | * a7b5f00100 net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer()
| | * 0582a3caaa net/mlx5: fix potential memory leak in mlx5e_init_rep_rx
| | * 3169c38543 net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
| | * c818fff3b6 net/mlx5e: fix double free in macsec_fs_tx_create_crypto_table_groups
| | * 7a6fad03f5 wifi: cfg80211: Fix return value in scan logic
| | * 05e0952ddb erofs: fix wrong primary bvec selection on deduplicated extents
| | * a759972d25 KVM: s390: fix sthyi error handling
| | * f168188174 word-at-a-time: use the same return type for has_zero regardless of endianness
| | * 5b53b2b44f firmware: arm_scmi: Fix chan_free cleanup on SMC
| | * 6289d5486d lib/bitmap: workaround const_eval test build failure
| | * 0ca5de8309 firmware: smccc: Fix use of uninitialised results structure
| | * 7b0582dddd arm64: dts: freescale: Fix VPU G2 clock
| | * 5841d3d0c3 arm64: dts: imx8mn-var-som: add missing pull-up for onboard PHY reset pinmux
| | * a24f67b71a arm64: dts: phycore-imx8mm: Correction in gpio-line-names
| | * 753a927c58 arm64: dts: phycore-imx8mm: Label typo-fix of VPU
| | * 608ac7ea5f arm64: dts: imx8mm-venice-gw7904: disable disp_blk_ctrl
| | * d060bbb2fe arm64: dts: imx8mm-venice-gw7903: disable disp_blk_ctrl
| | * 8ddb3183c4 iommu/arm-smmu-v3: Document nesting-related errata
| | * 42d04acf1d iommu/arm-smmu-v3: Add explicit feature for nesting
| | * 57ae3671ec iommu/arm-smmu-v3: Document MMU-700 erratum 2812531
| | * e3399bd014 iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982
| | * 50c24f0c94 net: ipa: only reset hashed tables when supported
| | * 93f5b88112 net/mlx5: Free irqs only on shutdown callback
| | * 15c22cd1de perf: Fix function pointer case
| | * c7920f9928 io_uring: gate iowait schedule on having pending requests
| * | f474c6446c Merge 6.1.44 into android14-6.1-lts
| |/
| * 0a4a785530 Linux 6.1.44
| * dd5f2ef16e x86: fix backwards merge of GDS/SRSO bit
| * fa5b932b77 xen/netback: Fix buffer overrun triggered by unusual packet
| * 4f25355540 x86/srso: Tie SBPB bit setting to microcode patch detection
| * 77cf32d0db x86/srso: Add a forgotten NOENDBR annotation
| * c7f2cd0455 x86/srso: Fix return thunks in generated code
| * c9ae63d773 x86/srso: Add IBPB on VMEXIT
| * 79c8091888 x86/srso: Add IBPB
| * 98f62883e7 x86/srso: Add SRSO_NO support
| * 9139f4b6dd x86/srso: Add IBPB_BRTYPE support
| * ac41e90d8d x86/srso: Add a Speculative RAS Overflow mitigation
| * dec3b91f2c x86/cpu, kvm: Add support for CPUID_80000021_EAX
| * dfede4cb8e x86/bugs: Increase the x86 bugs vector size to two u32s
| * dacb0bac2e Documentation/x86: Fix backwards on/off logic about YMM support
| * 051f5dcf14 x86/mm: Initialize text poking earlier
| * e0fd83a193 mm: Move mm_cachep initialization to mm_init()
| * 9ae15aaff3 x86/mm: Use mm_alloc() in poking_init()
| * d972c8c08f x86/mm: fix poking_init() for Xen PV guests
| * 7f3982de36 x86/xen: Fix secondary processors' FPU initialization
| * baa7b7501e x86/mem_encrypt: Unbreak the AMD_MEM_ENCRYPT=n build
| * b6fd07c41b KVM: Add GDS_NO support to KVM
| * c04579e954 x86/speculation: Add Kconfig option for GDS
| * 92fc27c79b x86/speculation: Add force option to GDS mitigation
| * c66ebe070d x86/speculation: Add Gather Data Sampling mitigation
| * f25ad76d92 x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
| * e26932942b x86/fpu: Mark init functions __init
| * 9e8d9d3990 x86/fpu: Remove cpuinfo argument from init functions
| * c956807d84 x86/init: Initialize signal frame size late
| * b0837880fa init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
| * 8183a89caf init: Invoke arch_cpu_finalize_init() earlier
| * a3342c60dc init: Remove check_bugs() leftovers
| * 8beabde0ed um/cpu: Switch to arch_cpu_finalize_init()
| * ce97072e10 sparc/cpu: Switch to arch_cpu_finalize_init()
| * 84f585542e sh/cpu: Switch to arch_cpu_finalize_init()
| * 6a90583dbd mips/cpu: Switch to arch_cpu_finalize_init()
| * 489ae02c89 m68k/cpu: Switch to arch_cpu_finalize_init()
| * 08e86d42e2 loongarch/cpu: Switch to arch_cpu_finalize_init()
| * 403e4cc67e ia64/cpu: Switch to arch_cpu_finalize_init()
| * e2e06240ae ARM: cpu: Switch to arch_cpu_finalize_init()
| * 7918a3555a x86/cpu: Switch to arch_cpu_finalize_init()
| * d5501f2ff8 init: Provide arch_cpu_finalize_init()
* dbe0f49aaf ANDROID: Move microdroid and crashdump defconfigs to common

Change-Id: I2701c3ed8e8e48470c5a8651549786f321f27d3c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-11-27 16:18:59 +00:00

2520 lines
61 KiB
C

// SPDX-License-Identifier: GPL-2.0
/*
* Wireless utility functions
*
* Copyright 2007-2009 Johannes Berg <johannes@sipsolutions.net>
* Copyright 2013-2014 Intel Mobile Communications GmbH
* Copyright 2017 Intel Deutschland GmbH
* Copyright (C) 2018-2023 Intel Corporation
*/
#include <linux/export.h>
#include <linux/bitops.h>
#include <linux/etherdevice.h>
#include <linux/slab.h>
#include <linux/ieee80211.h>
#include <net/cfg80211.h>
#include <net/ip.h>
#include <net/dsfield.h>
#include <linux/if_vlan.h>
#include <linux/mpls.h>
#include <linux/gcd.h>
#include <linux/bitfield.h>
#include <linux/nospec.h>
#include "core.h"
#include "rdev-ops.h"
const struct ieee80211_rate *
ieee80211_get_response_rate(struct ieee80211_supported_band *sband,
u32 basic_rates, int bitrate)
{
struct ieee80211_rate *result = &sband->bitrates[0];
int i;
for (i = 0; i < sband->n_bitrates; i++) {
if (!(basic_rates & BIT(i)))
continue;
if (sband->bitrates[i].bitrate > bitrate)
continue;
result = &sband->bitrates[i];
}
return result;
}
EXPORT_SYMBOL(ieee80211_get_response_rate);
u32 ieee80211_mandatory_rates(struct ieee80211_supported_band *sband,
enum nl80211_bss_scan_width scan_width)
{
struct ieee80211_rate *bitrates;
u32 mandatory_rates = 0;
enum ieee80211_rate_flags mandatory_flag;
int i;
if (WARN_ON(!sband))
return 1;
if (sband->band == NL80211_BAND_2GHZ) {
if (scan_width == NL80211_BSS_CHAN_WIDTH_5 ||
scan_width == NL80211_BSS_CHAN_WIDTH_10)
mandatory_flag = IEEE80211_RATE_MANDATORY_G;
else
mandatory_flag = IEEE80211_RATE_MANDATORY_B;
} else {
mandatory_flag = IEEE80211_RATE_MANDATORY_A;
}
bitrates = sband->bitrates;
for (i = 0; i < sband->n_bitrates; i++)
if (bitrates[i].flags & mandatory_flag)
mandatory_rates |= BIT(i);
return mandatory_rates;
}
EXPORT_SYMBOL(ieee80211_mandatory_rates);
u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band)
{
/* see 802.11 17.3.8.3.2 and Annex J
* there are overlapping channel numbers in 5GHz and 2GHz bands */
if (chan <= 0)
return 0; /* not supported */
switch (band) {
case NL80211_BAND_2GHZ:
case NL80211_BAND_LC:
if (chan == 14)
return MHZ_TO_KHZ(2484);
else if (chan < 14)
return MHZ_TO_KHZ(2407 + chan * 5);
break;
case NL80211_BAND_5GHZ:
if (chan >= 182 && chan <= 196)
return MHZ_TO_KHZ(4000 + chan * 5);
else
return MHZ_TO_KHZ(5000 + chan * 5);
break;
case NL80211_BAND_6GHZ:
/* see 802.11ax D6.1 27.3.23.2 */
if (chan == 2)
return MHZ_TO_KHZ(5935);
if (chan <= 233)
return MHZ_TO_KHZ(5950 + chan * 5);
break;
case NL80211_BAND_60GHZ:
if (chan < 7)
return MHZ_TO_KHZ(56160 + chan * 2160);
break;
case NL80211_BAND_S1GHZ:
return 902000 + chan * 500;
default:
;
}
return 0; /* not supported */
}
EXPORT_SYMBOL(ieee80211_channel_to_freq_khz);
enum nl80211_chan_width
ieee80211_s1g_channel_width(const struct ieee80211_channel *chan)
{
if (WARN_ON(!chan || chan->band != NL80211_BAND_S1GHZ))
return NL80211_CHAN_WIDTH_20_NOHT;
/*S1G defines a single allowed channel width per channel.
* Extract that width here.
*/
if (chan->flags & IEEE80211_CHAN_1MHZ)
return NL80211_CHAN_WIDTH_1;
else if (chan->flags & IEEE80211_CHAN_2MHZ)
return NL80211_CHAN_WIDTH_2;
else if (chan->flags & IEEE80211_CHAN_4MHZ)
return NL80211_CHAN_WIDTH_4;
else if (chan->flags & IEEE80211_CHAN_8MHZ)
return NL80211_CHAN_WIDTH_8;
else if (chan->flags & IEEE80211_CHAN_16MHZ)
return NL80211_CHAN_WIDTH_16;
pr_err("unknown channel width for channel at %dKHz?\n",
ieee80211_channel_to_khz(chan));
return NL80211_CHAN_WIDTH_1;
}
EXPORT_SYMBOL(ieee80211_s1g_channel_width);
int ieee80211_freq_khz_to_channel(u32 freq)
{
/* TODO: just handle MHz for now */
freq = KHZ_TO_MHZ(freq);
/* see 802.11 17.3.8.3.2 and Annex J */
if (freq == 2484)
return 14;
else if (freq < 2484)
return (freq - 2407) / 5;
else if (freq >= 4910 && freq <= 4980)
return (freq - 4000) / 5;
else if (freq < 5925)
return (freq - 5000) / 5;
else if (freq == 5935)
return 2;
else if (freq <= 45000) /* DMG band lower limit */
/* see 802.11ax D6.1 27.3.22.2 */
return (freq - 5950) / 5;
else if (freq >= 58320 && freq <= 70200)
return (freq - 56160) / 2160;
else
return 0;
}
EXPORT_SYMBOL(ieee80211_freq_khz_to_channel);
struct ieee80211_channel *ieee80211_get_channel_khz(struct wiphy *wiphy,
u32 freq)
{
enum nl80211_band band;
struct ieee80211_supported_band *sband;
int i;
for (band = 0; band < NUM_NL80211_BANDS; band++) {
sband = wiphy->bands[band];
if (!sband)
continue;
for (i = 0; i < sband->n_channels; i++) {
struct ieee80211_channel *chan = &sband->channels[i];
if (ieee80211_channel_to_khz(chan) == freq)
return chan;
}
}
return NULL;
}
EXPORT_SYMBOL(ieee80211_get_channel_khz);
static void set_mandatory_flags_band(struct ieee80211_supported_band *sband)
{
int i, want;
switch (sband->band) {
case NL80211_BAND_5GHZ:
case NL80211_BAND_6GHZ:
want = 3;
for (i = 0; i < sband->n_bitrates; i++) {
if (sband->bitrates[i].bitrate == 60 ||
sband->bitrates[i].bitrate == 120 ||
sband->bitrates[i].bitrate == 240) {
sband->bitrates[i].flags |=
IEEE80211_RATE_MANDATORY_A;
want--;
}
}
WARN_ON(want);
break;
case NL80211_BAND_2GHZ:
case NL80211_BAND_LC:
want = 7;
for (i = 0; i < sband->n_bitrates; i++) {
switch (sband->bitrates[i].bitrate) {
case 10:
case 20:
case 55:
case 110:
sband->bitrates[i].flags |=
IEEE80211_RATE_MANDATORY_B |
IEEE80211_RATE_MANDATORY_G;
want--;
break;
case 60:
case 120:
case 240:
sband->bitrates[i].flags |=
IEEE80211_RATE_MANDATORY_G;
want--;
fallthrough;
default:
sband->bitrates[i].flags |=
IEEE80211_RATE_ERP_G;
break;
}
}
WARN_ON(want != 0 && want != 3);
break;
case NL80211_BAND_60GHZ:
/* check for mandatory HT MCS 1..4 */
WARN_ON(!sband->ht_cap.ht_supported);
WARN_ON((sband->ht_cap.mcs.rx_mask[0] & 0x1e) != 0x1e);
break;
case NL80211_BAND_S1GHZ:
/* Figure 9-589bd: 3 means unsupported, so != 3 means at least
* mandatory is ok.
*/
WARN_ON((sband->s1g_cap.nss_mcs[0] & 0x3) == 0x3);
break;
case NUM_NL80211_BANDS:
default:
WARN_ON(1);
break;
}
}
void ieee80211_set_bitrate_flags(struct wiphy *wiphy)
{
enum nl80211_band band;
for (band = 0; band < NUM_NL80211_BANDS; band++)
if (wiphy->bands[band])
set_mandatory_flags_band(wiphy->bands[band]);
}
bool cfg80211_supported_cipher_suite(struct wiphy *wiphy, u32 cipher)
{
int i;
for (i = 0; i < wiphy->n_cipher_suites; i++)
if (cipher == wiphy->cipher_suites[i])
return true;
return false;
}
static bool
cfg80211_igtk_cipher_supported(struct cfg80211_registered_device *rdev)
{
struct wiphy *wiphy = &rdev->wiphy;
int i;
for (i = 0; i < wiphy->n_cipher_suites; i++) {
switch (wiphy->cipher_suites[i]) {
case WLAN_CIPHER_SUITE_AES_CMAC:
case WLAN_CIPHER_SUITE_BIP_CMAC_256:
case WLAN_CIPHER_SUITE_BIP_GMAC_128:
case WLAN_CIPHER_SUITE_BIP_GMAC_256:
return true;
}
}
return false;
}
bool cfg80211_valid_key_idx(struct cfg80211_registered_device *rdev,
int key_idx, bool pairwise)
{
int max_key_idx;
if (pairwise)
max_key_idx = 3;
else if (wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_BEACON_PROTECTION) ||
wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT))
max_key_idx = 7;
else if (cfg80211_igtk_cipher_supported(rdev))
max_key_idx = 5;
else
max_key_idx = 3;
if (key_idx < 0 || key_idx > max_key_idx)
return false;
return true;
}
int cfg80211_validate_key_settings(struct cfg80211_registered_device *rdev,
struct key_params *params, int key_idx,
bool pairwise, const u8 *mac_addr)
{
if (!cfg80211_valid_key_idx(rdev, key_idx, pairwise))
return -EINVAL;
if (!pairwise && mac_addr && !(rdev->wiphy.flags & WIPHY_FLAG_IBSS_RSN))
return -EINVAL;
if (pairwise && !mac_addr)
return -EINVAL;
switch (params->cipher) {
case WLAN_CIPHER_SUITE_TKIP:
/* Extended Key ID can only be used with CCMP/GCMP ciphers */
if ((pairwise && key_idx) ||
params->mode != NL80211_KEY_RX_TX)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_CCMP:
case WLAN_CIPHER_SUITE_CCMP_256:
case WLAN_CIPHER_SUITE_GCMP:
case WLAN_CIPHER_SUITE_GCMP_256:
/* IEEE802.11-2016 allows only 0 and - when supporting
* Extended Key ID - 1 as index for pairwise keys.
* @NL80211_KEY_NO_TX is only allowed for pairwise keys when
* the driver supports Extended Key ID.
* @NL80211_KEY_SET_TX can't be set when installing and
* validating a key.
*/
if ((params->mode == NL80211_KEY_NO_TX && !pairwise) ||
params->mode == NL80211_KEY_SET_TX)
return -EINVAL;
if (wiphy_ext_feature_isset(&rdev->wiphy,
NL80211_EXT_FEATURE_EXT_KEY_ID)) {
if (pairwise && (key_idx < 0 || key_idx > 1))
return -EINVAL;
} else if (pairwise && key_idx) {
return -EINVAL;
}
break;
case WLAN_CIPHER_SUITE_AES_CMAC:
case WLAN_CIPHER_SUITE_BIP_CMAC_256:
case WLAN_CIPHER_SUITE_BIP_GMAC_128:
case WLAN_CIPHER_SUITE_BIP_GMAC_256:
/* Disallow BIP (group-only) cipher as pairwise cipher */
if (pairwise)
return -EINVAL;
if (key_idx < 4)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_WEP40:
case WLAN_CIPHER_SUITE_WEP104:
if (key_idx > 3)
return -EINVAL;
break;
default:
break;
}
switch (params->cipher) {
case WLAN_CIPHER_SUITE_WEP40:
if (params->key_len != WLAN_KEY_LEN_WEP40)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_TKIP:
if (params->key_len != WLAN_KEY_LEN_TKIP)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_CCMP:
if (params->key_len != WLAN_KEY_LEN_CCMP)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_CCMP_256:
if (params->key_len != WLAN_KEY_LEN_CCMP_256)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_GCMP:
if (params->key_len != WLAN_KEY_LEN_GCMP)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_GCMP_256:
if (params->key_len != WLAN_KEY_LEN_GCMP_256)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_WEP104:
if (params->key_len != WLAN_KEY_LEN_WEP104)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_AES_CMAC:
if (params->key_len != WLAN_KEY_LEN_AES_CMAC)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_BIP_CMAC_256:
if (params->key_len != WLAN_KEY_LEN_BIP_CMAC_256)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_BIP_GMAC_128:
if (params->key_len != WLAN_KEY_LEN_BIP_GMAC_128)
return -EINVAL;
break;
case WLAN_CIPHER_SUITE_BIP_GMAC_256:
if (params->key_len != WLAN_KEY_LEN_BIP_GMAC_256)
return -EINVAL;
break;
default:
/*
* We don't know anything about this algorithm,
* allow using it -- but the driver must check
* all parameters! We still check below whether
* or not the driver supports this algorithm,
* of course.
*/
break;
}
if (params->seq) {
switch (params->cipher) {
case WLAN_CIPHER_SUITE_WEP40:
case WLAN_CIPHER_SUITE_WEP104:
/* These ciphers do not use key sequence */
return -EINVAL;
case WLAN_CIPHER_SUITE_TKIP:
case WLAN_CIPHER_SUITE_CCMP:
case WLAN_CIPHER_SUITE_CCMP_256:
case WLAN_CIPHER_SUITE_GCMP:
case WLAN_CIPHER_SUITE_GCMP_256:
case WLAN_CIPHER_SUITE_AES_CMAC:
case WLAN_CIPHER_SUITE_BIP_CMAC_256:
case WLAN_CIPHER_SUITE_BIP_GMAC_128:
case WLAN_CIPHER_SUITE_BIP_GMAC_256:
if (params->seq_len != 6)
return -EINVAL;
break;
}
}
if (!cfg80211_supported_cipher_suite(&rdev->wiphy, params->cipher))
return -EINVAL;
return 0;
}
unsigned int __attribute_const__ ieee80211_hdrlen(__le16 fc)
{
unsigned int hdrlen = 24;
if (ieee80211_is_ext(fc)) {
hdrlen = 4;
goto out;
}
if (ieee80211_is_data(fc)) {
if (ieee80211_has_a4(fc))
hdrlen = 30;
if (ieee80211_is_data_qos(fc)) {
hdrlen += IEEE80211_QOS_CTL_LEN;
if (ieee80211_has_order(fc))
hdrlen += IEEE80211_HT_CTL_LEN;
}
goto out;
}
if (ieee80211_is_mgmt(fc)) {
if (ieee80211_has_order(fc))
hdrlen += IEEE80211_HT_CTL_LEN;
goto out;
}
if (ieee80211_is_ctl(fc)) {
/*
* ACK and CTS are 10 bytes, all others 16. To see how
* to get this condition consider
* subtype mask: 0b0000000011110000 (0x00F0)
* ACK subtype: 0b0000000011010000 (0x00D0)
* CTS subtype: 0b0000000011000000 (0x00C0)
* bits that matter: ^^^ (0x00E0)
* value of those: 0b0000000011000000 (0x00C0)
*/
if ((fc & cpu_to_le16(0x00E0)) == cpu_to_le16(0x00C0))
hdrlen = 10;
else
hdrlen = 16;
}
out:
return hdrlen;
}
EXPORT_SYMBOL(ieee80211_hdrlen);
unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb)
{
const struct ieee80211_hdr *hdr =
(const struct ieee80211_hdr *)skb->data;
unsigned int hdrlen;
if (unlikely(skb->len < 10))
return 0;
hdrlen = ieee80211_hdrlen(hdr->frame_control);
if (unlikely(hdrlen > skb->len))
return 0;
return hdrlen;
}
EXPORT_SYMBOL(ieee80211_get_hdrlen_from_skb);
static unsigned int __ieee80211_get_mesh_hdrlen(u8 flags)
{
int ae = flags & MESH_FLAGS_AE;
/* 802.11-2012, 8.2.4.7.3 */
switch (ae) {
default:
case 0:
return 6;
case MESH_FLAGS_AE_A4:
return 12;
case MESH_FLAGS_AE_A5_A6:
return 18;
}
}
unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr)
{
return __ieee80211_get_mesh_hdrlen(meshhdr->flags);
}
EXPORT_SYMBOL(ieee80211_get_mesh_hdrlen);
int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
const u8 *addr, enum nl80211_iftype iftype,
u8 data_offset, bool is_amsdu)
{
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
struct {
u8 hdr[ETH_ALEN] __aligned(2);
__be16 proto;
} payload;
struct ethhdr tmp;
u16 hdrlen;
u8 mesh_flags = 0;
if (unlikely(!ieee80211_is_data_present(hdr->frame_control)))
return -1;
hdrlen = ieee80211_hdrlen(hdr->frame_control) + data_offset;
if (skb->len < hdrlen)
return -1;
/* convert IEEE 802.11 header + possible LLC headers into Ethernet
* header
* IEEE 802.11 address fields:
* ToDS FromDS Addr1 Addr2 Addr3 Addr4
* 0 0 DA SA BSSID n/a
* 0 1 DA BSSID SA n/a
* 1 0 BSSID SA DA n/a
* 1 1 RA TA DA SA
*/
memcpy(tmp.h_dest, ieee80211_get_DA(hdr), ETH_ALEN);
memcpy(tmp.h_source, ieee80211_get_SA(hdr), ETH_ALEN);
if (iftype == NL80211_IFTYPE_MESH_POINT &&
skb_copy_bits(skb, hdrlen, &mesh_flags, 1) < 0)
return -1;
mesh_flags &= MESH_FLAGS_AE;
switch (hdr->frame_control &
cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) {
case cpu_to_le16(IEEE80211_FCTL_TODS):
if (unlikely(iftype != NL80211_IFTYPE_AP &&
iftype != NL80211_IFTYPE_AP_VLAN &&
iftype != NL80211_IFTYPE_P2P_GO))
return -1;
break;
case cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS):
if (unlikely(iftype != NL80211_IFTYPE_MESH_POINT &&
iftype != NL80211_IFTYPE_AP_VLAN &&
iftype != NL80211_IFTYPE_STATION))
return -1;
if (iftype == NL80211_IFTYPE_MESH_POINT) {
if (mesh_flags == MESH_FLAGS_AE_A4)
return -1;
if (mesh_flags == MESH_FLAGS_AE_A5_A6 &&
skb_copy_bits(skb, hdrlen +
offsetof(struct ieee80211s_hdr, eaddr1),
tmp.h_dest, 2 * ETH_ALEN) < 0)
return -1;
hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
}
break;
case cpu_to_le16(IEEE80211_FCTL_FROMDS):
if ((iftype != NL80211_IFTYPE_STATION &&
iftype != NL80211_IFTYPE_P2P_CLIENT &&
iftype != NL80211_IFTYPE_MESH_POINT) ||
(is_multicast_ether_addr(tmp.h_dest) &&
ether_addr_equal(tmp.h_source, addr)))
return -1;
if (iftype == NL80211_IFTYPE_MESH_POINT) {
if (mesh_flags == MESH_FLAGS_AE_A5_A6)
return -1;
if (mesh_flags == MESH_FLAGS_AE_A4 &&
skb_copy_bits(skb, hdrlen +
offsetof(struct ieee80211s_hdr, eaddr1),
tmp.h_source, ETH_ALEN) < 0)
return -1;
hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
}
break;
case cpu_to_le16(0):
if (iftype != NL80211_IFTYPE_ADHOC &&
iftype != NL80211_IFTYPE_STATION &&
iftype != NL80211_IFTYPE_OCB)
return -1;
break;
}
if (likely(skb_copy_bits(skb, hdrlen, &payload, sizeof(payload)) == 0 &&
((!is_amsdu && ether_addr_equal(payload.hdr, rfc1042_header) &&
payload.proto != htons(ETH_P_AARP) &&
payload.proto != htons(ETH_P_IPX)) ||
ether_addr_equal(payload.hdr, bridge_tunnel_header)))) {
/* remove RFC1042 or Bridge-Tunnel encapsulation and
* replace EtherType */
hdrlen += ETH_ALEN + 2;
tmp.h_proto = payload.proto;
skb_postpull_rcsum(skb, &payload, ETH_ALEN + 2);
} else {
tmp.h_proto = htons(skb->len - hdrlen);
}
pskb_pull(skb, hdrlen);
if (!ehdr)
ehdr = skb_push(skb, sizeof(struct ethhdr));
memcpy(ehdr, &tmp, sizeof(tmp));
return 0;
}
EXPORT_SYMBOL(ieee80211_data_to_8023_exthdr);
static void
__frame_add_frag(struct sk_buff *skb, struct page *page,
void *ptr, int len, int size)
{
struct skb_shared_info *sh = skb_shinfo(skb);
int page_offset;
get_page(page);
page_offset = ptr - page_address(page);
skb_add_rx_frag(skb, sh->nr_frags, page, page_offset, len, size);
}
static void
__ieee80211_amsdu_copy_frag(struct sk_buff *skb, struct sk_buff *frame,
int offset, int len)
{
struct skb_shared_info *sh = skb_shinfo(skb);
const skb_frag_t *frag = &sh->frags[0];
struct page *frag_page;
void *frag_ptr;
int frag_len, frag_size;
int head_size = skb->len - skb->data_len;
int cur_len;
frag_page = virt_to_head_page(skb->head);
frag_ptr = skb->data;
frag_size = head_size;
while (offset >= frag_size) {
offset -= frag_size;
frag_page = skb_frag_page(frag);
frag_ptr = skb_frag_address(frag);
frag_size = skb_frag_size(frag);
frag++;
}
frag_ptr += offset;
frag_len = frag_size - offset;
cur_len = min(len, frag_len);
__frame_add_frag(frame, frag_page, frag_ptr, cur_len, frag_size);
len -= cur_len;
while (len > 0) {
frag_len = skb_frag_size(frag);
cur_len = min(len, frag_len);
__frame_add_frag(frame, skb_frag_page(frag),
skb_frag_address(frag), cur_len, frag_len);
len -= cur_len;
frag++;
}
}
static struct sk_buff *
__ieee80211_amsdu_copy(struct sk_buff *skb, unsigned int hlen,
int offset, int len, bool reuse_frag)
{
struct sk_buff *frame;
int cur_len = len;
if (skb->len - offset < len)
return NULL;
/*
* When reusing framents, copy some data to the head to simplify
* ethernet header handling and speed up protocol header processing
* in the stack later.
*/
if (reuse_frag)
cur_len = min_t(int, len, 32);
/*
* Allocate and reserve two bytes more for payload
* alignment since sizeof(struct ethhdr) is 14.
*/
frame = dev_alloc_skb(hlen + sizeof(struct ethhdr) + 2 + cur_len);
if (!frame)
return NULL;
skb_reserve(frame, hlen + sizeof(struct ethhdr) + 2);
skb_copy_bits(skb, offset, skb_put(frame, cur_len), cur_len);
len -= cur_len;
if (!len)
return frame;
offset += cur_len;
__ieee80211_amsdu_copy_frag(skb, frame, offset, len);
return frame;
}
void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
const u8 *addr, enum nl80211_iftype iftype,
const unsigned int extra_headroom,
const u8 *check_da, const u8 *check_sa)
{
unsigned int hlen = ALIGN(extra_headroom, 4);
struct sk_buff *frame = NULL;
u16 ethertype;
u8 *payload;
int offset = 0, remaining;
struct ethhdr eth;
bool reuse_frag = skb->head_frag && !skb_has_frag_list(skb);
bool reuse_skb = false;
bool last = false;
while (!last) {
unsigned int subframe_len;
int len;
u8 padding;
skb_copy_bits(skb, offset, &eth, sizeof(eth));
len = ntohs(eth.h_proto);
subframe_len = sizeof(struct ethhdr) + len;
padding = (4 - subframe_len) & 0x3;
/* the last MSDU has no padding */
remaining = skb->len - offset;
if (subframe_len > remaining)
goto purge;
/* mitigate A-MSDU aggregation injection attacks */
if (ether_addr_equal(eth.h_dest, rfc1042_header))
goto purge;
offset += sizeof(struct ethhdr);
last = remaining <= subframe_len + padding;
/* FIXME: should we really accept multicast DA? */
if ((check_da && !is_multicast_ether_addr(eth.h_dest) &&
!ether_addr_equal(check_da, eth.h_dest)) ||
(check_sa && !ether_addr_equal(check_sa, eth.h_source))) {
offset += len + padding;
continue;
}
/* reuse skb for the last subframe */
if (!skb_is_nonlinear(skb) && !reuse_frag && last) {
skb_pull(skb, offset);
frame = skb;
reuse_skb = true;
} else {
frame = __ieee80211_amsdu_copy(skb, hlen, offset, len,
reuse_frag);
if (!frame)
goto purge;
offset += len + padding;
}
skb_reset_network_header(frame);
frame->dev = skb->dev;
frame->priority = skb->priority;
payload = frame->data;
ethertype = (payload[6] << 8) | payload[7];
if (likely((ether_addr_equal(payload, rfc1042_header) &&
ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) ||
ether_addr_equal(payload, bridge_tunnel_header))) {
eth.h_proto = htons(ethertype);
skb_pull(frame, ETH_ALEN + 2);
}
memcpy(skb_push(frame, sizeof(eth)), &eth, sizeof(eth));
__skb_queue_tail(list, frame);
}
if (!reuse_skb)
dev_kfree_skb(skb);
return;
purge:
__skb_queue_purge(list);
dev_kfree_skb(skb);
}
EXPORT_SYMBOL(ieee80211_amsdu_to_8023s);
/* Given a data frame determine the 802.1p/1d tag to use. */
unsigned int cfg80211_classify8021d(struct sk_buff *skb,
struct cfg80211_qos_map *qos_map)
{
unsigned int dscp;
unsigned char vlan_priority;
unsigned int ret;
/* skb->priority values from 256->263 are magic values to
* directly indicate a specific 802.1d priority. This is used
* to allow 802.1d priority to be passed directly in from VLAN
* tags, etc.
*/
if (skb->priority >= 256 && skb->priority <= 263) {
ret = skb->priority - 256;
goto out;
}
if (skb_vlan_tag_present(skb)) {
vlan_priority = (skb_vlan_tag_get(skb) & VLAN_PRIO_MASK)
>> VLAN_PRIO_SHIFT;
if (vlan_priority > 0) {
ret = vlan_priority;
goto out;
}
}
switch (skb->protocol) {
case htons(ETH_P_IP):
dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc;
break;
case htons(ETH_P_IPV6):
dscp = ipv6_get_dsfield(ipv6_hdr(skb)) & 0xfc;
break;
case htons(ETH_P_MPLS_UC):
case htons(ETH_P_MPLS_MC): {
struct mpls_label mpls_tmp, *mpls;
mpls = skb_header_pointer(skb, sizeof(struct ethhdr),
sizeof(*mpls), &mpls_tmp);
if (!mpls)
return 0;
ret = (ntohl(mpls->entry) & MPLS_LS_TC_MASK)
>> MPLS_LS_TC_SHIFT;
goto out;
}
case htons(ETH_P_80221):
/* 802.21 is always network control traffic */
return 7;
default:
return 0;
}
if (qos_map) {
unsigned int i, tmp_dscp = dscp >> 2;
for (i = 0; i < qos_map->num_des; i++) {
if (tmp_dscp == qos_map->dscp_exception[i].dscp) {
ret = qos_map->dscp_exception[i].up;
goto out;
}
}
for (i = 0; i < 8; i++) {
if (tmp_dscp >= qos_map->up[i].low &&
tmp_dscp <= qos_map->up[i].high) {
ret = i;
goto out;
}
}
}
ret = dscp >> 5;
out:
return array_index_nospec(ret, IEEE80211_NUM_TIDS);
}
EXPORT_SYMBOL(cfg80211_classify8021d);
const struct element *ieee80211_bss_get_elem(struct cfg80211_bss *bss, u8 id)
{
const struct cfg80211_bss_ies *ies;
ies = rcu_dereference(bss->ies);
if (!ies)
return NULL;
return cfg80211_find_elem(id, ies->data, ies->len);
}
EXPORT_SYMBOL(ieee80211_bss_get_elem);
void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
{
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
struct net_device *dev = wdev->netdev;
int i;
if (!wdev->connect_keys)
return;
for (i = 0; i < CFG80211_MAX_WEP_KEYS; i++) {
if (!wdev->connect_keys->params[i].cipher)
continue;
if (rdev_add_key(rdev, dev, -1, i, false, NULL,
&wdev->connect_keys->params[i])) {
netdev_err(dev, "failed to set key %d\n", i);
continue;
}
if (wdev->connect_keys->def == i &&
rdev_set_default_key(rdev, dev, -1, i, true, true)) {
netdev_err(dev, "failed to set defkey %d\n", i);
continue;
}
}
kfree_sensitive(wdev->connect_keys);
wdev->connect_keys = NULL;
}
void cfg80211_process_wdev_events(struct wireless_dev *wdev)
{
struct cfg80211_event *ev;
unsigned long flags;
spin_lock_irqsave(&wdev->event_lock, flags);
while (!list_empty(&wdev->event_list)) {
ev = list_first_entry(&wdev->event_list,
struct cfg80211_event, list);
list_del(&ev->list);
spin_unlock_irqrestore(&wdev->event_lock, flags);
wdev_lock(wdev);
switch (ev->type) {
case EVENT_CONNECT_RESULT:
__cfg80211_connect_result(
wdev->netdev,
&ev->cr,
ev->cr.status == WLAN_STATUS_SUCCESS);
break;
case EVENT_ROAMED:
__cfg80211_roamed(wdev, &ev->rm);
break;
case EVENT_DISCONNECTED:
__cfg80211_disconnected(wdev->netdev,
ev->dc.ie, ev->dc.ie_len,
ev->dc.reason,
!ev->dc.locally_generated);
break;
case EVENT_IBSS_JOINED:
__cfg80211_ibss_joined(wdev->netdev, ev->ij.bssid,
ev->ij.channel);
break;
case EVENT_STOPPED:
__cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev);
break;
case EVENT_PORT_AUTHORIZED:
__cfg80211_port_authorized(wdev, ev->pa.peer_addr,
ev->pa.td_bitmap,
ev->pa.td_bitmap_len);
break;
}
wdev_unlock(wdev);
kfree(ev);
spin_lock_irqsave(&wdev->event_lock, flags);
}
spin_unlock_irqrestore(&wdev->event_lock, flags);
}
void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev)
{
struct wireless_dev *wdev;
lockdep_assert_held(&rdev->wiphy.mtx);
list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list)
cfg80211_process_wdev_events(wdev);
}
int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
struct net_device *dev, enum nl80211_iftype ntype,
struct vif_params *params)
{
int err;
enum nl80211_iftype otype = dev->ieee80211_ptr->iftype;
lockdep_assert_held(&rdev->wiphy.mtx);
/* don't support changing VLANs, you just re-create them */
if (otype == NL80211_IFTYPE_AP_VLAN)
return -EOPNOTSUPP;
/* cannot change into P2P device or NAN */
if (ntype == NL80211_IFTYPE_P2P_DEVICE ||
ntype == NL80211_IFTYPE_NAN)
return -EOPNOTSUPP;
if (!rdev->ops->change_virtual_intf ||
!(rdev->wiphy.interface_modes & (1 << ntype)))
return -EOPNOTSUPP;
if (ntype != otype) {
/* if it's part of a bridge, reject changing type to station/ibss */
if (netif_is_bridge_port(dev) &&
(ntype == NL80211_IFTYPE_ADHOC ||
ntype == NL80211_IFTYPE_STATION ||
ntype == NL80211_IFTYPE_P2P_CLIENT))
return -EBUSY;
dev->ieee80211_ptr->use_4addr = false;
wdev_lock(dev->ieee80211_ptr);
rdev_set_qos_map(rdev, dev, NULL);
wdev_unlock(dev->ieee80211_ptr);
switch (otype) {
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO:
cfg80211_stop_ap(rdev, dev, -1, true);
break;
case NL80211_IFTYPE_ADHOC:
cfg80211_leave_ibss(rdev, dev, false);
break;
case NL80211_IFTYPE_STATION:
case NL80211_IFTYPE_P2P_CLIENT:
wdev_lock(dev->ieee80211_ptr);
cfg80211_disconnect(rdev, dev,
WLAN_REASON_DEAUTH_LEAVING, true);
wdev_unlock(dev->ieee80211_ptr);
break;
case NL80211_IFTYPE_MESH_POINT:
/* mesh should be handled? */
break;
case NL80211_IFTYPE_OCB:
cfg80211_leave_ocb(rdev, dev);
break;
default:
break;
}
cfg80211_process_rdev_events(rdev);
cfg80211_mlme_purge_registrations(dev->ieee80211_ptr);
memset(&dev->ieee80211_ptr->u, 0,
sizeof(dev->ieee80211_ptr->u));
memset(&dev->ieee80211_ptr->links, 0,
sizeof(dev->ieee80211_ptr->links));
}
err = rdev_change_virtual_intf(rdev, dev, ntype, params);
WARN_ON(!err && dev->ieee80211_ptr->iftype != ntype);
if (!err && params && params->use_4addr != -1)
dev->ieee80211_ptr->use_4addr = params->use_4addr;
if (!err) {
dev->priv_flags &= ~IFF_DONT_BRIDGE;
switch (ntype) {
case NL80211_IFTYPE_STATION:
if (dev->ieee80211_ptr->use_4addr)
break;
fallthrough;
case NL80211_IFTYPE_OCB:
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_ADHOC:
dev->priv_flags |= IFF_DONT_BRIDGE;
break;
case NL80211_IFTYPE_P2P_GO:
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_AP_VLAN:
case NL80211_IFTYPE_MESH_POINT:
/* bridging OK */
break;
case NL80211_IFTYPE_MONITOR:
/* monitor can't bridge anyway */
break;
case NL80211_IFTYPE_UNSPECIFIED:
case NUM_NL80211_IFTYPES:
/* not happening */
break;
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_WDS:
case NL80211_IFTYPE_NAN:
WARN_ON(1);
break;
}
}
if (!err && ntype != otype && netif_running(dev)) {
cfg80211_update_iface_num(rdev, ntype, 1);
cfg80211_update_iface_num(rdev, otype, -1);
}
return err;
}
static u32 cfg80211_calculate_bitrate_ht(struct rate_info *rate)
{
int modulation, streams, bitrate;
/* the formula below does only work for MCS values smaller than 32 */
if (WARN_ON_ONCE(rate->mcs >= 32))
return 0;
modulation = rate->mcs & 7;
streams = (rate->mcs >> 3) + 1;
bitrate = (rate->bw == RATE_INFO_BW_40) ? 13500000 : 6500000;
if (modulation < 4)
bitrate *= (modulation + 1);
else if (modulation == 4)
bitrate *= (modulation + 2);
else
bitrate *= (modulation + 3);
bitrate *= streams;
if (rate->flags & RATE_INFO_FLAGS_SHORT_GI)
bitrate = (bitrate / 9) * 10;
/* do NOT round down here */
return (bitrate + 50000) / 100000;
}
static u32 cfg80211_calculate_bitrate_dmg(struct rate_info *rate)
{
static const u32 __mcs2bitrate[] = {
/* control PHY */
[0] = 275,
/* SC PHY */
[1] = 3850,
[2] = 7700,
[3] = 9625,
[4] = 11550,
[5] = 12512, /* 1251.25 mbps */
[6] = 15400,
[7] = 19250,
[8] = 23100,
[9] = 25025,
[10] = 30800,
[11] = 38500,
[12] = 46200,
/* OFDM PHY */
[13] = 6930,
[14] = 8662, /* 866.25 mbps */
[15] = 13860,
[16] = 17325,
[17] = 20790,
[18] = 27720,
[19] = 34650,
[20] = 41580,
[21] = 45045,
[22] = 51975,
[23] = 62370,
[24] = 67568, /* 6756.75 mbps */
/* LP-SC PHY */
[25] = 6260,
[26] = 8340,
[27] = 11120,
[28] = 12510,
[29] = 16680,
[30] = 22240,
[31] = 25030,
};
if (WARN_ON_ONCE(rate->mcs >= ARRAY_SIZE(__mcs2bitrate)))
return 0;
return __mcs2bitrate[rate->mcs];
}
static u32 cfg80211_calculate_bitrate_extended_sc_dmg(struct rate_info *rate)
{
static const u32 __mcs2bitrate[] = {
[6 - 6] = 26950, /* MCS 9.1 : 2695.0 mbps */
[7 - 6] = 50050, /* MCS 12.1 */
[8 - 6] = 53900,
[9 - 6] = 57750,
[10 - 6] = 63900,
[11 - 6] = 75075,
[12 - 6] = 80850,
};
/* Extended SC MCS not defined for base MCS below 6 or above 12 */
if (WARN_ON_ONCE(rate->mcs < 6 || rate->mcs > 12))
return 0;
return __mcs2bitrate[rate->mcs - 6];
}
static u32 cfg80211_calculate_bitrate_edmg(struct rate_info *rate)
{
static const u32 __mcs2bitrate[] = {
/* control PHY */
[0] = 275,
/* SC PHY */
[1] = 3850,
[2] = 7700,
[3] = 9625,
[4] = 11550,
[5] = 12512, /* 1251.25 mbps */
[6] = 13475,
[7] = 15400,
[8] = 19250,
[9] = 23100,
[10] = 25025,
[11] = 26950,
[12] = 30800,
[13] = 38500,
[14] = 46200,
[15] = 50050,
[16] = 53900,
[17] = 57750,
[18] = 69300,
[19] = 75075,
[20] = 80850,
};
if (WARN_ON_ONCE(rate->mcs >= ARRAY_SIZE(__mcs2bitrate)))
return 0;
return __mcs2bitrate[rate->mcs] * rate->n_bonded_ch;
}
static u32 cfg80211_calculate_bitrate_vht(struct rate_info *rate)
{
static const u32 base[4][12] = {
{ 6500000,
13000000,
19500000,
26000000,
39000000,
52000000,
58500000,
65000000,
78000000,
/* not in the spec, but some devices use this: */
86700000,
97500000,
108300000,
},
{ 13500000,
27000000,
40500000,
54000000,
81000000,
108000000,
121500000,
135000000,
162000000,
180000000,
202500000,
225000000,
},
{ 29300000,
58500000,
87800000,
117000000,
175500000,
234000000,
263300000,
292500000,
351000000,
390000000,
438800000,
487500000,
},
{ 58500000,
117000000,
175500000,
234000000,
351000000,
468000000,
526500000,
585000000,
702000000,
780000000,
877500000,
975000000,
},
};
u32 bitrate;
int idx;
if (rate->mcs > 11)
goto warn;
switch (rate->bw) {
case RATE_INFO_BW_160:
idx = 3;
break;
case RATE_INFO_BW_80:
idx = 2;
break;
case RATE_INFO_BW_40:
idx = 1;
break;
case RATE_INFO_BW_5:
case RATE_INFO_BW_10:
default:
goto warn;
case RATE_INFO_BW_20:
idx = 0;
}
bitrate = base[idx][rate->mcs];
bitrate *= rate->nss;
if (rate->flags & RATE_INFO_FLAGS_SHORT_GI)
bitrate = (bitrate / 9) * 10;
/* do NOT round down here */
return (bitrate + 50000) / 100000;
warn:
WARN_ONCE(1, "invalid rate bw=%d, mcs=%d, nss=%d\n",
rate->bw, rate->mcs, rate->nss);
return 0;
}
static u32 cfg80211_calculate_bitrate_he(struct rate_info *rate)
{
#define SCALE 6144
u32 mcs_divisors[14] = {
102399, /* 16.666666... */
51201, /* 8.333333... */
34134, /* 5.555555... */
25599, /* 4.166666... */
17067, /* 2.777777... */
12801, /* 2.083333... */
11377, /* 1.851725... */
10239, /* 1.666666... */
8532, /* 1.388888... */
7680, /* 1.250000... */
6828, /* 1.111111... */
6144, /* 1.000000... */
5690, /* 0.926106... */
5120, /* 0.833333... */
};
u32 rates_160M[3] = { 960777777, 907400000, 816666666 };
u32 rates_969[3] = { 480388888, 453700000, 408333333 };
u32 rates_484[3] = { 229411111, 216666666, 195000000 };
u32 rates_242[3] = { 114711111, 108333333, 97500000 };
u32 rates_106[3] = { 40000000, 37777777, 34000000 };
u32 rates_52[3] = { 18820000, 17777777, 16000000 };
u32 rates_26[3] = { 9411111, 8888888, 8000000 };
u64 tmp;
u32 result;
if (WARN_ON_ONCE(rate->mcs > 13))
return 0;
if (WARN_ON_ONCE(rate->he_gi > NL80211_RATE_INFO_HE_GI_3_2))
return 0;
if (WARN_ON_ONCE(rate->he_ru_alloc >
NL80211_RATE_INFO_HE_RU_ALLOC_2x996))
return 0;
if (WARN_ON_ONCE(rate->nss < 1 || rate->nss > 8))
return 0;
if (rate->bw == RATE_INFO_BW_160)
result = rates_160M[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_80 ||
(rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_996))
result = rates_969[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_40 ||
(rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_484))
result = rates_484[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_20 ||
(rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_242))
result = rates_242[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_106)
result = rates_106[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_52)
result = rates_52[rate->he_gi];
else if (rate->bw == RATE_INFO_BW_HE_RU &&
rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_26)
result = rates_26[rate->he_gi];
else {
WARN(1, "invalid HE MCS: bw:%d, ru:%d\n",
rate->bw, rate->he_ru_alloc);
return 0;
}
/* now scale to the appropriate MCS */
tmp = result;
tmp *= SCALE;
do_div(tmp, mcs_divisors[rate->mcs]);
result = tmp;
/* and take NSS, DCM into account */
result = (result * rate->nss) / 8;
if (rate->he_dcm)
result /= 2;
return result / 10000;
}
static u32 cfg80211_calculate_bitrate_eht(struct rate_info *rate)
{
#define SCALE 6144
static const u32 mcs_divisors[16] = {
102399, /* 16.666666... */
51201, /* 8.333333... */
34134, /* 5.555555... */
25599, /* 4.166666... */
17067, /* 2.777777... */
12801, /* 2.083333... */
11377, /* 1.851725... */
10239, /* 1.666666... */
8532, /* 1.388888... */
7680, /* 1.250000... */
6828, /* 1.111111... */
6144, /* 1.000000... */
5690, /* 0.926106... */
5120, /* 0.833333... */
409600, /* 66.666666... */
204800, /* 33.333333... */
};
static const u32 rates_996[3] = { 480388888, 453700000, 408333333 };
static const u32 rates_484[3] = { 229411111, 216666666, 195000000 };
static const u32 rates_242[3] = { 114711111, 108333333, 97500000 };
static const u32 rates_106[3] = { 40000000, 37777777, 34000000 };
static const u32 rates_52[3] = { 18820000, 17777777, 16000000 };
static const u32 rates_26[3] = { 9411111, 8888888, 8000000 };
u64 tmp;
u32 result;
if (WARN_ON_ONCE(rate->mcs > 15))
return 0;
if (WARN_ON_ONCE(rate->eht_gi > NL80211_RATE_INFO_EHT_GI_3_2))
return 0;
if (WARN_ON_ONCE(rate->eht_ru_alloc >
NL80211_RATE_INFO_EHT_RU_ALLOC_4x996))
return 0;
if (WARN_ON_ONCE(rate->nss < 1 || rate->nss > 8))
return 0;
/* Bandwidth checks for MCS 14 */
if (rate->mcs == 14) {
if ((rate->bw != RATE_INFO_BW_EHT_RU &&
rate->bw != RATE_INFO_BW_80 &&
rate->bw != RATE_INFO_BW_160 &&
rate->bw != RATE_INFO_BW_320) ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_996 &&
rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 &&
rate->eht_ru_alloc != NL80211_RATE_INFO_EHT_RU_ALLOC_4x996)) {
WARN(1, "invalid EHT BW for MCS 14: bw:%d, ru:%d\n",
rate->bw, rate->eht_ru_alloc);
return 0;
}
}
if (rate->bw == RATE_INFO_BW_320 ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_4x996))
result = 4 * rates_996[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484)
result = 3 * rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_3x996)
result = 3 * rates_996[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484)
result = 2 * rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_160 ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_2x996))
result = 2 * rates_996[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc ==
NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242)
result = rates_996[rate->eht_gi] + rates_484[rate->eht_gi]
+ rates_242[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_996P484)
result = rates_996[rate->eht_gi] + rates_484[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_80 ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_996))
result = rates_996[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_484P242)
result = rates_484[rate->eht_gi] + rates_242[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_40 ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_484))
result = rates_484[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_20 ||
(rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_242))
result = rates_242[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_106P26)
result = rates_106[rate->eht_gi] + rates_26[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_106)
result = rates_106[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_52P26)
result = rates_52[rate->eht_gi] + rates_26[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_52)
result = rates_52[rate->eht_gi];
else if (rate->bw == RATE_INFO_BW_EHT_RU &&
rate->eht_ru_alloc == NL80211_RATE_INFO_EHT_RU_ALLOC_26)
result = rates_26[rate->eht_gi];
else {
WARN(1, "invalid EHT MCS: bw:%d, ru:%d\n",
rate->bw, rate->eht_ru_alloc);
return 0;
}
/* now scale to the appropriate MCS */
tmp = result;
tmp *= SCALE;
do_div(tmp, mcs_divisors[rate->mcs]);
/* and take NSS */
tmp *= rate->nss;
do_div(tmp, 8);
result = tmp;
return result / 10000;
}
u32 cfg80211_calculate_bitrate(struct rate_info *rate)
{
if (rate->flags & RATE_INFO_FLAGS_MCS)
return cfg80211_calculate_bitrate_ht(rate);
if (rate->flags & RATE_INFO_FLAGS_DMG)
return cfg80211_calculate_bitrate_dmg(rate);
if (rate->flags & RATE_INFO_FLAGS_EXTENDED_SC_DMG)
return cfg80211_calculate_bitrate_extended_sc_dmg(rate);
if (rate->flags & RATE_INFO_FLAGS_EDMG)
return cfg80211_calculate_bitrate_edmg(rate);
if (rate->flags & RATE_INFO_FLAGS_VHT_MCS)
return cfg80211_calculate_bitrate_vht(rate);
if (rate->flags & RATE_INFO_FLAGS_HE_MCS)
return cfg80211_calculate_bitrate_he(rate);
if (rate->flags & RATE_INFO_FLAGS_EHT_MCS)
return cfg80211_calculate_bitrate_eht(rate);
return rate->legacy;
}
EXPORT_SYMBOL(cfg80211_calculate_bitrate);
int cfg80211_get_p2p_attr(const u8 *ies, unsigned int len,
enum ieee80211_p2p_attr_id attr,
u8 *buf, unsigned int bufsize)
{
u8 *out = buf;
u16 attr_remaining = 0;
bool desired_attr = false;
u16 desired_len = 0;
while (len > 0) {
unsigned int iedatalen;
unsigned int copy;
const u8 *iedata;
if (len < 2)
return -EILSEQ;
iedatalen = ies[1];
if (iedatalen + 2 > len)
return -EILSEQ;
if (ies[0] != WLAN_EID_VENDOR_SPECIFIC)
goto cont;
if (iedatalen < 4)
goto cont;
iedata = ies + 2;
/* check WFA OUI, P2P subtype */
if (iedata[0] != 0x50 || iedata[1] != 0x6f ||
iedata[2] != 0x9a || iedata[3] != 0x09)
goto cont;
iedatalen -= 4;
iedata += 4;
/* check attribute continuation into this IE */
copy = min_t(unsigned int, attr_remaining, iedatalen);
if (copy && desired_attr) {
desired_len += copy;
if (out) {
memcpy(out, iedata, min(bufsize, copy));
out += min(bufsize, copy);
bufsize -= min(bufsize, copy);
}
if (copy == attr_remaining)
return desired_len;
}
attr_remaining -= copy;
if (attr_remaining)
goto cont;
iedatalen -= copy;
iedata += copy;
while (iedatalen > 0) {
u16 attr_len;
/* P2P attribute ID & size must fit */
if (iedatalen < 3)
return -EILSEQ;
desired_attr = iedata[0] == attr;
attr_len = get_unaligned_le16(iedata + 1);
iedatalen -= 3;
iedata += 3;
copy = min_t(unsigned int, attr_len, iedatalen);
if (desired_attr) {
desired_len += copy;
if (out) {
memcpy(out, iedata, min(bufsize, copy));
out += min(bufsize, copy);
bufsize -= min(bufsize, copy);
}
if (copy == attr_len)
return desired_len;
}
iedata += copy;
iedatalen -= copy;
attr_remaining = attr_len - copy;
}
cont:
len -= ies[1] + 2;
ies += ies[1] + 2;
}
if (attr_remaining && desired_attr)
return -EILSEQ;
return -ENOENT;
}
EXPORT_SYMBOL(cfg80211_get_p2p_attr);
static bool ieee80211_id_in_list(const u8 *ids, int n_ids, u8 id, bool id_ext)
{
int i;
/* Make sure array values are legal */
if (WARN_ON(ids[n_ids - 1] == WLAN_EID_EXTENSION))
return false;
i = 0;
while (i < n_ids) {
if (ids[i] == WLAN_EID_EXTENSION) {
if (id_ext && (ids[i + 1] == id))
return true;
i += 2;
continue;
}
if (ids[i] == id && !id_ext)
return true;
i++;
}
return false;
}
static size_t skip_ie(const u8 *ies, size_t ielen, size_t pos)
{
/* we assume a validly formed IEs buffer */
u8 len = ies[pos + 1];
pos += 2 + len;
/* the IE itself must have 255 bytes for fragments to follow */
if (len < 255)
return pos;
while (pos < ielen && ies[pos] == WLAN_EID_FRAGMENT) {
len = ies[pos + 1];
pos += 2 + len;
}
return pos;
}
size_t ieee80211_ie_split_ric(const u8 *ies, size_t ielen,
const u8 *ids, int n_ids,
const u8 *after_ric, int n_after_ric,
size_t offset)
{
size_t pos = offset;
while (pos < ielen) {
u8 ext = 0;
if (ies[pos] == WLAN_EID_EXTENSION)
ext = 2;
if ((pos + ext) >= ielen)
break;
if (!ieee80211_id_in_list(ids, n_ids, ies[pos + ext],
ies[pos] == WLAN_EID_EXTENSION))
break;
if (ies[pos] == WLAN_EID_RIC_DATA && n_after_ric) {
pos = skip_ie(ies, ielen, pos);
while (pos < ielen) {
if (ies[pos] == WLAN_EID_EXTENSION)
ext = 2;
else
ext = 0;
if ((pos + ext) >= ielen)
break;
if (!ieee80211_id_in_list(after_ric,
n_after_ric,
ies[pos + ext],
ext == 2))
pos = skip_ie(ies, ielen, pos);
else
break;
}
} else {
pos = skip_ie(ies, ielen, pos);
}
}
return pos;
}
EXPORT_SYMBOL(ieee80211_ie_split_ric);
bool ieee80211_operating_class_to_band(u8 operating_class,
enum nl80211_band *band)
{
switch (operating_class) {
case 112:
case 115 ... 127:
case 128 ... 130:
*band = NL80211_BAND_5GHZ;
return true;
case 131 ... 135:
*band = NL80211_BAND_6GHZ;
return true;
case 81:
case 82:
case 83:
case 84:
*band = NL80211_BAND_2GHZ;
return true;
case 180:
*band = NL80211_BAND_60GHZ;
return true;
}
return false;
}
EXPORT_SYMBOL(ieee80211_operating_class_to_band);
bool ieee80211_chandef_to_operating_class(struct cfg80211_chan_def *chandef,
u8 *op_class)
{
u8 vht_opclass;
u32 freq = chandef->center_freq1;
if (freq >= 2412 && freq <= 2472) {
if (chandef->width > NL80211_CHAN_WIDTH_40)
return false;
/* 2.407 GHz, channels 1..13 */
if (chandef->width == NL80211_CHAN_WIDTH_40) {
if (freq > chandef->chan->center_freq)
*op_class = 83; /* HT40+ */
else
*op_class = 84; /* HT40- */
} else {
*op_class = 81;
}
return true;
}
if (freq == 2484) {
/* channel 14 is only for IEEE 802.11b */
if (chandef->width != NL80211_CHAN_WIDTH_20_NOHT)
return false;
*op_class = 82; /* channel 14 */
return true;
}
switch (chandef->width) {
case NL80211_CHAN_WIDTH_80:
vht_opclass = 128;
break;
case NL80211_CHAN_WIDTH_160:
vht_opclass = 129;
break;
case NL80211_CHAN_WIDTH_80P80:
vht_opclass = 130;
break;
case NL80211_CHAN_WIDTH_10:
case NL80211_CHAN_WIDTH_5:
return false; /* unsupported for now */
default:
vht_opclass = 0;
break;
}
/* 5 GHz, channels 36..48 */
if (freq >= 5180 && freq <= 5240) {
if (vht_opclass) {
*op_class = vht_opclass;
} else if (chandef->width == NL80211_CHAN_WIDTH_40) {
if (freq > chandef->chan->center_freq)
*op_class = 116;
else
*op_class = 117;
} else {
*op_class = 115;
}
return true;
}
/* 5 GHz, channels 52..64 */
if (freq >= 5260 && freq <= 5320) {
if (vht_opclass) {
*op_class = vht_opclass;
} else if (chandef->width == NL80211_CHAN_WIDTH_40) {
if (freq > chandef->chan->center_freq)
*op_class = 119;
else
*op_class = 120;
} else {
*op_class = 118;
}
return true;
}
/* 5 GHz, channels 100..144 */
if (freq >= 5500 && freq <= 5720) {
if (vht_opclass) {
*op_class = vht_opclass;
} else if (chandef->width == NL80211_CHAN_WIDTH_40) {
if (freq > chandef->chan->center_freq)
*op_class = 122;
else
*op_class = 123;
} else {
*op_class = 121;
}
return true;
}
/* 5 GHz, channels 149..169 */
if (freq >= 5745 && freq <= 5845) {
if (vht_opclass) {
*op_class = vht_opclass;
} else if (chandef->width == NL80211_CHAN_WIDTH_40) {
if (freq > chandef->chan->center_freq)
*op_class = 126;
else
*op_class = 127;
} else if (freq <= 5805) {
*op_class = 124;
} else {
*op_class = 125;
}
return true;
}
/* 56.16 GHz, channel 1..4 */
if (freq >= 56160 + 2160 * 1 && freq <= 56160 + 2160 * 6) {
if (chandef->width >= NL80211_CHAN_WIDTH_40)
return false;
*op_class = 180;
return true;
}
/* not supported yet */
return false;
}
EXPORT_SYMBOL(ieee80211_chandef_to_operating_class);
static int cfg80211_wdev_bi(struct wireless_dev *wdev)
{
switch (wdev->iftype) {
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO:
WARN_ON(wdev->valid_links);
return wdev->links[0].ap.beacon_interval;
case NL80211_IFTYPE_MESH_POINT:
return wdev->u.mesh.beacon_interval;
case NL80211_IFTYPE_ADHOC:
return wdev->u.ibss.beacon_interval;
default:
break;
}
return 0;
}
static void cfg80211_calculate_bi_data(struct wiphy *wiphy, u32 new_beacon_int,
u32 *beacon_int_gcd,
bool *beacon_int_different)
{
struct wireless_dev *wdev;
*beacon_int_gcd = 0;
*beacon_int_different = false;
list_for_each_entry(wdev, &wiphy->wdev_list, list) {
int wdev_bi;
/* this feature isn't supported with MLO */
if (wdev->valid_links)
continue;
wdev_bi = cfg80211_wdev_bi(wdev);
if (!wdev_bi)
continue;
if (!*beacon_int_gcd) {
*beacon_int_gcd = wdev_bi;
continue;
}
if (wdev_bi == *beacon_int_gcd)
continue;
*beacon_int_different = true;
*beacon_int_gcd = gcd(*beacon_int_gcd, wdev_bi);
}
if (new_beacon_int && *beacon_int_gcd != new_beacon_int) {
if (*beacon_int_gcd)
*beacon_int_different = true;
*beacon_int_gcd = gcd(*beacon_int_gcd, new_beacon_int);
}
}
int cfg80211_validate_beacon_int(struct cfg80211_registered_device *rdev,
enum nl80211_iftype iftype, u32 beacon_int)
{
/*
* This is just a basic pre-condition check; if interface combinations
* are possible the driver must already be checking those with a call
* to cfg80211_check_combinations(), in which case we'll validate more
* through the cfg80211_calculate_bi_data() call and code in
* cfg80211_iter_combinations().
*/
if (beacon_int < 10 || beacon_int > 10000)
return -EINVAL;
return 0;
}
int cfg80211_iter_combinations(struct wiphy *wiphy,
struct iface_combination_params *params,
void (*iter)(const struct ieee80211_iface_combination *c,
void *data),
void *data)
{
const struct ieee80211_regdomain *regdom;
enum nl80211_dfs_regions region = 0;
int i, j, iftype;
int num_interfaces = 0;
u32 used_iftypes = 0;
u32 beacon_int_gcd;
bool beacon_int_different;
/*
* This is a bit strange, since the iteration used to rely only on
* the data given by the driver, but here it now relies on context,
* in form of the currently operating interfaces.
* This is OK for all current users, and saves us from having to
* push the GCD calculations into all the drivers.
* In the future, this should probably rely more on data that's in
* cfg80211 already - the only thing not would appear to be any new
* interfaces (while being brought up) and channel/radar data.
*/
cfg80211_calculate_bi_data(wiphy, params->new_beacon_int,
&beacon_int_gcd, &beacon_int_different);
if (params->radar_detect) {
rcu_read_lock();
regdom = rcu_dereference(cfg80211_regdomain);
if (regdom)
region = regdom->dfs_region;
rcu_read_unlock();
}
for (iftype = 0; iftype < NUM_NL80211_IFTYPES; iftype++) {
num_interfaces += params->iftype_num[iftype];
if (params->iftype_num[iftype] > 0 &&
!cfg80211_iftype_allowed(wiphy, iftype, 0, 1))
used_iftypes |= BIT(iftype);
}
for (i = 0; i < wiphy->n_iface_combinations; i++) {
const struct ieee80211_iface_combination *c;
struct ieee80211_iface_limit *limits;
u32 all_iftypes = 0;
c = &wiphy->iface_combinations[i];
if (num_interfaces > c->max_interfaces)
continue;
if (params->num_different_channels > c->num_different_channels)
continue;
limits = kmemdup(c->limits, sizeof(limits[0]) * c->n_limits,
GFP_KERNEL);
if (!limits)
return -ENOMEM;
for (iftype = 0; iftype < NUM_NL80211_IFTYPES; iftype++) {
if (cfg80211_iftype_allowed(wiphy, iftype, 0, 1))
continue;
for (j = 0; j < c->n_limits; j++) {
all_iftypes |= limits[j].types;
if (!(limits[j].types & BIT(iftype)))
continue;
if (limits[j].max < params->iftype_num[iftype])
goto cont;
limits[j].max -= params->iftype_num[iftype];
}
}
if (params->radar_detect !=
(c->radar_detect_widths & params->radar_detect))
goto cont;
if (params->radar_detect && c->radar_detect_regions &&
!(c->radar_detect_regions & BIT(region)))
goto cont;
/* Finally check that all iftypes that we're currently
* using are actually part of this combination. If they
* aren't then we can't use this combination and have
* to continue to the next.
*/
if ((all_iftypes & used_iftypes) != used_iftypes)
goto cont;
if (beacon_int_gcd) {
if (c->beacon_int_min_gcd &&
beacon_int_gcd < c->beacon_int_min_gcd)
goto cont;
if (!c->beacon_int_min_gcd && beacon_int_different)
goto cont;
}
/* This combination covered all interface types and
* supported the requested numbers, so we're good.
*/
(*iter)(c, data);
cont:
kfree(limits);
}
return 0;
}
EXPORT_SYMBOL(cfg80211_iter_combinations);
static void
cfg80211_iter_sum_ifcombs(const struct ieee80211_iface_combination *c,
void *data)
{
int *num = data;
(*num)++;
}
int cfg80211_check_combinations(struct wiphy *wiphy,
struct iface_combination_params *params)
{
int err, num = 0;
err = cfg80211_iter_combinations(wiphy, params,
cfg80211_iter_sum_ifcombs, &num);
if (err)
return err;
if (num == 0)
return -EBUSY;
return 0;
}
EXPORT_SYMBOL(cfg80211_check_combinations);
int ieee80211_get_ratemask(struct ieee80211_supported_band *sband,
const u8 *rates, unsigned int n_rates,
u32 *mask)
{
int i, j;
if (!sband)
return -EINVAL;
if (n_rates == 0 || n_rates > NL80211_MAX_SUPP_RATES)
return -EINVAL;
*mask = 0;
for (i = 0; i < n_rates; i++) {
int rate = (rates[i] & 0x7f) * 5;
bool found = false;
for (j = 0; j < sband->n_bitrates; j++) {
if (sband->bitrates[j].bitrate == rate) {
found = true;
*mask |= BIT(j);
break;
}
}
if (!found)
return -EINVAL;
}
/*
* mask must have at least one bit set here since we
* didn't accept a 0-length rates array nor allowed
* entries in the array that didn't exist
*/
return 0;
}
unsigned int ieee80211_get_num_supported_channels(struct wiphy *wiphy)
{
enum nl80211_band band;
unsigned int n_channels = 0;
for (band = 0; band < NUM_NL80211_BANDS; band++)
if (wiphy->bands[band])
n_channels += wiphy->bands[band]->n_channels;
return n_channels;
}
EXPORT_SYMBOL(ieee80211_get_num_supported_channels);
int cfg80211_get_station(struct net_device *dev, const u8 *mac_addr,
struct station_info *sinfo)
{
struct cfg80211_registered_device *rdev;
struct wireless_dev *wdev;
wdev = dev->ieee80211_ptr;
if (!wdev)
return -EOPNOTSUPP;
rdev = wiphy_to_rdev(wdev->wiphy);
if (!rdev->ops->get_station)
return -EOPNOTSUPP;
memset(sinfo, 0, sizeof(*sinfo));
return rdev_get_station(rdev, dev, mac_addr, sinfo);
}
EXPORT_SYMBOL(cfg80211_get_station);
void cfg80211_free_nan_func(struct cfg80211_nan_func *f)
{
int i;
if (!f)
return;
kfree(f->serv_spec_info);
kfree(f->srf_bf);
kfree(f->srf_macs);
for (i = 0; i < f->num_rx_filters; i++)
kfree(f->rx_filters[i].filter);
for (i = 0; i < f->num_tx_filters; i++)
kfree(f->tx_filters[i].filter);
kfree(f->rx_filters);
kfree(f->tx_filters);
kfree(f);
}
EXPORT_SYMBOL(cfg80211_free_nan_func);
bool cfg80211_does_bw_fit_range(const struct ieee80211_freq_range *freq_range,
u32 center_freq_khz, u32 bw_khz)
{
u32 start_freq_khz, end_freq_khz;
start_freq_khz = center_freq_khz - (bw_khz / 2);
end_freq_khz = center_freq_khz + (bw_khz / 2);
if (start_freq_khz >= freq_range->start_freq_khz &&
end_freq_khz <= freq_range->end_freq_khz)
return true;
return false;
}
int cfg80211_sinfo_alloc_tid_stats(struct station_info *sinfo, gfp_t gfp)
{
sinfo->pertid = kcalloc(IEEE80211_NUM_TIDS + 1,
sizeof(*(sinfo->pertid)),
gfp);
if (!sinfo->pertid)
return -ENOMEM;
return 0;
}
EXPORT_SYMBOL(cfg80211_sinfo_alloc_tid_stats);
/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */
/* Ethernet-II snap header (RFC1042 for most EtherTypes) */
const unsigned char rfc1042_header[] __aligned(2) =
{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
EXPORT_SYMBOL(rfc1042_header);
/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */
const unsigned char bridge_tunnel_header[] __aligned(2) =
{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
EXPORT_SYMBOL(bridge_tunnel_header);
/* Layer 2 Update frame (802.2 Type 1 LLC XID Update response) */
struct iapp_layer2_update {
u8 da[ETH_ALEN]; /* broadcast */
u8 sa[ETH_ALEN]; /* STA addr */
__be16 len; /* 6 */
u8 dsap; /* 0 */
u8 ssap; /* 0 */
u8 control;
u8 xid_info[3];
} __packed;
void cfg80211_send_layer2_update(struct net_device *dev, const u8 *addr)
{
struct iapp_layer2_update *msg;
struct sk_buff *skb;
/* Send Level 2 Update Frame to update forwarding tables in layer 2
* bridge devices */
skb = dev_alloc_skb(sizeof(*msg));
if (!skb)
return;
msg = skb_put(skb, sizeof(*msg));
/* 802.2 Type 1 Logical Link Control (LLC) Exchange Identifier (XID)
* Update response frame; IEEE Std 802.2-1998, 5.4.1.2.1 */
eth_broadcast_addr(msg->da);
ether_addr_copy(msg->sa, addr);
msg->len = htons(6);
msg->dsap = 0;
msg->ssap = 0x01; /* NULL LSAP, CR Bit: Response */
msg->control = 0xaf; /* XID response lsb.1111F101.
* F=0 (no poll command; unsolicited frame) */
msg->xid_info[0] = 0x81; /* XID format identifier */
msg->xid_info[1] = 1; /* LLC types/classes: Type 1 LLC */
msg->xid_info[2] = 0; /* XID sender's receive window size (RW) */
skb->dev = dev;
skb->protocol = eth_type_trans(skb, dev);
memset(skb->cb, 0, sizeof(skb->cb));
netif_rx(skb);
}
EXPORT_SYMBOL(cfg80211_send_layer2_update);
int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
enum ieee80211_vht_chanwidth bw,
int mcs, bool ext_nss_bw_capable,
unsigned int max_vht_nss)
{
u16 map = le16_to_cpu(cap->supp_mcs.rx_mcs_map);
int ext_nss_bw;
int supp_width;
int i, mcs_encoding;
if (map == 0xffff)
return 0;
if (WARN_ON(mcs > 9 || max_vht_nss > 8))
return 0;
if (mcs <= 7)
mcs_encoding = 0;
else if (mcs == 8)
mcs_encoding = 1;
else
mcs_encoding = 2;
if (!max_vht_nss) {
/* find max_vht_nss for the given MCS */
for (i = 7; i >= 0; i--) {
int supp = (map >> (2 * i)) & 3;
if (supp == 3)
continue;
if (supp >= mcs_encoding) {
max_vht_nss = i + 1;
break;
}
}
}
if (!(cap->supp_mcs.tx_mcs_map &
cpu_to_le16(IEEE80211_VHT_EXT_NSS_BW_CAPABLE)))
return max_vht_nss;
ext_nss_bw = le32_get_bits(cap->vht_cap_info,
IEEE80211_VHT_CAP_EXT_NSS_BW_MASK);
supp_width = le32_get_bits(cap->vht_cap_info,
IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK);
/* if not capable, treat ext_nss_bw as 0 */
if (!ext_nss_bw_capable)
ext_nss_bw = 0;
/* This is invalid */
if (supp_width == 3)
return 0;
/* This is an invalid combination so pretend nothing is supported */
if (supp_width == 2 && (ext_nss_bw == 1 || ext_nss_bw == 2))
return 0;
/*
* Cover all the special cases according to IEEE 802.11-2016
* Table 9-250. All other cases are either factor of 1 or not
* valid/supported.
*/
switch (bw) {
case IEEE80211_VHT_CHANWIDTH_USE_HT:
case IEEE80211_VHT_CHANWIDTH_80MHZ:
if ((supp_width == 1 || supp_width == 2) &&
ext_nss_bw == 3)
return 2 * max_vht_nss;
break;
case IEEE80211_VHT_CHANWIDTH_160MHZ:
if (supp_width == 0 &&
(ext_nss_bw == 1 || ext_nss_bw == 2))
return max_vht_nss / 2;
if (supp_width == 0 &&
ext_nss_bw == 3)
return (3 * max_vht_nss) / 4;
if (supp_width == 1 &&
ext_nss_bw == 3)
return 2 * max_vht_nss;
break;
case IEEE80211_VHT_CHANWIDTH_80P80MHZ:
if (supp_width == 0 && ext_nss_bw == 1)
return 0; /* not possible */
if (supp_width == 0 &&
ext_nss_bw == 2)
return max_vht_nss / 2;
if (supp_width == 0 &&
ext_nss_bw == 3)
return (3 * max_vht_nss) / 4;
if (supp_width == 1 &&
ext_nss_bw == 0)
return 0; /* not possible */
if (supp_width == 1 &&
ext_nss_bw == 1)
return max_vht_nss / 2;
if (supp_width == 1 &&
ext_nss_bw == 2)
return (3 * max_vht_nss) / 4;
break;
}
/* not covered or invalid combination received */
return max_vht_nss;
}
EXPORT_SYMBOL(ieee80211_get_vht_max_nss);
bool cfg80211_iftype_allowed(struct wiphy *wiphy, enum nl80211_iftype iftype,
bool is_4addr, u8 check_swif)
{
bool is_vlan = iftype == NL80211_IFTYPE_AP_VLAN;
switch (check_swif) {
case 0:
if (is_vlan && is_4addr)
return wiphy->flags & WIPHY_FLAG_4ADDR_AP;
return wiphy->interface_modes & BIT(iftype);
case 1:
if (!(wiphy->software_iftypes & BIT(iftype)) && is_vlan)
return wiphy->flags & WIPHY_FLAG_4ADDR_AP;
return wiphy->software_iftypes & BIT(iftype);
default:
break;
}
return false;
}
EXPORT_SYMBOL(cfg80211_iftype_allowed);
void cfg80211_remove_link(struct wireless_dev *wdev, unsigned int link_id)
{
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
ASSERT_WDEV_LOCK(wdev);
switch (wdev->iftype) {
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO:
__cfg80211_stop_ap(rdev, wdev->netdev, link_id, true);
break;
default:
/* per-link not relevant */
break;
}
wdev->valid_links &= ~BIT(link_id);
rdev_del_intf_link(rdev, wdev, link_id);
eth_zero_addr(wdev->links[link_id].addr);
}
void cfg80211_remove_links(struct wireless_dev *wdev)
{
unsigned int link_id;
/*
* links are controlled by upper layers (userspace/cfg)
* only for AP mode, so only remove them here for AP
*/
if (wdev->iftype != NL80211_IFTYPE_AP)
return;
wdev_lock(wdev);
if (wdev->valid_links) {
for_each_valid_link(wdev, link_id)
cfg80211_remove_link(wdev, link_id);
}
wdev_unlock(wdev);
}
int cfg80211_remove_virtual_intf(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev)
{
cfg80211_remove_links(wdev);
return rdev_del_virtual_intf(rdev, wdev);
}
const struct wiphy_iftype_ext_capab *
cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type)
{
int i;
for (i = 0; i < wiphy->num_iftype_ext_capab; i++) {
if (wiphy->iftype_ext_capab[i].iftype == type)
return &wiphy->iftype_ext_capab[i];
}
return NULL;
}
EXPORT_SYMBOL(cfg80211_get_iftype_ext_capa);