mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
parisc architecture fixes and updates for kernel v6.14-rc1:
- Temporarily disable jump label support to avoid kernel crash with 32-bit kernel - Add vdso linker script to 'targets' instead of extra-y - Remove parisc versions of memcpy_toio and memset_io -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZ5JIxwAKCRD3ErUQojoP X8pXAQDwG9lwJDcaMyz5M6HCD1qTnshJYVNBPE7MIdKPO/feMAD8CwzPXNag7ZSo yeNTizQGQUAF13YkCQiqKLp4IaOFtQE= =tsvV -----END PGP SIGNATURE----- Merge tag 'parisc-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc architecture updates from Helge Deller: - Temporarily disable jump label support to avoid kernel crash with 32-bit kernel - Add vdso linker script to 'targets' instead of extra-y - Remove parisc versions of memcpy_toio and memset_io * tag 'parisc-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Temporarily disable jump label support parisc: add vdso linker script to 'targets' instead of extra-y parisc: Remove memcpy_toio and memset_io
This commit is contained in:
commit
47d65738b9
|
|
@ -60,8 +60,8 @@ config PARISC
|
|||
select HAVE_ARCH_MMAP_RND_BITS
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_HASH
|
||||
select HAVE_ARCH_JUMP_LABEL
|
||||
select HAVE_ARCH_JUMP_LABEL_RELATIVE
|
||||
# select HAVE_ARCH_JUMP_LABEL
|
||||
# select HAVE_ARCH_JUMP_LABEL_RELATIVE
|
||||
select HAVE_ARCH_KFENCE
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
|
|
|
|||
|
|
@ -135,12 +135,8 @@ static inline void gsc_writeq(unsigned long long val, unsigned long addr)
|
|||
|
||||
#define pci_iounmap pci_iounmap
|
||||
|
||||
void memset_io(volatile void __iomem *addr, unsigned char val, int count);
|
||||
void memcpy_fromio(void *dst, const volatile void __iomem *src, int count);
|
||||
void memcpy_toio(volatile void __iomem *dst, const void *src, int count);
|
||||
#define memset_io memset_io
|
||||
#define memcpy_fromio memcpy_fromio
|
||||
#define memcpy_toio memcpy_toio
|
||||
|
||||
/* Port-space IO */
|
||||
|
||||
|
|
|
|||
|
|
@ -43,9 +43,7 @@ EXPORT_SYMBOL($global$);
|
|||
#endif
|
||||
|
||||
#include <asm/io.h>
|
||||
EXPORT_SYMBOL(memcpy_toio);
|
||||
EXPORT_SYMBOL(memcpy_fromio);
|
||||
EXPORT_SYMBOL(memset_io);
|
||||
|
||||
extern void $$divI(void);
|
||||
extern void $$divU(void);
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ KBUILD_CFLAGS += -DBUILD_VDSO -DDISABLE_BRANCH_PROFILING
|
|||
VDSO_LIBGCC := $(shell $(CROSS32CC) -print-libgcc-file-name)
|
||||
|
||||
obj-y += vdso32_wrapper.o
|
||||
extra-y += vdso32.lds
|
||||
targets += vdso32.lds
|
||||
CPPFLAGS_vdso32.lds += -P -C # -U$(ARCH)
|
||||
|
||||
$(obj)/vdso32_wrapper.o : $(obj)/vdso32.so FORCE
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ KBUILD_CFLAGS += -DBUILD_VDSO -DDISABLE_BRANCH_PROFILING
|
|||
VDSO_LIBGCC := $(shell $(CC) -print-libgcc-file-name)
|
||||
|
||||
obj-y += vdso64_wrapper.o
|
||||
extra-y += vdso64.lds
|
||||
targets += vdso64.lds
|
||||
CPPFLAGS_vdso64.lds += -P -C -U$(ARCH)
|
||||
|
||||
$(obj)/vdso64_wrapper.o : $(obj)/vdso64.so FORCE
|
||||
|
|
|
|||
|
|
@ -12,32 +12,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/* Copies a block of memory to a device in an efficient manner.
|
||||
* Assumes the device can cope with 32-bit transfers. If it can't,
|
||||
* don't use this function.
|
||||
*/
|
||||
void memcpy_toio(volatile void __iomem *dst, const void *src, int count)
|
||||
{
|
||||
if (((unsigned long)dst & 3) != ((unsigned long)src & 3))
|
||||
goto bytecopy;
|
||||
while ((unsigned long)dst & 3) {
|
||||
writeb(*(char *)src, dst++);
|
||||
src++;
|
||||
count--;
|
||||
}
|
||||
while (count > 3) {
|
||||
__raw_writel(*(u32 *)src, dst);
|
||||
src += 4;
|
||||
dst += 4;
|
||||
count -= 4;
|
||||
}
|
||||
bytecopy:
|
||||
while (count--) {
|
||||
writeb(*(char *)src, dst++);
|
||||
src++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
** Copies a block of memory from a device in an efficient manner.
|
||||
** Assumes the device can cope with 32-bit transfers. If it can't,
|
||||
|
|
@ -99,27 +73,6 @@ void memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
|
|||
}
|
||||
}
|
||||
|
||||
/* Sets a block of memory on a device to a given value.
|
||||
* Assumes the device can cope with 32-bit transfers. If it can't,
|
||||
* don't use this function.
|
||||
*/
|
||||
void memset_io(volatile void __iomem *addr, unsigned char val, int count)
|
||||
{
|
||||
u32 val32 = (val << 24) | (val << 16) | (val << 8) | val;
|
||||
while ((unsigned long)addr & 3) {
|
||||
writeb(val, addr++);
|
||||
count--;
|
||||
}
|
||||
while (count > 3) {
|
||||
__raw_writel(val32, addr);
|
||||
addr += 4;
|
||||
count -= 4;
|
||||
}
|
||||
while (count--) {
|
||||
writeb(val, addr++);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Read COUNT 8-bit bytes from port PORT into memory starting at
|
||||
* SRC.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user