Skip to content

Commit d43e49d

Browse files
committed
Merge tag 'v6.6.118' into 6.6-main
This is the 6.6.118 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmktcQYACgkQONu9yGCS # aT5coxAArGFaUPMEEEmm3TXsW3o7UdyDvpBFsrhHL8+W/sFFbik1kInyL8ULogFM # nGGg0k8mnYoNt9ZqQsODUbl5SFRlLMnCW3R/smnuaAm9AG7T41UzINea2O4dpP11 # oEBlMinxdUf5pe14sOSzpde2YeBJo65Nq3qRzC1QPuiL0pgBp3Ogw9kk6C/jeioQ # vaXftfc1baTBqVLffwfrJI3wo0rGBIy2ApB/IE+x3IKwyoEQ5hr4DEurpWob/30w # WIHihkQFNZaC4iZ25ou8C164xIH5HfpCBW35IlZHOosY1padkUhRA0wvlxxthq99 # m1LqWg82TIDAD98QW4j9bkCf60t0A94soN+HFcxfulXp88WNQIAhli8t41Ss6FxI # j/I2alURhZiyoaHstmtS4HHXBDjhecvX91NkF+pzBIiOM3s4YNfv7Jv7609Al8i8 # zoSDh2Nfa03Og0bXWuCfTrom9CKLlA2H/zKxRhLcMGU91yHIPsSYKPIDysaTnfxx # EbrltP/iba5vrwU29SPfmEaq1UIqPfrLxk/5cGxOKQE/k8vohtFyma+1cSwbr4A/ # Xd2ePmoycvxZGe+ylkfWBhxzHwcktDK/xePIVAvKBUzLkL73PLdur6z6bFPiKsLD # 9pKEYZGQMPVvW6UlDBRXOe688gvm9I8A5NPuFz07SypMu33P0Ms= # =89J+ # -----END PGP SIGNATURE----- # gpg: Signature made Mon Dec 1 11:42:14 2025 CET # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents c6f3bff + 4791134 commit d43e49d

87 files changed

Lines changed: 650 additions & 406 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/devicetree/bindings/pinctrl/toshiba,visconti-pinctrl.yaml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,20 @@ patternProperties:
5050
groups:
5151
description:
5252
Name of the pin group to use for the functions.
53-
$ref: /schemas/types.yaml#/definitions/string
54-
enum: [i2c0_grp, i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp,
55-
i2c5_grp, i2c6_grp, i2c7_grp, i2c8_grp,
56-
spi0_grp, spi0_cs0_grp, spi0_cs1_grp, spi0_cs2_grp,
57-
spi1_grp, spi2_grp, spi3_grp, spi4_grp, spi5_grp, spi6_grp,
58-
uart0_grp, uart1_grp, uart2_grp, uart3_grp,
59-
pwm0_gpio4_grp, pwm0_gpio8_grp, pwm0_gpio12_grp,
60-
pwm0_gpio16_grp, pwm1_gpio5_grp, pwm1_gpio9_grp,
61-
pwm1_gpio13_grp, pwm1_gpio17_grp, pwm2_gpio6_grp,
62-
pwm2_gpio10_grp, pwm2_gpio14_grp, pwm2_gpio18_grp,
63-
pwm3_gpio7_grp, pwm3_gpio11_grp, pwm3_gpio15_grp,
64-
pwm3_gpio19_grp, pcmif_out_grp, pcmif_in_grp]
53+
items:
54+
enum: [i2c0_grp, i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp,
55+
i2c5_grp, i2c6_grp, i2c7_grp, i2c8_grp,
56+
spi0_grp, spi0_cs0_grp, spi0_cs1_grp, spi0_cs2_grp,
57+
spi1_grp, spi2_grp, spi3_grp, spi4_grp, spi5_grp, spi6_grp,
58+
uart0_grp, uart1_grp, uart2_grp, uart3_grp,
59+
pwm0_gpio4_grp, pwm0_gpio8_grp, pwm0_gpio12_grp,
60+
pwm0_gpio16_grp, pwm1_gpio5_grp, pwm1_gpio9_grp,
61+
pwm1_gpio13_grp, pwm1_gpio17_grp, pwm2_gpio6_grp,
62+
pwm2_gpio10_grp, pwm2_gpio14_grp, pwm2_gpio18_grp,
63+
pwm3_gpio7_grp, pwm3_gpio11_grp, pwm3_gpio15_grp,
64+
pwm3_gpio19_grp, pcmif_out_grp, pcmif_in_grp]
65+
minItems: 1
66+
maxItems: 8
6567

