Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'irq_urgent_for_v6.7_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fix from Borislav Petkov:

- Flush the translation service tables to prevent unpredictable
behavior on non-coherent GIC devices

* tag 'irq_urgent_for_v6.7_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/gic-v3-its: Flush ITS tables correctly in non-coherent GIC designs

+10 -6
+10 -6
drivers/irqchip/irq-gic-v3-its.c
··· 2379 2379 break; 2380 2380 } 2381 2381 2382 + if (!shr) 2383 + gic_flush_dcache_to_poc(base, PAGE_ORDER_TO_SIZE(order)); 2384 + 2382 2385 its_write_baser(its, baser, val); 2383 2386 tmp = baser->val; 2384 - 2385 - if (its->flags & ITS_FLAGS_FORCE_NON_SHAREABLE) 2386 - tmp &= ~GITS_BASER_SHAREABILITY_MASK; 2387 2387 2388 2388 if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) { 2389 2389 /* ··· 2394 2394 * non-cacheable as well. 2395 2395 */ 2396 2396 shr = tmp & GITS_BASER_SHAREABILITY_MASK; 2397 - if (!shr) { 2397 + if (!shr) 2398 2398 cache = GITS_BASER_nC; 2399 - gic_flush_dcache_to_poc(base, PAGE_ORDER_TO_SIZE(order)); 2400 - } 2399 + 2401 2400 goto retry_baser; 2402 2401 } 2403 2402 ··· 2607 2608 if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_22375) 2608 2609 /* erratum 24313: ignore memory access type */ 2609 2610 cache = GITS_BASER_nCnB; 2611 + 2612 + if (its->flags & ITS_FLAGS_FORCE_NON_SHAREABLE) { 2613 + cache = GITS_BASER_nC; 2614 + shr = 0; 2615 + } 2610 2616 2611 2617 for (i = 0; i < GITS_BASER_NR_REGS; i++) { 2612 2618 struct its_baser *baser = its->tables + i;