parisc architecture fixes & updates for kernel v5.19-rc4:
Three important fixes: - enable ARCH_HAS_STRICT_MODULE_RWX to prevent a boot crash on c8000 machines - flush all mappings of a shared anonymous page on PA8800/8900 machines via flushing the whole data cache. This may slow down such machines but makes sure that the cache is consistent - Fix duplicate definition build error regarding fb_is_primary_device() -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCYrht4AAKCRD3ErUQojoP Xz02AQCATPX+1w1GiAVO+d61X1XaehPaDQnZnpwPYK5N06GLEQEA/HT1PVD1mvyv secS+8PDsSHLMPfE3WD7hYKwiK73igM= =glnu -----END PGP SIGNATURE----- Merge tag 'for-5.19/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc architecture fixes from Helge Deller: - enable ARCH_HAS_STRICT_MODULE_RWX to prevent a boot crash on c8000 machines - flush all mappings of a shared anonymous page on PA8800/8900 machines via flushing the whole data cache. This may slow down such machines but makes sure that the cache is consistent - Fix duplicate definition build error regarding fb_is_primary_device() * tag 'for-5.19/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Enable ARCH_HAS_STRICT_MODULE_RWX parisc: Fix flush_anon_page on PA8800/PA8900 parisc: align '*' in comment in math-emu code parisc/stifb: Fix fb_is_primary_device() only available with CONFIG_FB_STI
This commit is contained in:
Коммит
c0c6a7bd4c
|
@ -10,6 +10,7 @@ config PARISC
|
|||
select ARCH_WANT_FRAME_POINTERS
|
||||
select ARCH_HAS_ELF_RANDOMIZE
|
||||
select ARCH_HAS_STRICT_KERNEL_RWX
|
||||
select ARCH_HAS_STRICT_MODULE_RWX
|
||||
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
||||
select ARCH_HAS_PTE_SPECIAL
|
||||
select ARCH_NO_SG_CHAIN
|
||||
|
|
|
@ -12,7 +12,7 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
|
|||
pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_STI_CONSOLE) || defined(CONFIG_FB_STI)
|
||||
#if defined(CONFIG_FB_STI)
|
||||
int fb_is_primary_device(struct fb_info *info);
|
||||
#else
|
||||
static inline int fb_is_primary_device(struct fb_info *info)
|
||||
|
|
|
@ -722,7 +722,10 @@ void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned lon
|
|||
return;
|
||||
|
||||
if (parisc_requires_coherency()) {
|
||||
flush_user_cache_page(vma, vmaddr);
|
||||
if (vma->vm_flags & VM_SHARED)
|
||||
flush_data_cache();
|
||||
else
|
||||
flush_user_cache_page(vma, vmaddr);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ decode_fpu(unsigned int Fpu_register[], unsigned int trap_counts[])
|
|||
* that happen. Want to keep this overhead low, but still provide
|
||||
* some information to the customer. All exits from this routine
|
||||
* need to restore Fpu_register[0]
|
||||
*/
|
||||
*/
|
||||
|
||||
bflags=(Fpu_register[0] & 0xf8000000);
|
||||
Fpu_register[0] &= 0x07ffffff;
|
||||
|
|
|
@ -1148,6 +1148,7 @@ int sti_call(const struct sti_struct *sti, unsigned long func,
|
|||
return ret;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_FB_STI)
|
||||
/* check if given fb_info is the primary device */
|
||||
int fb_is_primary_device(struct fb_info *info)
|
||||
{
|
||||
|
@ -1163,6 +1164,7 @@ int fb_is_primary_device(struct fb_info *info)
|
|||
return (sti->info == info);
|
||||
}
|
||||
EXPORT_SYMBOL(fb_is_primary_device);
|
||||
#endif
|
||||
|
||||
MODULE_AUTHOR("Philipp Rumpf, Helge Deller, Thomas Bogendoerfer");
|
||||
MODULE_DESCRIPTION("Core STI driver for HP's NGLE series graphics cards in HP PARISC machines");
|
||||
|
|
Загрузка…
Ссылка в новой задаче