6668
drive-strength:
6769
enum: [2, 4, 6, 8, 16, 24, 32]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 6
4-
SUBLEVEL = 117
4+
SUBLEVEL = 118
55
EXTRAVERSION =
66
NAME = Pinguïn Aangedreven
77

arch/arm64/kvm/hyp/nvhe/ffa.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ static void __do_ffa_mem_xfer(const u64 func_id,
425425
DECLARE_REG(u32, npages_mbz, ctxt, 4);
426426
struct ffa_composite_mem_region *reg;
427427
struct ffa_mem_region *buf;
428-
u32 offset, nr_ranges;
428+
u32 offset, nr_ranges, checked_offset;
429429
int ret = 0;
430430

431431
if (addr_mbz || npages_mbz || fraglen > len ||
@@ -460,7 +460,12 @@ static void __do_ffa_mem_xfer(const u64 func_id,
460460
goto out_unlock;
461461
}
462462

463-
if (fraglen < offset + sizeof(struct ffa_composite_mem_region)) {
463+
if (check_add_overflow(offset, sizeof(struct ffa_composite_mem_region), &checked_offset)) {
464+
ret = FFA_RET_INVALID_PARAMETERS;
465+
goto out_unlock;
466+
}
467+
468+
if (fraglen < checked_offset) {
464469
ret = FFA_RET_INVALID_PARAMETERS;
465470
goto out_unlock;
466471
}

arch/loongarch/include/uapi/asm/ptrace.h

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@
1010

1111
#include <linux/types.h>
1212

13-
#ifndef __KERNEL__
14-
#include <stdint.h>
15-
#endif
16-
1713
/*
1814
* For PTRACE_{POKE,PEEK}USR. 0 - 31 are GPRs,
1915
* 32 is syscall's original ARG0, 33 is PC, 34 is BADVADDR.
@@ -41,44 +37,44 @@ struct user_pt_regs {
4137
} __attribute__((aligned(8)));
4238

4339
struct user_fp_state {
44-
uint64_t fpr[32];
45-
uint64_t fcc;
46-
uint32_t fcsr;
40+
__u64 fpr[32];
41+
__u64 fcc;
42+
__u32 fcsr;
4743
};
4844

4945
struct user_lsx_state {
5046
/* 32 registers, 128 bits width per register. */
51-
uint64_t vregs[32*2];
47+
__u64 vregs[32*2];
5248
};
5349

5450
struct user_lasx_state {
5551
/* 32 registers, 256 bits width per register. */
56-
uint64_t vregs[32*4];
52+
__u64 vregs[32*4];
5753
};
5854

5955
struct user_lbt_state {
60-
uint64_t scr[4];
61-
uint32_t eflags;
62-
uint32_t ftop;
56+
__u64 scr[4];
57+
__u32 eflags;
58+
__u32 ftop;
6359
};
6460

6561
struct user_watch_state {
66-
uint64_t dbg_info;
62+
__u64 dbg_info;
6763
struct {
68-
uint64_t addr;
69-
uint64_t mask;
70-
uint32_t ctrl;
71-
uint32_t pad;
64+
__u64 addr;
65+
__u64 mask;
66+
__u32 ctrl;
67+
__u32 pad;
7268
} dbg_regs[8];
7369
};
7470

7571
struct user_watch_state_v2 {
76-
uint64_t dbg_info;
72+
__u64 dbg_info;
7773
struct {
78-
uint64_t addr;
79-
uint64_t mask;
80-
uint32_t ctrl;
81-
uint32_t pad;
74+
__u64 addr;
75+
__u64 mask;
76+
__u32 ctrl;
77+
__u32 pad;
8278
} dbg_regs[14];
8379
};
8480

arch/loongarch/pci/pci.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ static int __init pcibios_init(void)
5151
*/
5252
lsize = cpu_last_level_cache_line_size();
5353

54-
BUG_ON(!lsize);
54+
if (lsize) {
55+
pci_dfl_cache_line_size = lsize >> 2;
5556

56-
pci_dfl_cache_line_size = lsize >> 2;
57-
58-
pr_debug("PCI: pci_cache_line_size set to %d bytes\n", lsize);
57+
pr_debug("PCI: pci_cache_line_size set to %d bytes\n", lsize);
58+
}
5959

6060
return 0;
6161
}

arch/mips/mti-malta/malta-init.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,16 +241,22 @@ void __init prom_init(void)
241241
#endif
242242

243243
/*
244-
* Setup the Malta max (2GB) memory for PCI DMA in host bridge
245-
* in transparent addressing mode.
244+
* Set up memory mapping in host bridge for PCI DMA masters,
245+
* in transparent addressing mode. For EVA use the Malta
246+
* maximum of 2 GiB memory in the alias space at 0x80000000
247+
* as per PHYS_OFFSET. Otherwise use 256 MiB of memory in
248+
* the regular space, avoiding mapping the PCI MMIO window
249+
* for DMA as it seems to confuse the system controller's
250+
* logic, causing PCI MMIO to stop working.
246251
*/
247-
mask = PHYS_OFFSET | PCI_BASE_ADDRESS_MEM_PREFETCH;
248-
MSC_WRITE(MSC01_PCI_BAR0, mask);
249-
MSC_WRITE(MSC01_PCI_HEAD4, mask);
252+
mask = PHYS_OFFSET ? PHYS_OFFSET : 0xf0000000;
253+
MSC_WRITE(MSC01_PCI_BAR0,
254+
mask | PCI_BASE_ADDRESS_MEM_PREFETCH);
255+
MSC_WRITE(MSC01_PCI_HEAD4,
256+
PHYS_OFFSET | PCI_BASE_ADDRESS_MEM_PREFETCH);
250257

251-
mask &= MSC01_PCI_BAR0_SIZE_MSK;
252258
MSC_WRITE(MSC01_PCI_P2SCMSKL, mask);
253-
MSC_WRITE(MSC01_PCI_P2SCMAPL, mask);
259+
MSC_WRITE(MSC01_PCI_P2SCMAPL, PHYS_OFFSET);
254260

255261
/* Don't handle target retries indefinitely. */
256262
if ((data & MSC01_PCI_CFG_MAXRTRY_MSK) ==

arch/s390/include/asm/pgtable.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,17 +1065,15 @@ static inline pte_t pte_mkhuge(pte_t pte)
10651065
#define IPTE_NODAT 0x400
10661066
#define IPTE_GUEST_ASCE 0x800
10671067

1068-
static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep,
1069-
unsigned long opt, unsigned long asce,
1070-
int local)
1068+
static __always_inline void __ptep_rdp(unsigned long addr, pte_t *ptep, int local)
10711069
{
10721070
unsigned long pto;
10731071

10741072
pto = __pa(ptep) & ~(PTRS_PER_PTE * sizeof(pte_t) - 1);
1075-
asm volatile(".insn rrf,0xb98b0000,%[r1],%[r2],%[asce],%[m4]"
1073+
asm volatile(".insn rrf,0xb98b0000,%[r1],%[r2],%%r0,%[m4]"
10761074
: "+m" (*ptep)
1077-
: [r1] "a" (pto), [r2] "a" ((addr & PAGE_MASK) | opt),
1078-
[asce] "a" (asce), [m4] "i" (local));
1075+
: [r1] "a" (pto), [r2] "a" (addr & PAGE_MASK),
1076+
[m4] "i" (local));
10791077
}
10801078

10811079
static __always_inline void __ptep_ipte(unsigned long address, pte_t *ptep,
@@ -1259,7 +1257,7 @@ static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma,
12591257
* A local RDP can be used to do the flush.
12601258
*/
12611259
if (MACHINE_HAS_RDP && !(pte_val(*ptep) & _PAGE_PROTECT))
1262-
__ptep_rdp(address, ptep, 0, 0, 1);
1260+
__ptep_rdp(address, ptep, 1);
12631261
}
12641262
#define flush_tlb_fix_spurious_fault flush_tlb_fix_spurious_fault
12651263

arch/s390/mm/pgtable.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ void ptep_reset_dat_prot(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
312312
preempt_disable();
313313
atomic_inc(&mm->context.flush_count);
314314
if (cpumask_equal(mm_cpumask(mm), cpumask_of(smp_processor_id())))
315-
__ptep_rdp(addr, ptep, 0, 0, 1);
315+
__ptep_rdp(addr, ptep, 1);
316316
else
317-
__ptep_rdp(addr, ptep, 0, 0, 0);
317+
__ptep_rdp(addr, ptep, 0);
318318
/*
319319
* PTE is not invalidated by RDP, only _PAGE_PROTECT is cleared. That
320320
* means it is still valid and active, and must not be changed according

arch/x86/kernel/cpu/microcode/amd.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,14 +226,32 @@ static bool need_sha_check(u32 cur_rev)
226226
return true;
227227
}
228228

229+
static bool cpu_has_entrysign(void)
230+
{
231+
unsigned int fam = x86_family(bsp_cpuid_1_eax);
232+
unsigned int model = x86_model(bsp_cpuid_1_eax);
233+
234+
if (fam == 0x17 || fam == 0x19)
235+
return true;
236+
237+
if (fam == 0x1a) {
238+
if (model <= 0x2f ||
239+
(0x40 <= model && model <= 0x4f) ||
240+
(0x60 <= model && model <= 0x6f))
241+
return true;
242+
}
243+
244+
return false;
245+
}
246+
229247
static bool verify_sha256_digest(u32 patch_id, u32 cur_rev, const u8 *data, unsigned int len)
230248
{
231249
struct patch_digest *pd = NULL;
232250
u8 digest[SHA256_DIGEST_SIZE];
233251
struct sha256_state s;
234252
int i;
235253

236-
if (x86_family(bsp_cpuid_1_eax) < 0x17)
254+
if (!cpu_has_entrysign())
237255
return true;
238256

239257
if (!need_sha_check(cur_rev))

drivers/ata/libata-scsi.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,13 @@ static void ata_gen_ata_sense(struct ata_queued_cmd *qc)
992992
return;
993993
}
994994

995+
if (ata_id_is_locked(dev->id)) {
996+
/* Security locked */
997+
/* LOGICAL UNIT ACCESS NOT AUTHORIZED */
998+
ata_scsi_set_sense(dev, cmd, DATA_PROTECT, 0x74, 0x71);
999+
return;
1000+
}
1001+
9951002
if (!(qc->flags & ATA_QCFLAG_RTF_FILLED)) {
9961003
ata_dev_dbg(dev,
9971004
"Missing result TF: reporting aborted command\n");
@@ -4831,8 +4838,10 @@ void ata_scsi_dev_rescan(struct work_struct *work)
48314838
spin_unlock_irqrestore(ap->lock, flags);
48324839
if (do_resume) {
48334840
ret = scsi_resume_device(sdev);
4834-
if (ret == -EWOULDBLOCK)
4841+
if (ret == -EWOULDBLOCK) {
4842+
scsi_device_put(sdev);
48354843
goto unlock_scan;
4844+
}
48364845
dev->flags &= ~ATA_DFLAG_RESUMING;
48374846
}
48384847
ret = scsi_rescan_device(sdev);

0 commit comments

Comments
 (0)