6.15.10-rc1 review
Subsystems (5)
Greg Kroah-Hartman
maintainerPATCH 459/480 ALSA: hda/realtek - Fix mute LED for HP Victus 16-r1xxx
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Edip Hazuri <[email protected]>
commit bd7814a4c0fd883894bdf9fe5eda24c9df826e4c upstream.
The mute led on this laptop is using ALC245 but requires a quirk to work This patch enables the existing quirk for the device.
Tested on Victus 16-r1xxx Laptop. The LED behaviour works as intended.
--- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+)
sound/pci/hda/patch_realtek.c +1 -0
@@ -10851,6 +10851,7 @@ static const struct hda_quirk alc269_fixSND_PCI_QUIRK (0x103c ,0x8c91 ,"HP EliteBook 660" ,ALC236_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8c96 ,"HP" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ),SND_PCI_QUIRK (0x103c ,0x8c97 ,"HP ZBook" ,ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF ), +SND_PCI_QUIRK (0x103c ,0x8c99 ,"HP Victus 16-r1xxx (MB 8C99)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8c9c ,"HP Victus 16-s1xxx (MB 8C9C)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8ca1 ,"HP ZBook Power" ,ALC236_FIXUP_HP_GPIO_LED ), SND_PCI_QUIRK(0x103c, 0x8ca2, "HP ZBook Power", ALC236_FIXUP_HP_GPIO_LED),
Greg Kroah-Hartman
maintainerPATCH 460/480 ALSA: hda/realtek - Fix mute LED for HP Victus 16-s0xxx
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Edip Hazuri <[email protected]>
commit 956048a3cd9d2575032e2c7ca62803677357ae18 upstream.
The mute led on this laptop is using ALC245 but requires a quirk to work This patch enables the existing quirk for the device.
Tested on Victus 16-S0063NT Laptop. The LED behaviour works as intended.
--- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+)
sound/pci/hda/patch_realtek.c +1 -0
@@ -10799,6 +10799,7 @@ static const struct hda_quirk alc269_fixSND_PCI_QUIRK (0x103c ,0x8bbe ,"HP Victus 16-r0xxx (MB 8BBE)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8bc8 ,"HP Victus 15-fa1xxx" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8bcd ,"HP Omen 16-xd0xxx" ,ALC245_FIXUP_HP_MUTE_LED_V1_COEFBIT ), +SND_PCI_QUIRK (0x103c ,0x8bd4 ,"HP Victus 16-s0xxx (MB 8BD4)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8bdd ,"HP Envy 17" ,ALC287_FIXUP_CS35L41_I2C_2 ),SND_PCI_QUIRK (0x103c ,0x8bde ,"HP Envy 17" ,ALC287_FIXUP_CS35L41_I2C_2 ), SND_PCI_QUIRK(0x103c, 0x8bdf, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
Greg Kroah-Hartman
maintainerPATCH 461/480 ALSA: hda/realtek - Fix mute LED for HP Victus 16-d1xxx (MB 8A26)
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Edip Hazuri <[email protected]>
commit a9dec0963187d05725369156a5e0e14cd3487bfb upstream.
My friend have Victus 16-d1xxx with board ID 8A26, the existing quirk for Victus 16-d1xxx wasn't working because of different board ID
Tested on Victus 16-d1015nt Laptop. The LED behaviour works as intended.
--- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+)
sound/pci/hda/patch_realtek.c +1 -0
@@ -10741,6 +10741,7 @@ static const struct hda_quirk alc269_fixSND_PCI_QUIRK (0x103c ,0x8a0f ,"HP Pavilion 14-ec1xxx" ,ALC287_FIXUP_HP_GPIO_LED ),SND_PCI_QUIRK (0x103c ,0x8a20 ,"HP Laptop 15s-fq5xxx" ,ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 ),SND_PCI_QUIRK (0x103c ,0x8a25 ,"HP Victus 16-d1xxx (MB 8A25)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ), +SND_PCI_QUIRK (0x103c ,0x8a26 ,"HP Victus 16-d1xxx (MB 8A26)" ,ALC245_FIXUP_HP_MUTE_LED_COEFBIT ),SND_PCI_QUIRK (0x103c ,0x8a28 ,"HP Envy 13" ,ALC287_FIXUP_CS35L41_I2C_2 ),SND_PCI_QUIRK (0x103c ,0x8a29 ,"HP Envy 15" ,ALC287_FIXUP_CS35L41_I2C_2 ), SND_PCI_QUIRK(0x103c, 0x8a2a, "HP Envy 15", ALC287_FIXUP_CS35L41_I2C_2),
Greg Kroah-Hartman
maintainerPATCH 462/480 platform/x86/intel/pmt: fix a crashlog NULL pointer access
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Michael J. Ruhl <[email protected]>
commit 54d5cd4719c5e87f33d271c9ac2e393147d934f8 upstream.
Usage of the intel_pmt_read() for binary sysfs, requires a pcidev. The current use of the endpoint value is only valid for telemetry endpoint usage.
Without the ep, the crashlog usage causes the following NULL pointer exception:
BUG: kernel NULL pointer dereference, address: 0000000000000000 Oops: Oops: 0000 [#1] SMP NOPTI RIP: 0010:intel_pmt_read+0x3b/0x70 [pmt_class] Code: Call Trace: <TASK> ? sysfs_kf_bin_read+0xc0/0xe0 kernfs_fop_read_iter+0xac/0x1a0 vfs_read+0x26d/0x350 ksys_read+0x6b/0xe0 __x64_sys_read+0x1d/0x30 x64_sys_call+0x1bc8/0x1d70 do_syscall_64+0x6d/0x110
Augment struct intel_pmt_entry with a pointer to the pcidev to avoid the NULL pointer exception.
--- drivers/platform/x86/intel/pmt/class.c | 3 ++- drivers/platform/x86/intel/pmt/class.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)
drivers/platform/x86/intel/pmt/class.c +2 -1
@@ -97,7 +97,7 @@ intel_pmt_read(struct file *filp, structif (count > entry->size - off) count = entry->size - off; - count =pmt_telem_read_mmio (entry->ep->pcidev, entry->cb, entry->header.guid, buf, + count =pmt_telem_read_mmio (entry->pcidev, entry->cb, entry->header.guid, buf, entry->base, off, count);return count;
@@ -252,6 +252,7 @@ static int intel_pmt_populate_entry(strureturn -EINVAL ; } + entry->pcidev = pci_dev; entry->guid = header->guid; entry->size = header->size; entry->cb = ivdev->priv_data;
drivers/platform/x86/intel/pmt/class.h +1 -0
@@ -39,6 +39,7 @@ struct intel_pmt_header {struct intel_pmt_entry {struct telem_endpoint *ep; +struct pci_dev *pcidev;struct intel_pmt_header header;struct bin_attribute pmt_bin_attr;struct kobject *kobj;
Greg Kroah-Hartman
maintainerPATCH 463/480 x86/fpu: Delay instruction pointer fixup until after warning
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dave Hansen <[email protected]>
commit 1cec9ac2d071cfd2da562241aab0ef701355762a upstream.
Right now, if XRSTOR fails a console message like this is be printed:
Bad FPU state detected at restore_fpregs_from_fpstate+0x9a/0x170, reinitializing FPU registers.
However, the text location (...+0x9a in this case) is the instruction *AFTER* the XRSTOR. The highlighted instruction in the "Code:" dump also points one instruction late.
The reason is that the "fixup" moves RIP up to pass the bad XRSTOR and keep on running after returning from the #GP handler. But it does this fixup before warning.
The resulting warning output is nonsensical because it looks like the non-FPU-related instruction is #GP'ing.
Do not fix up RIP until after printing the warning. Do this by using the more generic and standard ex_handler_default().
--- arch/x86/mm/extable.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
arch/x86/mm/extable.c +2 -3
@@ -122,13 +122,12 @@ static bool ex_handler_sgx(const structstatic bool ex_handler_fprestore (const struct exception_table_entry *fixup,struct pt_regs *regs) { - regs->ip =ex_fixup_addr (fixup); -WARN_ONCE (1 ,"Bad FPU state detected at %pB, reinitializing FPU registers." , (void *)instruction_pointer (regs));fpu_reset_from_exception_fixup (); -return true; + +return ex_handler_default (fixup, regs); }/*
Greg Kroah-Hartman
maintainerPATCH 464/480 KVM: VMX: Allow guest to set DEBUGCTL.RTM_DEBUG if RTM is supported
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sean Christopherson <[email protected]>
commit 17ec2f965344ee3fd6620bef7ef68792f4ac3af0 upstream.
Let the guest set DEBUGCTL.RTM_DEBUG if RTM is supported according to the guest CPUID model, as debug support is supposed to be available if RTM is supported, and there are no known downsides to letting the guest debug RTM aborts.
Note, there are no known bug reports related to RTM_DEBUG, the primary motivation is to reduce the probability of breaking existing guests when a future change adds a missing consistency check on vmcs12.GUEST_DEBUGCTL (KVM currently lets L2 run with whatever hardware supports; whoops).
Note #2, KVM already emulates DR6.RTM, and doesn't restrict access to DR7.RTM.
--- arch/x86/include/asm/msr-index.h | 1 + arch/x86/kvm/vmx/vmx.c | 4 ++++ 2 files changed, 5 insertions(+)
arch/x86/include/asm/msr-index.h +1 -0
@@ -419,6 +419,7 @@#define DEBUGCTLMSR_FREEZE_PERFMON_ON_PMI (1UL << 12)#define DEBUGCTLMSR_FREEZE_IN_SMM_BIT 14#define DEBUGCTLMSR_FREEZE_IN_SMM (1UL << DEBUGCTLMSR_FREEZE_IN_SMM_BIT) +#define DEBUGCTLMSR_RTM_DEBUG BIT(15)#define MSR_PEBS_FRONTEND 0x000003f7
arch/x86/kvm/vmx/vmx.c +4 -0
@@ -2192,6 +2192,10 @@ static u64 vmx_get_supported_debugctl(st (host_initiated || intel_pmu_lbr_is_enabled(vcpu))) debugctl |=DEBUGCTLMSR_LBR |DEBUGCTLMSR_FREEZE_LBRS_ON_PMI ; +if (boot_cpu_has (X86_FEATURE_RTM ) && + (host_initiated ||guest_cpu_cap_has (vcpu,X86_FEATURE_RTM ))) + debugctl |=DEBUGCTLMSR_RTM_DEBUG ; +return debugctl; }
Greg Kroah-Hartman
maintainerPATCH 465/480 s390/mm: Remove possible false-positive warning in pte_free_defer()
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gerald Schaefer <[email protected]>
commit 5647f61ad9171e8f025558ed6dc5702c56a33ba3 upstream.
Commit 8211dad627981 ("s390: add pte_free_defer() for pgtables sharing page") added a warning to pte_free_defer(), on our request. It was meant to warn if this would ever be reached for KVM guest mappings, because the page table would be freed w/o a gmap_unlink(). THP mappings are not allowed for KVM guests on s390, so this should never happen.
However, it is possible that the warning is triggered in a valid case as false-positive.
s390_enable_sie() takes the mmap_lock, marks all VMAs as VM_NOHUGEPAGE and splits possibly existing THP guest mappings. mm->context.has_pgste is set to 1 before that, to prevent races with the mm_has_pgste() check in MADV_HUGEPAGE.
khugepaged drops the mmap_lock for file mappings and might run in parallel, before a vma is marked VM_NOHUGEPAGE, but after mm->context.has_pgste was set to 1. If it finds file mappings to collapse, it will eventually call pte_free_defer(). This will trigger the warning, but it is a valid case because gmap is not yet set up, and the THP mappings will be split again.
Therefore, remove the warning and the comment.
--- arch/s390/mm/pgalloc.c | 5 ----- 1 file changed, 5 deletions(-)
arch/s390/mm/pgalloc.c +0 -5
@@ -176,11 +176,6 @@ void pte_free_defer(struct mm_struct *mmstruct ptdesc *ptdesc =virt_to_ptdesc (pgtable); call_rcu(&ptdesc->pt_rcu_head, pte_free_now); -/* -* THPs are not allowed for KVM guests. Warn if pgste ever reaches here. -* Turn to the generic pte_free_defer() version once gmap is removed. -*/ - WARN_ON_ONCE(mm_has_pgste(mm)); }#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
Greg Kroah-Hartman
maintainerPATCH 466/480 MIPS: mm: tlb-r4k: Uniquify TLB entries on init
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jiaxun Yang <[email protected]>
commit 35ad7e181541aa5757f9f316768d3e64403ec843 upstream.
Hardware or bootloader will initialize TLB entries to any value, which may collide with kernel's UNIQUE_ENTRYHI value. On MIPS microAptiv/M5150 family of cores this will trigger machine check exception and cause boot failure. On M5150 simulation this could happen 7 times out of 1000 boots.
Replace local_flush_tlb_all() with r4k_tlb_uniquify() which probes each TLB ENTRIHI unique value for collisions before it's written, and in case of collision try a different ASID.
--- arch/mips/mm/tlb-r4k.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-)
arch/mips/mm/tlb-r4k.c +55 -1
@@ -508,6 +508,60 @@ static int __init set_ntlb(char *str)__setup ("ntlb=" , set_ntlb); +/* Initialise all TLB entries with unique values */ +static void r4k_tlb_uniquify (void ) +{ +int entry =num_wired_entries (); + +htw_stop (); +write_c0_entrylo0 (0 ); +write_c0_entrylo1 (0 ); + +while (entry < current_cpu_data.tlbsize) { +unsigned long asid_mask =cpu_asid_mask (¤t_cpu_data); +unsigned long asid =0 ; +int idx; + +/* Skip wired MMID to make ginvt_mmid work */ +if (cpu_has_mmid) + asid =MMID_KERNEL_WIRED +1 ; + +/* Check for match before using UNIQUE_ENTRYHI */ +do { +if (cpu_has_mmid) { +write_c0_memorymapid (asid); +write_c0_entryhi (UNIQUE_ENTRYHI (entry)); + }else { +write_c0_entryhi (UNIQUE_ENTRYHI (entry) | asid); + } +mtc0_tlbw_hazard (); +tlb_probe (); +tlb_probe_hazard (); + idx =read_c0_index (); +/* No match or match is on current entry */ +if (idx <0 || idx == entry) +break ; +/* +* If we hit a match, we need to try again with +* a different ASID. +*/ + asid++; + }while (asid < asid_mask); + +if (idx >=0 && idx != entry) +panic ("Unable to uniquify TLB entry %d" , idx); + +write_c0_index (entry); +mtc0_tlbw_hazard (); +tlb_write_indexed (); + entry++; + } + +tlbw_use_hazard (); +htw_start (); +flush_micro_tlb (); +} +/* * Configure TLB (for init or after a CPU has been powered off). */
@@ -547,7 +601,7 @@ static void r4k_tlb_configure(void) temp_tlb_entry = current_cpu_data.tlbsize -1 ;/* From this point on the ARC firmware is dead. */ -local_flush_tlb_all (); +r4k_tlb_uniquify ();/* Did I tell you that ARC SUCKS? */ }
Greg Kroah-Hartman
maintainerPATCH 467/480 mm/hmm: move pmd_to_hmm_pfn_flags() to the respective #ifdeffery
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Andy Shevchenko <[email protected]>
commit 188cb385bbf04d486df3e52f28c47b3961f5f0c0 upstream.
When pmd_to_hmm_pfn_flags() is unused, it prevents kernel builds with clang, make W=1 and CONFIG_TRANSPARENT_HUGEPAGE=n:
mm/hmm.c:186:29: warning: unused function 'pmd_to_hmm_pfn_flags' [-Wunused-function]
Fix this by moving the function to the respective existing ifdeffery for its the only user.
See also:
6863f5643dd7 ("kbuild: allow Clang to find unused static inline functions for W=1 build")
--- mm/hmm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/hmm.c +1 -1
@@ -173,6 +173,7 @@ static inline unsigned long hmm_pfn_flagreturn order <<HMM_PFN_ORDER_SHIFT ; } +#ifdef CONFIG_TRANSPARENT_HUGEPAGE static inline unsigned long pmd_to_hmm_pfn_flags (struct hmm_range *range,pmd_t pmd) {
@@ -183,7 +184,6 @@ static inline unsigned long pmd_to_hmm_phmm_pfn_flags_order (PMD_SHIFT -PAGE_SHIFT ); } -#ifdef CONFIG_TRANSPARENT_HUGEPAGE static int hmm_vma_handle_pmd (struct mm_walk *walk,unsigned long addr,unsigned long end,unsigned long hmm_pfns[],pmd_t pmd)
Greg Kroah-Hartman
maintainerPATCH 468/480 mm: swap: correctly use maxpages in swapon syscall to avoid potential deadloop
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kemeng Shi <[email protected]>
commit 255116c5b0fa2145ede28c2f7b248df5e73834d1 upstream.
We use maxpages from read_swap_header() to initialize swap_info_struct, however the maxpages might be reduced in setup_swap_extents() and the si->max is assigned with the reduced maxpages from the setup_swap_extents().
Obviously, this could lead to memory waste as we allocated memory based on larger maxpages, besides, this could lead to a potential deadloop as following:
1) When calling setup_clusters() with larger maxpages, unavailable pages within range [si->max, larger maxpages) are not accounted with inc_cluster_info_page(). As a result, these pages are assumed available but can not be allocated. The cluster contains these pages can be moved to frag_clusters list after it's all available pages were allocated.
2) When the cluster mentioned in 1) is the only cluster in frag_clusters list, cluster_alloc_swap_entry() assume order 0 allocation will never failed and will enter a deadloop by keep trying to allocate page from the only cluster in frag_clusters which contains no actually available page.
Call setup_swap_extents() to get the final maxpages before swap_info_struct initialization to fix the issue.
After this change, span will include badblocks and will become large value which I think is correct value:
In summary, there are two kinds of swapfile_activate operations.
1. Filesystem style: Treat all blocks logical continuity and find usable physical extents in logical range. In this way, si->pages will be actual usable physical blocks and span will be "1 + highest_block - lowest_block".
2. Block device style: Treat all blocks physically continue and only one single extent is added. In this way, si->pages will be si->max and span will be "si->pages - 1". Actually, si->pages and si->max is only used in block device style and span value is set with si->pages. As a result, span value in block device style will become a larger value as you mentioned.
I think larger value is correct based on:
1. Span value in filesystem style is "1 + highest_block - lowest_block" which is the range cover all possible phisical blocks including the badblocks.
2. For block device style, si->pages is the actual usable block number and is already in pr_info. The original span value before this patch is also refer to usable block number which is redundant in pr_info.
--- mm/swapfile.c | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-)
mm/swapfile.c +26 -27
@@ -3138,43 +3138,30 @@ static unsigned long read_swap_header(streturn maxpages; } -static int setup_swap_map_and_extents (struct swap_info_struct *si, -union swap_header *swap_header, -unsigned char *swap_map, -unsigned long maxpages, -sector_t *span) +static int setup_swap_map (struct swap_info_struct *si, +union swap_header *swap_header, +unsigned char *swap_map, +unsigned long maxpages) { -unsigned int nr_good_pages;unsigned long i; -int nr_extents; - - nr_good_pages = maxpages -1 ;/* omit header page */ + swap_map[0 ] =SWAP_MAP_BAD ;/* omit header page */ for (i =0 ; i < swap_header->info.nr_badpages; i++) {unsigned int page_nr = swap_header->info.badpages[i];if (page_nr ==0 || page_nr > swap_header->info.last_page)return -EINVAL ;if (page_nr < maxpages) { swap_map[page_nr] =SWAP_MAP_BAD ; - nr_good_pages--; + si->pages--; } } -if (nr_good_pages) { - swap_map[0 ] =SWAP_MAP_BAD ; - si->max = maxpages; - si->pages = nr_good_pages; - nr_extents =setup_swap_extents (si, span); -if (nr_extents <0 ) -return nr_extents; - nr_good_pages = si->pages; - } -if (!nr_good_pages) { +if (!si->pages) {pr_warn ("Empty swap-file\n" );return -EINVAL ; } -return nr_extents; +return 0 ; }#define SWAP_CLUSTER_INFO_COLS \
@@ -3214,7 +3201,7 @@ static struct swap_cluster_info *setup_c* Mark unusable pages as unavailable. The clusters aren't * marked free yet, so no list operations are involved yet. * -* See setup_swap_map_and_extents(): header page, bad pages, +* See setup_swap_map(): header page, bad pages, * and the EOF part of the last cluster. */ inc_cluster_info_page (si, cluster_info,0 );
@@ -3360,6 +3347,21 @@ SYSCALL_DEFINE2(swapon, const char __use goto bad_swap_unlock_inode; } + si->max = maxpages; + si->pages = maxpages -1 ; + nr_extents =setup_swap_extents (si, &span); +if (nr_extents <0 ) { + error = nr_extents; + goto bad_swap_unlock_inode; + } +if (si->pages != si->max -1 ) { +pr_err ("swap:%u != (max:%u - 1)\n" , si->pages, si->max); + error = -EINVAL ; + goto bad_swap_unlock_inode; + } + + maxpages = si->max; +/* OK, set up the swap map and apply the bad block list */ swap_map =vzalloc (maxpages);if (!swap_map) {
@@ -3371,12 +3373,9 @@ SYSCALL_DEFINE2(swapon, const char __useif (error) goto bad_swap_unlock_inode; - nr_extents =setup_swap_map_and_extents (si, swap_header, swap_map, - maxpages, &span); -if (unlikely (nr_extents <0 )) { - error = nr_extents; + error =setup_swap_map (si, swap_header, swap_map, maxpages); +if (error) goto bad_swap_unlock_inode; - }/* * Use kvmalloc_array instead of bitmap_zalloc as the allocation order might
Greg Kroah-Hartman
maintainerPATCH 469/480 mm: swap: fix potential buffer overflow in setup_clusters()
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kemeng Shi <[email protected]>
commit 152c1339dc13ad46f1b136e8693de15980750835 upstream.
In setup_swap_map(), we only ensure badpages are in range (0, last_page]. As maxpages might be < last_page, setup_clusters() will encounter a buffer overflow when a badpage is >= maxpages.
Only call inc_cluster_info_page() for badpage which is < maxpages to fix the issue.
--- mm/swapfile.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
mm/swapfile.c +7 -3
@@ -3205,9 +3205,13 @@ static struct swap_cluster_info *setup_c* and the EOF part of the last cluster. */ inc_cluster_info_page (si, cluster_info,0 ); -for (i =0 ; i < swap_header->info.nr_badpages; i++) -inc_cluster_info_page (si, cluster_info, - swap_header->info.badpages[i]); +for (i =0 ; i < swap_header->info.nr_badpages; i++) { +unsigned int page_nr = swap_header->info.badpages[i]; + +if (page_nr >= maxpages) +continue ; +inc_cluster_info_page (si, cluster_info, page_nr); + }for (i = maxpages; i <round_up (maxpages,SWAPFILE_CLUSTER ); i++)inc_cluster_info_page (si, cluster_info, i);
Greg Kroah-Hartman
maintainerPATCH 470/480 mm: swap: move nr_swap_pages counter decrement from folio_alloc_swap() to swap_range_alloc()
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kemeng Shi <[email protected]>
commit 4f78252da887ee7e9d1875dd6e07d9baa936c04f upstream.
Patch series "Some randome fixes and cleanups to swapfile".
Patch 0-3 are some random fixes. Patch 4 is a cleanup. More details can be found in respective patches.
This patch (of 4):
When folio_alloc_swap() encounters a failure in either mem_cgroup_try_charge_swap() or add_to_swap_cache(), nr_swap_pages counter is not decremented for allocated entry. However, the following put_swap_folio() will increase nr_swap_pages counter unpairly and lead to an imbalance.
Move nr_swap_pages decrement from folio_alloc_swap() to swap_range_alloc() to pair the nr_swap_pages counting.
--- mm/swapfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/swapfile.c +1 -1
@@ -1115,6 +1115,7 @@ static void swap_range_alloc(struct swapif (vm_swap_full ())schedule_work (&si->reclaim_work); } +atomic_long_sub (nr_entries, &nr_swap_pages); } static void swap_range_free(struct swap_info_struct *si, unsigned long offset,
@@ -1313,7 +1314,6 @@ int folio_alloc_swap(struct folio *folioif (add_to_swap_cache (folio, entry, gfp | __GFP_NOMEMALLOC,NULL )) goto out_free; -atomic_long_sub (size, &nr_swap_pages);return 0 ; out_free:
Greg Kroah-Hartman
maintainerPATCH 471/480 mm: shmem: fix the shmem large folio allocation for the i915 driver
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Baolin Wang <[email protected]>
commit 8d58d65621118fdca3ed6a0b3d658ba7e0e5153c upstream.
After commit acd7ccb284b8 ("mm: shmem: add large folio support for tmpfs"), we extend the 'huge=' option to allow any sized large folios for tmpfs, which means tmpfs will allow getting a highest order hint based on the size of write() and fallocate() paths, and then will try each allowable large order.
However, when the i915 driver allocates shmem memory, it doesn't provide hint information about the size of the large folio to be allocated, resulting in the inability to allocate PMD-sized shmem, which in turn affects GPU performance.
Patryk added:
: In my tests, the performance drop ranges from a few percent up to 13% : in Unigine Superposition under heavy memory usage on the CPU Core Ultra : 155H with the Xe 128 EU GPU. Other users have reported performance : impact up to 30% on certain workloads. Please find more in the : regressions reports:
: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14645
: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13845
:
: I believe the change should be backported to all active kernel branches : after version 6.12.
To fix this issue, we can use the inode's size as a write size hint in shmem_read_folio_gfp() to help allocate PMD-sized large folios.
--- mm/shmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
mm/shmem.c +2 -2
@@ -5930,8 +5930,8 @@ struct folio *shmem_read_folio_gfp(strucstruct folio *folio;int error; - error =shmem_get_folio_gfp (inode, index,0 , &folio,SGP_CACHE , - gfp,NULL ,NULL ); + error =shmem_get_folio_gfp (inode, index,i_size_read (inode), + &folio,SGP_CACHE , gfp,NULL ,NULL );if (error)return ERR_PTR (error);
Greg Kroah-Hartman
maintainerPATCH 472/480 usb: gadget: uvc: Initialize frame-based format color matching descriptor
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Akash Kumar <[email protected]>
commit 323a80a1a5ace319a722909c006d5bdb2a35d273 upstream.
Fix NULL pointer crash in uvcg_framebased_make due to uninitialized color matching descriptor for frame-based format which was added in commit f5e7bdd34aca ("usb: gadget: uvc: Allow creating new color matching descriptors") that added handling for uncompressed and mjpeg format.
Crash is seen when userspace configuration (via configfs) does not explicitly define the color matching descriptor. If color_matching is not found, config_group_find_item() returns NULL. The code then jumps to out_put_cm, where it calls config_item_put(color_matching);. If color_matching is NULL, this will dereference a null pointer, leading to a crash.
[ 2.746440] Unable to handle kernel NULL pointer dereference at virtual address 000000000000008c [ 2.756273] Mem abort info: [ 2.760080] ESR = 0x0000000096000005 [ 2.764872] EC = 0x25: DABT (current EL), IL = 32 bits [ 2.771068] SET = 0, FnV = 0 [ 2.771069] EA = 0, S1PTW = 0 [ 2.771070] FSC = 0x05: level 1 translation fault [ 2.771071] Data abort info: [ 2.771072] ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000 [ 2.771073] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 2.771074] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 2.771075] user pgtable: 4k pages, 39-bit VAs, pgdp=00000000a3e59000 [ 2.771077] [000000000000008c] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000 [ 2.771081] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP [ 2.771084] Dumping ftrace buffer: [ 2.771085] (ftrace buffer empty) [ 2.771138] CPU: 7 PID: 486 Comm: ln Tainted: G W E 6.6.58-android15 [ 2.771139] Hardware name: Qualcomm Technologies, Inc. SunP QRD HDK (DT) [ 2.771140] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 2.771141] pc : __uvcg_fill_strm+0x198/0x2cc [ 2.771145] lr : __uvcg_iter_strm_cls+0xc8/0x17c [ 2.771146] sp : ffffffc08140bbb0 [ 2.771146] x29: ffffffc08140bbb0 x28: ffffff803bc81380 x27: ffffff8023bbd250 [ 2.771147] x26: ffffff8023bbd250 x25: ffffff803c361348 x24: ffffff803d8e6768 [ 2.771148] x23: 0000000000000004 x22: 0000000000000003 x21: ffffffc08140bc48 [ 2.771149] x20: 0000000000000000 x19: ffffffc08140bc48 x18: ffffffe9f8cf4a00 [ 2.771150] x17: 000000001bf64ec3 x16: 000000001bf64ec3 x15: ffffff8023bbd250 [ 2.771151] x14: 000000000000000f x13: 004c4b40000f4240 x12: 000a2c2a00051615 [ 2.771152] x11: 000000000000004f x10: ffffffe9f76b40ec x9 : ffffffe9f7e389d0 [ 2.771153] x8 : ffffff803d0d31ce x7 : 000f4240000a2c2a x6 : 0005161500028b0a [ 2.771154] x5 : ffffff803d0d31ce x4 : 0000000000000003 x3 : 0000000000000000 [ 2.771155] x2 : ffffffc08140bc50 x1 : ffffffc08140bc48 x0 : 0000000000000000 [ 2.771156] Call trace: [ 2.771157] __uvcg_fill_strm+0x198/0x2cc [ 2.771157] __uvcg_iter_strm_cls+0xc8/0x17c [ 2.771158] uvcg_streaming_class_allow_link+0x240/0x290 [ 2.771159] configfs_symlink+0x1f8/0x630 [ 2.771161] vfs_symlink+0x114/0x1a0 [ 2.771163] do_symlinkat+0x94/0x28c [ 2.771164] __arm64_sys_symlinkat+0x54/0x70 [ 2.771164] invoke_syscall+0x58/0x114 [ 2.771166] el0_svc_common+0x80/0xe0 [ 2.771168] do_el0_svc+0x1c/0x28 [ 2.771169] el0_svc+0x3c/0x70 [ 2.771172] el0t_64_sync_handler+0x68/0xbc [ 2.771173] el0t_64_sync+0x1a8/0x1ac
Initialize color matching descriptor for frame-based format to prevent NULL pointer crash by mirroring the handling done for uncompressed and mjpeg formats.
--- drivers/usb/gadget/function/uvc_configfs.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
drivers/usb/gadget/function/uvc_configfs.c +10 -0
@@ -2916,8 +2916,15 @@ static struct config_group *uvcg_frameba'H' ,'2' ,'6' ,'4' ,0x00 ,0x00 ,0x10 ,0x00 ,0x80 ,0x00 ,0x00 ,0xaa ,0x00 ,0x38 ,0x9b ,0x71 }; +struct uvcg_color_matching *color_match; +struct config_item *streaming;struct uvcg_framebased *h; + streaming = group->cg_item.ci_parent; + color_match =uvcg_format_get_default_color_match (streaming); +if (!color_match) +return ERR_PTR (-EINVAL ); + h =kzalloc (sizeof (*h),GFP_KERNEL );if (!h)return ERR_PTR (-ENOMEM );
@@ -2936,6 +2943,9 @@ static struct config_group *uvcg_framebaINIT_LIST_HEAD (&h->fmt.frames); h->fmt.type =UVCG_FRAMEBASED ; + + h->fmt.color_matching = color_match; + color_match->refcnt++;config_group_init_type_name (&h->fmt.group, name, &uvcg_framebased_type);
Greg Kroah-Hartman
maintainerPATCH 473/480 perf/arm-ni: Set initial IRQ affinity
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Robin Murphy <[email protected]>
commit c872d7c837382517c51a76dfdcf550332cfab231 upstream.
While we do request our IRQs with the right flags to stop their affinity changing unexpectedly, we forgot to actually set it to start with. Oops.
--- drivers/perf/arm-ni.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/perf/arm-ni.c +2 -0
@@ -544,6 +544,8 @@ static int arm_ni_init_cd(struct arm_nireturn err; cd->cpu =cpumask_local_spread (0 ,dev_to_node (ni->dev)); +irq_set_affinity (cd->irq,cpumask_of (cd->cpu)); + cd->pmu = (struct pmu ) { .module =THIS_MODULE , .parent = ni->dev,
Greg Kroah-Hartman
maintainerPATCH 474/480 media: ti: j721e-csi2rx: fix list_del corruption
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Julien Massot <[email protected]>
commit ae42c6fe531425ef2f47e82f96851427d24bbf6b upstream.
If ti_csi2rx_start_dma() fails in ti_csi2rx_dma_callback(), the buffer is marked done with VB2_BUF_STATE_ERROR but is not removed from the DMA queue. This causes the same buffer to be retried in the next iteration, resulting in a double list_del() and eventual list corruption.
Fix this by removing the buffer from the queue before calling vb2_buffer_done() on error.
This resolves a crash due to list_del corruption:
[ 37.811243] j721e-csi2rx 30102000.ticsi2rx: Failed to queue the next buffer for DMA [ 37.832187] slab kmalloc-2k start ffff00000255b000 pointer offset 1064 size 2048 [ 37.839761] list_del corruption. next->prev should be ffff00000255bc28, but was ffff00000255d428. (next=ffff00000255b428) [ 37.850799] ------------[ cut here ]------------ [ 37.855424] kernel BUG at lib/list_debug.c:65! [ 37.859876] Internal error: Oops - BUG: 00000000f2000800 [#1] SMP [ 37.866061] Modules linked in: i2c_dev usb_f_rndis u_ether libcomposite dwc3 udc_core usb_common aes_ce_blk aes_ce_cipher ghash_ce gf128mul sha1_ce cpufreq_dt dwc3_am62 phy_gmii_sel sa2ul [ 37.882830] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.16.0-rc3+ #28 VOLUNTARY [ 37.890851] Hardware name: Bosch STLA-GSRV2-B0 (DT) [ 37.895737] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 37.902703] pc : __list_del_entry_valid_or_report+0xdc/0x114 [ 37.908390] lr : __list_del_entry_valid_or_report+0xdc/0x114 [ 37.914059] sp : ffff800080003db0 [ 37.917375] x29: ffff800080003db0 x28: 0000000000000007 x27: ffff800080e50000 [ 37.924521] x26: 0000000000000000 x25: ffff0000016abb50 x24: dead000000000122 [ 37.931666] x23: ffff0000016abb78 x22: ffff0000016ab080 x21: ffff800080003de0 [ 37.938810] x20: ffff00000255bc00 x19: ffff00000255b800 x18: 000000000000000a [ 37.945956] x17: 20747562202c3832 x16: 6362353532303030 x15: 0720072007200720 [ 37.953101] x14: 0720072007200720 x13: 0720072007200720 x12: 00000000ffffffea [ 37.960248] x11: ffff800080003b18 x10: 00000000ffffefff x9 : ffff800080f5b568 [ 37.967396] x8 : ffff800080f5b5c0 x7 : 0000000000017fe8 x6 : c0000000ffffefff [ 37.974542] x5 : ffff00000fea6688 x4 : 0000000000000000 x3 : 0000000000000000 [ 37.981686] x2 : 0000000000000000 x1 : ffff800080ef2b40 x0 : 000000000000006d [ 37.988832] Call trace: [ 37.991281] __list_del_entry_valid_or_report+0xdc/0x114 (P) [ 37.996959] ti_csi2rx_dma_callback+0x84/0x1c4 [ 38.001419] udma_vchan_complete+0x1e0/0x344 [ 38.005705] tasklet_action_common+0x118/0x310 [ 38.010163] tasklet_action+0x30/0x3c [ 38.013832] handle_softirqs+0x10c/0x2e0 [ 38.017761] __do_softirq+0x14/0x20 [ 38.021256] ____do_softirq+0x10/0x20 [ 38.024931] call_on_irq_stack+0x24/0x60 [ 38.028873] do_softirq_own_stack+0x1c/0x40 [ 38.033064] __irq_exit_rcu+0x130/0x15c [ 38.036909] irq_exit_rcu+0x10/0x20 [ 38.040403] el1_interrupt+0x38/0x60 [ 38.043987] el1h_64_irq_handler+0x18/0x24 [ 38.048091] el1h_64_irq+0x6c/0x70 [ 38.051501] default_idle_call+0x34/0xe0 (P) [ 38.055783] do_idle+0x1f8/0x250 [ 38.059021] cpu_startup_entry+0x34/0x3c [ 38.062951] rest_init+0xb4/0xc0 [ 38.066186] console_on_rootfs+0x0/0x6c [ 38.070031] __primary_switched+0x88/0x90 [ 38.074059] Code: b00037e0 91378000 f9400462 97e9bf49 (d4210000) [ 38.080168] ---[ end trace 0000000000000000 ]--- [ 38.084795] Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt [ 38.092197] SMP: stopping secondary CPUs [ 38.096139] Kernel Offset: disabled [ 38.099631] CPU features: 0x0000,00002000,02000801,0400420b [ 38.105202] Memory Limit: none [ 38.108260] ---[ end Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt ]---
--- drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 1 + 1 file changed, 1 insertion(+)
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +1 -0
@@ -619,6 +619,7 @@ static void ti_csi2rx_dma_callback(voidif (ti_csi2rx_start_dma (csi, buf)) {dev_err (csi->dev,"Failed to queue the next buffer for DMA\n" ); +list_del (&buf->list);vb2_buffer_done (&buf->vb.vb2_buf,VB2_BUF_STATE_ERROR ); }else {list_move_tail (&buf->list, &dma->submitted);
Greg Kroah-Hartman
maintainerPATCH 475/480 HID: apple: validate feature-report field count to prevent NULL pointer dereference
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Qasim Ijaz <[email protected]>
commit 1bb3363da862e0464ec050eea2fb5472a36ad86b upstream.
A malicious HID device with quirk APPLE_MAGIC_BACKLIGHT can trigger a NULL pointer dereference whilst the power feature-report is toggled and sent to the device in apple_magic_backlight_report_set(). The power feature-report is expected to have two data fields, but if the descriptor declares one field then accessing field[1] and dereferencing it in apple_magic_backlight_report_set() becomes invalid
since field[1] will be NULL.
An example of a minimal descriptor which can cause the crash is something like the following where the report with ID 3 (power report) only references a single 1-byte field. When hid core parses the descriptor it will encounter the final feature tag, allocate a hid_report (all members of field[] will be zeroed out), create field structure and populate it, increasing the maxfield to 1. The subsequent field[1] access and dereference causes the crash.
Usage Page (Vendor Defined 0xFF00)
Usage (0x0F)
Collection (Application)
Report ID (1)
Usage (0x01)
Logical Minimum (0)
Logical Maximum (255)
Report Size (8)
Report Count (1)
Feature (Data,Var,Abs)
Usage (0x02)
Logical Maximum (32767)
Report Size (16)
Report Count (1)
Feature (Data,Var,Abs)
Report ID (3)
Usage (0x03)
Logical Minimum (0)
Logical Maximum (1)
Report Size (8)
Report Count (1)
Feature (Data,Var,Abs)
End Collection
Here we see the KASAN splat when the kernel dereferences the NULL pointer and crashes:
[ 15.164723] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006: 0000 [#1] SMP KASAN NOPTI [ 15.165691] KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037] [ 15.165691] CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Not tainted 6.15.0 #31 PREEMPT(voluntary) [ 15.165691] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 15.165691] RIP: 0010:apple_magic_backlight_report_set+0xbf/0x210 [ 15.165691] Call Trace: [ 15.165691] <TASK> [ 15.165691] apple_probe+0x571/0xa20 [ 15.165691] hid_device_probe+0x2e2/0x6f0 [ 15.165691] really_probe+0x1ca/0x5c0 [ 15.165691] __driver_probe_device+0x24f/0x310 [ 15.165691] driver_probe_device+0x4a/0xd0 [ 15.165691] __device_attach_driver+0x169/0x220 [ 15.165691] bus_for_each_drv+0x118/0x1b0 [ 15.165691] __device_attach+0x1d5/0x380 [ 15.165691] device_initial_probe+0x12/0x20 [ 15.165691] bus_probe_device+0x13d/0x180 [ 15.165691] device_add+0xd87/0x1510 [...]
To fix this issue we should validate the number of fields that the backlight and power reports have and if they do not have the required number of fields then bail.
--- drivers/hid/hid-apple.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/hid/hid-apple.c +2 -1
@@ -890,7 +890,8 @@ static int apple_magic_backlight_init(st backlight->brightness = report_enum->report_id_hash[APPLE_MAGIC_REPORT_ID_BRIGHTNESS ]; backlight->power = report_enum->report_id_hash[APPLE_MAGIC_REPORT_ID_POWER ]; -if (!backlight->brightness || !backlight->power) +if (!backlight->brightness || backlight->brightness->maxfield <2 || + !backlight->power || backlight->power->maxfield <2 )return -ENODEV ; backlight->cdev.name =":white:" LED_FUNCTION_KBD_BACKLIGHT ;
Greg Kroah-Hartman
maintainerPATCH 476/480 USB: gadget: f_hid: Fix memory leak in hidg_bind error path
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Yuhao Jiang <[email protected]>
commit 62783c30d78aecf9810dae46fd4d11420ad38b74 upstream.
In hidg_bind(), if alloc_workqueue() fails after usb_assign_descriptors() has successfully allocated the USB descriptors, the current error handling does not call usb_free_all_descriptors() to free the allocated descriptors, resulting in a memory leak.
Restructure the error handling by adding proper cleanup labels:
- fail_free_all: cleans up workqueue and descriptors
- fail_free_descs: cleans up descriptors only
- fail: original cleanup for earlier failures
This ensures that allocated resources are properly freed in reverse order of their allocation, preventing the memory leak when alloc_workqueue() fails.
--- drivers/usb/gadget/function/f_hid.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/usb/gadget/function/f_hid.c +4 -3
@@ -1275,18 +1275,19 @@ static int hidg_bind(struct usb_configurif (!hidg->workqueue) { status = -ENOMEM ; - goto fail; + goto fail_free_descs; }/* create char device */ cdev_init (&hidg->cdev, &f_hidg_fops); status =cdev_device_add (&hidg->cdev, &hidg->dev);if (status) - goto fail_free_descs; + goto fail_free_all;return 0 ; -fail_free_descs: +fail_free_all:destroy_workqueue (hidg->workqueue); +fail_free_descs:usb_free_all_descriptors (f); fail:ERROR (f->config->cdev,"hidg_bind FAILED\n" );
Greg Kroah-Hartman
maintainerPATCH 477/480 HID: core: Harden s32ton() against conversion to 0 bits
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alan Stern <[email protected]>
commit a6b87bfc2ab5bccb7ad953693c85d9062aef3fdd upstream.
Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity. Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.
Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.
--- drivers/hid/hid-core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/hid/hid-core.c +5 -1
@@ -66,8 +66,12 @@ static s32 snto32(__u32 value, unsignedstatic u32 s32ton (__s32 value,unsigned int n) { -s32 a = value >> (n -1 ); +s32 a; +if (!value || !n) +return 0 ; + + a = value >> (n -1 );if (a && a !=-1 )return value <0 ?1 << (n -1 ) : (1 << (n -1 )) -1 ;return value & ((1 << n) -1 );
Greg Kroah-Hartman
maintainerPATCH 478/480 HID: apple: avoid setting up battery timer for devices without battery
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Aditya Garg <[email protected]>
commit c061046fe9ce3ff31fb9a807144a2630ad349c17 upstream.
Currently, the battery timer is set up for all devices using hid-apple, irrespective of whether they actually have a battery or not.
APPLE_RDESC_BATTERY is a quirk that indicates the device has a battery and needs the battery timer. This patch checks for this quirk before setting up the timer, ensuring that only devices with a battery will have the timer set up.
--- drivers/hid/hid-apple.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
drivers/hid/hid-apple.c +11 -6
@@ -934,10 +934,12 @@ static int apple_probe(struct hid_devicereturn ret; } -timer_setup (&asc->battery_timer, apple_battery_timer_tick,0 ); -mod_timer (&asc->battery_timer, - jiffies +msecs_to_jiffies (APPLE_BATTERY_TIMEOUT_MS )); -apple_fetch_battery (hdev); +if (quirks &APPLE_RDESC_BATTERY ) { +timer_setup (&asc->battery_timer, apple_battery_timer_tick,0 ); +mod_timer (&asc->battery_timer, + jiffies +msecs_to_jiffies (APPLE_BATTERY_TIMEOUT_MS )); +apple_fetch_battery (hdev); + }if (quirks &APPLE_BACKLIGHT_CTL )apple_backlight_init (hdev);
@@ -951,7 +953,9 @@ static int apple_probe(struct hid_devicereturn 0 ; out_err: -timer_delete_sync (&asc->battery_timer); +if (quirks &APPLE_RDESC_BATTERY ) +timer_delete_sync (&asc->battery_timer); +hid_hw_stop (hdev);return ret; }
@@ -960,7 +964,8 @@ static void apple_remove(struct hid_devi {struct apple_sc *asc =hid_get_drvdata (hdev); -timer_delete_sync (&asc->battery_timer); +if (asc->quirks &APPLE_RDESC_BATTERY ) +timer_delete_sync (&asc->battery_timer);hid_hw_stop (hdev); }
Greg Kroah-Hartman
maintainerPATCH 479/480 usb: gadget : fix use-after-free in composite_dev_cleanup()
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tao Xue <[email protected]>
commit 151c0aa896c47a4459e07fee7d4843f44c1bb18e upstream.
1. In func configfs_composite_bind() -> composite_os_desc_req_prepare():
if kmalloc fails, the pointer cdev->os_desc_req will be freed but not set to NULL. Then it will return a failure to the upper-level function.
2. in func configfs_composite_bind() -> composite_dev_cleanup():
it will checks whether cdev->os_desc_req is NULL. If it is not NULL, it will attempt to use it.This will lead to a use-after-free issue.
BUG: KASAN: use-after-free in composite_dev_cleanup+0xf4/0x2c0 Read of size 8 at addr 0000004827837a00 by task init/1 CPU: 10 PID: 1 Comm: init Tainted: G O 5.10.97-oh #1 kasan_report+0x188/0x1cc __asan_load8+0xb4/0xbc composite_dev_cleanup+0xf4/0x2c0 configfs_composite_bind+0x210/0x7ac udc_bind_to_driver+0xb4/0x1ec usb_gadget_probe_driver+0xec/0x21c gadget_dev_desc_UDC_store+0x264/0x27c
--- drivers/usb/gadget/composite.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/usb/gadget/composite.c +5 -0
@@ -2489,6 +2489,11 @@ int composite_os_desc_req_prepare(structif (!cdev->os_desc_req->buf) { ret = -ENOMEM ;usb_ep_free_request (ep0, cdev->os_desc_req); +/* +* Set os_desc_req to NULL so that composite_dev_cleanup() +* will not try to free it again. +*/ + cdev->os_desc_req =NULL ; goto end; } cdev->os_desc_req->context = cdev;
Greg Kroah-Hartman
maintainerPATCH 480/480 mm: fix a UAF when vma->mm is freed after vma->vm_refcnt got dropped
In reply to Greg Kroah-Hartman6.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Suren Baghdasaryan <[email protected]>
commit 9bbffee67ffd16360179327b57f3b1245579ef08 upstream.
By inducing delays in the right places, Jann Horn created a reproducer for a hard to hit UAF issue that became possible after VMAs were allowed to be recycled by adding SLAB_TYPESAFE_BY_RCU to their cache.
Race description is borrowed from Jann's discovery report:lock_vma_under_rcu() looks up a VMA locklessly with mas_walk() under rcu_read_lock(). At that point, the VMA may be concurrently freed, and it can be recycled by another process. vma_start_read() then increments the vma->vm_refcnt (if it is in an acceptable range), and if this succeeds, vma_start_read() can return a recycled VMA.
In this scenario where the VMA has been recycled, lock_vma_under_rcu() will then detect the mismatching ->vm_mm pointer and drop the VMA through vma_end_read(), which calls vma_refcount_put(). vma_refcount_put() drops the refcount and then calls rcuwait_wake_up() using a copy of vma->vm_mm. This is wrong: It implicitly assumes that the caller is keeping the VMA's mm alive, but in this scenario the caller has no relation to the VMA's mm, so the rcuwait_wake_up() can cause UAF.
The diagram depicting the race:
T1 T2 T3 == == ==
lock_vma_under_rcu
mas_walk
<VMA gets removed from mm>
mmap
<the same VMA is reallocated>
vma_start_read
__refcount_inc_not_zero_limited_acquire
munmap
__vma_enter_locked
refcount_add_not_zero
vma_end_read
vma_refcount_put
__refcount_dec_and_test
rcuwait_wait_event
<finish operation>
rcuwait_wake_up [UAF]
Note that rcuwait_wait_event() in T3 does not block because refcount was already dropped by T1. At this point T3 can exit and free the mm causing UAF in T1.
To avoid this we move vma->vm_mm verification into vma_start_read() and grab vma->vm_mm to stabilize it before vma_refcount_put() operation.
--- include/linux/mm.h | 30 ++++++++++++++++++++++++++++++ mm/memory.c | 3 +-- 2 files changed, 31 insertions(+), 2 deletions(-)
include/linux/mm.h +30 -0
@@ -33,6 +33,7 @@#include <linux/slab.h> #include <linux/cacheinfo.h> #include <linux/rcuwait.h> +#include <linux/sched/mm.h> struct mempolicy ;struct anon_vma ;
@@ -716,6 +717,10 @@ static inline void vma_refcount_put(stru* reused and attached to a different mm before we lock it. * Returns the vma on success, NULL on failure to lock and EAGAIN if vma got * detached. +* +* WARNING! The vma passed to this function cannot be used if the function +* fails to lock it because in certain cases RCU lock is dropped and then +* reacquired. Once RCU lock is dropped the vma can be concurently freed. */ static inline struct vm_area_struct *vma_start_read (struct mm_struct *mm,struct vm_area_struct *vma)
@@ -745,6 +750,31 @@ static inline struct vm_area_struct *vma }rwsem_acquire_read (&vma->vmlock_dep_map,0 ,1 , _RET_IP_); + +/* +* If vma got attached to another mm from under us, that mm is not +* stable and can be freed in the narrow window after vma->vm_refcnt +* is dropped and before rcuwait_wake_up(mm) is called. Grab it before +* releasing vma->vm_refcnt. +*/ +if (unlikely (vma->vm_mm != mm)) { +/* Use a copy of vm_mm in case vma is freed after we drop vm_refcnt */ +struct mm_struct *other_mm = vma->vm_mm; + +/* +* __mmdrop() is a heavy operation and we don't need RCU +* protection here. Release RCU lock during these operations. +* We reinstate the RCU read lock as the caller expects it to +* be held when this function returns even on error. +*/ +rcu_read_unlock (); +mmgrab (other_mm); +vma_refcount_put (vma); +mmdrop (other_mm); +rcu_read_lock (); +return NULL ; + } +/* * Overflow of vm_lock_seq/mm_lock_seq might produce false locked result. * False unlocked result is impossible because we modify and check
mm/memory.c +1 -2
@@ -6554,8 +6554,7 @@ retry:*/ /* Check if the vma we locked is the right one. */ -if (unlikely (vma->vm_mm != mm || - address < vma->vm_start || address >= vma->vm_end)) +if (unlikely (address < vma->vm_start || address >= vma->vm_end)) goto inval_end_read;rcu_read_unlock ();
# Librecast Test Results
010/010 [ OK ] libmld
120/120 [ OK ] liblibrecast
CPU/kernel: Linux auntie 6.15.10-rc1-g2510f67e2e34 #40 SMP PREEMPT_DYNAMIC Tue Aug 12 19:15:00 -00 2025 x86_64 AMD Ryzen 9 9950X 16-Core Processor AuthenticAMD GNU/Linux
Hi!
Quoted 7 lines
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
CIP testing did not find any problems here:
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-6.15.y
6.6 passes our testing, too:
https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/tree/linux-6.6.y
Best regards,
Pavel
Signature · 2 lines
In cooperation with DENX Software Engineering GmbH, HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Thanks, build-tested on all Alpine architectures and boot-tested on x86_64.
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on BMIPS_GENERIC:
Signature · 1 line
Florian
Am 12.08.2025 um 19:43 schrieb Greg Kroah-Hartman:
Quoted 4 lines
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Builds, boots and works on my 2-socket Ivy Bridge Xeon E5-2697 v2 server. Built with GCC 14.2 on Debian Trixie. No dmesg oddities or regressions found. I did not see any of the Python warning messages here which I did see in the 6.1.148-rc1 build.
Beste Grüße,
Peter Schneider
Signature · 8 lines
Climb the mountain not to plant your flag, but to embrace the challenge, enjoy the air and behold the view. Climb it so you can see the world, not so the world can see you. -- David McCullough Jr. OpenPGP: 0xA3828BD796CCE11A8CADE8866E3A92C92C3FF244 Download: https://www.peters-netzplatz.de/download/pschneider1968_pub.asc https://keys.mailvelope.com/pks/lookup?op=get&[email protected] https://keys.mailvelope.com/pks/lookup?op=get&[email protected]
Quoted 4 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Jon Hunter
maintainerQuoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail
28 boots: 28 pass, 0 fail
120 tests: 119 pass, 1 failLinux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000,
tegra194-p3509-0000+p3668-0000, tegra20-ventana,
tegra210-p2371-2180, tegra210-p3450-0000,
tegra30-cardhu-a04Test failures: tegra194-p2972-0000: boot.py
Jon
Jon Hunter
maintainerFrom: Jon Hunter <[email protected]>
Date: Wed, 13 Aug 2025 18:18:01 +0100
Subject: Re: [PATCH 6.15 000/480] 6.15.10-rc1 review
X-NVConfidentiality: public
Quoted 26 lines · Jon Hunter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail 28 boots: 28 pass, 0 fail 120 tests: 119 pass, 1 fail
Quoted 8 lines
Linux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04Test failures: tegra194-p2972-0000:
boot.py
I am seeing the following kernel warning for both linux-6.15.y and linux-6.16.y …
WARNING KERN sched: DL replenish lagged too much
I believe that this is introduced by …
Peter Zijlstra <[email protected]> sched/deadline: Less agressive dl_server handling
This has been reported here: https://lore.kernel.org/all/CAMuHMdXn4z1pioTtBGMfQM0jsLviqS2jwysaWXpoLxWYoGa82w@mail.gmail.com/
Jon
Quoted 38 lines · Jon Hunter
Quoted 25 lines · Jon Hunter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail 28 boots: 28 pass, 0 fail 120 tests: 119 pass, 1 failQuoted 8 lines
Linux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04Test failures: tegra194-p2972-0000:
boot.pyI am seeing the following kernel warning for both linux-6.15.y and linux-6.16.y …
WARNING KERN sched: DL replenish lagged too much
Quoted 8 lines
I believe that this is introduced by …
Peter Zijlstra <[email protected]>
sched/deadline: Less agressivedl_serverhandlingThis has been reported here: https://lore.kernel.org/all/CAMuHMdXn4z1pioTtBGMfQM0jsLviqS2jwysaWXpoLxWYoGa82w@mail.gmail.com/
Jon
Seeing this kernel warning on RISC-V also.
Greg KH
maintainerRe:
In reply to Jon HunterQuoted 38 lines · Jon Hunter
Quoted 26 lines · Jon Hunter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail 28 boots: 28 pass, 0 fail 120 tests: 119 pass, 1 failQuoted 8 lines
Linux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04Test failures: tegra194-p2972-0000:
boot.pyI am seeing the following kernel warning for both linux-6.15.y and linux-6.16.y …
Quoted 8 lines
WARNING KERN sched: DL replenish lagged too much
I believe that this is introduced by …
Peter Zijlstra <[email protected]> sched/deadline: Less agressive
dl_serverhandlingThis has been reported here: https://lore.kernel.org/all/CAMuHMdXn4z1pioTtBGMfQM0jsLviqS2jwysaWXpoLxWYoGa82w@mail.gmail.com/
I've now dropped this.
Is that causing the test failure for you?
thanks,
greg k-h
Jon Hunter
maintainerRe:
Quoted 43 lines · Greg KH
Quoted 42 lines · Jon Hunter
Quoted 26 lines · Jon Hunter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail 28 boots: 28 pass, 0 fail 120 tests: 119 pass, 1 failQuoted 8 lines
Linux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04Test failures: tegra194-p2972-0000:
boot.pyI am seeing the following kernel warning for both linux-6.15.y and linux-6.16.y …
WARNING KERN sched: DL replenish lagged too much
I believe that this is introduced by …
Quoted 8 lines
Quoted 4 lines
Peter Zijlstra <[email protected]>
sched/deadline: Less agressivedl_serverhandlingThis has been reported here: https://lore.kernel.org/all/CAMuHMdXn4z1pioTtBGMfQM0jsLviqS2jwysaWXpoLxWYoGa82w@mail.gmail.com/
I've now dropped this.
Is that causing the test failure for you?
Yes that is causing the test failure. Thanks!
Jon
Signature · 1 line
nvpublic
Greg KH
maintainerRe:
Quoted 47 lines · Jon Hunter
Quoted 46 lines · Greg KH
Quoted 45 lines · Jon Hunter
Quoted 26 lines · Jon Hunter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Failures detected for Tegra ...
Test results for stable-v6.15:
10 builds: 10 pass, 0 fail 28 boots: 28 pass, 0 fail 120 tests: 119 pass, 1 failQuoted 8 lines
Linux version: 6.15.10-rc1-g2510f67e2e34
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,tegra186-p3509-0000+p3636-0001, tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04Test failures: tegra194-p2972-0000:
boot.pyI am seeing the following kernel warning for both linux-6.15.y and linux-6.16.y …
WARNING KERN sched: DL replenish lagged too much
I believe that this is introduced by …
Peter Zijlstra <[email protected]>
sched/deadline: Less agressivedl_serverhandling
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
This has been reported here: https://lore.kernel.org/all/CAMuHMdXn4z1pioTtBGMfQM0jsLviqS2jwysaWXpoLxWYoGa82w@mail.gmail.com/
I've now dropped this.
Is that causing the test failure for you?
Yes that is causing the test failure. Thanks!
Is the test just noticing the warning message? Or is it a functional failure? Does it also fail on Linus's tree?
thanks,
greg k-h
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Tested rc1 against the Fedora build system (aarch64, ppc64le, s390x, x86_64), and boot tested x86_64. No regressions noted.
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Built and booted successfully on RISC-V RV64 (HiFive Unmatched).
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.15.10-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-6.15.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
## Build
* kernel: 6.15.10-rc1
* git: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
* git commit: 2510f67e2e346f399c76101231d19be2bc0844da
* git describe: v6.15.9-481-g2510f67e2e34
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-6.15.y/build/v6.15.9-481-g2510f67e2e34
## Test Regressions (compared to v6.15.8-93-gd9420fe2ce8c)
## Metric Regressions (compared to v6.15.8-93-gd9420fe2ce8c)
## Test Fixes (compared to v6.15.8-93-gd9420fe2ce8c)
## Metric Fixes (compared to v6.15.8-93-gd9420fe2ce8c)
## Test result summary
total: 328235, pass: 307085, fail: 6419, skip: 14731, xfail: 0
## Build Summary
* arc: 5 total, 5 passed, 0 failed
* arm: 139 total, 138 passed, 1 failed
* arm64: 57 total, 56 passed, 1 failed
* i386: 18 total, 18 passed, 0 failed
* mips: 34 total, 27 passed, 7 failed
* parisc: 4 total, 4 passed, 0 failed
* powerpc: 40 total, 39 passed, 1 failed
* riscv: 25 total, 24 passed, 1 failed
* s390: 22 total, 22 passed, 0 failed
* sh: 5 total, 5 passed, 0 failed
* sparc: 4 total, 3 passed, 1 failed
* x86_64: 49 total, 48 passed, 1 failed
## Test suites summary
* boot
* commands
* kselftest-arm64
* kselftest-breakpoints
* kselftest-capabilities
* kselftest-cgroup
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-cpufreq
* kselftest-efivarfs
* kselftest-exec
* kselftest-fpu
* kselftest-ftrace
* kselftest-futex
* kselftest-gpio
* kselftest-intel_pstate
* kselftest-ipc
* kselftest-kcmp
* kselftest-kvm
* kselftest-livepatch
* kselftest-membarrier
* kselftest-memfd
* kselftest-mincore
* kselftest-mm
* kselftest-mqueue
* kselftest-net
* kselftest-net-mptcp
* kselftest-openat2
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-rust
* kselftest-seccomp
* kselftest-sigaltstack
* kselftest-size
* kselftest-tc-testing
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user_events
* kselftest-vDSO
* kselftest-x86
* kunit
* kvm-unit-tests
* lava
* libgpiod
* libhugetlbfs
* log-parser-boot
* log-parser-build-clang
* log-parser-build-gcc
* log-parser-test
* ltp-capability
* ltp-commands
* ltp-containers
* ltp-controllers
* ltp-cpuhotplug
* ltp-crypto
* ltp-cve
* ltp-dio
* ltp-fcntl-locktests
* ltp-fs
* ltp-fs_bind
* ltp-fs_perms_simple
* ltp-hugetlb
* ltp-math
* ltp-mm
* ltp-nptl
* ltp-pty
* ltp-sched
* ltp-smoke
* ltp-syscalls
* ltp-tracing
* modules
* perf
* rcutorture
* rt-tests-cyclicdeadline
* rt-tests-pi-stress
* rt-tests-pmqtest
* rt-tests-rt-migrate-test
* rt-tests-signaltest
--
Linaro LKFT
https://lkft.linaro.org
Quoted 8 lines · On Tue, 12 Aug 2025 19:43:28 +0200 Greg Kroah-Hartman…
This is the start of the stable review cycle for the 6.15.10 release. There are 480 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 14 Aug 2025 17:42:20 +0000. Anything received after that time might be too late.
Boot-tested under QEMU for Rust x86_64, arm64 and riscv64; built-tested for loongarch64:
Thanks!
Cheers,
Miguel