📄 patch-2.4.34-pre3
字号:
diff --git a/Makefile b/Makefileindex fd6884d..d2a02a1 100644--- a/Makefile+++ b/Makefile@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4-SUBLEVEL = 33-EXTRAVERSION =+SUBLEVEL = 34+EXTRAVERSION = -pre3 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) @@ -93,11 +93,17 @@ CPPFLAGS := -D__KERNEL__ -I$(HPATH) CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ -fno-strict-aliasing -fno-common+CFLAGS += -fno-builtin-sprintf ifndef CONFIG_FRAME_POINTER CFLAGS += -fomit-frame-pointer endif AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS) +check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)++# disable pointer signedness warnings in gcc 4.0+CFLAGS += $(call check_gcc,-Wno-pointer-sign,)+ # # ROOT_DEV specifies the default root-device when making the image. # This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which casediff --git a/arch/i386/Makefile b/arch/i386/Makefileindex c8e2978..8f93efd 100644--- a/arch/i386/Makefile+++ b/arch/i386/Makefile@@ -23,8 +23,6 @@ LINKFLAGS =-T $(TOPDIR)/arch/i386/vmlinu CFLAGS += -pipe -check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)- # prevent gcc from keeping the stack 16 byte aligned CFLAGS += $(call check_gcc,-mpreferred-stack-boundary=2,) diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.Sindex 8d7e5ef..a3144f0 100644--- a/arch/i386/kernel/head.S+++ b/arch/i386/kernel/head.S@@ -325,27 +325,21 @@ ENTRY(stack_start) /* This is the default interrupt "handler" :-) */ int_msg:- .asciz "Unknown interrupt\n"+ .asciz "Unknown interrupt, stack: %p %p %p %p\n" ALIGN ignore_int: cld- pushl %eax- pushl %ecx- pushl %edx- pushl %es- pushl %ds movl $(__KERNEL_DS),%eax movl %eax,%ds movl %eax,%es+ pushl 12(%esp)+ pushl 12(%esp)+ pushl 12(%esp)+ pushl 12(%esp) pushl $int_msg call SYMBOL_NAME(printk)- popl %eax- popl %ds- popl %es- popl %edx- popl %ecx- popl %eax- iret+1: hlt+ jmp 1b /* * The interrupt descriptor table has room for 256 idt's,diff --git a/arch/mips/Makefile b/arch/mips/Makefileindex 60a064a..30508a9 100644--- a/arch/mips/Makefile+++ b/arch/mips/Makefile@@ -30,8 +30,6 @@ endif MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot -check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)- # # # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kerneldiff --git a/arch/mips64/Makefile b/arch/mips64/Makefileindex 2f4e998..8937bff 100644--- a/arch/mips64/Makefile+++ b/arch/mips64/Makefile@@ -26,7 +26,6 @@ ifdef CONFIG_CROSSCOMPILE CROSS_COMPILE = $(tool-prefix) endif -check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) check_gas = $(shell if $(CC) $(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) #diff --git a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.Sindex 34125f6..340a66a 100644--- a/arch/ppc/kernel/head.S+++ b/arch/ppc/kernel/head.S@@ -1705,6 +1705,8 @@ ppc970_setup_hid: mfspr r0,SPRN_HID0 li r11,5 /* clear DOZE and SLEEP */ rldimi r0,r11,52,8 /* and set NAP and DPM */+ li r11,0+ rldimi r0,r11,32,31 /* clear EN_ATTN */ mtspr SPRN_HID0,r0 mfspr r0,SPRN_HID0 mfspr r0,SPRN_HID0diff --git a/arch/ppc/kernel/open_pic_defs.h b/arch/ppc/kernel/open_pic_defs.hindex 4c2289d..43051d0 100644--- a/arch/ppc/kernel/open_pic_defs.h+++ b/arch/ppc/kernel/open_pic_defs.h@@ -172,9 +172,6 @@ struct OpenPIC { OpenPIC_Processor Processor[OPENPIC_MAX_PROCESSORS]; }; -extern volatile struct OpenPIC *OpenPIC;-- /* * Current Task Priority Register */diff --git a/arch/sparc/kernel/signal.c b/arch/sparc/kernel/signal.cindex fe9f6c0..28c9245 100644--- a/arch/sparc/kernel/signal.c+++ b/arch/sparc/kernel/signal.c@@ -1336,7 +1336,7 @@ do_sys_sigstack(struct sigstack *ssptr, if (ssptr) { void *ss_sp; - if (get_user((long)ss_sp, &ssptr->the_stack))+ if (get_user(ss_sp, &ssptr->the_stack)) goto out; /* If the current stack was set with sigaltstack, don't swap stacks while we are on it. */diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.cindex 1c08204..f5058fe 100644--- a/arch/sparc/kernel/sparc_ksyms.c+++ b/arch/sparc/kernel/sparc_ksyms.c@@ -297,6 +297,7 @@ EXPORT_SYMBOL_NOVERS(memcmp); EXPORT_SYMBOL_NOVERS(memcpy); EXPORT_SYMBOL_NOVERS(memset); EXPORT_SYMBOL_NOVERS(memmove);+EXPORT_SYMBOL_NOVERS(memchr); EXPORT_SYMBOL_NOVERS(__ashrdi3); EXPORT_SYMBOL_NOVERS(__ashldi3); EXPORT_SYMBOL_NOVERS(__lshrdi3);diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.cindex 0f1f31f..40accab 100644--- a/arch/sparc64/kernel/sparc64_ksyms.c+++ b/arch/sparc64/kernel/sparc64_ksyms.c@@ -359,6 +359,7 @@ EXPORT_SYMBOL_NOVERS(__ret_efault); /* No version information on these, as gcc produces such symbols. */ EXPORT_SYMBOL_NOVERS(memcmp); EXPORT_SYMBOL_NOVERS(memcpy);+EXPORT_SYMBOL_NOVERS(memchr); EXPORT_SYMBOL_NOVERS(memset); EXPORT_SYMBOL_NOVERS(memmove); diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.cindex 9ea5957..5a4d297 100644--- a/arch/sparc64/mm/init.c+++ b/arch/sparc64/mm/init.c@@ -95,7 +95,7 @@ #ifndef CONFIG_SMP if (page2) page2->next_hash = page->next_hash; else- (struct page *)pgd_quicklist = page->next_hash;+ pgd_quicklist = (unsigned long *)page->next_hash; page->next_hash = NULL; page->pprev_hash = NULL; pgd_cache_size -= 2;diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefileindex 32467e9..7fa4cb7 100644--- a/arch/x86_64/Makefile+++ b/arch/x86_64/Makefile@@ -38,8 +38,6 @@ OBJCOPY=$(CROSS_COMPILE)objcopy -O binar LDFLAGS=-e stext LINKFLAGS =-T $(TOPDIR)/arch/x86_64/vmlinux.lds $(LDFLAGS) -check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then echo "$(1)"; else echo "$(2)"; fi)- CFLAGS += -mno-red-zone CFLAGS += -mcmodel=kernel CFLAGS += -pipediff --git a/arch/x86_64/boot/compressed/Makefile b/arch/x86_64/boot/compressed/Makefileindex 0832d02..ad748e6 100644--- a/arch/x86_64/boot/compressed/Makefile+++ b/arch/x86_64/boot/compressed/Makefile@@ -28,7 +28,7 @@ head.o: head.S $(IA32_AS) -c head.S misc.o: misc.c- $(IA32_CC) $(IA32_CFLAGS) -c misc.c+ $(IA32_CC) $(IA32_CFLAGS) -fno-strict-aliasing -c misc.c piggy.o: $(SYSTEM) tmppiggy=_tmp_$$$$piggy; \diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.Sindex a172a62..b599234 100644--- a/arch/x86_64/ia32/ia32entry.S+++ b/arch/x86_64/ia32/ia32entry.S@@ -113,9 +113,18 @@ quiet_ni_syscall: PTREGSCALL stub32_fork, sys32_fork PTREGSCALL stub32_clone, sys32_clone PTREGSCALL stub32_vfork, sys32_vfork- PTREGSCALL stub32_iopl, sys_iopl PTREGSCALL stub32_rt_sigsuspend, sys_rt_sigsuspend + .macro PTREGSCALL3 label, func, arg+ .globl \label+\label:+ leaq \func(%rip),%rax+ leaq -ARGOFFSET+8(%rsp),\arg /* 8 for return address */+ jmp ia32_ptregs_common + .endm++ PTREGSCALL3 stub32_iopl, sys_iopl, %rsi+ ENTRY(ia32_ptregs_common) popq %r11 SAVE_RESTdiff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.Sindex 00ba6fa..ab4a7db 100644--- a/arch/x86_64/kernel/entry.S+++ b/arch/x86_64/kernel/entry.S@@ -249,7 +249,16 @@ intret_signal_test: PTREGSCALL stub_vfork, sys_vfork PTREGSCALL stub_rt_sigsuspend, sys_rt_sigsuspend PTREGSCALL stub_sigaltstack, sys_sigaltstack- PTREGSCALL stub_iopl, sys_iopl++ .macro PTREGSCALL3 label,func,arg+ .globl \label+\label:+ leaq \func(%rip),%rax+ leaq -ARGOFFSET+8(%rsp),\arg /* 8 for return address */+ jmp ptregscall_common+ .endm++ PTREGSCALL3 stub_iopl, sys_iopl, %rsi ENTRY(ptregscall_common) popq %r11diff --git a/arch/x86_64/kernel/ioport.c b/arch/x86_64/kernel/ioport.cindex 2f44868..d96d85b 100644--- a/arch/x86_64/kernel/ioport.c+++ b/arch/x86_64/kernel/ioport.c@@ -81,9 +81,9 @@ asmlinkage long sys_ioperm(unsigned long * code. */ -asmlinkage long sys_iopl(unsigned int level, struct pt_regs regs)+asmlinkage long sys_iopl(unsigned int level, struct pt_regs *regs) {- unsigned int old = (regs.eflags >> 12) & 3;+ unsigned int old = (regs->eflags >> 12) & 3; if (level > 3) return -EINVAL;@@ -92,6 +92,6 @@ asmlinkage long sys_iopl(unsigned int le if (!capable(CAP_SYS_RAWIO)) return -EPERM; }- regs.eflags = (regs.eflags & 0xffffffffffffcfff) | (level << 12);+ regs->eflags = (regs->eflags &~ 0x3000UL) | (level << 12); return 0; }diff --git a/crypto/cipher.c b/crypto/cipher.cindex 6ab56eb..9b03eda 100644--- a/crypto/cipher.c+++ b/crypto/cipher.c@@ -147,6 +147,15 @@ static int ecb_encrypt(struct crypto_tfm ecb_process, 1, NULL); } +static int ecb_encrypt_iv(struct crypto_tfm *tfm,+ struct scatterlist *dst,+ struct scatterlist *src,+ unsigned int nbytes, u8 *iv)+{+ ecb_encrypt(tfm, dst, src, nbytes);+ return -ENOSYS;+}+ static int ecb_decrypt(struct crypto_tfm *tfm, struct scatterlist *dst, struct scatterlist *src,@@ -157,6 +166,15 @@ static int ecb_decrypt(struct crypto_tfm ecb_process, 1, NULL); } +static int ecb_decrypt_iv(struct crypto_tfm *tfm,+ struct scatterlist *dst,+ struct scatterlist *src,+ unsigned int nbytes, u8 *iv)+{+ ecb_decrypt(tfm, dst, src, nbytes);+ return -ENOSYS;+}+ static int cbc_encrypt(struct crypto_tfm *tfm, struct scatterlist *dst, struct scatterlist *src,@@ -197,11 +215,20 @@ static int cbc_decrypt_iv(struct crypto_ cbc_process, 0, iv); } +/*+ * nocrypt*() zeroize the destination buffer to make sure we don't leak+ * uninitialized memory contents if the caller ignores the return value.+ * This is bad since the data in the source buffer is unused and may be+ * lost, but an infoleak would be even worse. The performance cost of+ * memset() is irrelevant since a well-behaved caller would not bump into+ * the error repeatedly.+ */ static int nocrypt(struct crypto_tfm *tfm, struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes) {+ memset(dst, 0, nbytes); return -ENOSYS; } @@ -210,6 +237,7 @@ static int nocrypt_iv(struct crypto_tfm struct scatterlist *src, unsigned int nbytes, u8 *iv) {+ memset(dst, 0, nbytes); return -ENOSYS; } @@ -235,6 +263,11 @@ int crypto_init_cipher_ops(struct crypto case CRYPTO_TFM_MODE_ECB: ops->cit_encrypt = ecb_encrypt; ops->cit_decrypt = ecb_decrypt;+/* These should have been nocrypt_iv, but patch-cryptoloop-jari-2.4.22.0+ * (and its other revisions) directly calls the *_iv() functions even in+ * ECB mode and ignores their return value. */+ ops->cit_encrypt_iv = ecb_encrypt_iv;+ ops->cit_decrypt_iv = ecb_decrypt_iv; break; case CRYPTO_TFM_MODE_CBC:diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.cindex 21fa974..20c3ad5 100644--- a/drivers/acpi/bus.c+++ b/drivers/acpi/bus.c@@ -623,7 +623,7 @@ acpi_bus_generate_event ( int data) { struct acpi_bus_event *event = NULL;- u32 flags = 0;+ unsigned long flags = 0; ACPI_FUNCTION_TRACE("acpi_bus_generate_event"); @@ -656,7 +656,7 @@ int acpi_bus_receive_event ( struct acpi_bus_event *event) {- u32 flags = 0;+ unsigned long flags = 0; struct acpi_bus_event *entry = NULL; DECLARE_WAITQUEUE(wait, current);diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.cindex ea6ac5e..51199da 100644--- a/drivers/atm/fore200e.c+++ b/drivers/atm/fore200e.c@@ -112,8 +112,8 @@ #define ASSERT(expr) do {} while (0) #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -