From d12d87cbf7f9eef0723fdd9e156a705e2614ae8a Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Tue, 7 Feb 2012 14:25:03 -0800 Subject: [PATCH 001/542] Enable CONFIG_OPENVSWITCH as part of Fedora supporting Open vSwitch as a more modern way to provide hypervisor based layer 2/3 switching for VMs. http://fedoraproject.org/wiki/Features/Open_vSwitch --- config-generic | 2 +- kernel.spec | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config-generic b/config-generic index 108a9a9f4..6cfc1c4a2 100644 --- a/config-generic +++ b/config-generic @@ -1057,7 +1057,7 @@ CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_DCB=y -# CONFIG_OPENVSWITCH is not set +CONFIG_OPENVSWITCH=m CONFIG_NETPRIO_CGROUP=m diff --git a/kernel.spec b/kernel.spec index bad93251f..e5a8004dc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2312,6 +2312,9 @@ fi # ||----w | # || || %changelog +* Tue Feb 07 2012 Chris Wright +- Enable Open vSwitch + * Tue Feb 07 2012 Justin M. Forbes - Add virtio-scsi support From d916a9f0bf1229961eda4c38bf40c929eaf0d4d6 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 7 Feb 2012 18:56:42 -0500 Subject: [PATCH 002/542] Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) --- ...truct-x86_emulate_ops-with-get_cpuid.patch | 78 ---------- ...-missing-checks-in-syscall-emulation.patch | 144 ------------------ kernel.spec | 15 +- sources | 2 +- 4 files changed, 6 insertions(+), 233 deletions(-) delete mode 100644 KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch delete mode 100644 KVM-x86-fix-missing-checks-in-syscall-emulation.patch diff --git a/KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch b/KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch deleted file mode 100644 index f9dbaa014..000000000 --- a/KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 0769c5de24621141c953fbe1f943582d37cb4244 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= -Date: Thu, 12 Jan 2012 16:43:03 +0100 -Subject: [PATCH 1/2] KVM: x86: extend "struct x86_emulate_ops" with - "get_cpuid" - -In order to be able to proceed checks on CPU-specific properties -within the emulator, function "get_cpuid" is introduced. -With "get_cpuid" it is possible to virtually call the guests -"cpuid"-opcode without changing the VM's context. - -[mtosatti: cleanup/beautify code] - -Signed-off-by: Stephan Baerwolf -Signed-off-by: Marcelo Tosatti ---- - arch/x86/include/asm/kvm_emulate.h | 3 +++ - arch/x86/kvm/x86.c | 23 +++++++++++++++++++++++ - 2 files changed, 26 insertions(+), 0 deletions(-) - -diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h -index ab4092e..c8b2868 100644 ---- a/arch/x86/include/asm/kvm_emulate.h -+++ b/arch/x86/include/asm/kvm_emulate.h -@@ -190,6 +190,9 @@ struct x86_emulate_ops { - int (*intercept)(struct x86_emulate_ctxt *ctxt, - struct x86_instruction_info *info, - enum x86_intercept_stage stage); -+ -+ bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt, -+ u32 *eax, u32 *ebx, u32 *ecx, u32 *edx); - }; - - typedef u32 __attribute__((vector_size(16))) sse128_t; -diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index f0fa3fb..c95ca2d 100644 ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -4205,6 +4205,28 @@ static int emulator_intercept(struct x86_emulate_ctxt *ctxt, - return kvm_x86_ops->check_intercept(emul_to_vcpu(ctxt), info, stage); - } - -+static bool emulator_get_cpuid(struct x86_emulate_ctxt *ctxt, -+ u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) -+{ -+ struct kvm_cpuid_entry2 *cpuid = NULL; -+ -+ if (eax && ecx) -+ cpuid = kvm_find_cpuid_entry(emul_to_vcpu(ctxt), -+ *eax, *ecx); -+ -+ if (cpuid) { -+ *eax = cpuid->eax; -+ *ecx = cpuid->ecx; -+ if (ebx) -+ *ebx = cpuid->ebx; -+ if (edx) -+ *edx = cpuid->edx; -+ return true; -+ } -+ -+ return false; -+} -+ - static struct x86_emulate_ops emulate_ops = { - .read_std = kvm_read_guest_virt_system, - .write_std = kvm_write_guest_virt_system, -@@ -4236,6 +4258,7 @@ static struct x86_emulate_ops emulate_ops = { - .get_fpu = emulator_get_fpu, - .put_fpu = emulator_put_fpu, - .intercept = emulator_intercept, -+ .get_cpuid = emulator_get_cpuid, - }; - - static void cache_all_regs(struct kvm_vcpu *vcpu) --- -1.7.7.5 - diff --git a/KVM-x86-fix-missing-checks-in-syscall-emulation.patch b/KVM-x86-fix-missing-checks-in-syscall-emulation.patch deleted file mode 100644 index 933a13431..000000000 --- a/KVM-x86-fix-missing-checks-in-syscall-emulation.patch +++ /dev/null @@ -1,144 +0,0 @@ -From e28ba7bb020f07193bc000453c8775e9d2c0dda7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= -Date: Thu, 12 Jan 2012 16:43:04 +0100 -Subject: [PATCH 2/2] KVM: x86: fix missing checks in syscall emulation - -On hosts without this patch, 32bit guests will crash (and 64bit guests -may behave in a wrong way) for example by simply executing following -nasm-demo-application: - - [bits 32] - global _start - SECTION .text - _start: syscall - -(I tested it with winxp and linux - both always crashed) - - Disassembly of section .text: - - 00000000 <_start>: - 0: 0f 05 syscall - -The reason seems a missing "invalid opcode"-trap (int6) for the -syscall opcode "0f05", which is not available on Intel CPUs -within non-longmodes, as also on some AMD CPUs within legacy-mode. -(depending on CPU vendor, MSR_EFER and cpuid) - -Because previous mentioned OSs may not engage corresponding -syscall target-registers (STAR, LSTAR, CSTAR), they remain -NULL and (non trapping) syscalls are leading to multiple -faults and finally crashs. - -Depending on the architecture (AMD or Intel) pretended by -guests, various checks according to vendor's documentation -are implemented to overcome the current issue and behave -like the CPUs physical counterparts. - -[mtosatti: cleanup/beautify code] - -Signed-off-by: Stephan Baerwolf -Signed-off-by: Marcelo Tosatti ---- - arch/x86/include/asm/kvm_emulate.h | 13 +++++++++ - arch/x86/kvm/emulate.c | 51 ++++++++++++++++++++++++++++++++++++ - 2 files changed, 64 insertions(+), 0 deletions(-) - -diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h -index c8b2868..7b9cfc4 100644 ---- a/arch/x86/include/asm/kvm_emulate.h -+++ b/arch/x86/include/asm/kvm_emulate.h -@@ -301,6 +301,19 @@ struct x86_emulate_ctxt { - #define X86EMUL_MODE_PROT (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \ - X86EMUL_MODE_PROT64) - -+/* CPUID vendors */ -+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541 -+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163 -+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_edx 0x69746e65 -+ -+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx 0x69444d41 -+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx 0x21726574 -+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_edx 0x74656273 -+ -+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ebx 0x756e6547 -+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ecx 0x6c65746e -+#define X86EMUL_CPUID_VENDOR_GenuineIntel_edx 0x49656e69 -+ - enum x86_intercept_stage { - X86_ICTP_NONE = 0, /* Allow zero-init to not match anything */ - X86_ICPT_PRE_EXCEPT, -diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c -index 05a562b..0982507 100644 ---- a/arch/x86/kvm/emulate.c -+++ b/arch/x86/kvm/emulate.c -@@ -1891,6 +1891,51 @@ setup_syscalls_segments(struct x86_emulate_ctxt *ctxt, - ss->p = 1; - } - -+static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt) -+{ -+ struct x86_emulate_ops *ops = ctxt->ops; -+ u32 eax, ebx, ecx, edx; -+ -+ /* -+ * syscall should always be enabled in longmode - so only become -+ * vendor specific (cpuid) if other modes are active... -+ */ -+ if (ctxt->mode == X86EMUL_MODE_PROT64) -+ return true; -+ -+ eax = 0x00000000; -+ ecx = 0x00000000; -+ if (ops->get_cpuid(ctxt, &eax, &ebx, &ecx, &edx)) { -+ /* -+ * Intel ("GenuineIntel") -+ * remark: Intel CPUs only support "syscall" in 64bit -+ * longmode. Also an 64bit guest with a -+ * 32bit compat-app running will #UD !! While this -+ * behaviour can be fixed (by emulating) into AMD -+ * response - CPUs of AMD can't behave like Intel. -+ */ -+ if (ebx == X86EMUL_CPUID_VENDOR_GenuineIntel_ebx && -+ ecx == X86EMUL_CPUID_VENDOR_GenuineIntel_ecx && -+ edx == X86EMUL_CPUID_VENDOR_GenuineIntel_edx) -+ return false; -+ -+ /* AMD ("AuthenticAMD") */ -+ if (ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx && -+ ecx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx && -+ edx == X86EMUL_CPUID_VENDOR_AuthenticAMD_edx) -+ return true; -+ -+ /* AMD ("AMDisbetter!") */ -+ if (ebx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx && -+ ecx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx && -+ edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx) -+ return true; -+ } -+ -+ /* default: (not Intel, not AMD), apply Intel's stricter rules... */ -+ return false; -+} -+ - static int em_syscall(struct x86_emulate_ctxt *ctxt) - { - struct x86_emulate_ops *ops = ctxt->ops; -@@ -1904,9 +1949,15 @@ static int em_syscall(struct x86_emulate_ctxt *ctxt) - ctxt->mode == X86EMUL_MODE_VM86) - return emulate_ud(ctxt); - -+ if (!(em_syscall_is_enabled(ctxt))) -+ return emulate_ud(ctxt); -+ - ops->get_msr(ctxt, MSR_EFER, &efer); - setup_syscalls_segments(ctxt, &cs, &ss); - -+ if (!(efer & EFER_SCE)) -+ return emulate_ud(ctxt); -+ - ops->get_msr(ctxt, MSR_STAR, &msr_data); - msr_data >>= 32; - cs_sel = (u16)(msr_data & 0xfffc); --- -1.7.7.5 - diff --git a/kernel.spec b/kernel.spec index e5a8004dc..d45b5bd85 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 2 # The git snapshot level -%define gitrev 5 +%define gitrev 6 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -734,10 +734,6 @@ Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch Patch21070: ext4-Support-check-none-nocheck-mount-options.patch -#rhbz 773392 -Patch21073: KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch -Patch21074: KVM-x86-fix-missing-checks-in-syscall-emulation.patch - Patch21092: udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch Patch21093: rt2x00_fix_MCU_request_failures.patch @@ -1428,10 +1424,6 @@ ApplyPatch utrace.patch ApplyPatch ext4-Support-check-none-nocheck-mount-options.patch -#rhbz 773392 -ApplyPatch KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch -ApplyPatch KVM-x86-fix-missing-checks-in-syscall-emulation.patch - ApplyPatch udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch #rhbz 772772 @@ -2312,6 +2304,9 @@ fi # ||----w | # || || %changelog +* Tue Feb 07 2012 Josh Boyer +- Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) + * Tue Feb 07 2012 Chris Wright - Enable Open vSwitch diff --git a/sources b/sources index 3523c657f..7af6a001c 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 465f9cf994d5c94b15ba167fae8e60fb patch-3.3-rc2.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -6923fa025f1718e31c4977ed6f9f9814 patch-3.3-rc2-git5.xz +e46c1647e3a598bfb05066a7c8475586 patch-3.3-rc2-git6.xz From 92a0ba45a88fe2fec8ffa6e42f3435e07374df85 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 7 Feb 2012 19:00:03 -0500 Subject: [PATCH 003/542] Drop scary cow We're branched now, so scary cow has done his job for F17. --- kernel.spec | 9 --------- 1 file changed, 9 deletions(-) diff --git a/kernel.spec b/kernel.spec index d45b5bd85..baa9c571f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2294,15 +2294,6 @@ fi # plz don't put in a version string unless you're going to tag # and build. -# ___________________________________________________________ -# / This branch is for Fedora 17. You probably want to commit \ -# \ to the F-16 branch instead, or in addition to this one. / -# ----------------------------------------------------------- -# \ ^__^ -# \ (@@)\_______ -# (__)\ )\/\ -# ||----w | -# || || %changelog * Tue Feb 07 2012 Josh Boyer - Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) From 5fbbd7cdcd2a4026bd9053d6f922c62b084578f1 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 7 Feb 2012 19:04:48 -0500 Subject: [PATCH 004/542] ... and replace him with Beefy Miracle Props to Ian Weller http://git.fedorahosted.org/git/?p=beefymiracle.git --- kernel.spec | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kernel.spec b/kernel.spec index baa9c571f..33d3d680e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2294,6 +2294,25 @@ fi # plz don't put in a version string unless you're going to tag # and build. +# +# .---. __ +# , / \ \ |||| +# \\\\ |O___O | | \\|||| +# \ // | \_/ | | \ / +# '--/----/| / | |-' +# // // / -----' +# // \\ / / +# // // / / +# // \\ / / +# // // / / +# /| ' / / +# //\___/ / +# // ||\ / +# \\_ || '---' +# /' / \\_.- +# / / --| | +# '-' | | +# '-' %changelog * Tue Feb 07 2012 Josh Boyer - Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) From 7dc73bb9a614ebc8fd77092598500c202abe0f4b Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 8 Feb 2012 08:37:23 -0500 Subject: [PATCH 005/542] CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can lead to DoS (rhbz 788260) --- ...nd-BH_Unwritten-in-journal_unmap_buf.patch | 91 +++++++++++++++++++ kernel.spec | 12 ++- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch diff --git a/jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch b/jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch new file mode 100644 index 000000000..5ea8ccc10 --- /dev/null +++ b/jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch @@ -0,0 +1,91 @@ +Path: news.gmane.org!not-for-mail +From: Eric Sandeen +Newsgroups: gmane.comp.file-systems.ext4 +Subject: [PATCH] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer +Date: Tue, 07 Feb 2012 16:07:20 -0600 +Lines: 42 +Approved: news@gmane.org +Message-ID: <4F31A098.4050601@redhat.com> +NNTP-Posting-Host: plane.gmane.org +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 7bit +X-Trace: dough.gmane.org 1328656072 12026 80.91.229.3 (7 Feb 2012 23:07:52 GMT) +X-Complaints-To: usenet@dough.gmane.org +NNTP-Posting-Date: Tue, 7 Feb 2012 23:07:52 +0000 (UTC) +To: ext4 development +Original-X-From: linux-ext4-owner@vger.kernel.org Wed Feb 08 00:07:52 2012 +Return-path: +Envelope-to: gcfe-linux-ext4@plane.gmane.org +Original-Received: from vger.kernel.org ([209.132.180.67]) + by plane.gmane.org with esmtp (Exim 4.69) + (envelope-from ) + id 1Ruu8d-0000lK-5P + for gcfe-linux-ext4@plane.gmane.org; Wed, 08 Feb 2012 00:07:51 +0100 +Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1756187Ab2BGXHt (ORCPT ); + Tue, 7 Feb 2012 18:07:49 -0500 +Original-Received: from mx1.redhat.com ([209.132.183.28]:19432 "EHLO mx1.redhat.com" + rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP + id S1753992Ab2BGXHs (ORCPT ); + Tue, 7 Feb 2012 18:07:48 -0500 +Original-Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) + by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q17N7dj0027622 + (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) + for ; Tue, 7 Feb 2012 18:07:48 -0500 +Original-Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) + by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q17M7Kgt001990 + (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) + for ; Tue, 7 Feb 2012 17:07:21 -0500 +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0) Gecko/20120129 Thunderbird/10.0 +X-Enigmail-Version: 1.3.5 +X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 +Original-Sender: linux-ext4-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-ext4@vger.kernel.org +Xref: news.gmane.org gmane.comp.file-systems.ext4:30623 +Archived-At: + +journal_unmap_buffer()'s zap_buffer: code clears a lot of buffer head +state ala discard_buffer(), but does not touch _Delay or _Unwritten +as discard_buffer() does. + +This can be problematic in some areas of the ext4 code which assume +that if they have found a buffer marked unwritten or delay, then it's +a live one. Perhaps those spots should check whether it is mapped +as well, but if jbd2 is going to tear down a buffer, let's really +tear it down completely. + +Without this I get some fsx failures on sub-page-block filesystems +up until v3.2, at which point 4e96b2dbbf1d7e81f22047a50f862555a6cb87cb +and 189e868fa8fdca702eb9db9d8afc46b5cb9144c9 make the failures go +away, because buried within that large change is some more flag +clearing. I still think it's worth doing in jbd2, since +->invalidatepage leads here directly, and it's the right place +to clear away these flags. + +Signed-off-by: Eric Sandeen +Cc: stable@vger.kernel.org +--- + +diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c +index 35ae096..52653306 100644 +--- a/fs/jbd2/transaction.c ++++ b/fs/jbd2/transaction.c +@@ -1949,6 +1949,8 @@ zap_buffer_unlocked: + clear_buffer_mapped(bh); + clear_buffer_req(bh); + clear_buffer_new(bh); ++ clear_buffer_delay(bh); ++ clear_buffer_unwritten(bh); + bh->b_bdev = NULL; + return may_free; + } + + +-- +To unsubscribe from this list: send the line "unsubscribe linux-ext4" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html + diff --git a/kernel.spec b/kernel.spec index 33d3d680e..31b05afab 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -743,6 +743,9 @@ Patch21094: power-x86-destdir.patch Patch21095: hfsplus-Change-finder_info-to-u32.patch Patch21096: hfsplus-Add-an-ioctl-to-bless-files.patch +#rhbz 788260 +Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1434,6 +1437,9 @@ ApplyPatch power-x86-destdir.patch ApplyPatch hfsplus-Change-finder_info-to-u32.patch ApplyPatch hfsplus-Add-an-ioctl-to-bless-files.patch +#rhbz 788269 +ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch + # END OF PATCH APPLICATIONS %endif @@ -2314,6 +2320,10 @@ fi # '-' | | # '-' %changelog +* Wed Feb 08 2012 Josh Boyer +- CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can + lead to DoS (rhbz 788260) + * Tue Feb 07 2012 Josh Boyer - Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) From 36def90773274ffbdc3be89ba0f32d45ed49d5ee Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 8 Feb 2012 08:48:02 -0500 Subject: [PATCH 006/542] Add new upstream NFS id mapping patches from Steve Dickson --- kernel.spec | 7 ++ linux-3.3-newidmapper-01.patch | 217 +++++++++++++++++++++++++++++++++ linux-3.3-newidmapper-02.patch | 97 +++++++++++++++ linux-3.3-newidmapper-03.patch | 40 ++++++ 4 files changed, 361 insertions(+) create mode 100644 linux-3.3-newidmapper-01.patch create mode 100644 linux-3.3-newidmapper-02.patch create mode 100644 linux-3.3-newidmapper-03.patch diff --git a/kernel.spec b/kernel.spec index 31b05afab..9641135bf 100644 --- a/kernel.spec +++ b/kernel.spec @@ -718,6 +718,9 @@ Patch2901: linux-2.6-v4l-dvb-experimental.patch # NFSv4 Patch1101: linux-3.1-keys-remove-special-keyring.patch +Patch1102: linux-3.3-newidmapper-01.patch +Patch1103: linux-3.3-newidmapper-02.patch +Patch1104: linux-3.3-newidmapper-03.patch # patches headed upstream Patch12016: disable-i8042-check-on-apple-mac.patch @@ -1327,6 +1330,9 @@ ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch # NFSv4 ApplyPatch linux-3.1-keys-remove-special-keyring.patch +ApplyPatch linux-3.3-newidmapper-01.patch +ApplyPatch linux-3.3-newidmapper-02.patch +ApplyPatch linux-3.3-newidmapper-03.patch # USB @@ -2323,6 +2329,7 @@ fi * Wed Feb 08 2012 Josh Boyer - CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can lead to DoS (rhbz 788260) +- Add new upstream NFS id mapping patches from Steve Dickson * Tue Feb 07 2012 Josh Boyer - Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) diff --git a/linux-3.3-newidmapper-01.patch b/linux-3.3-newidmapper-01.patch new file mode 100644 index 000000000..9afbb93fe --- /dev/null +++ b/linux-3.3-newidmapper-01.patch @@ -0,0 +1,217 @@ +commit e6499c6f4b5f56a16f8b8ef60529c1da28b13aea +Author: Bryan Schumaker +Date: Thu Jan 26 16:54:23 2012 -0500 + + NFS: Fall back on old idmapper if request_key() fails + + This patch removes the CONFIG_NFS_USE_NEW_IDMAPPER compile option. + First, the idmapper will attempt to map the id using /sbin/request-key + and nfsidmap. If this fails (if /etc/request-key.conf is not configured + properly) then the idmapper will call the legacy code to perform the + mapping. I left a comment stating where the legacy code begins to make + it easier for somebody to remove in the future. + + Signed-off-by: Bryan Schumaker + Signed-off-by: Trond Myklebust + +diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c +--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-01-27 10:07:07.209851446 -0500 ++++ linux-3.2.noarch/fs/nfs/idmap.c 2012-01-27 10:15:42.914563082 -0500 +@@ -142,8 +142,6 @@ static int nfs_map_numeric_to_string(__u + return snprintf(buf, buflen, "%u", id); + } + +-#ifdef CONFIG_NFS_USE_NEW_IDMAPPER +- + #include + #include + #include +@@ -328,43 +326,7 @@ static int nfs_idmap_lookup_id(const cha + return ret; + } + +-int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid) +-{ +- if (nfs_map_string_to_numeric(name, namelen, uid)) +- return 0; +- return nfs_idmap_lookup_id(name, namelen, "uid", uid); +-} +- +-int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *gid) +-{ +- if (nfs_map_string_to_numeric(name, namelen, gid)) +- return 0; +- return nfs_idmap_lookup_id(name, namelen, "gid", gid); +-} +- +-int nfs_map_uid_to_name(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen) +-{ +- int ret = -EINVAL; +- +- if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) +- ret = nfs_idmap_lookup_name(uid, "user", buf, buflen); +- if (ret < 0) +- ret = nfs_map_numeric_to_string(uid, buf, buflen); +- return ret; +-} +-int nfs_map_gid_to_group(const struct nfs_server *server, __u32 gid, char *buf, size_t buflen) +-{ +- int ret = -EINVAL; +- +- if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) +- ret = nfs_idmap_lookup_name(gid, "group", buf, buflen); +- if (ret < 0) +- ret = nfs_map_numeric_to_string(gid, buf, buflen); +- return ret; +-} +- +-#else /* CONFIG_NFS_USE_NEW_IDMAPPER not defined */ +- ++/* idmap classic begins here */ + #include + #include + #include +@@ -796,19 +758,27 @@ static unsigned int fnvhash32(const void + int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid) + { + struct idmap *idmap = server->nfs_client->cl_idmap; ++ int ret = -EINVAL; + + if (nfs_map_string_to_numeric(name, namelen, uid)) + return 0; +- return nfs_idmap_id(idmap, &idmap->idmap_user_hash, name, namelen, uid); ++ ret = nfs_idmap_lookup_id(name, namelen, "uid", uid); ++ if (ret < 0) ++ ret = nfs_idmap_id(idmap, &idmap->idmap_user_hash, name, namelen, uid); ++ return ret; + } + +-int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid) ++int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *gid) + { + struct idmap *idmap = server->nfs_client->cl_idmap; ++ int ret = -EINVAL; + +- if (nfs_map_string_to_numeric(name, namelen, uid)) ++ if (nfs_map_string_to_numeric(name, namelen, gid)) + return 0; +- return nfs_idmap_id(idmap, &idmap->idmap_group_hash, name, namelen, uid); ++ ret = nfs_idmap_lookup_id(name, namelen, "gid", gid); ++ if (ret < 0) ++ ret = nfs_idmap_id(idmap, &idmap->idmap_group_hash, name, namelen, gid); ++ return ret; + } + + int nfs_map_uid_to_name(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen) +@@ -816,22 +786,26 @@ int nfs_map_uid_to_name(const struct nfs + struct idmap *idmap = server->nfs_client->cl_idmap; + int ret = -EINVAL; + +- if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) +- ret = nfs_idmap_name(idmap, &idmap->idmap_user_hash, uid, buf); ++ if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) { ++ ret = nfs_idmap_lookup_name(uid, "user", buf, buflen); ++ if (ret < 0) ++ ret = nfs_idmap_name(idmap, &idmap->idmap_user_hash, uid, buf); ++ } + if (ret < 0) + ret = nfs_map_numeric_to_string(uid, buf, buflen); + return ret; + } +-int nfs_map_gid_to_group(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen) ++int nfs_map_gid_to_group(const struct nfs_server *server, __u32 gid, char *buf, size_t buflen) + { + struct idmap *idmap = server->nfs_client->cl_idmap; + int ret = -EINVAL; + +- if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) +- ret = nfs_idmap_name(idmap, &idmap->idmap_group_hash, uid, buf); ++ if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) { ++ ret = nfs_idmap_lookup_name(gid, "group", buf, buflen); ++ if (ret < 0) ++ ret = nfs_idmap_name(idmap, &idmap->idmap_group_hash, gid, buf); ++ } + if (ret < 0) +- ret = nfs_map_numeric_to_string(uid, buf, buflen); ++ ret = nfs_map_numeric_to_string(gid, buf, buflen); + return ret; + } +- +-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */ +diff -up linux-3.2.noarch/fs/nfs/Kconfig.orig linux-3.2.noarch/fs/nfs/Kconfig +--- linux-3.2.noarch/fs/nfs/Kconfig.orig 2012-01-04 18:55:44.000000000 -0500 ++++ linux-3.2.noarch/fs/nfs/Kconfig 2012-01-27 10:15:42.913562572 -0500 +@@ -132,14 +132,3 @@ config NFS_USE_KERNEL_DNS + select DNS_RESOLVER + select KEYS + default y +- +-config NFS_USE_NEW_IDMAPPER +- bool "Use the new idmapper upcall routine" +- depends on NFS_V4 && KEYS +- help +- Say Y here if you want NFS to use the new idmapper upcall functions. +- You will need /sbin/request-key (usually provided by the keyutils +- package). For details, read +- . +- +- If you are unsure, say N. +diff -up linux-3.2.noarch/fs/nfs/sysctl.c.orig linux-3.2.noarch/fs/nfs/sysctl.c +--- linux-3.2.noarch/fs/nfs/sysctl.c.orig 2012-01-04 18:55:44.000000000 -0500 ++++ linux-3.2.noarch/fs/nfs/sysctl.c 2012-01-27 10:15:42.914563082 -0500 +@@ -32,7 +32,6 @@ static ctl_table nfs_cb_sysctls[] = { + .extra1 = (int *)&nfs_set_port_min, + .extra2 = (int *)&nfs_set_port_max, + }, +-#ifndef CONFIG_NFS_USE_NEW_IDMAPPER + { + .procname = "idmap_cache_timeout", + .data = &nfs_idmap_cache_timeout, +@@ -40,7 +39,6 @@ static ctl_table nfs_cb_sysctls[] = { + .mode = 0644, + .proc_handler = proc_dointvec_jiffies, + }, +-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */ + #endif + { + .procname = "nfs_mountpoint_timeout", +diff -up linux-3.2.noarch/include/linux/nfs_idmap.h.orig linux-3.2.noarch/include/linux/nfs_idmap.h +--- linux-3.2.noarch/include/linux/nfs_idmap.h.orig 2012-01-27 10:06:46.783643915 -0500 ++++ linux-3.2.noarch/include/linux/nfs_idmap.h 2012-01-27 10:15:42.915563594 -0500 +@@ -69,36 +69,11 @@ struct nfs_server; + struct nfs_fattr; + struct nfs4_string; + +-#ifdef CONFIG_NFS_USE_NEW_IDMAPPER +- + int nfs_idmap_init(void); + void nfs_idmap_quit(void); +- +-static inline int nfs_idmap_new(struct nfs_client *clp) +-{ +- return 0; +-} +- +-static inline void nfs_idmap_delete(struct nfs_client *clp) +-{ +-} +- +-#else /* CONFIG_NFS_USE_NEW_IDMAPPER not set */ +- +-static inline int nfs_idmap_init(void) +-{ +- return 0; +-} +- +-static inline void nfs_idmap_quit(void) +-{ +-} +- + int nfs_idmap_new(struct nfs_client *); + void nfs_idmap_delete(struct nfs_client *); + +-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */ +- + void nfs_fattr_init_names(struct nfs_fattr *fattr, + struct nfs4_string *owner_name, + struct nfs4_string *group_name); diff --git a/linux-3.3-newidmapper-02.patch b/linux-3.3-newidmapper-02.patch new file mode 100644 index 000000000..9307ee001 --- /dev/null +++ b/linux-3.3-newidmapper-02.patch @@ -0,0 +1,97 @@ +commit 3cd0f37a2cc9e4d6188df10041a2441eaa41d991 +Author: Bryan Schumaker +Date: Thu Jan 26 16:54:24 2012 -0500 + + NFS: Keep idmapper include files in one place + + Signed-off-by: Bryan Schumaker + Signed-off-by: Trond Myklebust + +diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c +--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-01-27 10:15:42.914563082 -0500 ++++ linux-3.2.noarch/fs/nfs/idmap.c 2012-01-27 10:19:22.711401559 -0500 +@@ -39,6 +39,36 @@ + #include + #include + #include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* include files needed by legacy idmapper */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "nfs4_fs.h" ++ ++#define NFS_UINT_MAXLEN 11 ++#define IDMAP_HASH_SZ 128 ++ ++/* Default cache timeout is 10 minutes */ ++unsigned int nfs_idmap_cache_timeout = 600 * HZ; ++const struct cred *id_resolver_cache; ++ + + /** + * nfs_fattr_init_names - initialise the nfs_fattr owner_name/group_name fields +@@ -142,21 +172,6 @@ static int nfs_map_numeric_to_string(__u + return snprintf(buf, buflen, "%u", id); + } + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +- +-#define NFS_UINT_MAXLEN 11 +- +-const struct cred *id_resolver_cache; +- + struct key_type key_type_id_resolver = { + .name = "id_resolver", + .instantiate = user_instantiate, +@@ -327,25 +342,6 @@ static int nfs_idmap_lookup_id(const cha + } + + /* idmap classic begins here */ +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +- +-#include "nfs4_fs.h" +- +-#define IDMAP_HASH_SZ 128 +- +-/* Default cache timeout is 10 minutes */ +-unsigned int nfs_idmap_cache_timeout = 600 * HZ; +- + static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) + { + char *endp; diff --git a/linux-3.3-newidmapper-03.patch b/linux-3.3-newidmapper-03.patch new file mode 100644 index 000000000..7018e3557 --- /dev/null +++ b/linux-3.3-newidmapper-03.patch @@ -0,0 +1,40 @@ +commit a602bea3e7ccc5ce3da61d2c18245c4058983926 +Author: Bryan Schumaker +Date: Thu Jan 26 16:54:25 2012 -0500 + + NFS: Update idmapper documentation + + Signed-off-by: Bryan Schumaker + Signed-off-by: Trond Myklebust + +diff -up linux-3.2.noarch/Documentation/filesystems/nfs/idmapper.txt.orig linux-3.2.noarch/Documentation/filesystems/nfs/idmapper.txt +--- linux-3.2.noarch/Documentation/filesystems/nfs/idmapper.txt.orig 2012-01-04 18:55:44.000000000 -0500 ++++ linux-3.2.noarch/Documentation/filesystems/nfs/idmapper.txt 2012-01-27 10:19:55.406740364 -0500 +@@ -4,13 +4,21 @@ ID Mapper + ========= + Id mapper is used by NFS to translate user and group ids into names, and to + translate user and group names into ids. Part of this translation involves +-performing an upcall to userspace to request the information. Id mapper will +-user request-key to perform this upcall and cache the result. The program +-/usr/sbin/nfs.idmap should be called by request-key, and will perform the +-translation and initialize a key with the resulting information. ++performing an upcall to userspace to request the information. There are two ++ways NFS could obtain this information: placing a call to /sbin/request-key ++or by placing a call to the rpc.idmap daemon. ++ ++NFS will attempt to call /sbin/request-key first. If this succeeds, the ++result will be cached using the generic request-key cache. This call should ++only fail if /etc/request-key.conf is not configured for the id_resolver key ++type, see the "Configuring" section below if you wish to use the request-key ++method. ++ ++If the call to /sbin/request-key fails (if /etc/request-key.conf is not ++configured with the id_resolver key type), then the idmapper will ask the ++legacy rpc.idmap daemon for the id mapping. This result will be stored ++in a custom NFS idmap cache. + +- NFS_USE_NEW_IDMAPPER must be selected when configuring the kernel to use this +- feature. + + =========== + Configuring From a9de21e9b46bc850a89c306b9a47ebea88751ba6 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 8 Feb 2012 11:28:13 -0500 Subject: [PATCH 007/542] Remove a bogus inline declaration that broke ARM and ppc builds (rhbz 787373) --- ...-inline-decl-from-l2cap_chan_connect.patch | 49 +++++++++++++++++++ kernel.spec | 7 +++ 2 files changed, 56 insertions(+) create mode 100644 Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch diff --git a/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch b/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch new file mode 100644 index 000000000..c5991992a --- /dev/null +++ b/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch @@ -0,0 +1,49 @@ +From 9a4b860f36f995ecda36d8312a56ae1d34a6c541 Mon Sep 17 00:00:00 2001 +From: Johan Hedberg +Date: Sun, 8 Jan 2012 22:51:16 +0200 +Subject: [PATCH] Bluetooth: Remove bogus inline declaration from + l2cap_chan_connect + +As reported by Dan Carpenter this function causes a Sparse warning and +shouldn't be declared inline: + +include/net/bluetooth/l2cap.h:837:30 error: marked inline, but without a +definition" + +Reported-by: Dan Carpenter +Signed-off-by: Johan Hedberg +Acked-by: Marcel Holtmann +--- + include/net/bluetooth/l2cap.h | 2 +- + net/bluetooth/l2cap_core.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h +index 68f5891..124f7cf 100644 +--- a/include/net/bluetooth/l2cap.h ++++ b/include/net/bluetooth/l2cap.h +@@ -834,7 +834,7 @@ int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid); + struct l2cap_chan *l2cap_chan_create(struct sock *sk); + void l2cap_chan_close(struct l2cap_chan *chan, int reason); + void l2cap_chan_destroy(struct l2cap_chan *chan); +-inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, ++int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, + bdaddr_t *dst); + int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len, + u32 priority); +diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c +index faf0b11..980abdb 100644 +--- a/net/bluetooth/l2cap_core.c ++++ b/net/bluetooth/l2cap_core.c +@@ -1120,7 +1120,7 @@ static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm, bdaddr + return c1; + } + +-inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, bdaddr_t *dst) ++int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, bdaddr_t *dst) + { + struct sock *sk = chan->sk; + bdaddr_t *src = &bt_sk(sk)->src; +-- +1.7.6.5 + diff --git a/kernel.spec b/kernel.spec index 9641135bf..b5ca8c394 100644 --- a/kernel.spec +++ b/kernel.spec @@ -749,6 +749,9 @@ Patch21096: hfsplus-Add-an-ioctl-to-bless-files.patch #rhbz 788260 Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch +#rhbz 787373 +Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1446,6 +1449,9 @@ ApplyPatch hfsplus-Add-an-ioctl-to-bless-files.patch #rhbz 788269 ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch +#rhbz 787373 +ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch + # END OF PATCH APPLICATIONS %endif @@ -2327,6 +2333,7 @@ fi # '-' %changelog * Wed Feb 08 2012 Josh Boyer +- Remove a bogus inline declaration that broke ARM and ppc builds (rhbz 787373) - CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can lead to DoS (rhbz 788260) - Add new upstream NFS id mapping patches from Steve Dickson From 9befbf0be805f54977b91bf41ab2c4e405abc0f7 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 9 Feb 2012 07:42:49 -0500 Subject: [PATCH 008/542] Linux 3.3-rc3 --- kernel.spec | 9 ++++++--- sources | 3 +-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/kernel.spec b/kernel.spec index b5ca8c394..cebcd6203 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 2 +%define rcrev 3 # The git snapshot level -%define gitrev 6 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2332,6 +2332,9 @@ fi # '-' | | # '-' %changelog +* Thu Feb 09 2012 Josh Boyer +- Linux 3.3-rc3 + * Wed Feb 08 2012 Josh Boyer - Remove a bogus inline declaration that broke ARM and ppc builds (rhbz 787373) - CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can diff --git a/sources b/sources index 7af6a001c..5140ab25c 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -465f9cf994d5c94b15ba167fae8e60fb patch-3.3-rc2.xz +c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -e46c1647e3a598bfb05066a7c8475586 patch-3.3-rc2-git6.xz From b0d8317b77e9d871fe0f1d40b531379c9bdecb5e Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 9 Feb 2012 07:43:57 -0500 Subject: [PATCH 009/542] Disable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 6cfc1c4a2..af77722c7 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3072,7 +3072,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3976,7 +3976,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..d823ebe73 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..02e1fe7d1 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index cebcd6203..46c35bbcc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2332,6 +2332,9 @@ fi # '-' | | # '-' %changelog +* Thu Feb 09 2012 Josh Boyer - 3.3.0-0.rc3.git0.2 +- Disable debugging options. + * Thu Feb 09 2012 Josh Boyer - Linux 3.3-rc3 From 75f90a6e2f93d8e97e58d325a6821646c9d850c1 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 9 Feb 2012 15:48:47 -0500 Subject: [PATCH 010/542] bsg: fix sysfs link remove warning (#787281) --- bsg-fix-sysfs-link-remove-warning.patch | 16 ++++++++++++++++ kernel.spec | 7 +++++++ 2 files changed, 23 insertions(+) create mode 100644 bsg-fix-sysfs-link-remove-warning.patch diff --git a/bsg-fix-sysfs-link-remove-warning.patch b/bsg-fix-sysfs-link-remove-warning.patch new file mode 100644 index 000000000..6e7625327 --- /dev/null +++ b/bsg-fix-sysfs-link-remove-warning.patch @@ -0,0 +1,16 @@ +diff --git a/block/bsg.c b/block/bsg.c +index 4cf703f..ff64ae3 100644 +--- a/block/bsg.c ++++ b/block/bsg.c +@@ -983,7 +983,8 @@ void bsg_unregister_queue(struct request_queue *q) + + mutex_lock(&bsg_mutex); + idr_remove(&bsg_minor_idr, bcd->minor); +- sysfs_remove_link(&q->kobj, "bsg"); ++ if (q->kobj.sd) ++ sysfs_remove_link(&q->kobj, "bsg"); + device_unregister(bcd->class_dev); + bcd->class_dev = NULL; + kref_put(&bcd->ref, bsg_kref_release_function); +-- +1.7.4.4 diff --git a/kernel.spec b/kernel.spec index 46c35bbcc..fa2b44f74 100644 --- a/kernel.spec +++ b/kernel.spec @@ -729,6 +729,8 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch +Patch14000: bsg-fix-sysfs-link-remove-warning.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1431,6 +1433,8 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch +ApplyPatch bsg-fix-sysfs-link-remove-warning.patch + # utrace. ApplyPatch utrace.patch @@ -2332,6 +2336,9 @@ fi # '-' | | # '-' %changelog +* Thu Feb 09 2012 Dave Jones +- bsg: fix sysfs link remove warning (#787281) + * Thu Feb 09 2012 Josh Boyer - 3.3.0-0.rc3.git0.2 - Disable debugging options. From fa3e4fce5af6d273210c44a5e880c5f52d68fabc Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 10 Feb 2012 09:37:52 -0500 Subject: [PATCH 011/542] Linux 3.3-rc3-git1 (upstream 19e00f2f1d5273dbc52eab0ebc315cae3aa44b2a) --- kernel.spec | 7 +++++-- sources | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index fa2b44f74..a8387c040 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2336,6 +2336,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 10 2012 Josh Boyer +- Linux 3.3-rc3-git1 (upstream 19e00f2f1d5273dbc52eab0ebc315cae3aa44b2a) + * Thu Feb 09 2012 Dave Jones - bsg: fix sysfs link remove warning (#787281) diff --git a/sources b/sources index 5140ab25c..7e80b8b7c 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 +82244bd72872c9732883781c63b7504e patch-3.3-rc3-git1.xz From 85df0e0b4fda90fa46dc50c05ef686cd80c01115 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 10 Feb 2012 09:42:34 -0500 Subject: [PATCH 012/542] Reenable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index af77722c7..6cfc1c4a2 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3072,7 +3072,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=m # @@ -3976,7 +3976,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index d823ebe73..0eb253221 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_VM=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y -# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_SLUB_DEBUG_ON=y -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -# CONFIG_DEBUG_SG is not set +CONFIG_DEBUG_SG=y # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_WRITECOUNT=y +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_X86_PTDUMP is not set +CONFIG_X86_PTDUMP=y -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMADEVICES_VDEBUG is not set +CONFIG_DMADEVICES_DEBUG=y +CONFIG_DMADEVICES_VDEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_TEST_LIST_SORT=y -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 02e1fe7d1..6a7d1f767 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index a8387c040..981f3bece 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 0 +%define rawhide_skip_docs 1 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2336,6 +2336,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 10 2012 Josh Boyer - 3.3.0-0.rc3.git1.2 +- Reenable debugging options. + * Fri Feb 10 2012 Josh Boyer - Linux 3.3-rc3-git1 (upstream 19e00f2f1d5273dbc52eab0ebc315cae3aa44b2a) From 87001d5c4f9dc31fbc2d1a20eac7160a0a2a6963 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 10 Feb 2012 13:37:46 -0500 Subject: [PATCH 013/542] Linux 3.3-rc3-git2 (upstream 612b8507c5d545feed2437b3d2239929cac7688d) --- kernel.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 981f3bece..1e68e54db 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2336,7 +2336,10 @@ fi # '-' | | # '-' %changelog -* Fri Feb 10 2012 Josh Boyer - 3.3.0-0.rc3.git1.2 +* Fri Feb 10 2012 Josh Boyer - 3.3.0-0.rc3.git2.1 +- Linux 3.3-rc3-git2 (upstream 612b8507c5d545feed2437b3d2239929cac7688d) + +* Fri Feb 10 2012 Josh Boyer - 3.3.0-0.rc3.git1.2 - Reenable debugging options. * Fri Feb 10 2012 Josh Boyer diff --git a/sources b/sources index 7e80b8b7c..eb31fc848 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -82244bd72872c9732883781c63b7504e patch-3.3-rc3-git1.xz +d199ead7dd939f47cb2915bc61e367f4 patch-3.3-rc3-git2.xz From beef0e952df550ecfc73299f105c65b9b7b04529 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 10 Feb 2012 14:56:13 -0500 Subject: [PATCH 014/542] Patch to prevent NULL pointer dereference in sd_revalidate_disk (rhbz 754518) --- kernel.spec | 9 ++++++++ ...validate_disk-prevent-NULL-ptr-deref.patch | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch diff --git a/kernel.spec b/kernel.spec index 1e68e54db..4804aafd7 100644 --- a/kernel.spec +++ b/kernel.spec @@ -754,6 +754,9 @@ Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 787373 Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch +#rhbz 754518 +Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1456,6 +1459,9 @@ ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 787373 ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch +#rhbz 754518 +ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch + # END OF PATCH APPLICATIONS %endif @@ -2336,6 +2342,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 10 2012 Josh Boyer +- Patch to prevent NULL pointer dereference in sd_revalidate_disk (rhbz 754518) + * Fri Feb 10 2012 Josh Boyer - 3.3.0-0.rc3.git2.1 - Linux 3.3-rc3-git2 (upstream 612b8507c5d545feed2437b3d2239929cac7688d) diff --git a/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch b/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch new file mode 100644 index 000000000..492376d78 --- /dev/null +++ b/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch @@ -0,0 +1,22 @@ +--- a/drivers/scsi/sd.c ++++ a/drivers/scsi/sd.c +@@ -2362,13 +2362,18 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp) + static int sd_revalidate_disk(struct gendisk *disk) + { + struct scsi_disk *sdkp = scsi_disk(disk); +- struct scsi_device *sdp = sdkp->device; ++ struct scsi_device *sdp; + unsigned char *buffer; + unsigned flush = 0; + + SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, + "sd_revalidate_disk\n")); + ++ if (!sdkp) ++ goto out; ++ ++ sdp = sdkp->device; ++ + /* + * If the device is offline, don't try and read capacity or any + * of the other niceties. From 88671e11c1809d177636765071748f7a273ac66d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sat, 11 Feb 2012 09:02:14 -0500 Subject: [PATCH 015/542] Linux 3.3-rc3-git3 (upstream 8df54d622a120058ee8bec38743c9b8f091c8e58) --- kernel.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 4804aafd7..ed7b7a9d1 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2342,6 +2342,9 @@ fi # '-' | | # '-' %changelog +* Sat Feb 11 2012 Josh Boyer - 3.3.0-0.rc3.git3.1 +- Linux 3.3-rc3-git3 (upstream 8df54d622a120058ee8bec38743c9b8f091c8e58) + * Fri Feb 10 2012 Josh Boyer - Patch to prevent NULL pointer dereference in sd_revalidate_disk (rhbz 754518) diff --git a/sources b/sources index eb31fc848..465796a41 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -d199ead7dd939f47cb2915bc61e367f4 patch-3.3-rc3-git2.xz +26ac4a50e9bfa12afe9fc0750fd5e252 patch-3.3-rc3-git3.xz From 96e2cd264707c5ea5f8ee6fc97be56669b73876e Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 13 Feb 2012 07:37:11 -0500 Subject: [PATCH 016/542] Linux 3.3-rc3-git4 (upstream 3ec1e88b33a3bdd852ce8e014052acec7a9da8b5) --- bsg-fix-sysfs-link-remove-warning.patch | 16 ---------------- kernel.spec | 9 ++++----- sources | 2 +- 3 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 bsg-fix-sysfs-link-remove-warning.patch diff --git a/bsg-fix-sysfs-link-remove-warning.patch b/bsg-fix-sysfs-link-remove-warning.patch deleted file mode 100644 index 6e7625327..000000000 --- a/bsg-fix-sysfs-link-remove-warning.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/block/bsg.c b/block/bsg.c -index 4cf703f..ff64ae3 100644 ---- a/block/bsg.c -+++ b/block/bsg.c -@@ -983,7 +983,8 @@ void bsg_unregister_queue(struct request_queue *q) - - mutex_lock(&bsg_mutex); - idr_remove(&bsg_minor_idr, bcd->minor); -- sysfs_remove_link(&q->kobj, "bsg"); -+ if (q->kobj.sd) -+ sysfs_remove_link(&q->kobj, "bsg"); - device_unregister(bcd->class_dev); - bcd->class_dev = NULL; - kref_put(&bcd->ref, bsg_kref_release_function); --- -1.7.4.4 diff --git a/kernel.spec b/kernel.spec index ed7b7a9d1..a8f306f3c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 3 +%define gitrev 4 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -729,8 +729,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch -Patch14000: bsg-fix-sysfs-link-remove-warning.patch - Patch20000: utrace.patch # Flattened devicetree support @@ -1436,8 +1434,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch -ApplyPatch bsg-fix-sysfs-link-remove-warning.patch - # utrace. ApplyPatch utrace.patch @@ -2342,6 +2338,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 13 2012 Josh Boyer - 3.3.0-0.rc3.git4.1 +- Linux 3.3-rc3-git4 (upstream 3ec1e88b33a3bdd852ce8e014052acec7a9da8b5) + * Sat Feb 11 2012 Josh Boyer - 3.3.0-0.rc3.git3.1 - Linux 3.3-rc3-git3 (upstream 8df54d622a120058ee8bec38743c9b8f091c8e58) diff --git a/sources b/sources index 465796a41..52944e54c 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -26ac4a50e9bfa12afe9fc0750fd5e252 patch-3.3-rc3-git3.xz +e544f0ac8cd0b4970f7e530487643900 patch-3.3-rc3-git4.xz From 2d7f1ba183550bfd19e190a6fefe3737153a8b18 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 13 Feb 2012 20:48:11 -0500 Subject: [PATCH 017/542] Apply patch to fix autofs4 lockdep splat (rhbz 714828) --- autofs4-lockdep.patch | 84 +++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 9 +++++ 2 files changed, 93 insertions(+) create mode 100644 autofs4-lockdep.patch diff --git a/autofs4-lockdep.patch b/autofs4-lockdep.patch new file mode 100644 index 000000000..fe4d65056 --- /dev/null +++ b/autofs4-lockdep.patch @@ -0,0 +1,84 @@ +Path: news.gmane.org!not-for-mail +From: Ian Kent +Newsgroups: gmane.linux.kernel +Subject: [PATCH] autofs4 - fix lockdep splat in autofs +Date: Mon, 22 Aug 2011 11:52:28 +0800 +Lines: 35 +Approved: news@gmane.org +Message-ID: <20110822035228.13189.62994.stgit@perseus.themaw.net> +NNTP-Posting-Host: lo.gmane.org +Mime-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit +X-Trace: dough.gmane.org 1313985730 20409 80.91.229.12 (22 Aug 2011 04:02:10 GMT) +X-Complaints-To: usenet@dough.gmane.org +NNTP-Posting-Date: Mon, 22 Aug 2011 04:02:10 +0000 (UTC) +Cc: Kernel Mailing List , + Steven Rostedt +To: Al Viro +Original-X-From: linux-kernel-owner@vger.kernel.org Mon Aug 22 06:02:05 2011 +Return-path: +Envelope-to: glk-linux-kernel-3@lo.gmane.org +Original-Received: from vger.kernel.org ([209.132.180.67]) + by lo.gmane.org with esmtp (Exim 4.69) + (envelope-from ) + id 1QvLi6-00059I-P9 + for glk-linux-kernel-3@lo.gmane.org; Mon, 22 Aug 2011 06:02:03 +0200 +Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1750951Ab1HVEBw (ORCPT ); + Mon, 22 Aug 2011 00:01:52 -0400 +Original-Received: from outbound.icp-qv1-irony-out2.iinet.net.au ([203.59.1.107]:23283 + "EHLO outbound.icp-qv1-irony-out2.iinet.net.au" rhost-flags-OK-OK-OK-OK) + by vger.kernel.org with ESMTP id S1750806Ab1HVEBu (ORCPT + ); + Mon, 22 Aug 2011 00:01:50 -0400 +X-Greylist: delayed 554 seconds by postgrey-1.27 at vger.kernel.org; Mon, 22 Aug 2011 00:01:50 EDT +X-IronPort-Anti-Spam-Filtered: true +X-IronPort-Anti-Spam-Result: Av4EADDSUU7LO5kB/2dsb2JhbABBhEujSHeBQAEpBFIoCAUCGA4CSRYTrRSQOYEshAyBEASHXpBgi1k +X-IronPort-AV: E=Sophos;i="4.68,261,1312128000"; + d="scan'208";a="765105065" +Original-Received: from unknown (HELO perseus.themaw.net) ([203.59.153.1]) + by outbound.icp-qv1-irony-out2.iinet.net.au with ESMTP; 22 Aug 2011 11:52:32 +0800 +User-Agent: StGIT/0.14.3 +Original-Sender: linux-kernel-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-kernel@vger.kernel.org +Xref: news.gmane.org gmane.linux.kernel:1182197 +Archived-At: + +From: Steven Rostedt + +When recursing down the locks when traversing a tree/list in +get_next_positive_dentry() or get_next_positive_subdir() a lock can +change from being nested to being a parent which breaks lockdep. This +patch tells lockdep about what we did. + +Signed-off-by: Steven Rostedt +Acked-by: Ian Kent +--- + + fs/autofs4/expire.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c +index 450f529..1feb68e 100644 +--- a/fs/autofs4/expire.c ++++ b/fs/autofs4/expire.c +@@ -124,6 +124,7 @@ start: + /* Negative dentry - try next */ + if (!simple_positive(q)) { + spin_unlock(&p->d_lock); ++ lock_set_subclass(&q->d_lock.dep_map, 0, _RET_IP_); + p = q; + goto again; + } +@@ -186,6 +187,7 @@ again: + /* Negative dentry - try next */ + if (!simple_positive(ret)) { + spin_unlock(&p->d_lock); ++ lock_set_subclass(&ret->d_lock.dep_map, 0, _RET_IP_); + p = ret; + goto again; + } + diff --git a/kernel.spec b/kernel.spec index a8f306f3c..25edf3668 100644 --- a/kernel.spec +++ b/kernel.spec @@ -755,6 +755,9 @@ Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch #rhbz 754518 Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +#rhbz 714828 +Patch21236: autofs4-lockdep.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1458,6 +1461,9 @@ ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch #rhbz 754518 ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +#rhbz 714828 +ApplyPatch autofs4-lockdep.patch + # END OF PATCH APPLICATIONS %endif @@ -2338,6 +2344,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 13 2012 Josh Boyer +- Apply patch to fix autofs4 lockdep splat (rhbz 714828) + * Mon Feb 13 2012 Josh Boyer - 3.3.0-0.rc3.git4.1 - Linux 3.3-rc3-git4 (upstream 3ec1e88b33a3bdd852ce8e014052acec7a9da8b5) From 4cee10509fa2c72719bb61e28418f0ec3a8247cb Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 14 Feb 2012 10:02:28 +0000 Subject: [PATCH 018/542] Update ARM components in Makefile.config --- Makefile.config | 9 +++++---- kernel.spec | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile.config b/Makefile.config index 97e4704a3..9f00c576b 100644 --- a/Makefile.config +++ b/Makefile.config @@ -10,10 +10,11 @@ CONFIGFILES = \ $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \ $(CFG)-s390x.config \ $(CFG)-arm.config $(CFG)-armv5tel.config $(CFG)-armv7hl.config \ - $(CFG)-armv5tel-kirkwood.config $(CFG)-armv7l-imx.config \ - $(CFG)-armv7l-omap.config $(CFG)-armv7l-tegra.config \ - $(CFG)-armv7hl-imx.config $(CFG)-armv7hl-highbank.config \ - $(CFG)-armv7hl-omap.config $(CFG)-armv7hl-tegra.config \ + $(CFG)-armv5tel-kirkwood.config \ + $(CFG)-armv7l-imx.config $(CFG)-armv7l-omap.config \ + $(CFG)-armv7l-tegra.config $(CFG)-armv7l-highbank.config \ + $(CFG)-armv7hl-imx.config $(CFG)-armv7hl-omap.config \ + $(CFG)-armv7hl-tegra.config $(CFG)-armv7hl-highbank.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ $(CFG)-sparc64.config \ $(CFG)-ppc64.config $(CFG)-ppc64-debug.config diff --git a/kernel.spec b/kernel.spec index 25edf3668..73c643173 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2344,6 +2344,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 14 2012 Peter Robinson +- Update ARM components in Makefile.config + * Mon Feb 13 2012 Josh Boyer - Apply patch to fix autofs4 lockdep splat (rhbz 714828) From 770ad8ca886b473f884c692ea49114deb2a7137d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 14 Feb 2012 09:44:13 -0500 Subject: [PATCH 019/542] Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 73c643173..9910139e7 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 4 +%define gitrev 5 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2344,6 +2344,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 14 2012 Josh Boyer - 3.3.0-0.rc3.git5.1 +- Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) + * Tue Feb 14 2012 Peter Robinson - Update ARM components in Makefile.config diff --git a/sources b/sources index 52944e54c..334f41056 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -e544f0ac8cd0b4970f7e530487643900 patch-3.3-rc3-git4.xz +43be43cec1dd2e5cc910d9e0d77c22eb patch-3.3-rc3-git5.xz From 9bf39b3281ec7c3f713e06a3dd5d72fdb5101a97 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 14 Feb 2012 10:09:54 -0500 Subject: [PATCH 020/542] Fix rhbzs 789641 and 789644 Fix RCU usage during cpu idle (rhbz 789641) Fix mce rcu splat (rhbz 789644) --- kernel.spec | 12 +- mcelog-rcu-splat.patch | 15 +++ x86-Avoid-invoking-RCU-when-CPU-is-idle.patch | 118 ++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 mcelog-rcu-splat.patch create mode 100644 x86-Avoid-invoking-RCU-when-CPU-is-idle.patch diff --git a/kernel.spec b/kernel.spec index 9910139e7..86af5d96f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -758,6 +758,9 @@ Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch #rhbz 714828 Patch21236: autofs4-lockdep.patch +Patch21237: mcelog-rcu-splat.patch +Patch21238: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1464,6 +1467,9 @@ ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch #rhbz 714828 ApplyPatch autofs4-lockdep.patch +ApplyPatch mcelog-rcu-splat.patch +ApplyPatch x86-Avoid-invoking-RCU-when-CPU-is-idle.patch + # END OF PATCH APPLICATIONS %endif @@ -2344,6 +2350,10 @@ fi # '-' | | # '-' %changelog +* Tue Feb 14 2012 Josh Boyer +- Add patch to fix RCU usage during cpu idle (rhbz 789641) +- Add patch to fix mce rcu splat (rhbz 789644) + * Tue Feb 14 2012 Josh Boyer - 3.3.0-0.rc3.git5.1 - Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) diff --git a/mcelog-rcu-splat.patch b/mcelog-rcu-splat.patch new file mode 100644 index 000000000..12c1fe3ea --- /dev/null +++ b/mcelog-rcu-splat.patch @@ -0,0 +1,15 @@ +diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c +index f22a9f7..f525f99 100644 +--- a/arch/x86/kernel/cpu/mcheck/mce.c ++++ b/arch/x86/kernel/cpu/mcheck/mce.c +@@ -191,7 +191,7 @@ static void drain_mcelog_buffer(void) + { + unsigned int next, i, prev = 0; + +- next = rcu_dereference_check_mce(mcelog.next); ++ next = ACCESS_ONCE(mcelog.next); + + do { + struct mce *m; + + \ No newline at end of file diff --git a/x86-Avoid-invoking-RCU-when-CPU-is-idle.patch b/x86-Avoid-invoking-RCU-when-CPU-is-idle.patch new file mode 100644 index 000000000..2d45056bb --- /dev/null +++ b/x86-Avoid-invoking-RCU-when-CPU-is-idle.patch @@ -0,0 +1,118 @@ +diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c +index 15763af..f6978b0 100644 +--- a/arch/x86/kernel/process.c ++++ b/arch/x86/kernel/process.c +@@ -386,17 +386,21 @@ void default_idle(void) + */ + smp_mb(); + ++ rcu_idle_enter(); + if (!need_resched()) + safe_halt(); /* enables interrupts racelessly */ + else + local_irq_enable(); ++ rcu_idle_exit(); + current_thread_info()->status |= TS_POLLING; + trace_power_end(smp_processor_id()); + trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); + } else { + local_irq_enable(); + /* loop is done by the caller */ ++ rcu_idle_enter(); + cpu_relax(); ++ rcu_idle_exit(); + } + } + #ifdef CONFIG_APM_MODULE +@@ -457,14 +461,19 @@ static void mwait_idle(void) + + __monitor((void *)¤t_thread_info()->flags, 0, 0); + smp_mb(); ++ rcu_idle_enter(); + if (!need_resched()) + __sti_mwait(0, 0); + else + local_irq_enable(); ++ rcu_idle_exit(); + trace_power_end(smp_processor_id()); + trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); +- } else ++ } else { + local_irq_enable(); ++ rcu_idle_enter(); ++ rcu_idle_exit(); ++ } + } + + /* +@@ -477,8 +486,10 @@ static void poll_idle(void) + trace_power_start(POWER_CSTATE, 0, smp_processor_id()); + trace_cpu_idle(0, smp_processor_id()); + local_irq_enable(); ++ rcu_idle_enter(); + while (!need_resched()) + cpu_relax(); ++ rcu_idle_exit(); + trace_power_end(smp_processor_id()); + trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); + } +diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c +index 485204f..6d9d4d5 100644 +--- a/arch/x86/kernel/process_32.c ++++ b/arch/x86/kernel/process_32.c +@@ -100,7 +100,6 @@ void cpu_idle(void) + /* endless idle loop with no priority at all */ + while (1) { + tick_nohz_idle_enter(); +- rcu_idle_enter(); + while (!need_resched()) { + + check_pgt_cache(); +@@ -117,7 +116,6 @@ void cpu_idle(void) + pm_idle(); + start_critical_timings(); + } +- rcu_idle_exit(); + tick_nohz_idle_exit(); + preempt_enable_no_resched(); + schedule(); +diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c +index 9b9fe4a..55a1a35 100644 +--- a/arch/x86/kernel/process_64.c ++++ b/arch/x86/kernel/process_64.c +@@ -140,13 +140,9 @@ void cpu_idle(void) + /* Don't trace irqs off for idle */ + stop_critical_timings(); + +- /* enter_idle() needs rcu for notifiers */ +- rcu_idle_enter(); +- + if (cpuidle_idle_call()) + pm_idle(); + +- rcu_idle_exit(); + start_critical_timings(); + + /* In many cases the interrupt that ended idle +diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c +index 20bce51..a9ddab8 100644 +--- a/drivers/idle/intel_idle.c ++++ b/drivers/idle/intel_idle.c +@@ -261,6 +261,7 @@ static int intel_idle(struct cpuidle_device *dev, + kt_before = ktime_get_real(); + + stop_critical_timings(); ++ rcu_idle_enter(); + if (!need_resched()) { + + __monitor((void *)¤t_thread_info()->flags, 0, 0); +@@ -268,6 +269,7 @@ static int intel_idle(struct cpuidle_device *dev, + if (!need_resched()) + __mwait(eax, ecx); + } ++ rcu_idle_exit(); + + start_critical_timings(); + + + \ No newline at end of file From 65b7231f44c19442fac417220a63d46f46b7d1a9 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 14 Feb 2012 10:22:26 -0500 Subject: [PATCH 021/542] Patch to enable CONFIG_KEYS_COMPAT on s390 from David Howells (rhbz 790367) --- kernel.spec | 7 +++++++ s390x-enable-keys-compat.patch | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 s390x-enable-keys-compat.patch diff --git a/kernel.spec b/kernel.spec index 86af5d96f..e932e19df 100644 --- a/kernel.spec +++ b/kernel.spec @@ -761,6 +761,9 @@ Patch21236: autofs4-lockdep.patch Patch21237: mcelog-rcu-splat.patch Patch21238: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch +#rhbz 790367 +Patch21239: s390x-enable-keys-compat.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1470,6 +1473,9 @@ ApplyPatch autofs4-lockdep.patch ApplyPatch mcelog-rcu-splat.patch ApplyPatch x86-Avoid-invoking-RCU-when-CPU-is-idle.patch +#rhbz 790367 +ApplyPatch s390x-enable-keys-compat.patch + # END OF PATCH APPLICATIONS %endif @@ -2353,6 +2359,7 @@ fi * Tue Feb 14 2012 Josh Boyer - Add patch to fix RCU usage during cpu idle (rhbz 789641) - Add patch to fix mce rcu splat (rhbz 789644) +- Patch to enable CONFIG_KEYS_COMPAT on s390 from David Howells (rhbz 790367) * Tue Feb 14 2012 Josh Boyer - 3.3.0-0.rc3.git5.1 - Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) diff --git a/s390x-enable-keys-compat.patch b/s390x-enable-keys-compat.patch new file mode 100644 index 000000000..43d203ca5 --- /dev/null +++ b/s390x-enable-keys-compat.patch @@ -0,0 +1,15 @@ +@@ -, +, @@ + arch/s390/Kconfig | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) +--- a/arch/s390/Kconfig ++++ a/arch/s390/Kconfig +@@ -227,6 +227,9 @@ config COMPAT + config SYSVIPC_COMPAT + def_bool y if COMPAT && SYSVIPC + ++config KEYS_COMPAT ++ def_bool y if COMPAT && KEYS ++ + config AUDIT_ARCH + def_bool y + From b150cfcb0f53d0279aeb75184d0203a596beccf7 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 14 Feb 2012 11:01:47 -0500 Subject: [PATCH 022/542] Modify sd_revalidate_disk patch to do a WARN_ONCE instead of silently skip --- kernel.spec | 1 + scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index e932e19df..b91f94318 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2360,6 +2360,7 @@ fi - Add patch to fix RCU usage during cpu idle (rhbz 789641) - Add patch to fix mce rcu splat (rhbz 789644) - Patch to enable CONFIG_KEYS_COMPAT on s390 from David Howells (rhbz 790367) +- Modify sd_revalidate_disk patch to do a WARN_ONCE instead of silently skip * Tue Feb 14 2012 Josh Boyer - 3.3.0-0.rc3.git5.1 - Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) diff --git a/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch b/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch index 492376d78..48db13328 100644 --- a/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +++ b/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch @@ -12,7 +12,7 @@ SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_revalidate_disk\n")); -+ if (!sdkp) ++ if (WARN_ONCE((!sdkp), "Invalid scsi_disk from %p\n", disk)) + goto out; + + sdp = sdkp->device; From 08db8c5d127805dbb6b2714fdefb5901c226ffda Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 14 Feb 2012 19:53:38 -0500 Subject: [PATCH 023/542] Install perf examples as suggested by Jason Baron --- kernel.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel.spec b/kernel.spec index b91f94318..584250a80 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2227,6 +2227,7 @@ fi %dir %{_libexecdir}/perf-core %{_libexecdir}/perf-core/* %{_mandir}/man[1-8]/perf* +%doc linux-%{kversion}.%{_target_cpu}/tools/perf/Documentation/examples.txt %files -n python-perf %defattr(-,root,root) @@ -2361,6 +2362,7 @@ fi - Add patch to fix mce rcu splat (rhbz 789644) - Patch to enable CONFIG_KEYS_COMPAT on s390 from David Howells (rhbz 790367) - Modify sd_revalidate_disk patch to do a WARN_ONCE instead of silently skip +- Install perf examples as suggested by Jason Baron * Tue Feb 14 2012 Josh Boyer - 3.3.0-0.rc3.git5.1 - Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) From f516fcd1f04a4e38d82bf27bafa71b1eca2ca992 Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Wed, 15 Feb 2012 14:15:31 -0500 Subject: [PATCH 024/542] Disable with_backports to help things to stabilize --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 584250a80..f3df5a7bb 100644 --- a/kernel.spec +++ b/kernel.spec @@ -218,7 +218,7 @@ Summary: The Linux kernel # # (Uncomment the '#' and both spaces below to disable with_backports.) # -# % define with_backports 0 +%define with_backports 0 ####################################################################### %define make_target bzImage @@ -2357,6 +2357,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 15 2012 John W. Linville +- Disable with_backports to help things to stabilize + * Tue Feb 14 2012 Josh Boyer - Add patch to fix RCU usage during cpu idle (rhbz 789641) - Add patch to fix mce rcu splat (rhbz 789644) From f935a1650995609d85e1b04c5136135ef3c1714a Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 15 Feb 2012 14:46:26 -0500 Subject: [PATCH 025/542] Add patch and config change for vgem.ko --- config-generic | 1 + drm-vgem.patch | 492 +++++++++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 5 + 3 files changed, 498 insertions(+) create mode 100644 drm-vgem.patch diff --git a/config-generic b/config-generic index 6cfc1c4a2..0cfc756ff 100644 --- a/config-generic +++ b/config-generic @@ -2415,6 +2415,7 @@ CONFIG_DRM_NOUVEAU_DEBUG=y CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_VMWGFX=m +CONFIG_DRM_VGEM=m # # PCMCIA character devices diff --git a/drm-vgem.patch b/drm-vgem.patch new file mode 100644 index 000000000..3610c8ba9 --- /dev/null +++ b/drm-vgem.patch @@ -0,0 +1,492 @@ +diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig +index 2418429..566c468 100644 +--- a/drivers/gpu/drm/Kconfig ++++ b/drivers/gpu/drm/Kconfig +@@ -159,6 +159,14 @@ config DRM_SAVAGE + Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister + chipset. If M is selected the module will be called savage. + ++config DRM_VGEM ++ tristate "Virtual GEM provider" ++ depends on DRM ++ help ++ Choose this option to get a virtual graphics memory manager, ++ as used by Mesa's software renderer for enhanced performance. ++ If M is selected the module will be called vgem. ++ + source "drivers/gpu/drm/exynos/Kconfig" + + source "drivers/gpu/drm/vmwgfx/Kconfig" +diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile +index 0cde1b8..021bf8a 100644 +--- a/drivers/gpu/drm/Makefile ++++ b/drivers/gpu/drm/Makefile +@@ -34,6 +34,7 @@ obj-$(CONFIG_DRM_SIS) += sis/ + obj-$(CONFIG_DRM_SAVAGE)+= savage/ + obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/ + obj-$(CONFIG_DRM_VIA) +=via/ ++obj-$(CONFIG_DRM_VGEM) += vgem/ + obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/ + obj-$(CONFIG_DRM_EXYNOS) +=exynos/ + obj-$(CONFIG_DRM_GMA500) += gma500/ +diff --git a/drivers/gpu/drm/vgem/Makefile b/drivers/gpu/drm/vgem/Makefile +new file mode 100644 +index 0000000..3f4c7b8 +--- /dev/null ++++ b/drivers/gpu/drm/vgem/Makefile +@@ -0,0 +1,4 @@ ++ccflags-y := -Iinclude/drm ++vgem-y := vgem_drv.o ++ ++obj-$(CONFIG_DRM_VGEM) += vgem.o +diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c +new file mode 100644 +index 0000000..16f88ee +--- /dev/null ++++ b/drivers/gpu/drm/vgem/vgem_drv.c +@@ -0,0 +1,377 @@ ++/* ++ * Copyright 2011 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software") ++ * to deal in the software without restriction, including without limitation ++ * on the rights to use, copy, modify, merge, publish, distribute, sub ++ * license, and/or sell copies of the Software, and to permit persons to whom ++ * them Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTIBILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER ++ * IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ * ++ * Authors: ++ * Adam Jackson ++ */ ++ ++/** ++ * This is vgem, a (non-hardware-backed) GEM service. This is used by Mesa's ++ * software renderer and the X server for efficient buffer sharing. ++ */ ++ ++#include "drmP.h" ++#include "drm.h" ++#include "vgem_drm.h" ++#include ++#include ++#include ++ ++#define DRIVER_NAME "vgem" ++#define DRIVER_DESC "Virtual GEM provider" ++#define DRIVER_DATE "20120112" ++#define DRIVER_MAJOR 1 ++#define DRIVER_MINOR 0 ++ ++#define to_vgem_bo(x) container_of(x, struct drm_vgem_gem_object, base) ++ ++struct drm_vgem_gem_object { ++ struct drm_gem_object base; ++ struct page **pages; ++}; ++ ++static int vgem_load(struct drm_device *dev, unsigned long flags) ++{ ++ return 0; ++} ++ ++static int vgem_unload(struct drm_device *dev) ++{ ++ return 0; ++} ++ ++static void vgem_preclose(struct drm_device *dev, struct drm_file *file) ++{ ++} ++ ++static void vgem_lastclose(struct drm_device *dev) ++{ ++} ++ ++static int vgem_gem_init_object(struct drm_gem_object *obj) ++{ ++ return 0; ++} ++ ++static void vgem_gem_put_pages(struct drm_vgem_gem_object *obj) ++{ ++ int num_pages = obj->base.size / PAGE_SIZE; ++ int i; ++ ++ for (i = 0; i < num_pages; i++) { ++ page_cache_release(obj->pages[i]); ++ } ++ ++ drm_free_large(obj->pages); ++ obj->pages = NULL; ++} ++ ++static void vgem_gem_free_object(struct drm_gem_object *obj) ++{ ++ struct drm_vgem_gem_object *vgem_obj = to_vgem_bo(obj); ++ ++ if (obj) ++ drm_gem_free_mmap_offset(obj); ++ ++ drm_gem_object_release(obj); ++ ++ if (vgem_obj->pages) ++ vgem_gem_put_pages(vgem_obj); ++ ++ kfree(vgem_obj); ++} ++ ++static int vgem_gem_get_pages(struct drm_vgem_gem_object *obj) ++{ ++ struct address_space *mapping; ++ gfp_t gfpmask = __GFP_NORETRY | __GFP_NOWARN; ++ int num_pages, i, ret = 0; ++ ++ num_pages = obj->base.size / PAGE_SIZE; ++ ++ if (!obj->pages) { ++ obj->pages = drm_malloc_ab(num_pages, sizeof(struct page *)); ++ if (obj->pages == NULL) ++ return -ENOMEM; ++ } ++ ++ mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping; ++ gfpmask |= mapping_gfp_mask(mapping); ++ ++ if (WARN_ON(mapping == NULL)) ++ return VM_FAULT_SIGBUS; ++ ++ for (i = 0; i < num_pages; i++) { ++ struct page *page; ++ page = shmem_read_mapping_page_gfp(mapping, i, gfpmask); ++ if (IS_ERR(page)) { ++ ret = PTR_ERR(page); ++ goto err_out; ++ } ++ obj->pages[i] = page; ++ } ++ ++ return ret; ++ ++err_out: ++ while (i--) ++ page_cache_release(obj->pages[i]); ++ drm_free_large(obj->pages); ++ obj->pages = NULL; ++ return ret; ++} ++ ++static int vgem_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) ++{ ++ struct drm_vgem_gem_object *obj = to_vgem_bo(vma->vm_private_data); ++ loff_t num_pages; ++ pgoff_t page_offset; ++ int ret; ++ ++ /* We don't use vmf->pgoff since that has the fake offset */ ++ page_offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >> ++ PAGE_SHIFT; ++ ++ num_pages = obj->base.size / PAGE_SIZE; ++ ++ if (WARN_ON(page_offset > num_pages)) ++ return VM_FAULT_SIGBUS; ++ ++ ret = vgem_gem_get_pages(obj); ++ if (ret) ++ return ret; ++ ++ ret = vm_insert_page(vma, (unsigned long)vmf->virtual_address, ++ obj->pages[page_offset]); ++ ++ /* Pretty dumb handler for now */ ++ switch (ret) { ++ case 0: ++ case -ERESTARTSYS: ++ case -EINTR: ++ return VM_FAULT_NOPAGE; ++ default: ++ return VM_FAULT_SIGBUS; ++ } ++} ++ ++static const struct vm_operations_struct vgem_gem_vm_ops = { ++ .fault = vgem_gem_fault, ++ .open = drm_gem_vm_open, ++ .close = drm_gem_vm_close, ++}; ++ ++/* ioctls */ ++ ++static struct drm_gem_object *vgem_gem_create(struct drm_device *dev, ++ struct drm_file *file, ++ unsigned int *handle, ++ unsigned long size) ++{ ++ struct drm_vgem_gem_object *obj; ++ struct drm_gem_object *gem_object; ++ int err; ++ ++ size = roundup(size, PAGE_SIZE); ++ ++ obj = kzalloc(sizeof(*obj), GFP_KERNEL); ++ if (!obj) ++ return ERR_PTR(-ENOMEM); ++ ++ gem_object = &obj->base; ++ ++ if ((err = drm_gem_object_init(dev, gem_object, size))) ++ goto out; ++ ++ if ((err = drm_gem_create_mmap_offset(gem_object))) ++ goto mmap_out; ++ ++ if ((err = drm_gem_handle_create(file, gem_object, handle))) ++ goto handle_out; ++ ++ drm_gem_object_unreference_unlocked(gem_object); ++ ++ return gem_object; ++ ++handle_out: ++ drm_gem_free_mmap_offset(gem_object); ++ ++mmap_out: ++ drm_gem_object_release(gem_object); ++ ++out: ++ kfree(gem_object); ++ ++ return ERR_PTR(err); ++} ++ ++static int vgem_gem_create_ioctl(struct drm_device *dev, void *data, ++ struct drm_file *file) ++{ ++ struct vgem_gem_create *args = data; ++ struct drm_gem_object *gem_object; ++ ++ gem_object = vgem_gem_create(dev, file, &args->handle, args->size); ++ ++ if (IS_ERR(gem_object)) ++ return PTR_ERR(gem_object); ++ ++ return 0; ++} ++ ++static int vgem_gem_mmap_ioctl(struct drm_device *dev, void *data, ++ struct drm_file *file) ++{ ++ struct vgem_gem_mmap *args = data; ++ struct drm_gem_object *obj; ++ ++ obj = drm_gem_object_lookup(dev, file, args->handle); ++ if (!obj) ++ return -ENOENT; ++ ++ obj->filp->private_data = obj; ++ ++ BUG_ON(!obj->map_list.map); ++ ++ args->mapped = (uint64_t)obj->map_list.hash.key << PAGE_SHIFT; ++ ++ drm_gem_object_unreference_unlocked(obj); ++ ++ return 0; ++} ++ ++static int vgem_gem_getparam_ioctl(struct drm_device *dev, void *data, ++ struct drm_file *file) ++{ ++ struct vgem_gem_getparam *args = data; ++ int value=0, ret; ++ ++ switch (args->param) { ++ case VGEM_PARAM_IS_VGEM: ++ value = 1; ++ } ++ ++ ret = copy_to_user(args->value, &value, sizeof(int)); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++ ++static struct drm_ioctl_desc vgem_ioctls[] = { ++ DRM_IOCTL_DEF_DRV(VGEM_GEM_CREATE, vgem_gem_create_ioctl, ++ DRM_UNLOCKED | DRM_AUTH), ++ DRM_IOCTL_DEF_DRV(VGEM_GEM_MMAP, vgem_gem_mmap_ioctl, ++ DRM_UNLOCKED | DRM_AUTH), ++ DRM_IOCTL_DEF_DRV(VGEM_GEM_GETPARAM, vgem_gem_getparam_ioctl, ++ DRM_UNLOCKED), ++}; ++ ++static const struct file_operations vgem_driver_fops = { ++ .owner = THIS_MODULE, ++ .open = drm_open, ++ .mmap = drm_gem_mmap, ++ .poll = drm_poll, ++ .read = drm_read, ++ .unlocked_ioctl = drm_ioctl, ++ .release = drm_release, ++}; ++ ++static struct drm_driver vgem_driver = { ++ .driver_features = DRIVER_BUS_PLATFORM | DRIVER_GEM, ++ .load = vgem_load, ++ .unload = vgem_unload, ++ .preclose = vgem_preclose, ++ .lastclose = vgem_lastclose, ++ .gem_init_object = vgem_gem_init_object, ++ .gem_free_object = vgem_gem_free_object, ++ .gem_vm_ops = &vgem_gem_vm_ops, ++ .ioctls = vgem_ioctls, ++ .fops = &vgem_driver_fops, ++ .name = DRIVER_NAME, ++ .desc = DRIVER_DESC, ++ .date = DRIVER_DATE, ++ .major = DRIVER_MAJOR, ++ .minor = DRIVER_MINOR, ++}; ++ ++static int vgem_platform_probe(struct platform_device *pdev) ++{ ++ vgem_driver.num_ioctls = DRM_ARRAY_SIZE(vgem_ioctls); ++ ++ return drm_platform_init(&vgem_driver, pdev); ++} ++ ++static int vgem_platform_remove(struct platform_device *pdev) ++{ ++ drm_platform_exit(&vgem_driver, pdev); ++ ++ return 0; ++} ++ ++static struct platform_driver vgem_platform_driver = { ++ .probe = vgem_platform_probe, ++ .remove = __devexit_p(vgem_platform_remove), ++ .driver = { ++ .owner = THIS_MODULE, ++ .name = DRIVER_NAME, ++ }, ++}; ++ ++static struct platform_device *vgem_device; ++ ++static int __init vgem_init(void) ++{ ++ int ret; ++ ++ if ((ret = platform_driver_register(&vgem_platform_driver))) ++ return ret; ++ ++ vgem_device = platform_device_alloc("vgem", -1); ++ if (!vgem_device) { ++ ret = -ENOMEM; ++ goto out; ++ } ++ ++ ret = platform_device_add(vgem_device); ++ if (!ret) ++ return 0; ++ ++out: ++ platform_device_put(vgem_device); ++ platform_driver_unregister(&vgem_platform_driver); ++ ++ return ret; ++} ++ ++static void __exit vgem_exit(void) ++{ ++ platform_device_unregister(vgem_device); ++ platform_driver_unregister(&vgem_platform_driver); ++} ++ ++module_init(vgem_init); ++module_exit(vgem_exit); ++ ++MODULE_AUTHOR("Red Hat, Inc."); ++MODULE_DESCRIPTION(DRIVER_DESC); ++MODULE_LICENSE("GPL and additional rights"); +diff --git a/include/drm/vgem_drm.h b/include/drm/vgem_drm.h +new file mode 100644 +index 0000000..df83503 +--- /dev/null ++++ b/include/drm/vgem_drm.h +@@ -0,0 +1,62 @@ ++/* ++ * Copyright 2011 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software") ++ * to deal in the software without restriction, including without limitation ++ * on the rights to use, copy, modify, merge, publish, distribute, sub ++ * license, and/or sell copies of the Software, and to permit persons to whom ++ * them Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTIBILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER ++ * IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN ++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++#ifndef VGEM_DRM_H ++#define VGEM_DRM_H ++ ++/* Bare API largely ripped off from exynos driver */ ++ ++struct vgem_gem_create { ++ unsigned int size; ++ unsigned int flags; ++ unsigned int handle; ++}; ++ ++struct vgem_gem_mmap { ++ unsigned int handle; ++ unsigned int size; ++ uint64_t mapped; ++}; ++ ++struct vgem_gem_getparam { ++#define VGEM_PARAM_IS_VGEM 1 ++ unsigned int param; ++ unsigned int *value; ++}; ++ ++#define DRM_VGEM_GEM_CREATE 0x00 ++#define DRM_VGEM_GEM_MMAP 0x01 ++#define DRM_VGEM_GEM_GETPARAM 0x02 ++ ++#define DRM_IOCTL_VGEM_GEM_CREATE \ ++ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_CREATE, \ ++ struct vgem_gem_create) ++ ++#define DRM_IOCTL_VGEM_GEM_MMAP \ ++ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_MMAP, \ ++ struct vgem_gem_mmap) ++ ++#define DRM_IOCTL_VGEM_GEM_GETPARAM \ ++ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_GETPARAM, \ ++ struct vgem_gem_getparam) ++ ++#endif diff --git a/kernel.spec b/kernel.spec index f3df5a7bb..30dde910b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -698,6 +698,7 @@ Patch1556: linux-3.3-virtio-scsi.patch # DRM #atch1700: drm-edid-try-harder-to-fix-up-broken-headers.patch +Patch1800: drm-vgem.patch # nouveau + drm fixes # intel drm is all merged upstream @@ -1416,6 +1417,7 @@ ApplyPatch fix_xen_guest_on_old_EC2.patch # DRM core #ApplyPatch drm-edid-try-harder-to-fix-up-broken-headers.patch +ApplyPatch drm-vgem.patch # Nouveau DRM @@ -2357,6 +2359,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 15 2012 Adam Jackson +- Add patch and config change for vgem.ko + * Wed Feb 15 2012 John W. Linville - Disable with_backports to help things to stabilize From 7952cde44b1dd9bf7a86db631d10c71aa1faa0a6 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 15 Feb 2012 18:54:41 -0500 Subject: [PATCH 026/542] Linux 3.3-rc3-git6 (upstream c38e23456278e967f094b08247ffc3711b1029b2) --- kernel.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 30dde910b..a97dd3dca 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 5 +%define gitrev 6 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2359,6 +2359,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 15 2012 Josh Boyer - Add patch and config change for vgem.ko diff --git a/sources b/sources index 334f41056..1de66e54d 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -43be43cec1dd2e5cc910d9e0d77c22eb patch-3.3-rc3-git5.xz +b2ddbd17cea95f101123cebf84c30c5a patch-3.3-rc3-git6.xz From 39fd9cfd02c9ee7dde94f7265d43afcad06c6e01 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 15 Feb 2012 19:04:43 -0500 Subject: [PATCH 027/542] Require newer linux-firmware package for updated bnx2/bnx2x drivers --- kernel.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index a97dd3dca..504728d71 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -516,7 +516,7 @@ Provides: kernel-modeset = 1\ Provides: kernel-uname-r = %{KVERREL}%{?1:.%{1}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): %{initrd_prereq}\ -Requires(pre): linux-firmware >= 20100806-2\ +Requires(pre): linux-firmware >= 20120206-0.1.git06c8f81\ Requires(post): /sbin/new-kernel-pkg\ Requires(preun): /sbin/new-kernel-pkg\ Conflicts: %{kernel_dot_org_conflicts}\ @@ -2359,8 +2359,9 @@ fi # '-' | | # '-' %changelog -* Wed Feb 15 2012 Josh Boyer - Add patch and config change for vgem.ko From 3f54814095adc5b3784e8beea5856c2fbbb077d3 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 16 Feb 2012 01:00:28 +0000 Subject: [PATCH 028/542] update ARM configs for 3.3 --- arm-tegra-nvec-kconfig.patch | 10 ++++++++ config-arm-generic | 3 +++ config-arm-highbank | 13 ----------- config-arm-imx | 14 ------------ config-arm-kirkwood | 1 - config-arm-omap-generic | 17 +------------- config-arm-tegra | 44 +++++++++++++++++++++--------------- kernel.spec | 6 +++++ 8 files changed, 46 insertions(+), 62 deletions(-) create mode 100644 arm-tegra-nvec-kconfig.patch diff --git a/arm-tegra-nvec-kconfig.patch b/arm-tegra-nvec-kconfig.patch new file mode 100644 index 000000000..7436817e5 --- /dev/null +++ b/arm-tegra-nvec-kconfig.patch @@ -0,0 +1,10 @@ +--- linux-2.6.42.noarch/drivers/staging/nvec/Kconfig.orig 2012-02-02 08:16:12.512727480 -0600 ++++ linux-2.6.42.noarch/drivers/staging/nvec/Kconfig 2012-02-01 18:44:56.674990109 -0600 +@@ -1,6 +1,6 @@ + config MFD_NVEC + bool "NV Tegra Embedded Controller SMBus Interface" +- depends on I2C && GPIOLIB && ARCH_TEGRA ++ depends on I2C && GPIOLIB && ARCH_TEGRA && MFD_CORE=y + help + Say Y here to enable support for a nVidia compliant embedded + controller. diff --git a/config-arm-generic b/config-arm-generic index fb2a7355d..e87365e22 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -189,6 +189,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768 # drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration] # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX is not set +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # # FIXME: Guesses, need checking # CONFIG_MACH_EUKREA_CPUIMX35SD is not set @@ -209,3 +210,5 @@ CONFIG_ARM_ERRATA_751472=y # CONFIG_MACH_MX53_LOCO is not set # CONFIG_MACH_MX53_ARD is not set # CONFIG_ARM_EXYNOS4210_CPUFREQ is not set + +CONFIG_OF_GPIO=y diff --git a/config-arm-highbank b/config-arm-highbank index d4aca8222..18fc0c4cc 100644 --- a/config-arm-highbank +++ b/config-arm-highbank @@ -1,16 +1,3 @@ ONFIG_ARCH_HIGHBANK=y CONFIG_VFP=y CONFIG_NEON=y - -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEBUG=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y diff --git a/config-arm-imx b/config-arm-imx index e28c2cb55..d1ce04e39 100644 --- a/config-arm-imx +++ b/config-arm-imx @@ -81,24 +81,10 @@ CONFIG_IMX2_WDT=m CONFIG_SND_SOC_PHYCORE_AC97=m CONFIG_SND_SOC_EUKREA_TLV320=m -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEBUG=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y - CONFIG_PL310_ERRATA_769419=y CONFIG_LEDS_RENESAS_TPU=y # CONFIG_ARM_LPAE is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set diff --git a/config-arm-kirkwood b/config-arm-kirkwood index a81438364..592b5aa1b 100644 --- a/config-arm-kirkwood +++ b/config-arm-kirkwood @@ -40,7 +40,6 @@ CONFIG_RTC_DRV_MV=m CONFIG_MV_XOR=y CONFIG_CRYPTO_DEV_MV_CESA=m -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set diff --git a/config-arm-omap-generic b/config-arm-omap-generic index 9e15f6379..21063a2c7 100644 --- a/config-arm-omap-generic +++ b/config-arm-omap-generic @@ -153,22 +153,8 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="" # CONFIG_AUTO_ZRELADDR is not set -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_DEBUG=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_VFPv3=y CONFIG_NEON=y @@ -1084,7 +1070,6 @@ CONFIG_LEDS_RENESAS_TPU=y CONFIG_USB_RENESAS_USBHS_HCD=m # CONFIG_ARM_LPAE is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_SOC_OMAPTI81XX is not set diff --git a/config-arm-tegra b/config-arm-tegra index 4c537ef5e..f07164376 100644 --- a/config-arm-tegra +++ b/config-arm-tegra @@ -1,15 +1,29 @@ CONFIG_ARCH_TEGRA=y + +CONFIG_ARCH_TEGRA_2x_SOC=y +CONFIG_ARCH_TEGRA_3x_SOC=y +# CONFIG_ARM_LPAE is not set +CONFIG_TEGRA_PCI=y + +CONFIG_VFP=y +CONFIG_VFPv3=y + CONFIG_MACH_HARMONY=y CONFIG_MACH_KAEN=y CONFIG_MACH_PAZ00=y +CONFIG_MACH_SEABOARD=y +CONFIG_MACH_TEGRA_DT=y CONFIG_MACH_TRIMSLICE=y CONFIG_MACH_WARIO=y CONFIG_MACH_TEGRA_DT=y +CONFIG_MACH_VENTANA=y + CONFIG_TEGRA_DEBUG_UARTD=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y -CONFIG_NR_CPUS=2 +CONFIG_NR_CPUS=4 +CONFIG_ARM_CPU_TOPOLOGY=y CONFIG_PREEMPT=y CONFIG_AEABI=y @@ -51,7 +65,7 @@ CONFIG_HW_PERF_EVENTS=y # CONFIG_RFKILL_GPIO is not set CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_MCP23S08 is not set -CONFIG_KEYBOARD_TEGRA=y +# CONFIG_KEYBOARD_TEGRA is not set # CONFIG_MPCORE_WATCHDOG is not set CONFIG_USB_EHCI_TEGRA=y CONFIG_RTC_DRV_TEGRA=m @@ -68,31 +82,19 @@ CONFIG_KEYBOARD_NVEC=y CONFIG_SERIO_NVEC_PS2=y CONFIG_NVEC_POWER=y CONFIG_POWER_SUPPLY=y +CONFIG_NVEC_LEDS=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEBUG=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=m -CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m -CONFIG_CPU_FREQ_TABLE=y -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y CONFIG_CRYSTALHD=m -CONFIG_MACH_VENTANA=y CONFIG_PL310_ERRATA_753970=y -CONFIG_ARM_CPU_TOPOLOGY=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y CONFIG_LEDS_RENESAS_TPU=y -# CONFIG_ARCH_TEGRA_2x_SOC is not set -# CONFIG_ARCH_TEGRA_3x_SOC is not set # CONFIG_ARM_EXYNOS4210_CPUFREQ is not set # CONFIG_ETHERNET is not set # CONFIG_NET_VENDOR_BROADCOM is not set @@ -102,3 +104,9 @@ CONFIG_LEDS_RENESAS_TPU=y # CONFIG_DVB_PLL is not set # CONFIG_SND_SOC_TEGRA_ALC5632 is not set +CONFIG_PCI=y +CONFIG_PCI_SYSCALL=y +CONFIG_OF_GPIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y + diff --git a/kernel.spec b/kernel.spec index 504728d71..661180d60 100644 --- a/kernel.spec +++ b/kernel.spec @@ -735,6 +735,7 @@ Patch20000: utrace.patch # Flattened devicetree support Patch21000: arm-omap-dt-compat.patch Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch +Patch21004: arm-tegra-nvec-kconfig.patch Patch21070: ext4-Support-check-none-nocheck-mount-options.patch @@ -1330,6 +1331,7 @@ ApplyPatch linux-2.6-i386-nx-emulation.patch # #pplyPatch arm-omap-dt-compat.patch ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch +ApplyPatch arm-tegra-nvec-kconfig.patch # # bugfixes to drivers and filesystems @@ -2359,6 +2361,10 @@ fi # '-' | | # '-' %changelog +* Wed Feb 15 2012 Peter Robinson +- Update ARM configs to 3.3 kernel +- use mainline cpu freq options on ARM + * Wed Feb 15 2012 Josh Boyer Date: Thu, 16 Feb 2012 11:19:26 +0000 Subject: [PATCH 029/542] comment out NVEC patch for the moment --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 661180d60..c53fb57f8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1331,7 +1331,7 @@ ApplyPatch linux-2.6-i386-nx-emulation.patch # #pplyPatch arm-omap-dt-compat.patch ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch -ApplyPatch arm-tegra-nvec-kconfig.patch +#ApplyPatch arm-tegra-nvec-kconfig.patch # # bugfixes to drivers and filesystems From 157fe84354fd1207d1a32ab97410cd90e9b125e3 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 17 Feb 2012 10:20:00 -0500 Subject: [PATCH 030/542] Linux 3.3-rc3-git7 (upstream 4903062b5485f0e2c286a23b44c9b59d9b017d53) --- kernel.spec | 9 ++- linux-2.6-i386-nx-emulation.patch | 102 +++++++++++++++++++----------- sources | 2 +- 3 files changed, 73 insertions(+), 40 deletions(-) diff --git a/kernel.spec b/kernel.spec index c53fb57f8..c36c00f8c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 6 +%define gitrev 7 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2361,11 +2361,14 @@ fi # '-' | | # '-' %changelog +* Fri Feb 17 2012 Josh Boyer - 3.3.0-0.rc3.git7.1 +- Linux 3.3-rc3-git7 (upstream 4903062b5485f0e2c286a23b44c9b59d9b017d53) + * Wed Feb 15 2012 Peter Robinson - Update ARM configs to 3.3 kernel - use mainline cpu freq options on ARM -* Wed Feb 15 2012 Josh Boyer - 3.3.0-0.rc3.git6.2 - Linux 3.3-rc3-git6 (upstream c38e23456278e967f094b08247ffc3711b1029b2) - Require newer linux-firmware package for updated bnx2/bnx2x drivers diff --git a/linux-2.6-i386-nx-emulation.patch b/linux-2.6-i386-nx-emulation.patch index 07a0faec8..d1624362b 100644 --- a/linux-2.6-i386-nx-emulation.patch +++ b/linux-2.6-i386-nx-emulation.patch @@ -1,3 +1,5 @@ +diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h +index e95822d..00b222f 100644 --- a/arch/x86/include/asm/desc.h +++ b/arch/x86/include/asm/desc.h @@ -5,6 +5,7 @@ @@ -8,7 +10,7 @@ #include static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *info) -@@ -97,6 +98,9 @@ static inline int desc_empty(const void *ptr) +@@ -99,6 +100,9 @@ static inline int desc_empty(const void *ptr) #define load_TLS(t, cpu) native_load_tls(t, cpu) #define set_ldt native_set_ldt @@ -18,7 +20,7 @@ #define write_ldt_entry(dt, entry, desc) native_write_ldt_entry(dt, entry, desc) #define write_gdt_entry(dt, entry, desc, type) native_write_gdt_entry(dt, entry, desc, type) -@@ -392,4 +396,25 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist) +@@ -404,4 +408,25 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist) _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); } @@ -44,6 +46,8 @@ +#endif /* CONFIG_X86_32 */ + #endif /* _ASM_X86_DESC_H */ +diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h +index 5f55e69..aba94f0 100644 --- a/arch/x86/include/asm/mmu.h +++ b/arch/x86/include/asm/mmu.h @@ -7,6 +7,9 @@ @@ -68,9 +72,11 @@ } mm_context_t; #ifdef CONFIG_SMP +diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h +index a7d2db9..cc4ad60 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h -@@ -289,6 +289,12 @@ static inline void set_ldt(const void *addr, unsigned entries) +@@ -298,6 +298,12 @@ static inline void set_ldt(const void *addr, unsigned entries) { PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); } @@ -83,9 +89,11 @@ static inline void store_gdt(struct desc_ptr *dtr) { PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); +diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h +index 8e8b9a4..cca421e 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h -@@ -118,6 +118,9 @@ struct pv_cpu_ops { +@@ -125,6 +125,9 @@ struct pv_cpu_ops { void (*store_gdt)(struct desc_ptr *); void (*store_idt)(struct desc_ptr *); void (*set_ldt)(const void *desc, unsigned entries); @@ -95,9 +103,11 @@ unsigned long (*store_tr)(void); void (*load_tls)(struct thread_struct *t, unsigned int cpu); #ifdef CONFIG_X86_64 +diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c +index d43cad7..07da281 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c -@@ -802,6 +802,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c) +@@ -839,6 +839,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c) /* Filter out anything that depends on CPUID levels we don't have */ filter_cpuid_features(c, true); @@ -120,9 +130,11 @@ /* If the model name is still unset, do table lookup. */ if (!c->x86_model_id[0]) { const char *p; +diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c +index d90272e..cc594fc 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c -@@ -345,6 +345,9 @@ struct pv_cpu_ops pv_cpu_ops = { +@@ -358,6 +358,9 @@ struct pv_cpu_ops pv_cpu_ops = { .read_tscp = native_read_tscp, .load_tr_desc = native_load_tr_desc, .set_ldt = native_set_ldt, @@ -132,9 +144,11 @@ .load_gdt = native_load_gdt, .load_idt = native_load_idt, .store_gdt = native_store_gdt, +diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c +index 324cd72..95618a4 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c -@@ -243,7 +243,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, +@@ -249,7 +249,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, void start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) { @@ -145,7 +159,7 @@ regs->fs = 0; regs->ds = __USER_DS; regs->es = __USER_DS; -@@ -252,6 +255,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) +@@ -257,6 +260,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) regs->cs = __USER_CS; regs->ip = new_ip; regs->sp = new_sp; @@ -157,17 +171,17 @@ /* * Free the old FP and other extended state */ -@@ -311,6 +319,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) - if (preload_fpu) - prefetch(next->fpu.state); +@@ -321,6 +329,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) + */ + lazy_save_gs(prev->gs); + if (next_p->mm) + load_user_cs_desc(cpu, next_p->mm); + /* - * Reload esp0. + * Load the per-thread Thread-Local Storage descriptor. */ -@@ -404,3 +415,40 @@ unsigned long get_wchan(struct task_struct *p) +@@ -389,3 +400,40 @@ unsigned long get_wchan(struct task_struct *p) return 0; } @@ -208,9 +222,11 @@ + mm->context.exec_limit = 0; + set_user_cs(&mm->context.user_cs, 0); +} +diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c +index 4d42300..4cb14a1 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c -@@ -109,6 +109,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs) +@@ -107,6 +107,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs) dec_preempt_count(); } @@ -289,7 +305,7 @@ static void __kprobes do_trap(int trapnr, int signr, char *str, struct pt_regs *regs, long error_code, siginfo_t *info) -@@ -265,6 +337,29 @@ do_general_protection(struct pt_regs *regs, long error_code) +@@ -263,6 +335,29 @@ do_general_protection(struct pt_regs *regs, long error_code) if (!user_mode(regs)) goto gp_in_kernel; @@ -319,7 +335,7 @@ tsk->thread.error_code = error_code; tsk->thread.trap_no = 13; -@@ -792,19 +887,37 @@ do_device_not_available(struct pt_regs *regs, long error_code) +@@ -650,19 +745,37 @@ do_device_not_available(struct pt_regs *regs, long error_code) } #ifdef CONFIG_X86_32 @@ -366,6 +382,8 @@ } #endif +diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c +index 410531d..eb040ad 100644 --- a/arch/x86/mm/setup_nx.c +++ b/arch/x86/mm/setup_nx.c @@ -1,3 +1,4 @@ @@ -373,16 +391,16 @@ #include #include #include -@@ -6,7 +6,7 @@ +@@ -5,7 +6,7 @@ #include #include - + -static int disable_nx __cpuinitdata; +int disable_nx __cpuinitdata; - + /* * noexec = on|off -@@ -40,6 +42,10 @@ void __cpuinit x86_configure_nx(void) +@@ -40,6 +41,10 @@ void __cpuinit x86_configure_nx(void) void __init x86_report_nx(void) { if (!cpu_has_nx) { @@ -393,9 +411,11 @@ printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " "missing in CPU!\n"); } else { +diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c +index d6c0418..c15b765 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c -@@ -6,6 +6,7 @@ +@@ -7,6 +7,7 @@ #include #include @@ -403,7 +423,7 @@ #include #include #include -@@ -131,6 +132,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs) +@@ -134,6 +135,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs) union smp_flush_state *f; cpu = smp_processor_id(); @@ -416,9 +436,11 @@ /* * orig_rax contains the negated interrupt vector. * Use that to determine where the sender put the data. +diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c +index 12eb07b..c48ed49 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c -@@ -335,6 +335,24 @@ static void xen_set_ldt(const void *addr, unsigned entries) +@@ -354,6 +354,24 @@ static void xen_set_ldt(const void *addr, unsigned entries) xen_mc_issue(PARAVIRT_LAZY_CPU); } @@ -443,7 +465,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr) { unsigned long va = dtr->address; -@@ -961,6 +979,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = { +@@ -994,6 +1012,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = { .load_tr_desc = paravirt_nop, .set_ldt = xen_set_ldt, @@ -453,9 +475,11 @@ .load_gdt = xen_load_gdt, .load_idt = xen_load_idt, .load_tls = xen_load_tls, +diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c +index bcb884e..94e82fa 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c -@@ -717,6 +722,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) +@@ -711,6 +711,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) if (retval) goto out_free_dentry; @@ -471,9 +495,11 @@ /* OK, This is the point of no return */ current->flags &= ~PF_FORKNOEXEC; current->mm->def_flags = def_flags; +diff --git a/include/linux/sched.h b/include/linux/sched.h +index 7d379a6..90ccb05 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h -@@ -101,6 +101,9 @@ struct bio_list; +@@ -102,6 +102,9 @@ struct fs_struct; struct perf_event_context; struct blk_plug; @@ -483,9 +509,11 @@ /* * List of flags we want to share for kernel threads, * if only because they are not used by them anyway. ---- b/mm/mmap.c +diff --git a/mm/mmap.c b/mm/mmap.c +index 3f758c7..0e29e1b 100644 +--- a/mm/mmap.c +++ b/mm/mmap.c -@@ -44,6 +45,18 @@ +@@ -46,6 +46,18 @@ #define arch_rebalance_pgtables(addr, len) (addr) #endif @@ -504,7 +532,7 @@ static void unmap_region(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, unsigned long start, unsigned long end); -@@ -432,6 +432,8 @@ __vma_link(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -424,6 +436,8 @@ __vma_link(struct mm_struct *mm, struct vm_area_struct *vma, struct vm_area_struct *prev, struct rb_node **rb_link, struct rb_node *rb_parent) { @@ -513,7 +541,7 @@ __vma_link_list(mm, vma, prev, rb_parent); __vma_link_rb(mm, vma, rb_link, rb_parent); } -@@ -489,6 +504,8 @@ +@@ -478,6 +492,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma, rb_erase(&vma->vm_rb, &mm->mm_rb); if (mm->mmap_cache == vma) mm->mmap_cache = prev; @@ -522,7 +550,7 @@ } /* -@@ -790,6 +807,8 @@ +@@ -794,6 +810,8 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, } else /* cases 2, 5, 7 */ err = vma_adjust(prev, prev->vm_start, end, prev->vm_pgoff, NULL); @@ -530,8 +558,8 @@ + arch_add_exec_range(mm, prev->vm_end); if (err) return NULL; - return prev; -@@ -1966,10 +2075,14 @@ + khugepaged_enter_vma_merge(prev); +@@ -1952,10 +1970,14 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); @@ -548,7 +576,7 @@ err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); /* Success. */ -@@ -2254,6 +2367,7 @@ +@@ -2243,6 +2265,7 @@ void exit_mmap(struct mm_struct *mm) free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0); tlb_finish_mmu(&tlb, 0, end); @@ -556,6 +584,8 @@ /* * Walk the list again, actually closing and freeing it, +diff --git a/mm/mprotect.c b/mm/mprotect.c +index 5a688a2..128d996 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -25,9 +25,14 @@ @@ -573,7 +603,7 @@ #ifndef pgprot_modify static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot) { -@@ -138,7 +143,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev, +@@ -148,7 +153,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev, struct mm_struct *mm = vma->vm_mm; unsigned long oldflags = vma->vm_flags; long nrpages = (end - start) >> PAGE_SHIFT; @@ -582,7 +612,7 @@ pgoff_t pgoff; int error; int dirty_accountable = 0; -@@ -203,6 +208,9 @@ success: +@@ -213,6 +218,9 @@ success: dirty_accountable = 1; } diff --git a/sources b/sources index 1de66e54d..3ade89188 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -b2ddbd17cea95f101123cebf84c30c5a patch-3.3-rc3-git6.xz +b40a74d3c729eeb54509258ce4aec751 patch-3.3-rc3-git7.xz From 9163dd76663ed017a91b75977e8a28d64c1579d1 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 17 Feb 2012 12:42:55 -0500 Subject: [PATCH 031/542] Freeze all filesystems during system suspend/hibernate. Rebased http://marc.info/?l=linux-kernel&m=132775832509351&w=4 to 3.3-rc3 --- hibernate-freeze-filesystems.patch | 287 +++++++++++++++++++++++++++++ kernel.spec | 9 +- 2 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 hibernate-freeze-filesystems.patch diff --git a/hibernate-freeze-filesystems.patch b/hibernate-freeze-filesystems.patch new file mode 100644 index 000000000..841cab643 --- /dev/null +++ b/hibernate-freeze-filesystems.patch @@ -0,0 +1,287 @@ +commit b94887bbc0621e1e8402e7f0ec4bc3adf46c9a6e +Author: Rafael J. Wysocki +Date: Fri Feb 17 12:42:08 2012 -0500 + + Freeze all filesystems during system suspend and (kernel-driven) + hibernation by calling freeze_supers() for all superblocks and thaw + them during the subsequent resume with the help of thaw_supers(). + + This makes filesystems stay in a consistent state in case something + goes wrong between system suspend (or hibernation) and the subsequent + resume (e.g. journal replays won't be necessary in those cases). In + particular, this should help to solve a long-standing issue that, in + some cases, during resume from hibernation the boot loader causes the + journal to be replied for the filesystem containing the kernel image + and/or initrd causing it to become inconsistent with the information + stored in the hibernation image. + + The user-space-driven hibernation (s2disk) is not covered by this + change, because the freezing of filesystems prevents s2disk from + accessing device special files it needs to do its job. + + This change is based on earlier work by Nigel Cunningham. + + Signed-off-by: Rafael J. Wysocki + + Rebased to 3.3-rc3 by Josh Boyer + +diff --git a/fs/super.c b/fs/super.c +index 6015c02..c8057fa 100644 +--- a/fs/super.c ++++ b/fs/super.c +@@ -594,6 +594,79 @@ void iterate_supers_type(struct file_system_type *type, + EXPORT_SYMBOL(iterate_supers_type); + + /** ++ * thaw_supers - call thaw_super() for all superblocks ++ */ ++void thaw_supers(void) ++{ ++ struct super_block *sb, *p = NULL; ++ ++ spin_lock(&sb_lock); ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ if (hlist_unhashed(&sb->s_instances)) ++ continue; ++ sb->s_count++; ++ spin_unlock(&sb_lock); ++ ++ if (sb->s_flags & MS_FROZEN) { ++ thaw_super(sb); ++ sb->s_flags &= ~MS_FROZEN; ++ } ++ ++ spin_lock(&sb_lock); ++ if (p) ++ __put_super(p); ++ p = sb; ++ } ++ if (p) ++ __put_super(p); ++ spin_unlock(&sb_lock); ++} ++ ++/** ++ * freeze_supers - call freeze_super() for all superblocks ++ */ ++int freeze_supers(void) ++{ ++ struct super_block *sb, *p = NULL; ++ int error = 0; ++ ++ spin_lock(&sb_lock); ++ /* ++ * Freeze in reverse order so filesystems depending on others are ++ * frozen in the right order (eg. loopback on ext3). ++ */ ++ list_for_each_entry_reverse(sb, &super_blocks, s_list) { ++ if (hlist_unhashed(&sb->s_instances)) ++ continue; ++ sb->s_count++; ++ spin_unlock(&sb_lock); ++ ++ if (sb->s_root && sb->s_frozen != SB_FREEZE_TRANS ++ && !(sb->s_flags & MS_RDONLY)) { ++ error = freeze_super(sb); ++ if (!error) ++ sb->s_flags |= MS_FROZEN; ++ } ++ ++ spin_lock(&sb_lock); ++ if (error) ++ break; ++ if (p) ++ __put_super(p); ++ p = sb; ++ } ++ if (p) ++ __put_super(p); ++ spin_unlock(&sb_lock); ++ ++ if (error) ++ thaw_supers(); ++ ++ return error; ++} ++ ++ ++/** + * get_super - get the superblock of a device + * @bdev: device to get the superblock for + * +diff --git a/include/linux/fs.h b/include/linux/fs.h +index 386da09..a164f4a 100644 +--- a/include/linux/fs.h ++++ b/include/linux/fs.h +@@ -210,6 +210,7 @@ struct inodes_stat_t { + #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ + #define MS_I_VERSION (1<<23) /* Update inode I_version field */ + #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ ++#define MS_FROZEN (1<<25) /* Frozen filesystem */ + #define MS_NOSEC (1<<28) + #define MS_BORN (1<<29) + #define MS_ACTIVE (1<<30) +@@ -2501,6 +2502,8 @@ extern void drop_super(struct super_block *sb); + extern void iterate_supers(void (*)(struct super_block *, void *), void *); + extern void iterate_supers_type(struct file_system_type *, + void (*)(struct super_block *, void *), void *); ++extern int freeze_supers(void); ++extern void thaw_supers(void); + + extern int dcache_dir_open(struct inode *, struct file *); + extern int dcache_dir_close(struct inode *, struct file *); +diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c +index 6d6d288..492fc62 100644 +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -626,12 +626,17 @@ int hibernate(void) + if (error) + goto Finish; + +- error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); ++ error = freeze_supers(); + if (error) + goto Thaw; ++ ++ error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); ++ if (error) ++ goto Thaw_fs; ++ + if (freezer_test_done) { + freezer_test_done = false; +- goto Thaw; ++ goto Thaw_fs; + } + + if (in_suspend) { +@@ -655,6 +660,8 @@ int hibernate(void) + pr_debug("PM: Image restored successfully.\n"); + } + ++ Thaw_fs: ++ thaw_supers(); + Thaw: + thaw_processes(); + Finish: +diff --git a/kernel/power/power.h b/kernel/power/power.h +index 21724ee..40d6f64 100644 +--- a/kernel/power/power.h ++++ b/kernel/power/power.h +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +@@ -227,45 +228,3 @@ enum { + #define TEST_MAX (__TEST_AFTER_LAST - 1) + + extern int pm_test_level; +- +-#ifdef CONFIG_SUSPEND_FREEZER +-static inline int suspend_freeze_processes(void) +-{ +- int error; +- +- error = freeze_processes(); +- +- /* +- * freeze_processes() automatically thaws every task if freezing +- * fails. So we need not do anything extra upon error. +- */ +- if (error) +- goto Finish; +- +- error = freeze_kernel_threads(); +- +- /* +- * freeze_kernel_threads() thaws only kernel threads upon freezing +- * failure. So we have to thaw the userspace tasks ourselves. +- */ +- if (error) +- thaw_processes(); +- +- Finish: +- return error; +-} +- +-static inline void suspend_thaw_processes(void) +-{ +- thaw_processes(); +-} +-#else +-static inline int suspend_freeze_processes(void) +-{ +- return 0; +-} +- +-static inline void suspend_thaw_processes(void) +-{ +-} +-#endif +diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c +index 4fd51be..5f51fc7 100644 +--- a/kernel/power/suspend.c ++++ b/kernel/power/suspend.c +@@ -29,6 +29,62 @@ + + #include "power.h" + ++#ifdef CONFIG_SUSPEND_FREEZER ++ ++static inline int suspend_freeze_processes(void) ++{ ++ int error; ++ ++ error = freeze_processes(); ++ ++ /* ++ * freeze_processes() automatically thaws every task if freezing ++ * fails. So we need not do anything extra upon error. ++ */ ++ ++ if (error) ++ goto Finish; ++ ++ error = freeze_supers(); ++ if (error) { ++ thaw_processes(); ++ goto Finish; ++ } ++ ++ error = freeze_kernel_threads(); ++ ++ /* ++ * freeze_kernel_threads() thaws only kernel threads upon freezing ++ * failure. So we have to thaw the userspace tasks ourselves. ++ */ ++ if (error) { ++ thaw_supers(); ++ thaw_processes(); ++ } ++ ++Finish: ++ return error; ++} ++ ++static inline void suspend_thaw_processes(void) ++{ ++ thaw_supers(); ++ thaw_processes(); ++} ++ ++#else /* !CONFIG_SUSPEND_FREEZER */ ++ ++static inline int suspend_freeze_processes(void) ++{ ++ return 0; ++} ++ ++static inline void suspend_thaw_processes(void) ++{ ++} ++ ++#endif /* !CONFIG_SUSPEND_FREEZER */ ++ + const char *const pm_states[PM_SUSPEND_MAX] = { + [PM_SUSPEND_STANDBY] = "standby", + [PM_SUSPEND_MEM] = "mem", diff --git a/kernel.spec b/kernel.spec index c36c00f8c..ae1afaf42 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -730,6 +730,8 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch +Patch14000: hibernate-freeze-filesystems.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1447,6 +1449,8 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch +ApplyPatch hibernate-freeze-filesystems.patch + # utrace. ApplyPatch utrace.patch @@ -2361,6 +2365,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 17 2012 Josh Boyer - 3.3.0-0.rc3.git7.2 +- Freeze all filesystems during system suspend/hibernate. + * Fri Feb 17 2012 Josh Boyer - 3.3.0-0.rc3.git7.1 - Linux 3.3-rc3-git7 (upstream 4903062b5485f0e2c286a23b44c9b59d9b017d53) From 9ce789da049a3774a7168abe2a7e16e2a61e3aae Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 17 Feb 2012 14:56:54 -0500 Subject: [PATCH 032/542] Reenable radio drivers. (rhbz 784824) --- config-generic | 15 ++++++++++++++- kernel.spec | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config-generic b/config-generic index 0cfc756ff..b73d61559 100644 --- a/config-generic +++ b/config-generic @@ -4001,7 +4001,20 @@ CONFIG_NET_VENDOR_SMC=y # CONFIG_MOUSE_ATIXL is not set -# CONFIG_RADIO_ADAPTERS is not set +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_ZOLTRIX=m CONFIG_SND_DARLA20=m CONFIG_SND_GINA20=m diff --git a/kernel.spec b/kernel.spec index ae1afaf42..c162db70b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2365,6 +2365,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 17 2012 Dave Jones +- Reenable radio drivers. (rhbz 784824) + * Fri Feb 17 2012 Josh Boyer - 3.3.0-0.rc3.git7.2 - Freeze all filesystems during system suspend/hibernate. From ad44e064a083aff8a9411719caffcf1fc56726f7 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 17 Feb 2012 16:01:21 -0500 Subject: [PATCH 033/542] improve handling of null rate in LIS3LV02Dx accelerometer driver. (rhbz 785814) --- kernel.spec | 7 +++ lis3-improve-handling-of-null-rate.patch | 79 ++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 lis3-improve-handling-of-null-rate.patch diff --git a/kernel.spec b/kernel.spec index c162db70b..435ff6ef6 100644 --- a/kernel.spec +++ b/kernel.spec @@ -732,6 +732,8 @@ Patch13003: efi-dont-map-boot-services-on-32bit.patch Patch14000: hibernate-freeze-filesystems.patch +Patch14010: lis3-improve-handling-of-null-rate.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1451,6 +1453,8 @@ ApplyPatch efi-dont-map-boot-services-on-32bit.patch ApplyPatch hibernate-freeze-filesystems.patch +ApplyPatch lis3-improve-handling-of-null-rate.patch + # utrace. ApplyPatch utrace.patch @@ -2365,6 +2369,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 17 2012 Dave Jones +- improve handling of null rate in LIS3LV02Dx accelerometer driver. (rhbz 785814) + * Fri Feb 17 2012 Dave Jones - Reenable radio drivers. (rhbz 784824) diff --git a/lis3-improve-handling-of-null-rate.patch b/lis3-improve-handling-of-null-rate.patch new file mode 100644 index 000000000..98512564a --- /dev/null +++ b/lis3-improve-handling-of-null-rate.patch @@ -0,0 +1,79 @@ +>From 56fb161a9ca0129f8e266e4dbe79346552ff8089 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=89ric=20Piel?= +Date: Thu, 3 Nov 2011 16:22:40 +0100 +Subject: [PATCH] lis3: Improve handling of null rate +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When obtaining a rate of 0, we would disable the device supposely +because it seems to behave incorectly. It actually only comes from the +fact that the device is off and on lis3dc it's reflected in the rate. +So handle this nicely by just waiting a safe time, and then using the +device as normally. + +Signed-off-by: ??ric Piel +--- + drivers/misc/lis3lv02d/lis3lv02d.c | 16 ++++++++-------- + 1 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c +index 35c67e0..42dce2a 100644 +--- a/drivers/misc/lis3lv02d/lis3lv02d.c ++++ b/drivers/misc/lis3lv02d/lis3lv02d.c +@@ -188,7 +188,8 @@ static void lis3lv02d_get_xyz(struct lis3lv02d *lis3, int *x, int *y, int *z) + /* conversion btw sampling rate and the register values */ + static int lis3_12_rates[4] = {40, 160, 640, 2560}; + static int lis3_8_rates[2] = {100, 400}; +-static int lis3_3dc_rates[16] = {0, 1, 10, 25, 50, 100, 200, 400, 1600, 5000}; ++/* LIS3DC: 0 = power off, above 9 = undefined */ ++static int lis3_3dc_rates[16] = {0, 1, 10, 25, 50, 100, 200, 400, 1600, 5000, -1, -1, -1, -1, -1, -1}; + + /* ODR is Output Data Rate */ + static int lis3lv02d_get_odr(struct lis3lv02d *lis3) +@@ -202,12 +203,11 @@ static int lis3lv02d_get_odr(struct lis3lv02d *lis3) + return lis3->odrs[(ctrl >> shift)]; + } + +-static int lis3lv02d_get_pwron_wait(struct lis3lv02d *lis3) ++static int lis3lv02d_wait_pwron(struct lis3lv02d *lis3) + { + int div = lis3lv02d_get_odr(lis3); +- +- if (WARN_ONCE(div == 0, "device returned spurious data")) +- return -ENXIO; ++ if (div <= 0) ++ div = 1; /* maximum delay */ + + /* LIS3 power on delay is quite long */ + msleep(lis3->pwron_delay / div); +@@ -274,7 +274,7 @@ static int lis3lv02d_selftest(struct lis3lv02d *lis3, s16 results[3]) + + lis3->read(lis3, ctlreg, ®); + lis3->write(lis3, ctlreg, (reg | selftest)); +- ret = lis3lv02d_get_pwron_wait(lis3); ++ ret = lis3lv02d_wait_pwron(lis3); + if (ret) + goto fail; + +@@ -285,7 +285,7 @@ static int lis3lv02d_selftest(struct lis3lv02d *lis3, s16 results[3]) + + /* back to normal settings */ + lis3->write(lis3, ctlreg, reg); +- ret = lis3lv02d_get_pwron_wait(lis3); ++ ret = lis3lv02d_wait_pwron(lis3); + if (ret) + goto fail; + +@@ -397,7 +397,7 @@ int lis3lv02d_poweron(struct lis3lv02d *lis3) + lis3->write(lis3, CTRL_REG2, reg); + } + +- err = lis3lv02d_get_pwron_wait(lis3); ++ err = lis3lv02d_wait_pwron(lis3); + if (err) + return err; + +-- +1.7.7.1 + From d92680c83563a598404cdefab048d293fe630c6f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 19 Feb 2012 12:42:27 +0000 Subject: [PATCH 034/542] More ARM config updates, fix NVEC patch --- arm-tegra-nvec-kconfig.patch | 16 ++++++++-------- config-arm-generic | 2 ++ config-arm-imx | 1 - config-arm-omap-generic | 4 ---- config-arm-tegra | 1 - kernel.spec | 6 +++++- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/arm-tegra-nvec-kconfig.patch b/arm-tegra-nvec-kconfig.patch index 7436817e5..a3f568cd5 100644 --- a/arm-tegra-nvec-kconfig.patch +++ b/arm-tegra-nvec-kconfig.patch @@ -1,10 +1,10 @@ ---- linux-2.6.42.noarch/drivers/staging/nvec/Kconfig.orig 2012-02-02 08:16:12.512727480 -0600 -+++ linux-2.6.42.noarch/drivers/staging/nvec/Kconfig 2012-02-01 18:44:56.674990109 -0600 +--- linux-2.6.42.noarch/drivers/staging/nvec/Kconfig.orig 2012-02-02 08:16:12.512727480 -0600 ++++ linux-2.6.42.noarch/drivers/staging/nvec/Kconfig 2012-02-01 18:44:56.674990109 -0600 @@ -1,6 +1,6 @@ config MFD_NVEC - bool "NV Tegra Embedded Controller SMBus Interface" -- depends on I2C && GPIOLIB && ARCH_TEGRA -+ depends on I2C && GPIOLIB && ARCH_TEGRA && MFD_CORE=y - help - Say Y here to enable support for a nVidia compliant embedded - controller. + bool "NV Tegra Embedded Controller SMBus Interface" +- depends on I2C && GPIOLIB && ARCH_TEGRA ++ depends on I2C && GPIOLIB && ARCH_TEGRA && MFD_CORE=y + help + Say Y here to enable support for a nVidia compliant embedded + controller. diff --git a/config-arm-generic b/config-arm-generic index e87365e22..ea1390690 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -42,6 +42,8 @@ CONFIG_ARM_THUMB=y CONFIG_AEABI=y CONFIG_OABI_COMPAT=y +CONFIG_HW_PERF_EVENTS=y + # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" diff --git a/config-arm-imx b/config-arm-imx index d1ce04e39..f4c7d26cb 100644 --- a/config-arm-imx +++ b/config-arm-imx @@ -39,7 +39,6 @@ CONFIG_ARM_ERRATA_411920=y CONFIG_PL310_ERRATA_588369=y CONFIG_PL310_ERRATA_727915=y CONFIG_ARM_ERRATA_364296=y -CONFIG_HW_PERF_EVENTS=y CONFIG_RFKILL_GPIO=m CONFIG_PATA_IMX=m CONFIG_ETHERNET=y diff --git a/config-arm-omap-generic b/config-arm-omap-generic index 21063a2c7..473ae7a87 100644 --- a/config-arm-omap-generic +++ b/config-arm-omap-generic @@ -10,7 +10,6 @@ CONFIG_RCU_FANOUT=32 # CONFIG_RCU_BOOST is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y -# CONFIG_BLK_CGROUP is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -143,9 +142,7 @@ CONFIG_LOCAL_TIMERS=y CONFIG_PREEMPT=y CONFIG_HZ=128 # CONFIG_THUMB2_KERNEL is not set -# CONFIG_OABI_COMPAT is not set CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -CONFIG_HW_PERF_EVENTS=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_KSM is not set # CONFIG_CC_STACKPROTECTOR is not set @@ -1036,7 +1033,6 @@ CONFIG_LIBCRC32C=y # CONFIG_LCD_LD9040 is not set # CONFIG_RTC_DRV_M41T93 is not set # CONFIG_EXT2_FS_XATTR is not set -# CONFIG_CGROUP_PERF is not set # CONFIG_OPROFILE is not set # CONFIG_OPROFILE is not set # CONFIG_PATA_ARASAN_CF is not set diff --git a/config-arm-tegra b/config-arm-tegra index f07164376..c024c2333 100644 --- a/config-arm-tegra +++ b/config-arm-tegra @@ -60,7 +60,6 @@ CONFIG_ARM_ERRATA_720789=y CONFIG_SMP_ON_UP=y CONFIG_LOCAL_TIMERS=y # CONFIG_THUMB2_KERNEL is not set -CONFIG_HW_PERF_EVENTS=y # CONFIG_NEON is not set # CONFIG_RFKILL_GPIO is not set CONFIG_GPIO_GENERIC_PLATFORM=y diff --git a/kernel.spec b/kernel.spec index 435ff6ef6..ee91b4204 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1335,7 +1335,7 @@ ApplyPatch linux-2.6-i386-nx-emulation.patch # #pplyPatch arm-omap-dt-compat.patch ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch -#ApplyPatch arm-tegra-nvec-kconfig.patch +ApplyPatch arm-tegra-nvec-kconfig.patch # # bugfixes to drivers and filesystems @@ -2369,6 +2369,10 @@ fi # '-' | | # '-' %changelog +* Sun Feb 19 2012 Peter Robinson +- Further updates to ARM config +- Fix and re-enable Tegra NVEC patch + * Fri Feb 17 2012 Dave Jones - improve handling of null rate in LIS3LV02Dx accelerometer driver. (rhbz 785814) From cd68c0b144ebfb9f302f6763616e660037b086da Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sun, 19 Feb 2012 22:29:18 -0500 Subject: [PATCH 035/542] Linux 3.3-rc4 Disable debugging options. --- config-generic | 10 ++--- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 14 +++--- sources | 3 +- 5 files changed, 71 insertions(+), 68 deletions(-) diff --git a/config-generic b/config-generic index b73d61559..424b7e138 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -2521,7 +2521,7 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_RADIO_MAXIRADIO=m CONFIG_RADIO_WL1273=m -CONFIG_RADIO_WL128X=m +# CONFIG_RADIO_WL128X is not set # depends on TI_ST which we don't enable CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER_CUSTOMISE=y @@ -3073,7 +3073,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3977,7 +3977,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..d823ebe73 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..02e1fe7d1 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index ee91b4204..ba0555b6f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 3 +%define rcrev 4 # The git snapshot level -%define gitrev 7 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2369,6 +2369,10 @@ fi # '-' | | # '-' %changelog +* Sun Feb 19 2012 Josh Boyer - 3.3.0-0.rc4.git0.1 +- Linux 3.3-rc4 +- Disable debugging options. + * Sun Feb 19 2012 Peter Robinson - Further updates to ARM config - Fix and re-enable Tegra NVEC patch diff --git a/sources b/sources index 3ade89188..d76881ee4 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -c216adcc2ba08bac9382d5833adfd18f patch-3.3-rc3.xz +35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -b40a74d3c729eeb54509258ce4aec751 patch-3.3-rc3-git7.xz From abff21a8faeaf6d8eef10a26ad2ecf4d6f102be8 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 20 Feb 2012 09:03:51 -0500 Subject: [PATCH 036/542] Append .debug to rawhide builds When we have debugbuildsenabled=0, we're actually building a debug kernel. To help point this out, let's append .debug in EXTRAVERSION like we would when building kernel-debug --- kernel.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel.spec b/kernel.spec index ba0555b6f..73c07533a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1618,6 +1618,13 @@ BuildKernel() { # make sure EXTRAVERSION says what we want it to say perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flavour:+.${Flavour}}/" Makefile + %if !%{debugbuildsenabled} + %if !%{with_release} + # we're building a rawhide kernel where debug is the "norm". + perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flavour:+.${Flavour}}.debug/" Makefile + %endif + %endif + # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme %if !0%{?rcrev} %if 0%{?gitrev} From 8bd30695f0f785999d4584a4155d63ed4ed358fb Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 20 Feb 2012 09:05:29 -0500 Subject: [PATCH 037/542] Reenable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 424b7e138..7d8a05869 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3073,7 +3073,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=m # @@ -3977,7 +3977,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index d823ebe73..0eb253221 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_VM=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y -# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_SLUB_DEBUG_ON=y -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -# CONFIG_DEBUG_SG is not set +CONFIG_DEBUG_SG=y # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_WRITECOUNT=y +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_X86_PTDUMP is not set +CONFIG_X86_PTDUMP=y -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMADEVICES_VDEBUG is not set +CONFIG_DMADEVICES_DEBUG=y +CONFIG_DMADEVICES_VDEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_TEST_LIST_SORT=y -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 02e1fe7d1..6a7d1f767 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index 73c07533a..504be7dba 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 0 +%define rawhide_skip_docs 1 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2376,6 +2376,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 20 2012 Josh Boyer - 3.3.0-0.rc4.git0.2 +- Reenable debugging options. + * Sun Feb 19 2012 Josh Boyer - 3.3.0-0.rc4.git0.1 - Linux 3.3-rc4 - Disable debugging options. From 0297ab965ae94681f1fd60f0429d8cdd3b2980e3 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 20 Feb 2012 13:31:30 -0500 Subject: [PATCH 038/542] NFSv4: Fix an Oops in the NFSv4 getacl code --- kernel.spec | 9 +++- nfs-oops-getacl.patch | 96 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 nfs-oops-getacl.patch diff --git a/kernel.spec b/kernel.spec index 504be7dba..0a4d92c70 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -734,6 +734,8 @@ Patch14000: hibernate-freeze-filesystems.patch Patch14010: lis3-improve-handling-of-null-rate.patch +Patch14020: nfs-oops-getacl.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1455,6 +1457,8 @@ ApplyPatch hibernate-freeze-filesystems.patch ApplyPatch lis3-improve-handling-of-null-rate.patch +ApplyPatch nfs-oops-getacl.patch + # utrace. ApplyPatch utrace.patch @@ -2376,6 +2380,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 20 2012 Dave Jones +- NFSv4: Fix an Oops in the NFSv4 getacl code + * Mon Feb 20 2012 Josh Boyer - 3.3.0-0.rc4.git0.2 - Reenable debugging options. diff --git a/nfs-oops-getacl.patch b/nfs-oops-getacl.patch new file mode 100644 index 000000000..53e599dd4 --- /dev/null +++ b/nfs-oops-getacl.patch @@ -0,0 +1,96 @@ +From 331818f1c468a24e581aedcbe52af799366a9dfe Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Fri, 3 Feb 2012 18:30:53 -0500 +Subject: [PATCH] NFSv4: Fix an Oops in the NFSv4 getacl code + +Commit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap +in nfsv4 get acl data) introduces the 'acl_scratch' page for the case +where we may need to decode multi-page data. However it fails to take +into account the fact that the variable may be NULL (for the case where +we're not doing multi-page decode), and it also attaches it to the +encoding xdr_stream rather than the decoding one. + +The immediate result is an Oops in nfs4_xdr_enc_getacl due to the +call to page_address() with a NULL page pointer. + +Signed-off-by: Trond Myklebust +Cc: Andy Adamson +Cc: stable@vger.kernel.org +--- + fs/nfs/nfs4proc.c | 8 ++++---- + fs/nfs/nfs4xdr.c | 5 ++++- + include/linux/nfs_xdr.h | 2 +- + 3 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index f0c849c..d202e04 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -3575,8 +3575,8 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu + } + if (npages > 1) { + /* for decoding across pages */ +- args.acl_scratch = alloc_page(GFP_KERNEL); +- if (!args.acl_scratch) ++ res.acl_scratch = alloc_page(GFP_KERNEL); ++ if (!res.acl_scratch) + goto out_free; + } + args.acl_len = npages * PAGE_SIZE; +@@ -3612,8 +3612,8 @@ out_free: + for (i = 0; i < npages; i++) + if (pages[i]) + __free_page(pages[i]); +- if (args.acl_scratch) +- __free_page(args.acl_scratch); ++ if (res.acl_scratch) ++ __free_page(res.acl_scratch); + return ret; + } + +diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c +index 95e92e4..33bd8d0 100644 +--- a/fs/nfs/nfs4xdr.c ++++ b/fs/nfs/nfs4xdr.c +@@ -2522,7 +2522,6 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr, + + xdr_inline_pages(&req->rq_rcv_buf, replen << 2, + args->acl_pages, args->acl_pgbase, args->acl_len); +- xdr_set_scratch_buffer(xdr, page_address(args->acl_scratch), PAGE_SIZE); + + encode_nops(&hdr); + } +@@ -6032,6 +6031,10 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr, + struct compound_hdr hdr; + int status; + ++ if (res->acl_scratch != NULL) { ++ void *p = page_address(res->acl_scratch); ++ xdr_set_scratch_buffer(xdr, p, PAGE_SIZE); ++ } + status = decode_compound_hdr(xdr, &hdr); + if (status) + goto out; +diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h +index a764cef..d6ba9a1 100644 +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -614,7 +614,6 @@ struct nfs_getaclargs { + size_t acl_len; + unsigned int acl_pgbase; + struct page ** acl_pages; +- struct page * acl_scratch; + struct nfs4_sequence_args seq_args; + }; + +@@ -624,6 +623,7 @@ struct nfs_getaclres { + size_t acl_len; + size_t acl_data_offset; + int acl_flags; ++ struct page * acl_scratch; + struct nfs4_sequence_res seq_res; + }; + +-- +1.7.4.1 + From c08cca58886e5a217963f1031b6fe927856dec14 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 20 Feb 2012 16:20:25 -0500 Subject: [PATCH 039/542] Avoid using stack variables in ums_realtek (again) (rhbz 795544) --- kernel.spec | 13 ++++- ...ot-use-stack-memory-for-DMA-in-__do_.patch | 48 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch diff --git a/kernel.spec b/kernel.spec index 0a4d92c70..5390e4946 100644 --- a/kernel.spec +++ b/kernel.spec @@ -772,6 +772,9 @@ Patch21238: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch #rhbz 790367 Patch21239: s390x-enable-keys-compat.patch +#rhbz 795544 +Patch21240: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1492,6 +1495,9 @@ ApplyPatch x86-Avoid-invoking-RCU-when-CPU-is-idle.patch #rhbz 790367 ApplyPatch s390x-enable-keys-compat.patch +#rhbz 795544 +ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch + # END OF PATCH APPLICATIONS %endif @@ -2380,13 +2386,16 @@ fi # '-' | | # '-' %changelog +* Mon Feb 20 2012 Josh Boyer +- Avoid using stack variables in ums_realtek (again) (rhbz 795544) + * Mon Feb 20 2012 Dave Jones - NFSv4: Fix an Oops in the NFSv4 getacl code -* Mon Feb 20 2012 Josh Boyer - 3.3.0-0.rc4.git0.2 +* Mon Feb 20 2012 Josh Boyer - 3.3.0-0.rc4.git0.2 - Reenable debugging options. -* Sun Feb 19 2012 Josh Boyer - 3.3.0-0.rc4.git0.1 +* Sun Feb 19 2012 Josh Boyer - 3.3.0-0.rc4.git0.1 - Linux 3.3-rc4 - Disable debugging options. diff --git a/ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch b/ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch new file mode 100644 index 000000000..1768d5e6a --- /dev/null +++ b/ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch @@ -0,0 +1,48 @@ +From dadfe1ad137e6fbe251b4a5dc310840cfe414db4 Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Mon, 20 Feb 2012 15:28:39 -0500 +Subject: [PATCH] ums_realtek: do not use stack memory for DMA in + __do_config_autodelink + +__do_config_autodelink passes the data variable to the transport function. +If the calling functions pass a stack variable, this will eventually trigger +a DMA-API debug backtrace for mapping stack memory in the DMA buffer. Fix +this by calling kmemdup for the passed data instead. + +Signed-off-by: Josh Boyer +--- + drivers/usb/storage/realtek_cr.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c +index d32f720..eee2a96 100644 +--- a/drivers/usb/storage/realtek_cr.c ++++ b/drivers/usb/storage/realtek_cr.c +@@ -507,9 +507,14 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) + { + int retval; + u8 cmnd[12] = {0}; ++ u8 *buf; + + US_DEBUGP("%s, addr = 0xfe47, len = %d\n", __FUNCTION__, len); + ++ buf = kmemdup(data, len, GFP_NOIO); ++ if (!buf) ++ return USB_STOR_TRANSPORT_ERROR; ++ + cmnd[0] = 0xF0; + cmnd[1] = 0x0E; + cmnd[2] = 0xfe; +@@ -517,7 +522,8 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) + cmnd[4] = (u8)(len >> 8); + cmnd[5] = (u8)len; + +- retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, data, len, DMA_TO_DEVICE, NULL); ++ retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL); ++ kfree(buf); + if (retval != USB_STOR_TRANSPORT_GOOD) { + return -EIO; + } +-- +1.7.9 + From d15a70859ada7ecaf7c939717ecfbff419a1dd17 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 21 Feb 2012 01:04:27 +0000 Subject: [PATCH 040/542] Disable sfc ethernet driver on ARM --- config-arm-generic | 1 + kernel.spec | 3 +++ 2 files changed, 4 insertions(+) diff --git a/config-arm-generic b/config-arm-generic index ea1390690..d6f24305e 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -181,6 +181,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768 # CONFIG_DRM_RADEON is not set # CONFIG_ATM_HE is not set # CONFIG_SCSI_ACARD is not set +# CONFIG_SFC is not set # these all currently fail due to missing symbols __bad_udelay or # error: implicit declaration of function ‘iowrite32be’ diff --git a/kernel.spec b/kernel.spec index 5390e4946..5e59879cc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2386,6 +2386,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 20 2012 Peter Robinson +- Disable sfc ethernet driver on ARM + * Mon Feb 20 2012 Josh Boyer - Avoid using stack variables in ums_realtek (again) (rhbz 795544) From b2f4cd93ec89c46c91180a861b17ec54fe5e382a Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 20 Feb 2012 20:27:59 -0500 Subject: [PATCH 041/542] Do not call drivers when invalidating partitions for -ENOMEDIUM --- kernel.spec | 15 +- scsi-fix-sd_revalidate_disk-oops.patch | 187 +++++++++++++++++++++++++ 2 files changed, 197 insertions(+), 5 deletions(-) create mode 100644 scsi-fix-sd_revalidate_disk-oops.patch diff --git a/kernel.spec b/kernel.spec index 5e59879cc..856fdf1cf 100644 --- a/kernel.spec +++ b/kernel.spec @@ -762,18 +762,19 @@ Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch #rhbz 754518 Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +Patch21236: scsi-fix-sd_revalidate_disk-oops.patch #rhbz 714828 -Patch21236: autofs4-lockdep.patch +Patch21240: autofs4-lockdep.patch -Patch21237: mcelog-rcu-splat.patch -Patch21238: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch +Patch21250: mcelog-rcu-splat.patch +Patch21270: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch #rhbz 790367 -Patch21239: s390x-enable-keys-compat.patch +Patch21280: s390x-enable-keys-compat.patch #rhbz 795544 -Patch21240: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch +Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch @@ -1485,6 +1486,7 @@ ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch #rhbz 754518 ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch #rhbz 714828 ApplyPatch autofs4-lockdep.patch @@ -2386,6 +2388,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 20 2012 Dave Jones +- Do not call drivers when invalidating partitions for -ENOMEDIUM + * Mon Feb 20 2012 Peter Robinson - Disable sfc ethernet driver on ARM diff --git a/scsi-fix-sd_revalidate_disk-oops.patch b/scsi-fix-sd_revalidate_disk-oops.patch new file mode 100644 index 000000000..efc657c7f --- /dev/null +++ b/scsi-fix-sd_revalidate_disk-oops.patch @@ -0,0 +1,187 @@ +Hi, + +Thank you for review and comments. + +On 02/16/12 02:26, Tejun Heo wrote: +> On Wed, Feb 15, 2012 at 11:56:19AM +0900, Jun'ichi Nomura wrote: +>> +int invalidate_partitions(struct gendisk *disk, struct block_device *bdev) +>> +{ +>> + int res; +>> + +>> + res = drop_partitions(disk, bdev); +>> + if (res) +>> + return res; +>> + +> +> Hmmm... shouldn't we have set_capacity(disk, 0) here? + +Added. +I wasn't sure whether I should leave it to drivers. +But it seems capacity 0 for ENOMEDIUM device is reasonable. + +>> + check_disk_size_change(disk, bdev); +>> + bdev->bd_invalidated = 0; +>> + /* tell userspace that the media / partition table may have changed */ +>> + kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); +> +> Also, we really shouldn't be generating KOBJ_CHANGE after every +> -ENOMEDIUM open. This can easily lead to infinite loop. We should +> generate this iff we actually dropped partitions && modified the size. + +invalidate_partitions() is called only when bd_invalidated is set. +So KOBJ_CHANGE is not raised for every ENOMEDIUM open. + +I put it explicit in the function to make it safer for +possible misuse. + +How about this? + +--------------------------------------------------------- +Do not call drivers when invalidating partitions for -ENOMEDIUM + +When a scsi driver returns -ENOMEDIUM for open(), +__blkdev_get() calls rescan_partitions(), which ends up calling +sd_revalidate_disk() without getting a refcount of scsi_device. + +That could lead to oops like this: + + process A process B + ---------------------------------------------- + sys_open + __blkdev_get + sd_open + returns -ENOMEDIUM + scsi_remove_device + + rescan_partitions + sd_revalidate_disk + + +Oopses are reported here: +http://marc.info/?l=linux-scsi&m=132388619710052 + +This patch separates the partition invalidation from rescan_partitions() +and use it for -ENOMEDIUM case. + +Index: linux-3.3/block/partition-generic.c +=================================================================== +--- linux-3.3.orig/block/partition-generic.c 2012-02-15 09:00:25.147293790 +0900 ++++ linux-3.3/block/partition-generic.c 2012-02-16 10:48:22.257680685 +0900 +@@ -389,17 +389,11 @@ static bool disk_unlock_native_capacity( + } + } + +-int rescan_partitions(struct gendisk *disk, struct block_device *bdev) ++static int drop_partitions(struct gendisk *disk, struct block_device *bdev) + { +- struct parsed_partitions *state = NULL; + struct disk_part_iter piter; + struct hd_struct *part; +- int p, highest, res; +-rescan: +- if (state && !IS_ERR(state)) { +- kfree(state); +- state = NULL; +- } ++ int res; + + if (bdev->bd_part_count) + return -EBUSY; +@@ -412,6 +406,24 @@ rescan: + delete_partition(disk, part->partno); + disk_part_iter_exit(&piter); + ++ return 0; ++} ++ ++int rescan_partitions(struct gendisk *disk, struct block_device *bdev) ++{ ++ struct parsed_partitions *state = NULL; ++ struct hd_struct *part; ++ int p, highest, res; ++rescan: ++ if (state && !IS_ERR(state)) { ++ kfree(state); ++ state = NULL; ++ } ++ ++ res = drop_partitions(disk, bdev); ++ if (res) ++ return res; ++ + if (disk->fops->revalidate_disk) + disk->fops->revalidate_disk(disk); + check_disk_size_change(disk, bdev); +@@ -515,6 +527,26 @@ rescan: + return 0; + } + ++int invalidate_partitions(struct gendisk *disk, struct block_device *bdev) ++{ ++ int res; ++ ++ if (!bdev->bd_invalidated) ++ return 0; ++ ++ res = drop_partitions(disk, bdev); ++ if (res) ++ return res; ++ ++ set_capacity(disk, 0); ++ check_disk_size_change(disk, bdev); ++ bdev->bd_invalidated = 0; ++ /* tell userspace that the media / partition table may have changed */ ++ kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); ++ ++ return 0; ++} ++ + unsigned char *read_dev_sector(struct block_device *bdev, sector_t n, Sector *p) + { + struct address_space *mapping = bdev->bd_inode->i_mapping; +Index: linux-3.3/include/linux/genhd.h +=================================================================== +--- linux-3.3.orig/include/linux/genhd.h 2012-02-09 12:21:53.000000000 +0900 ++++ linux-3.3/include/linux/genhd.h 2012-02-16 10:47:43.783681813 +0900 +@@ -596,6 +596,7 @@ extern char *disk_name (struct gendisk * + + extern int disk_expand_part_tbl(struct gendisk *disk, int target); + extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); ++extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev); + extern struct hd_struct * __must_check add_partition(struct gendisk *disk, + int partno, sector_t start, + sector_t len, int flags, +Index: linux-3.3/fs/block_dev.c +=================================================================== +--- linux-3.3.orig/fs/block_dev.c 2012-02-09 12:21:53.000000000 +0900 ++++ linux-3.3/fs/block_dev.c 2012-02-16 10:47:52.602681441 +0900 +@@ -1183,8 +1183,12 @@ static int __blkdev_get(struct block_dev + * The latter is necessary to prevent ghost + * partitions on a removed medium. + */ +- if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) +- rescan_partitions(disk, bdev); ++ if (bdev->bd_invalidated) { ++ if (!ret) ++ rescan_partitions(disk, bdev); ++ else if (ret == -ENOMEDIUM) ++ invalidate_partitions(disk, bdev); ++ } + if (ret) + goto out_clear; + } else { +@@ -1214,8 +1218,12 @@ static int __blkdev_get(struct block_dev + if (bdev->bd_disk->fops->open) + ret = bdev->bd_disk->fops->open(bdev, mode); + /* the same as first opener case, read comment there */ +- if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) +- rescan_partitions(bdev->bd_disk, bdev); ++ if (bdev->bd_invalidated) { ++ if (!ret) ++ rescan_partitions(bdev->bd_disk, bdev); ++ else if (ret == -ENOMEDIUM) ++ invalidate_partitions(bdev->bd_disk, bdev); ++ } + if (ret) + goto out_unlock_bdev; + } From e1d46a5d226abc2648d33c685407c5feeca8d853 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 21 Feb 2012 09:04:16 +0000 Subject: [PATCH 042/542] Disable ARM highbank kernels for the time being --- kernel.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 856fdf1cf..e0c2bbeea 100644 --- a/kernel.spec +++ b/kernel.spec @@ -269,9 +269,11 @@ Summary: The Linux kernel %define with_tegra 0 %define with_omap 0 %define with_imx 0 -%define with_highbank 0 %endif +# disable highbank ARM kernels for the time being +%define with_highbank 0 + # kernel-kirkwood is only built for armv5 %ifnarch armv5tel %define with_kirkwood 0 @@ -2388,6 +2390,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 21 2012 Peter Robinson +- Disable ARM highbank kernels for the time being + * Mon Feb 20 2012 Dave Jones - Do not call drivers when invalidating partitions for -ENOMEDIUM From 44e57012c844f9a3926b2dcf8c26e113bb7ea485 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 10:17:26 -0500 Subject: [PATCH 043/542] Revert "Append .debug to rawhide builds" This reverts commit abff21a8faeaf6d8eef10a26ad2ecf4d6f102be8. The way we have all the macros coded, this means all the paths need to end with .debug, including the %kernel_variant_files macros. That gets ugly rather quickly with the "simple" fix the above commit tried. An alternate solution might be to override the variants built instead. --- kernel.spec | 7 ------- 1 file changed, 7 deletions(-) diff --git a/kernel.spec b/kernel.spec index e0c2bbeea..ea9e7a95b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1632,13 +1632,6 @@ BuildKernel() { # make sure EXTRAVERSION says what we want it to say perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flavour:+.${Flavour}}/" Makefile - %if !%{debugbuildsenabled} - %if !%{with_release} - # we're building a rawhide kernel where debug is the "norm". - perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flavour:+.${Flavour}}.debug/" Makefile - %endif - %endif - # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme %if !0%{?rcrev} %if 0%{?gitrev} From 0e3dcef2db3344c82bc74dd469285a43ccbae85d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 10:51:15 -0500 Subject: [PATCH 044/542] Linux 3.3-rc4-git1 (upstream 27e74da9800289e69ba907777df1e2085231eff7) --- autofs4-lockdep.patch | 84 ------------------------------------------- kernel.spec | 13 +++---- sources | 1 + 3 files changed, 6 insertions(+), 92 deletions(-) delete mode 100644 autofs4-lockdep.patch diff --git a/autofs4-lockdep.patch b/autofs4-lockdep.patch deleted file mode 100644 index fe4d65056..000000000 --- a/autofs4-lockdep.patch +++ /dev/null @@ -1,84 +0,0 @@ -Path: news.gmane.org!not-for-mail -From: Ian Kent -Newsgroups: gmane.linux.kernel -Subject: [PATCH] autofs4 - fix lockdep splat in autofs -Date: Mon, 22 Aug 2011 11:52:28 +0800 -Lines: 35 -Approved: news@gmane.org -Message-ID: <20110822035228.13189.62994.stgit@perseus.themaw.net> -NNTP-Posting-Host: lo.gmane.org -Mime-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit -X-Trace: dough.gmane.org 1313985730 20409 80.91.229.12 (22 Aug 2011 04:02:10 GMT) -X-Complaints-To: usenet@dough.gmane.org -NNTP-Posting-Date: Mon, 22 Aug 2011 04:02:10 +0000 (UTC) -Cc: Kernel Mailing List , - Steven Rostedt -To: Al Viro -Original-X-From: linux-kernel-owner@vger.kernel.org Mon Aug 22 06:02:05 2011 -Return-path: -Envelope-to: glk-linux-kernel-3@lo.gmane.org -Original-Received: from vger.kernel.org ([209.132.180.67]) - by lo.gmane.org with esmtp (Exim 4.69) - (envelope-from ) - id 1QvLi6-00059I-P9 - for glk-linux-kernel-3@lo.gmane.org; Mon, 22 Aug 2011 06:02:03 +0200 -Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1750951Ab1HVEBw (ORCPT ); - Mon, 22 Aug 2011 00:01:52 -0400 -Original-Received: from outbound.icp-qv1-irony-out2.iinet.net.au ([203.59.1.107]:23283 - "EHLO outbound.icp-qv1-irony-out2.iinet.net.au" rhost-flags-OK-OK-OK-OK) - by vger.kernel.org with ESMTP id S1750806Ab1HVEBu (ORCPT - ); - Mon, 22 Aug 2011 00:01:50 -0400 -X-Greylist: delayed 554 seconds by postgrey-1.27 at vger.kernel.org; Mon, 22 Aug 2011 00:01:50 EDT -X-IronPort-Anti-Spam-Filtered: true -X-IronPort-Anti-Spam-Result: Av4EADDSUU7LO5kB/2dsb2JhbABBhEujSHeBQAEpBFIoCAUCGA4CSRYTrRSQOYEshAyBEASHXpBgi1k -X-IronPort-AV: E=Sophos;i="4.68,261,1312128000"; - d="scan'208";a="765105065" -Original-Received: from unknown (HELO perseus.themaw.net) ([203.59.153.1]) - by outbound.icp-qv1-irony-out2.iinet.net.au with ESMTP; 22 Aug 2011 11:52:32 +0800 -User-Agent: StGIT/0.14.3 -Original-Sender: linux-kernel-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-kernel@vger.kernel.org -Xref: news.gmane.org gmane.linux.kernel:1182197 -Archived-At: - -From: Steven Rostedt - -When recursing down the locks when traversing a tree/list in -get_next_positive_dentry() or get_next_positive_subdir() a lock can -change from being nested to being a parent which breaks lockdep. This -patch tells lockdep about what we did. - -Signed-off-by: Steven Rostedt -Acked-by: Ian Kent ---- - - fs/autofs4/expire.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c -index 450f529..1feb68e 100644 ---- a/fs/autofs4/expire.c -+++ b/fs/autofs4/expire.c -@@ -124,6 +124,7 @@ start: - /* Negative dentry - try next */ - if (!simple_positive(q)) { - spin_unlock(&p->d_lock); -+ lock_set_subclass(&q->d_lock.dep_map, 0, _RET_IP_); - p = q; - goto again; - } -@@ -186,6 +187,7 @@ again: - /* Negative dentry - try next */ - if (!simple_positive(ret)) { - spin_unlock(&p->d_lock); -+ lock_set_subclass(&ret->d_lock.dep_map, 0, _RET_IP_); - p = ret; - goto again; - } - diff --git a/kernel.spec b/kernel.spec index ea9e7a95b..11901858b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 4 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -766,9 +766,6 @@ Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch Patch21236: scsi-fix-sd_revalidate_disk-oops.patch -#rhbz 714828 -Patch21240: autofs4-lockdep.patch - Patch21250: mcelog-rcu-splat.patch Patch21270: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch @@ -1490,9 +1487,6 @@ ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch -#rhbz 714828 -ApplyPatch autofs4-lockdep.patch - ApplyPatch mcelog-rcu-splat.patch ApplyPatch x86-Avoid-invoking-RCU-when-CPU-is-idle.patch @@ -2383,6 +2377,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.1 +- Linux 3.3-rc4-git1 (upstream 27e74da9800289e69ba907777df1e2085231eff7) + * Tue Feb 21 2012 Peter Robinson - Disable ARM highbank kernels for the time being diff --git a/sources b/sources index d76881ee4..4ad00194a 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 +203dba5a7d0c299a18fafdc8aaf70625 patch-3.3-rc4-git1.xz From 0255fc68c9ad4c938fff294ef3b4585cea762a6d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 11:34:59 -0500 Subject: [PATCH 045/542] Enable rtl8712 driver (rhbz 699618) --- config-generic | 3 ++- kernel.spec | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/config-generic b/config-generic index 7d8a05869..ee3e39bf3 100644 --- a/config-generic +++ b/config-generic @@ -4273,7 +4273,8 @@ CONFIG_USB_ATMEL=m # CONFIG_EASYCAP is not set # CONFIG_SOLO6X10 is not set # CONFIG_ACPI_QUICKSTART is not set -# CONFIG_R8712U is not set +CONFIG_R8712U=m # Larry Finger maintains this (rhbz 699618) +# CONFIG_R8712_AP is not set # CONFIG_ATH6K_LEGACY is not set # CONFIG_USB_ENESTORAGE is not set # CONFIG_BCM_WIMAX is not set diff --git a/kernel.spec b/kernel.spec index 11901858b..ca18dc148 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2377,7 +2377,8 @@ fi # '-' | | # '-' %changelog -* Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.1 +* Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.2 +- Enable rtl8712 driver (rhbz 699618) - Linux 3.3-rc4-git1 (upstream 27e74da9800289e69ba907777df1e2085231eff7) * Tue Feb 21 2012 Peter Robinson From 0a89a58e0301e827805b2449d77113ac553aab8d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 14:32:16 -0500 Subject: [PATCH 046/542] imon: don't wedge hardware after early callbacks (rhbz 781832) --- ...wedge-hardware-after-early-callbacks.patch | 105 ++++++++++++++++++ kernel.spec | 7 +- 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 imon-dont-wedge-hardware-after-early-callbacks.patch diff --git a/imon-dont-wedge-hardware-after-early-callbacks.patch b/imon-dont-wedge-hardware-after-early-callbacks.patch new file mode 100644 index 000000000..b56076b57 --- /dev/null +++ b/imon-dont-wedge-hardware-after-early-callbacks.patch @@ -0,0 +1,105 @@ +From 8791d63af0cf113725ae4cb8cba9492814c59a93 Mon Sep 17 00:00:00 2001 +From: Jarod Wilson +Date: Thu, 26 Jan 2012 12:04:11 -0300 +Subject: [PATCH] [media] imon: don't wedge hardware after early callbacks + +This patch is just a minor update to one titled "imon: Input from ffdc +device type ignored" from Corinna Vinschen. An earlier patch to prevent +an oops when we got early callbacks also has the nasty side-effect of +wedging imon hardware, as we don't acknowledge the urb. Rework the check +slightly here to bypass processing the packet, as the driver isn't yet +fully initialized, but still acknowlege the urb and submit a new rx_urb. +Do this for both interfaces -- irrelevant for ffdc hardware, but +relevant for newer hardware, though newer hardware doesn't spew the +constant stream of data as soon as the hardware is initialized like the +older ffdc devices, so they'd be less likely to trigger this anyway... + +Tested with both an ffdc device and an 0042 device. + +Reported-by: Corinna Vinschen +Signed-off-by: Jarod Wilson +CC: stable@vger.kernel.org +Signed-off-by: Mauro Carvalho Chehab +--- + drivers/media/rc/imon.c | 26 ++++++++++++++++++++++---- + 1 files changed, 22 insertions(+), 4 deletions(-) + +diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c +index 6ed9646..3f175eb 100644 +--- a/drivers/media/rc/imon.c ++++ b/drivers/media/rc/imon.c +@@ -47,7 +47,7 @@ + #define MOD_AUTHOR "Jarod Wilson " + #define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" + #define MOD_NAME "imon" +-#define MOD_VERSION "0.9.3" ++#define MOD_VERSION "0.9.4" + + #define DISPLAY_MINOR_BASE 144 + #define DEVICE_NAME "lcd%d" +@@ -1658,9 +1658,17 @@ static void usb_rx_callback_intf0(struct urb *urb) + return; + + ictx = (struct imon_context *)urb->context; +- if (!ictx || !ictx->dev_present_intf0) ++ if (!ictx) + return; + ++ /* ++ * if we get a callback before we're done configuring the hardware, we ++ * can't yet process the data, as there's nowhere to send it, but we ++ * still need to submit a new rx URB to avoid wedging the hardware ++ */ ++ if (!ictx->dev_present_intf0) ++ goto out; ++ + switch (urb->status) { + case -ENOENT: /* usbcore unlink successful! */ + return; +@@ -1678,6 +1686,7 @@ static void usb_rx_callback_intf0(struct urb *urb) + break; + } + ++out: + usb_submit_urb(ictx->rx_urb_intf0, GFP_ATOMIC); + } + +@@ -1690,9 +1699,17 @@ static void usb_rx_callback_intf1(struct urb *urb) + return; + + ictx = (struct imon_context *)urb->context; +- if (!ictx || !ictx->dev_present_intf1) ++ if (!ictx) + return; + ++ /* ++ * if we get a callback before we're done configuring the hardware, we ++ * can't yet process the data, as there's nowhere to send it, but we ++ * still need to submit a new rx URB to avoid wedging the hardware ++ */ ++ if (!ictx->dev_present_intf1) ++ goto out; ++ + switch (urb->status) { + case -ENOENT: /* usbcore unlink successful! */ + return; +@@ -1710,6 +1727,7 @@ static void usb_rx_callback_intf1(struct urb *urb) + break; + } + ++out: + usb_submit_urb(ictx->rx_urb_intf1, GFP_ATOMIC); + } + +@@ -2242,7 +2260,7 @@ find_endpoint_failed: + mutex_unlock(&ictx->lock); + usb_free_urb(rx_urb); + rx_urb_alloc_failed: +- dev_err(ictx->dev, "unable to initialize intf0, err %d\n", ret); ++ dev_err(ictx->dev, "unable to initialize intf1, err %d\n", ret); + + return NULL; + } +-- +1.7.2.5 + diff --git a/kernel.spec b/kernel.spec index ca18dc148..0053349bd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -716,6 +716,7 @@ Patch2802: linux-2.6-silence-acpi-blacklist.patch Patch2899: linux-2.6-v4l-dvb-fixes.patch Patch2900: linux-2.6-v4l-dvb-update.patch Patch2901: linux-2.6-v4l-dvb-experimental.patch +Patch2902: imon-dont-wedge-hardware-after-early-callbacks.patch # fs fixes @@ -1446,6 +1447,7 @@ ApplyPatch quite-apm.patch ApplyOptionalPatch linux-2.6-v4l-dvb-fixes.patch ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch +ApplyPatch imon-dont-wedge-hardware-after-early-callbacks.patch # Patches headed upstream ApplyPatch disable-i8042-check-on-apple-mac.patch @@ -2377,6 +2379,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 21 2012 Josh Boyer +- imon: don't wedge hardware after early callbacks (rhbz 781832) + * Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.2 - Enable rtl8712 driver (rhbz 699618) - Linux 3.3-rc4-git1 (upstream 27e74da9800289e69ba907777df1e2085231eff7) From dae3cd5ca517f96a161803cb1829f879a8feba24 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 14:42:16 -0500 Subject: [PATCH 047/542] ext4: fix resize when resizing within single group (rhbz 786454) --- ...ze-when-resizing-within-single-group.patch | 82 +++++++++++++++++++ kernel.spec | 3 + 2 files changed, 85 insertions(+) create mode 100644 ext4-fix-resize-when-resizing-within-single-group.patch diff --git a/ext4-fix-resize-when-resizing-within-single-group.patch b/ext4-fix-resize-when-resizing-within-single-group.patch new file mode 100644 index 000000000..9d911b425 --- /dev/null +++ b/ext4-fix-resize-when-resizing-within-single-group.patch @@ -0,0 +1,82 @@ +From a0ade1deb86d2325aecc36272bb4505a6eec9235 Mon Sep 17 00:00:00 2001 +From: Lukas Czerner +Date: Mon, 20 Feb 2012 23:02:06 -0500 +Subject: [PATCH] ext4: fix resize when resizing within single group + +When resizing file system in the way that the new size of the file +system is still in the same group (no new groups are added), then we can +hit a BUG_ON in ext4_alloc_group_tables() + +BUG_ON(flex_gd->count == 0 || group_data == NULL); + +because flex_gd->count is zero. The reason is the missing check for such +case, so the code always extend the last group fully and then attempt to +add more groups, but at that time n_blocks_count is actually smaller +than o_blocks_count. + +It can be easily reproduced like this: + +mkfs.ext4 -b 4096 /dev/sda 30M +mount /dev/sda /mnt/test +resize2fs /dev/sda 50M + +Fix this by checking whether the resize happens within the singe group +and only add that many blocks into the last group to satisfy user +request. Then o_blocks_count == n_blocks_count and the resize will exit +successfully without and attempt to add more groups into the fs. + +Also fix mixing together block number and blocks count which might be +confusing and can easily lead to off-by-one errors (but it is actually +not the case here since the two occurrence of this mix-up will cancel +each other). + +Signed-off-by: Lukas Czerner +Reported-by: Milan Broz +Reviewed-by: Eric Sandeen +Signed-off-by: "Theodore Ts'o" +--- + fs/ext4/resize.c | 14 ++++++++------ + 1 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c +index f9d948f..3fed79d 100644 +--- a/fs/ext4/resize.c ++++ b/fs/ext4/resize.c +@@ -1582,7 +1582,7 @@ int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count) + ext4_fsblk_t o_blocks_count; + ext4_group_t o_group; + ext4_group_t n_group; +- ext4_grpblk_t offset; ++ ext4_grpblk_t offset, add; + unsigned long n_desc_blocks; + unsigned long o_desc_blocks; + unsigned long desc_blocks; +@@ -1605,7 +1605,7 @@ int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count) + return 0; + + ext4_get_group_no_and_offset(sb, n_blocks_count - 1, &n_group, &offset); +- ext4_get_group_no_and_offset(sb, o_blocks_count, &o_group, &offset); ++ ext4_get_group_no_and_offset(sb, o_blocks_count - 1, &o_group, &offset); + + n_desc_blocks = (n_group + EXT4_DESC_PER_BLOCK(sb)) / + EXT4_DESC_PER_BLOCK(sb); +@@ -1634,10 +1634,12 @@ int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count) + } + brelse(bh); + +- if (offset != 0) { +- /* extend the last group */ +- ext4_grpblk_t add; +- add = EXT4_BLOCKS_PER_GROUP(sb) - offset; ++ /* extend the last group */ ++ if (n_group == o_group) ++ add = n_blocks_count - o_blocks_count; ++ else ++ add = EXT4_BLOCKS_PER_GROUP(sb) - (offset + 1); ++ if (add > 0) { + err = ext4_group_extend_no_check(sb, o_blocks_count, add); + if (err) + goto out; +-- +1.7.6.5 + diff --git a/kernel.spec b/kernel.spec index 0053349bd..9a79731d4 100644 --- a/kernel.spec +++ b/kernel.spec @@ -719,6 +719,7 @@ Patch2901: linux-2.6-v4l-dvb-experimental.patch Patch2902: imon-dont-wedge-hardware-after-early-callbacks.patch # fs fixes +Patch4000: ext4-fix-resize-when-resizing-within-single-group.patch # NFSv4 Patch1101: linux-3.1-keys-remove-special-keyring.patch @@ -1348,6 +1349,7 @@ ApplyPatch arm-tegra-nvec-kconfig.patch # # ext4 +ApplyPatch ext4-fix-resize-when-resizing-within-single-group.patch # xfs @@ -2380,6 +2382,7 @@ fi # '-' %changelog * Tue Feb 21 2012 Josh Boyer +- ext4: fix resize when resizing within single group (rhbz 786454) - imon: don't wedge hardware after early callbacks (rhbz 781832) * Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.2 From 76ebbb6c6ccdfb824f26ccf3cc8a2a90eb5892cb Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 21 Feb 2012 22:44:34 +0000 Subject: [PATCH 048/542] update ARM configs --- config-arm-generic | 12 +++++++----- config-arm-omap-generic | 3 --- config-arm-tegra | 1 - kernel.spec | 3 +++ 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/config-arm-generic b/config-arm-generic index d6f24305e..18e5e9f1e 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -26,6 +26,13 @@ CONFIG_ZBOOT_ROM_BSS=0 CONFIG_ATAGS_PROC=y +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +ONFIG_CPU_IDLE_GOV_MENU=y + +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + # CONFIG_FPE_NWFPE is not set CONFIG_FPE_FASTFPE=y CONFIG_VFP=y @@ -48,11 +55,6 @@ CONFIG_HW_PERF_EVENTS=y CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y - -# CONFIG_CPU_IDLE is not set - CONFIG_LEDS=y CONFIG_LEDS_CPU=y diff --git a/config-arm-omap-generic b/config-arm-omap-generic index 473ae7a87..772121b45 100644 --- a/config-arm-omap-generic +++ b/config-arm-omap-generic @@ -150,9 +150,6 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="" # CONFIG_AUTO_ZRELADDR is not set -CONFIG_CPU_IDLE=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_VFPv3=y CONFIG_NEON=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set diff --git a/config-arm-tegra b/config-arm-tegra index c024c2333..9037d4b26 100644 --- a/config-arm-tegra +++ b/config-arm-tegra @@ -20,7 +20,6 @@ CONFIG_MACH_VENTANA=y CONFIG_TEGRA_DEBUG_UARTD=y CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y CONFIG_NR_CPUS=4 CONFIG_ARM_CPU_TOPOLOGY=y diff --git a/kernel.spec b/kernel.spec index 9a79731d4..6b7ee304f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2381,6 +2381,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 21 2012 Peter Robinson +- Update ARM configs + * Tue Feb 21 2012 Josh Boyer - ext4: fix resize when resizing within single group (rhbz 786454) - imon: don't wedge hardware after early callbacks (rhbz 781832) From add2ca9e12901ccf80872a7ee27779c486cb8755 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 21 Feb 2012 20:01:54 -0500 Subject: [PATCH 049/542] Drop x86-Avoid-invoking-RCU-when-CPU-is-idle.patch (rhbz 795050) --- kernel.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 6b7ee304f..5aa5851cb 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 4 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -1492,7 +1492,6 @@ ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch ApplyPatch mcelog-rcu-splat.patch -ApplyPatch x86-Avoid-invoking-RCU-when-CPU-is-idle.patch #rhbz 790367 ApplyPatch s390x-enable-keys-compat.patch @@ -2381,6 +2380,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.4 +- Drop x86-Avoid-invoking-RCU-when-CPU-is-idle.patch (rhbz 795050) + * Tue Feb 21 2012 Peter Robinson - Update ARM configs From 6bdf8498f487e126eacafa88fbcbf0cd9c8fa950 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 22 Feb 2012 10:12:13 -0500 Subject: [PATCH 050/542] Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400) --- kernel.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 5aa5851cb..9de8095a0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 4 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 4 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2380,6 +2380,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 22 2012 Josh Boyer - 3.3.0-0.rc4.git2.1 +- Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400) + * Tue Feb 21 2012 Josh Boyer - 3.3.0-0.rc4.git1.4 - Drop x86-Avoid-invoking-RCU-when-CPU-is-idle.patch (rhbz 795050) diff --git a/sources b/sources index 4ad00194a..ee9be7b76 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -203dba5a7d0c299a18fafdc8aaf70625 patch-3.3-rc4-git1.xz +b0d7ec50121d5baa3d36908d22cc6459 patch-3.3-rc4-git2.xz From 55bd825353ed7227f3e541f83f6718644725bd26 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 22 Feb 2012 18:54:17 -0500 Subject: [PATCH 051/542] Build in a fully versioned directory Switch to building in linux-%{KVERREL} so we have a fully versioned directory. This also helps (but doesn't solve) rhbz 751195. --- kernel.spec | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/kernel.spec b/kernel.spec index 9de8095a0..4370d9df0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -1208,7 +1208,7 @@ if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then cp -rl $sharedir/vanilla-%{kversion} . else %setup -q -n kernel-%{kversion}%{?dist} -c - mv linux-%{kversion} vanilla-%{kversion} + mv linux-%{KVERREL} vanilla-%{kversion} fi fi @@ -1258,17 +1258,17 @@ else fi # Now build the fedora kernel tree. -if [ -d linux-%{kversion}.%{_target_cpu} ]; then +if [ -d linux-%{KVERREL} ]; then # Just in case we ctrl-c'd a prep already rm -rf deleteme.%{_target_cpu} # Move away the stale away, and delete in background. - mv linux-%{kversion}.%{_target_cpu} deleteme.%{_target_cpu} + mv linux-%{KVERREL} deleteme.%{_target_cpu} rm -rf deleteme.%{_target_cpu} & fi -cp -rl vanilla-%{vanillaversion} linux-%{kversion}.%{_target_cpu} +cp -rl vanilla-%{vanillaversion} linux-%{KVERREL} -cd linux-%{kversion}.%{_target_cpu} +cd linux-%{KVERREL} # released_kernel with possible stable updates %if 0%{?stable_base} @@ -1860,7 +1860,7 @@ BuildKernel() { $RPM_BUILD_ROOT/boot/config.mk-compat-wireless-%{cwversion}-$KernelVer make -s ARCH=$Arch V=1 %{?_smp_mflags} \ - KLIB_BUILD=../linux-%{kversion}.%{_target_cpu} \ + KLIB_BUILD=../linux-%{KVERREL} \ KMODPATH_ARG="INSTALL_MOD_PATH=$RPM_BUILD_ROOT" \ KMODDIR="backports" install-modules %{?sparse_mflags} @@ -1889,7 +1889,7 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/boot mkdir -p $RPM_BUILD_ROOT%{_libexecdir} -cd linux-%{kversion}.%{_target_cpu} +cd linux-%{KVERREL} %if %{with_debug} BuildKernel %make_target %kernel_image debug @@ -2000,7 +2000,7 @@ find Documentation -type d | xargs chmod u+w %install -cd linux-%{kversion}.%{_target_cpu} +cd linux-%{KVERREL} %if %{with_doc} docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion} @@ -2250,7 +2250,7 @@ fi %dir %{_libexecdir}/perf-core %{_libexecdir}/perf-core/* %{_mandir}/man[1-8]/perf* -%doc linux-%{kversion}.%{_target_cpu}/tools/perf/Documentation/examples.txt +%doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt %files -n python-perf %defattr(-,root,root) From 950a401dc33815d742b4faccf1e54e40283c1091 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 22 Feb 2012 19:18:51 -0500 Subject: [PATCH 052/542] One s/kversion/KVERREL too many Fix prep as the tarball untars to linux-%{kversion} --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 4370d9df0..6975fe50f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1208,7 +1208,7 @@ if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then cp -rl $sharedir/vanilla-%{kversion} . else %setup -q -n kernel-%{kversion}%{?dist} -c - mv linux-%{KVERREL} vanilla-%{kversion} + mv linux-%{kversion} vanilla-%{kversion} fi fi From 7d7342cd50614b9d2a1a940dda34f02210ae2f4c Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 22 Feb 2012 20:02:34 -0500 Subject: [PATCH 053/542] Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b) --- kernel.spec | 11 +++-- nfs-oops-getacl.patch | 96 ------------------------------------------- sources | 2 +- 3 files changed, 6 insertions(+), 103 deletions(-) delete mode 100644 nfs-oops-getacl.patch diff --git a/kernel.spec b/kernel.spec index 6975fe50f..ed61506b8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 4 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -738,8 +738,6 @@ Patch14000: hibernate-freeze-filesystems.patch Patch14010: lis3-improve-handling-of-null-rate.patch -Patch14020: nfs-oops-getacl.patch - Patch20000: utrace.patch # Flattened devicetree support @@ -1464,8 +1462,6 @@ ApplyPatch hibernate-freeze-filesystems.patch ApplyPatch lis3-improve-handling-of-null-rate.patch -ApplyPatch nfs-oops-getacl.patch - # utrace. ApplyPatch utrace.patch @@ -2380,6 +2376,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 22 2012 Josh Boyer - 3.3.0-0.rc4.git3.1 +- Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b) + * Wed Feb 22 2012 Josh Boyer - 3.3.0-0.rc4.git2.1 - Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400) diff --git a/nfs-oops-getacl.patch b/nfs-oops-getacl.patch deleted file mode 100644 index 53e599dd4..000000000 --- a/nfs-oops-getacl.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 331818f1c468a24e581aedcbe52af799366a9dfe Mon Sep 17 00:00:00 2001 -From: Trond Myklebust -Date: Fri, 3 Feb 2012 18:30:53 -0500 -Subject: [PATCH] NFSv4: Fix an Oops in the NFSv4 getacl code - -Commit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap -in nfsv4 get acl data) introduces the 'acl_scratch' page for the case -where we may need to decode multi-page data. However it fails to take -into account the fact that the variable may be NULL (for the case where -we're not doing multi-page decode), and it also attaches it to the -encoding xdr_stream rather than the decoding one. - -The immediate result is an Oops in nfs4_xdr_enc_getacl due to the -call to page_address() with a NULL page pointer. - -Signed-off-by: Trond Myklebust -Cc: Andy Adamson -Cc: stable@vger.kernel.org ---- - fs/nfs/nfs4proc.c | 8 ++++---- - fs/nfs/nfs4xdr.c | 5 ++++- - include/linux/nfs_xdr.h | 2 +- - 3 files changed, 9 insertions(+), 6 deletions(-) - -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index f0c849c..d202e04 100644 ---- a/fs/nfs/nfs4proc.c -+++ b/fs/nfs/nfs4proc.c -@@ -3575,8 +3575,8 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu - } - if (npages > 1) { - /* for decoding across pages */ -- args.acl_scratch = alloc_page(GFP_KERNEL); -- if (!args.acl_scratch) -+ res.acl_scratch = alloc_page(GFP_KERNEL); -+ if (!res.acl_scratch) - goto out_free; - } - args.acl_len = npages * PAGE_SIZE; -@@ -3612,8 +3612,8 @@ out_free: - for (i = 0; i < npages; i++) - if (pages[i]) - __free_page(pages[i]); -- if (args.acl_scratch) -- __free_page(args.acl_scratch); -+ if (res.acl_scratch) -+ __free_page(res.acl_scratch); - return ret; - } - -diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c -index 95e92e4..33bd8d0 100644 ---- a/fs/nfs/nfs4xdr.c -+++ b/fs/nfs/nfs4xdr.c -@@ -2522,7 +2522,6 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr, - - xdr_inline_pages(&req->rq_rcv_buf, replen << 2, - args->acl_pages, args->acl_pgbase, args->acl_len); -- xdr_set_scratch_buffer(xdr, page_address(args->acl_scratch), PAGE_SIZE); - - encode_nops(&hdr); - } -@@ -6032,6 +6031,10 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr, - struct compound_hdr hdr; - int status; - -+ if (res->acl_scratch != NULL) { -+ void *p = page_address(res->acl_scratch); -+ xdr_set_scratch_buffer(xdr, p, PAGE_SIZE); -+ } - status = decode_compound_hdr(xdr, &hdr); - if (status) - goto out; -diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index a764cef..d6ba9a1 100644 ---- a/include/linux/nfs_xdr.h -+++ b/include/linux/nfs_xdr.h -@@ -614,7 +614,6 @@ struct nfs_getaclargs { - size_t acl_len; - unsigned int acl_pgbase; - struct page ** acl_pages; -- struct page * acl_scratch; - struct nfs4_sequence_args seq_args; - }; - -@@ -624,6 +623,7 @@ struct nfs_getaclres { - size_t acl_len; - size_t acl_data_offset; - int acl_flags; -+ struct page * acl_scratch; - struct nfs4_sequence_res seq_res; - }; - --- -1.7.4.1 - diff --git a/sources b/sources index ee9be7b76..7f949fef7 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -b0d7ec50121d5baa3d36908d22cc6459 patch-3.3-rc4-git2.xz +257185c04d1aaf8324c3858558cb61d4 patch-3.3-rc4-git3.xz From da2d4fb2314abfc62ba83a2e35580895c692fd28 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 23 Feb 2012 14:12:12 +0000 Subject: [PATCH 054/542] Further ARM config updates --- config-arm-generic | 1 + kernel.spec | 3 +++ 2 files changed, 4 insertions(+) diff --git a/config-arm-generic b/config-arm-generic index 18e5e9f1e..8d4d9a9d2 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -108,6 +108,7 @@ CONFIG_RTC_DRV_PL031=m # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_ERRORS is not set # CONFIG_DEBUG_LL is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARM_UNWIND=y diff --git a/kernel.spec b/kernel.spec index ed61506b8..0188949ad 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2376,6 +2376,9 @@ fi # '-' | | # '-' %changelog +* Thu Feb 23 2012 Peter Robinson +- Further ARM config updates + * Wed Feb 22 2012 Josh Boyer - 3.3.0-0.rc4.git3.1 - Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b) From 6b45478950ce01f88a842565ecdc02048d16ee3b Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 24 Feb 2012 10:16:26 -0500 Subject: [PATCH 055/542] Linux 3.3-rc4-git4 (upstream bb4c7e9a9908548b458f34afb2fee74dc0d49f90) --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 0188949ad..9107c2706 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 4 # The git snapshot level -%define gitrev 3 +%define gitrev 4 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2376,6 +2376,9 @@ fi # '-' | | # '-' %changelog +* Fri Feb 24 2012 Josh Boyer +- Linux 3.3-rc4-git4 (upstream bb4c7e9a9908548b458f34afb2fee74dc0d49f90) + * Thu Feb 23 2012 Peter Robinson - Further ARM config updates diff --git a/sources b/sources index 7f949fef7..ef1a0ce4e 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -257185c04d1aaf8324c3858558cb61d4 patch-3.3-rc4-git3.xz +e41cec30d0e61dd975893953eef7d58c patch-3.3-rc4-git4.xz From db1939dd8f386b123f08e77d554edc01876b4d86 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sat, 25 Feb 2012 08:19:03 -0500 Subject: [PATCH 056/542] Linux 3.3-rc4-git5 (upstream b52b80023f262ce8a0ffdcb490acb23e8678377a) --- ...wedge-hardware-after-early-callbacks.patch | 105 -------------- kernel.spec | 7 +- sources | 2 +- utrace.patch | 131 +++++------------- 4 files changed, 41 insertions(+), 204 deletions(-) delete mode 100644 imon-dont-wedge-hardware-after-early-callbacks.patch diff --git a/imon-dont-wedge-hardware-after-early-callbacks.patch b/imon-dont-wedge-hardware-after-early-callbacks.patch deleted file mode 100644 index b56076b57..000000000 --- a/imon-dont-wedge-hardware-after-early-callbacks.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 8791d63af0cf113725ae4cb8cba9492814c59a93 Mon Sep 17 00:00:00 2001 -From: Jarod Wilson -Date: Thu, 26 Jan 2012 12:04:11 -0300 -Subject: [PATCH] [media] imon: don't wedge hardware after early callbacks - -This patch is just a minor update to one titled "imon: Input from ffdc -device type ignored" from Corinna Vinschen. An earlier patch to prevent -an oops when we got early callbacks also has the nasty side-effect of -wedging imon hardware, as we don't acknowledge the urb. Rework the check -slightly here to bypass processing the packet, as the driver isn't yet -fully initialized, but still acknowlege the urb and submit a new rx_urb. -Do this for both interfaces -- irrelevant for ffdc hardware, but -relevant for newer hardware, though newer hardware doesn't spew the -constant stream of data as soon as the hardware is initialized like the -older ffdc devices, so they'd be less likely to trigger this anyway... - -Tested with both an ffdc device and an 0042 device. - -Reported-by: Corinna Vinschen -Signed-off-by: Jarod Wilson -CC: stable@vger.kernel.org -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/imon.c | 26 ++++++++++++++++++++++---- - 1 files changed, 22 insertions(+), 4 deletions(-) - -diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c -index 6ed9646..3f175eb 100644 ---- a/drivers/media/rc/imon.c -+++ b/drivers/media/rc/imon.c -@@ -47,7 +47,7 @@ - #define MOD_AUTHOR "Jarod Wilson " - #define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" - #define MOD_NAME "imon" --#define MOD_VERSION "0.9.3" -+#define MOD_VERSION "0.9.4" - - #define DISPLAY_MINOR_BASE 144 - #define DEVICE_NAME "lcd%d" -@@ -1658,9 +1658,17 @@ static void usb_rx_callback_intf0(struct urb *urb) - return; - - ictx = (struct imon_context *)urb->context; -- if (!ictx || !ictx->dev_present_intf0) -+ if (!ictx) - return; - -+ /* -+ * if we get a callback before we're done configuring the hardware, we -+ * can't yet process the data, as there's nowhere to send it, but we -+ * still need to submit a new rx URB to avoid wedging the hardware -+ */ -+ if (!ictx->dev_present_intf0) -+ goto out; -+ - switch (urb->status) { - case -ENOENT: /* usbcore unlink successful! */ - return; -@@ -1678,6 +1686,7 @@ static void usb_rx_callback_intf0(struct urb *urb) - break; - } - -+out: - usb_submit_urb(ictx->rx_urb_intf0, GFP_ATOMIC); - } - -@@ -1690,9 +1699,17 @@ static void usb_rx_callback_intf1(struct urb *urb) - return; - - ictx = (struct imon_context *)urb->context; -- if (!ictx || !ictx->dev_present_intf1) -+ if (!ictx) - return; - -+ /* -+ * if we get a callback before we're done configuring the hardware, we -+ * can't yet process the data, as there's nowhere to send it, but we -+ * still need to submit a new rx URB to avoid wedging the hardware -+ */ -+ if (!ictx->dev_present_intf1) -+ goto out; -+ - switch (urb->status) { - case -ENOENT: /* usbcore unlink successful! */ - return; -@@ -1710,6 +1727,7 @@ static void usb_rx_callback_intf1(struct urb *urb) - break; - } - -+out: - usb_submit_urb(ictx->rx_urb_intf1, GFP_ATOMIC); - } - -@@ -2242,7 +2260,7 @@ find_endpoint_failed: - mutex_unlock(&ictx->lock); - usb_free_urb(rx_urb); - rx_urb_alloc_failed: -- dev_err(ictx->dev, "unable to initialize intf0, err %d\n", ret); -+ dev_err(ictx->dev, "unable to initialize intf1, err %d\n", ret); - - return NULL; - } --- -1.7.2.5 - diff --git a/kernel.spec b/kernel.spec index 9107c2706..1066bae02 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 4 # The git snapshot level -%define gitrev 4 +%define gitrev 5 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -716,7 +716,6 @@ Patch2802: linux-2.6-silence-acpi-blacklist.patch Patch2899: linux-2.6-v4l-dvb-fixes.patch Patch2900: linux-2.6-v4l-dvb-update.patch Patch2901: linux-2.6-v4l-dvb-experimental.patch -Patch2902: imon-dont-wedge-hardware-after-early-callbacks.patch # fs fixes Patch4000: ext4-fix-resize-when-resizing-within-single-group.patch @@ -1447,7 +1446,6 @@ ApplyPatch quite-apm.patch ApplyOptionalPatch linux-2.6-v4l-dvb-fixes.patch ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch -ApplyPatch imon-dont-wedge-hardware-after-early-callbacks.patch # Patches headed upstream ApplyPatch disable-i8042-check-on-apple-mac.patch @@ -2376,6 +2374,9 @@ fi # '-' | | # '-' %changelog +* Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc4.git5.1 +- Linux 3.3-rc4-git5 (upstream b52b80023f262ce8a0ffdcb490acb23e8678377a) + * Fri Feb 24 2012 Josh Boyer - Linux 3.3-rc4-git4 (upstream bb4c7e9a9908548b458f34afb2fee74dc0d49f90) diff --git a/sources b/sources index ef1a0ce4e..09a796091 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -e41cec30d0e61dd975893953eef7d58c patch-3.3-rc4-git4.xz +5f197e6bdcf07ec465bbdd503426d7c1 patch-3.3-rc4-git5.xz diff --git a/utrace.patch b/utrace.patch index 556188a88..937c7f6e8 100644 --- a/utrace.patch +++ b/utrace.patch @@ -1,4 +1,8 @@ -utrace for 3.3-rc1 kernel, on top of dcd6c92267155e70a94b3927bce681ce74b80d1f. +From d007ce2c3f1f67624fde5e6b7ccc00566b7df9c3 Mon Sep 17 00:00:00 2001 +From: Oleg Nesterov +Date: Sat, 25 Feb 2012 07:29:40 -0500 +Subject: [PATCH] utrace for 3.3-rc4 kernel, on top of + b52b80023f262ce8a0ffdcb490acb23e8678377a. The split-out series is available in the git repository at: @@ -55,7 +59,7 @@ Signed-off-by: Oleg Nesterov include/linux/sched.h | 25 +- include/linux/signal.h | 2 + include/linux/tracehook.h | 59 +- - include/linux/utrace.h | 773 ++++++++++++ + include/linux/utrace.h | 774 ++++++++++++ init/Kconfig | 9 + kernel/Makefile | 1 + kernel/exit.c | 5 + @@ -63,8 +67,8 @@ Signed-off-by: Oleg Nesterov kernel/ptrace.c | 57 +- kernel/sched/core.c | 2 +- kernel/signal.c | 97 ++- - kernel/utrace.c | 2462 +++++++++++++++++++++++++++++++++++++ - 19 files changed, 4069 insertions(+), 56 deletions(-) + kernel/utrace.c | 2466 +++++++++++++++++++++++++++++++++++++ + 19 files changed, 4074 insertions(+), 56 deletions(-) create mode 100644 Documentation/DocBook/utrace.tmpl create mode 100644 include/linux/utrace.h create mode 100644 kernel/utrace.c @@ -721,10 +725,10 @@ index 5026738..97687f3 100644 clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); #endif diff --git a/fs/exec.c b/fs/exec.c -index aeb135c..36a0cbe 100644 +index 92ce83a..87ff31f 100644 --- a/fs/exec.c +++ b/fs/exec.c -@@ -1401,9 +1401,12 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) +@@ -1402,9 +1402,12 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) */ bprm->recursion_depth = depth; if (retval >= 0) { @@ -810,7 +814,7 @@ index c2f1f6a..236b920 100644 if (child->ptrace & PT_SEIZED) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 4032ec1..e95c1dc 100644 +index 7d379a6..a3c4599 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -185,16 +185,17 @@ print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) @@ -870,7 +874,7 @@ index 4032ec1..e95c1dc 100644 u32 parent_exec_id; u32 self_exec_id; diff --git a/include/linux/signal.h b/include/linux/signal.h -index 7987ce7..c320549 100644 +index 7987ce74..c320549 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h @@ -239,6 +239,8 @@ static inline int valid_signal(unsigned long sig) @@ -999,10 +1003,10 @@ index a71a292..a1bac95 100644 diff --git a/include/linux/utrace.h b/include/linux/utrace.h new file mode 100644 -index 0000000..f37373b +index 0000000..46959af --- /dev/null +++ b/include/linux/utrace.h -@@ -0,0 +1,773 @@ +@@ -0,0 +1,774 @@ +/* + * utrace infrastructure interface for debugging user processes + * @@ -1322,6 +1326,7 @@ index 0000000..f37373b +#define UTRACE_ATTACH_MATCH_MASK 0x000f +#define UTRACE_ATTACH_CREATE 0x0010 /* Attach a new engine. */ +#define UTRACE_ATTACH_EXCLUSIVE 0x0020 /* Refuse if existing match. */ ++#define UTRACE_ATTACH_ATOMIC 0x0040 /* For _CREATE, don't sleep */ + +/** + * struct utrace_engine - per-engine structure @@ -1809,7 +1814,7 @@ index 2d9de86..6c6749d 100644 obj-$(CONFIG_AUDITSYSCALL) += auditsc.o obj-$(CONFIG_AUDIT_WATCH) += audit_watch.o diff --git a/kernel/exit.c b/kernel/exit.c -index 294b170..16108a5 100644 +index 4b4042f..b1e0518 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -169,6 +169,8 @@ void release_task(struct task_struct * p) @@ -1839,18 +1844,18 @@ index 294b170..16108a5 100644 validate_creds_for_do_exit(tsk); diff --git a/kernel/fork.c b/kernel/fork.c -index 051f090..e103101 100644 +index e2cd3e2..fa40928 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -66,6 +66,7 @@ - #include +@@ -67,6 +67,7 @@ #include #include + #include +#include #include #include -@@ -169,6 +170,8 @@ void free_task(struct task_struct *tsk) +@@ -170,6 +171,8 @@ void free_task(struct task_struct *tsk) free_thread_info(tsk->stack); rt_mutex_debug_task_free(tsk); ftrace_graph_exit_task(tsk); @@ -1859,7 +1864,7 @@ index 051f090..e103101 100644 free_task_struct(tsk); } EXPORT_SYMBOL(free_task); -@@ -1092,6 +1095,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, +@@ -1115,6 +1118,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, if (!p) goto fork_out; @@ -1868,7 +1873,7 @@ index 051f090..e103101 100644 ftrace_graph_init_task(p); rt_mutex_init_task(p); -@@ -1527,6 +1532,8 @@ long do_fork(unsigned long clone_flags, +@@ -1550,6 +1555,8 @@ long do_fork(unsigned long clone_flags, init_completion(&vfork); } @@ -1877,7 +1882,7 @@ index 051f090..e103101 100644 /* * We set PF_STARTING at creation in case tracing wants to * use this to distinguish a fully live task from one that -@@ -1538,6 +1545,8 @@ long do_fork(unsigned long clone_flags, +@@ -1561,6 +1568,8 @@ long do_fork(unsigned long clone_flags, wake_up_new_task(p); /* forking complete and child started to run, tell ptracer */ @@ -2017,10 +2022,10 @@ index 00ab2ca..a7024b8 100644 } unlock_task_sighand(child, &flags); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index df00cb0..24dfee4 100644 +index 5255c9d..f1719b8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1172,7 +1172,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) +@@ -1167,7 +1167,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) * is actually now running somewhere else! */ while (task_running(rq, p)) { @@ -2216,10 +2221,10 @@ index c73c428..0508d93 100644 trace_signal_deliver(signr, info, ka); diff --git a/kernel/utrace.c b/kernel/utrace.c new file mode 100644 -index 0000000..c817a46 +index 0000000..a169e1b --- /dev/null +++ b/kernel/utrace.c -@@ -0,0 +1,2462 @@ +@@ -0,0 +1,2466 @@ +/* + * utrace infrastructure interface for debugging user processes + * @@ -2335,9 +2340,9 @@ index 0000000..c817a46 + * + * This returns false only in case of a memory allocation failure. + */ -+static bool utrace_task_alloc(struct task_struct *task) ++static bool utrace_task_alloc(struct task_struct *task, gfp_t gfp_flags) +{ -+ struct utrace *utrace = kmem_cache_zalloc(utrace_cachep, GFP_KERNEL); ++ struct utrace *utrace = kmem_cache_zalloc(utrace_cachep, gfp_flags); + if (unlikely(!utrace)) + return false; + spin_lock_init(&utrace->lock); @@ -2517,6 +2522,7 @@ index 0000000..c817a46 +{ + struct utrace *utrace = task_utrace_struct(target); + struct utrace_engine *engine; ++ gfp_t gfp_flags; + int ret; + + if (!(flags & UTRACE_ATTACH_CREATE)) { @@ -2539,13 +2545,16 @@ index 0000000..c817a46 + */ + return ERR_PTR(-EPERM); + ++ gfp_flags = (flags & UTRACE_ATTACH_ATOMIC) ++ ? GFP_ATOMIC : GFP_KERNEL; ++ + if (!utrace) { -+ if (unlikely(!utrace_task_alloc(target))) ++ if (unlikely(!utrace_task_alloc(target, gfp_flags))) + return ERR_PTR(-ENOMEM); + utrace = task_utrace_struct(target); + } + -+ engine = kmem_cache_alloc(utrace_engine_cachep, GFP_KERNEL); ++ engine = kmem_cache_alloc(utrace_engine_cachep, gfp_flags); + if (unlikely(!engine)) + return ERR_PTR(-ENOMEM); + @@ -4682,74 +4691,6 @@ index 0000000..c817a46 +{ + seq_printf(m, "Utrace:\t%lx\n", p->utrace_flags); +} - -Add the new UTRACE_ATTACH_ATOMIC flag for utrace_attach_task(). -If it is set, UTRACE_ATTACH_CREATE uses GFP_ATOMIC for memory -allocations and thus it can be used in atomic context. - -Suggested-by: Mark Wielaard -Signed-off-by: Oleg Nesterov ---- - include/linux/utrace.h | 1 + - kernel/utrace.c | 12 ++++++++---- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/include/linux/utrace.h b/include/linux/utrace.h -index f37373b..46959af 100644 ---- a/include/linux/utrace.h -+++ b/include/linux/utrace.h -@@ -317,6 +317,7 @@ static inline enum utrace_syscall_action utrace_syscall_action(u32 action) - #define UTRACE_ATTACH_MATCH_MASK 0x000f - #define UTRACE_ATTACH_CREATE 0x0010 /* Attach a new engine. */ - #define UTRACE_ATTACH_EXCLUSIVE 0x0020 /* Refuse if existing match. */ -+#define UTRACE_ATTACH_ATOMIC 0x0040 /* For _CREATE, don't sleep */ - - /** - * struct utrace_engine - per-engine structure -diff --git a/kernel/utrace.c b/kernel/utrace.c -index c817a46..a169e1b 100644 ---- a/kernel/utrace.c -+++ b/kernel/utrace.c -@@ -113,9 +113,9 @@ void task_utrace_unlock(struct task_struct *task) - * - * This returns false only in case of a memory allocation failure. - */ --static bool utrace_task_alloc(struct task_struct *task) -+static bool utrace_task_alloc(struct task_struct *task, gfp_t gfp_flags) - { -- struct utrace *utrace = kmem_cache_zalloc(utrace_cachep, GFP_KERNEL); -+ struct utrace *utrace = kmem_cache_zalloc(utrace_cachep, gfp_flags); - if (unlikely(!utrace)) - return false; - spin_lock_init(&utrace->lock); -@@ -295,6 +295,7 @@ struct utrace_engine *utrace_attach_task( - { - struct utrace *utrace = task_utrace_struct(target); - struct utrace_engine *engine; -+ gfp_t gfp_flags; - int ret; - - if (!(flags & UTRACE_ATTACH_CREATE)) { -@@ -317,13 +318,16 @@ struct utrace_engine *utrace_attach_task( - */ - return ERR_PTR(-EPERM); - -+ gfp_flags = (flags & UTRACE_ATTACH_ATOMIC) -+ ? GFP_ATOMIC : GFP_KERNEL; -+ - if (!utrace) { -- if (unlikely(!utrace_task_alloc(target))) -+ if (unlikely(!utrace_task_alloc(target, gfp_flags))) - return ERR_PTR(-ENOMEM); - utrace = task_utrace_struct(target); - } - -- engine = kmem_cache_alloc(utrace_engine_cachep, GFP_KERNEL); -+ engine = kmem_cache_alloc(utrace_engine_cachep, gfp_flags); - if (unlikely(!engine)) - return ERR_PTR(-ENOMEM); - -- -1.5.5.1 - +1.7.9.1 From 9b45c234f01ca360810d7031d53d19c9bba68171 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sat, 25 Feb 2012 17:23:10 -0500 Subject: [PATCH 057/542] Linux 3.3-rc5 --- kernel.spec | 7 +++++-- sources | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/kernel.spec b/kernel.spec index 1066bae02..a0df6bec4 100644 --- a/kernel.spec +++ b/kernel.spec @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 4 +%define rcrev 5 # The git snapshot level -%define gitrev 5 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2374,6 +2374,9 @@ fi # '-' | | # '-' %changelog +* Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc5.git0.1 +- Linux 3.3-rc5 + * Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc4.git5.1 - Linux 3.3-rc4-git5 (upstream b52b80023f262ce8a0ffdcb490acb23e8678377a) diff --git a/sources b/sources index 09a796091..f5419c653 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -35f3b51bfd9bd47a939753e68d49ca00 patch-3.3-rc4.xz +19b5b3b5529c1d70463cf1db5177047d patch-3.3-rc5.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -5f197e6bdcf07ec465bbdd503426d7c1 patch-3.3-rc4-git5.xz From d4f9238c888a571a35ed09becde55474b475d0ad Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sat, 25 Feb 2012 17:23:34 -0500 Subject: [PATCH 058/542] Disable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index ee3e39bf3..42b9402ec 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3073,7 +3073,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3977,7 +3977,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..d823ebe73 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..02e1fe7d1 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index a0df6bec4..306449751 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2374,6 +2374,9 @@ fi # '-' | | # '-' %changelog +* Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc5.git0.2 +- Disable debugging options. + * Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc5.git0.1 - Linux 3.3-rc5 From d55b8fbc5619de02f746dc142207c5da74bd5d62 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Sun, 26 Feb 2012 11:04:13 -0500 Subject: [PATCH 059/542] Add patch from Linus Torvalds to fix 32-bit autofs4 build --- fix-autofs4-build.patch | 17 +++++++++++++++++ kernel.spec | 9 ++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 fix-autofs4-build.patch diff --git a/fix-autofs4-build.patch b/fix-autofs4-build.patch new file mode 100644 index 000000000..d8f3ae309 --- /dev/null +++ b/fix-autofs4-build.patch @@ -0,0 +1,17 @@ + include/linux/compat.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/linux/compat.h b/include/linux/compat.h +index 41c9f6515f46..7e05fcee75a1 100644 +--- a/include/linux/compat.h ++++ b/include/linux/compat.h +@@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, + unsigned long liovcnt, const struct compat_iovec __user *rvec, + unsigned long riovcnt, unsigned long flags); + ++#else ++ ++#define is_compat_task() (0) ++ + #endif /* CONFIG_COMPAT */ + #endif /* _LINUX_COMPAT_H */ diff --git a/kernel.spec b/kernel.spec index 306449751..c4e5eaa4a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -774,6 +774,8 @@ Patch21280: s390x-enable-keys-compat.patch #rhbz 795544 Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch +Patch21291: fix-autofs4-build.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1493,6 +1495,8 @@ ApplyPatch s390x-enable-keys-compat.patch #rhbz 795544 ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch +ApplyPatch fix-autofs4-build.patch + # END OF PATCH APPLICATIONS %endif @@ -2374,6 +2378,9 @@ fi # '-' | | # '-' %changelog +* Sun Feb 26 2012 Josh Boyer - 3.3.0-0.rc5.git0.3 +- Add patch from Linus Torvalds to fix 32-bit autofs4 build + * Sat Feb 25 2012 Josh Boyer - 3.3.0-0.rc5.git0.2 - Disable debugging options. From 3daa224e4184076f1fe2a44b9f2d8ca9f38a196c Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 27 Feb 2012 08:20:02 -0500 Subject: [PATCH 060/542] Reenable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 42b9402ec..ee3e39bf3 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_EXTRA=y CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3073,7 +3073,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=m # @@ -3977,7 +3977,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index d823ebe73..0eb253221 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_VM=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y -# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_SLUB_DEBUG_ON=y -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -# CONFIG_DEBUG_SG is not set +CONFIG_DEBUG_SG=y # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_WRITECOUNT=y +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_X86_PTDUMP is not set +CONFIG_X86_PTDUMP=y -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMADEVICES_VDEBUG is not set +CONFIG_DMADEVICES_DEBUG=y +CONFIG_DMADEVICES_VDEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_TEST_LIST_SORT=y -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 02e1fe7d1..6a7d1f767 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index c4e5eaa4a..378c2255d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 4 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 0 +%define rawhide_skip_docs 1 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2378,6 +2378,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 27 2012 Josh Boyer - 3.3.0-0.rc5.git0.4 +- Reenable debugging options. + * Sun Feb 26 2012 Josh Boyer - 3.3.0-0.rc5.git0.3 - Add patch from Linus Torvalds to fix 32-bit autofs4 build From 918552e3f3d7451e8197dfb5fdac5118e3f8c514 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 27 Feb 2012 08:26:17 -0500 Subject: [PATCH 061/542] Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199) --- ...-inline-decl-from-l2cap_chan_connect.patch | 49 ------------------- fix-autofs4-build.patch | 17 ------- kernel.spec | 17 ++----- sources | 1 + 4 files changed, 5 insertions(+), 79 deletions(-) delete mode 100644 Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch delete mode 100644 fix-autofs4-build.patch diff --git a/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch b/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch deleted file mode 100644 index c5991992a..000000000 --- a/Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 9a4b860f36f995ecda36d8312a56ae1d34a6c541 Mon Sep 17 00:00:00 2001 -From: Johan Hedberg -Date: Sun, 8 Jan 2012 22:51:16 +0200 -Subject: [PATCH] Bluetooth: Remove bogus inline declaration from - l2cap_chan_connect - -As reported by Dan Carpenter this function causes a Sparse warning and -shouldn't be declared inline: - -include/net/bluetooth/l2cap.h:837:30 error: marked inline, but without a -definition" - -Reported-by: Dan Carpenter -Signed-off-by: Johan Hedberg -Acked-by: Marcel Holtmann ---- - include/net/bluetooth/l2cap.h | 2 +- - net/bluetooth/l2cap_core.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h -index 68f5891..124f7cf 100644 ---- a/include/net/bluetooth/l2cap.h -+++ b/include/net/bluetooth/l2cap.h -@@ -834,7 +834,7 @@ int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid); - struct l2cap_chan *l2cap_chan_create(struct sock *sk); - void l2cap_chan_close(struct l2cap_chan *chan, int reason); - void l2cap_chan_destroy(struct l2cap_chan *chan); --inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, -+int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, - bdaddr_t *dst); - int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len, - u32 priority); -diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c -index faf0b11..980abdb 100644 ---- a/net/bluetooth/l2cap_core.c -+++ b/net/bluetooth/l2cap_core.c -@@ -1120,7 +1120,7 @@ static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm, bdaddr - return c1; - } - --inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, bdaddr_t *dst) -+int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, bdaddr_t *dst) - { - struct sock *sk = chan->sk; - bdaddr_t *src = &bt_sk(sk)->src; --- -1.7.6.5 - diff --git a/fix-autofs4-build.patch b/fix-autofs4-build.patch deleted file mode 100644 index d8f3ae309..000000000 --- a/fix-autofs4-build.patch +++ /dev/null @@ -1,17 +0,0 @@ - include/linux/compat.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/include/linux/compat.h b/include/linux/compat.h -index 41c9f6515f46..7e05fcee75a1 100644 ---- a/include/linux/compat.h -+++ b/include/linux/compat.h -@@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, - unsigned long liovcnt, const struct compat_iovec __user *rvec, - unsigned long riovcnt, unsigned long flags); - -+#else -+ -+#define is_compat_task() (0) -+ - #endif /* CONFIG_COMPAT */ - #endif /* _LINUX_COMPAT_H */ diff --git a/kernel.spec b/kernel.spec index 378c2255d..00db5de98 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 4 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 5 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -758,9 +758,6 @@ Patch21096: hfsplus-Add-an-ioctl-to-bless-files.patch #rhbz 788260 Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch -#rhbz 787373 -Patch21234: Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch - #rhbz 754518 Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch Patch21236: scsi-fix-sd_revalidate_disk-oops.patch @@ -774,8 +771,6 @@ Patch21280: s390x-enable-keys-compat.patch #rhbz 795544 Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch -Patch21291: fix-autofs4-build.patch - # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1480,9 +1475,6 @@ ApplyPatch hfsplus-Add-an-ioctl-to-bless-files.patch #rhbz 788269 ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch -#rhbz 787373 -ApplyPatch Bluetooth-Remove-bogus-inline-decl-from-l2cap_chan_connect.patch - #rhbz 754518 ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch @@ -1495,8 +1487,6 @@ ApplyPatch s390x-enable-keys-compat.patch #rhbz 795544 ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch -ApplyPatch fix-autofs4-build.patch - # END OF PATCH APPLICATIONS %endif @@ -2378,7 +2368,8 @@ fi # '-' | | # '-' %changelog -* Mon Feb 27 2012 Josh Boyer - 3.3.0-0.rc5.git0.4 +* Mon Feb 27 2012 Josh Boyer - 3.3.0-0.rc5.git1.1 +- Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199) - Reenable debugging options. * Sun Feb 26 2012 Josh Boyer - 3.3.0-0.rc5.git0.3 diff --git a/sources b/sources index f5419c653..79a110b0e 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 19b5b3b5529c1d70463cf1db5177047d patch-3.3-rc5.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 +10b44f8086350d573346b6c3d51a63e0 patch-3.3-rc5-git1.xz From 3e2c5623824fb3809c5122b04bc7ae27585cd299 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 27 Feb 2012 14:21:30 -0500 Subject: [PATCH 062/542] Add patch to fix regression in FADT revision checks (rhbz 730007 727865) --- ...x-regression-in-FADT-revision-checks.patch | 58 +++++++++++++++++++ kernel.spec | 11 +++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 ACPICA-Fix-regression-in-FADT-revision-checks.patch diff --git a/ACPICA-Fix-regression-in-FADT-revision-checks.patch b/ACPICA-Fix-regression-in-FADT-revision-checks.patch new file mode 100644 index 000000000..d6b590389 --- /dev/null +++ b/ACPICA-Fix-regression-in-FADT-revision-checks.patch @@ -0,0 +1,58 @@ + commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39), +"Remove use of unreliable FADT revision field" causes regression +for old P4 systems because now cst_control and other fields are +not reset to 0. + + The effect is that acpi_processor_power_init will notice +cst_control != 0 and a write to CST_CNT register is performed +that should not happen. As result, the system oopses after the +"No _CST, giving up" message, sometimes in acpi_ns_internalize_name, +sometimes in acpi_ns_get_type, usually at random places. May be +during migration to CPU 1 in acpi_processor_get_throttling. + + Every one of these settings help to avoid this problem: + - acpi=off + - processor.nocst=1 + - maxcpus=1 + + The fix is to update acpi_gbl_FADT.header.length after +the original value is used to check for old revisions. + +Signed-off-by: Julian Anastasov +--- + drivers/acpi/acpica/tbfadt.c | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c +index c5d8704..4c9c760 100644 +--- a/drivers/acpi/acpica/tbfadt.c ++++ b/drivers/acpi/acpica/tbfadt.c +@@ -363,10 +363,6 @@ static void acpi_tb_convert_fadt(void) + u32 address32; + u32 i; + +- /* Update the local FADT table header length */ +- +- acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt); +- + /* + * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary. + * Later code will always use the X 64-bit field. Also, check for an +@@ -408,6 +404,10 @@ static void acpi_tb_convert_fadt(void) + acpi_gbl_FADT.boot_flags = 0; + } + ++ /* Update the local FADT table header length */ ++ ++ acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt); ++ + /* + * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X" + * generic address structures as necessary. Later code will always use +-- +1.7.3.4 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-acpi" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file diff --git a/kernel.spec b/kernel.spec index 00db5de98..5babfd380 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -771,6 +771,9 @@ Patch21280: s390x-enable-keys-compat.patch #rhbz 795544 Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch +#rhbz 727865 730007 +Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1487,6 +1490,9 @@ ApplyPatch s390x-enable-keys-compat.patch #rhbz 795544 ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch +#rhbz 727865 730007 +ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch + # END OF PATCH APPLICATIONS %endif @@ -2368,6 +2374,9 @@ fi # '-' | | # '-' %changelog +* Mon Feb 27 2012 Josh Boyer +- Add patch to fix regression in FADT revision checks (rhbz 730007 727865) + * Mon Feb 27 2012 Josh Boyer - 3.3.0-0.rc5.git1.1 - Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199) - Reenable debugging options. From c675e2db6b98cceb2f4057fb522c56bb19d4a400 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 28 Feb 2012 11:52:27 -0500 Subject: [PATCH 063/542] Linux v3.3-rc5-88-g586c6e7 --- kernel.spec | 7 +++++-- scripts/generate-git-snapshot.sh | 26 ++++++++++++++++++++++++++ sources | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100755 scripts/generate-git-snapshot.sh diff --git a/kernel.spec b/kernel.spec index 5babfd380..6b000a26a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 5 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2374,6 +2374,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 28 2012 Dave Jones - 3.3.0-0.rc5.git2.1 +- Linux v3.3-rc5-88-g586c6e7 + * Mon Feb 27 2012 Josh Boyer - Add patch to fix regression in FADT revision checks (rhbz 730007 727865) diff --git a/scripts/generate-git-snapshot.sh b/scripts/generate-git-snapshot.sh new file mode 100755 index 000000000..7fbc14154 --- /dev/null +++ b/scripts/generate-git-snapshot.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Set LINUX_GIT to point to an upstream Linux git tree in your .bashrc or wherever. +# +# TODO: Generate the gitN number. +# + +VER=$(grep patch sources | head -n1 | awk '{ print $2 }' | sed s/patch-// | sed s/.xz//) + +OLDGIT=$(grep gitrev kernel.spec | head -n1 | sed s/%define\ gitrev\ //) +export NEWGIT=$(($OLDGIT+1)) + +pushd $LINUX_GIT + +git diff v$VER.. > /tmp/patch-$VER-git$NEWGIT +xz -9 /tmp/patch-$VER-git$NEWGIT +DESC=$(git describe) +popd + +mv /tmp/patch-$VER-git$NEWGIT.xz . + +perl -p -i -e 's|%global baserelease.*|%global baserelease 0|' kernel.spec + +perl -p -i -e 's|%define gitrev.*|%define gitrev $ENV{'NEWGIT'}|' kernel.spec + +rpmdev-bumpspec -c "Linux $DESC" kernel.spec diff --git a/sources b/sources index 79a110b0e..8d4050e4b 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 19b5b3b5529c1d70463cf1db5177047d patch-3.3-rc5.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -10b44f8086350d573346b6c3d51a63e0 patch-3.3-rc5-git1.xz +915adf42637fc2fa08f11565fadef1fc patch-3.3-rc5-git2.xz From c15034c210df4627a1d89c28132eaf877599876b Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 28 Feb 2012 14:14:22 -0600 Subject: [PATCH 064/542] CVE-2012-1090 CIFS: fix dentry refcount leak when opening a FIFO on lookup (rhbz 798296) --- ...ry-refcount-leak-when-opening-a-FIFO.patch | 61 +++++++++++++++++++ kernel.spec | 9 +++ 2 files changed, 70 insertions(+) create mode 100644 cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch diff --git a/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch b/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch new file mode 100644 index 000000000..9fd87acac --- /dev/null +++ b/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch @@ -0,0 +1,61 @@ +From 5bccda0ebc7c0331b81ac47d39e4b920b198b2cd Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Thu, 23 Feb 2012 09:37:45 -0500 +Subject: [PATCH] cifs: fix dentry refcount leak when opening a FIFO on lookup + +The cifs code will attempt to open files on lookup under certain +circumstances. What happens though if we find that the file we opened +was actually a FIFO or other special file? + +Currently, the open filehandle just ends up being leaked leading to +a dentry refcount mismatch and oops on umount. Fix this by having the +code close the filehandle on the server if it turns out not to be a +regular file. While we're at it, change this spaghetti if statement +into a switch too. + +Cc: stable@vger.kernel.org +Reported-by: CAI Qian +Tested-by: CAI Qian +Reviewed-by: Shirish Pargaonkar +Signed-off-by: Jeff Layton +Signed-off-by: Steve French +--- + fs/cifs/dir.c | 20 ++++++++++++++++++-- + 1 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c +index 63a196b..bc7e244 100644 +--- a/fs/cifs/dir.c ++++ b/fs/cifs/dir.c +@@ -584,10 +584,26 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, + * If either that or op not supported returned, follow + * the normal lookup. + */ +- if ((rc == 0) || (rc == -ENOENT)) ++ switch (rc) { ++ case 0: ++ /* ++ * The server may allow us to open things like ++ * FIFOs, but the client isn't set up to deal ++ * with that. If it's not a regular file, just ++ * close it and proceed as if it were a normal ++ * lookup. ++ */ ++ if (newInode && !S_ISREG(newInode->i_mode)) { ++ CIFSSMBClose(xid, pTcon, fileHandle); ++ break; ++ } ++ case -ENOENT: + posix_open = true; +- else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP)) ++ case -EOPNOTSUPP: ++ break; ++ default: + pTcon->broken_posix_open = true; ++ } + } + if (!posix_open) + rc = cifs_get_inode_info_unix(&newInode, full_path, +-- +1.7.0.4 + diff --git a/kernel.spec b/kernel.spec index 6b000a26a..585d9a061 100644 --- a/kernel.spec +++ b/kernel.spec @@ -774,6 +774,9 @@ Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch #rhbz 727865 730007 Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch +#rhbz 798296 +Patch21301: cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1493,6 +1496,9 @@ ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch #rhbz 727865 730007 ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch +#rhbz 798296 +ApplyPatch cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch + # END OF PATCH APPLICATIONS %endif @@ -2374,6 +2380,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 28 2012 Justin M. Forbes +- CVE-2012-1090 CIFS: fix dentry refcount leak when opening a FIFO on lookup (rhbz 798296) + * Tue Feb 28 2012 Dave Jones - 3.3.0-0.rc5.git2.1 - Linux v3.3-rc5-88-g586c6e7 From 03f3fa649f172d67d2c92d7123c929ec94c0f760 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 28 Feb 2012 15:43:08 -0500 Subject: [PATCH 065/542] Disable CONFIG_USB_DEVICEFS (Deprecated). --- config-generic | 5 ++++- kernel.spec | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config-generic b/config-generic index ee3e39bf3..2e1f3ad61 100644 --- a/config-generic +++ b/config-generic @@ -3022,7 +3022,10 @@ CONFIG_USB_SUPPORT=y # # Miscellaneous USB options # -CONFIG_USB_DEVICEFS=y + +# Deprecated: +# CONFIG_USB_DEVICEFS is not set + # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_SUSPEND=y diff --git a/kernel.spec b/kernel.spec index 585d9a061..b0fadc93b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2380,6 +2380,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 28 2012 Dave Jones +- Disable CONFIG_USB_DEVICEFS (Deprecated). + * Tue Feb 28 2012 Justin M. Forbes - CVE-2012-1090 CIFS: fix dentry refcount leak when opening a FIFO on lookup (rhbz 798296) From 8604c9164a73bef8a1111a096e5b120361a468e3 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 28 Feb 2012 15:42:00 -0500 Subject: [PATCH 066/542] Add patch to enable keyboard backlight on Sony laptops (rhbz 728478) --- kernel.spec | 11 ++++- ...Enable-keyboard-backlight-by-default.patch | 44 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 sony-laptop-Enable-keyboard-backlight-by-default.patch diff --git a/kernel.spec b/kernel.spec index b0fadc93b..81eab8d32 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -777,6 +777,9 @@ Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch #rhbz 798296 Patch21301: cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch +#rhbz 728478 +Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1499,6 +1502,9 @@ ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch #rhbz 798296 ApplyPatch cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch +#rhbz 728478 +ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch + # END OF PATCH APPLICATIONS %endif @@ -2380,6 +2386,9 @@ fi # '-' | | # '-' %changelog +* Tue Feb 28 2012 Josh Boyer +- Add patch to enable keyboard backlight on Sony laptops (rhbz 728478) + * Tue Feb 28 2012 Dave Jones - Disable CONFIG_USB_DEVICEFS (Deprecated). diff --git a/sony-laptop-Enable-keyboard-backlight-by-default.patch b/sony-laptop-Enable-keyboard-backlight-by-default.patch new file mode 100644 index 000000000..c993fd86d --- /dev/null +++ b/sony-laptop-Enable-keyboard-backlight-by-default.patch @@ -0,0 +1,44 @@ +From 0dbc2bc96b1ec741bdd43451c286ccd45da3310b Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Wed, 2 Nov 2011 14:31:59 -0400 +Subject: [PATCH] sony-laptop: Enable keyboard backlight by default + +When the keyboard backlight support was originally added, the commit said +to default it to on with a 10 second timeout. That actually wasn't the +case, as the default value is commented out for the kbd_backlight parameter. +Because it is a static variable, it gets set to 0 by default without some +other form of initialization. + +However, it seems the function to set the value wasn't actually called +immediately, so whatever state the keyboard was in initially would remain. +Then commit df410d522410e67660 was introduced during the 2.6.39 timeframe to +immediately set whatever value was present (as well as attempt to +restore/reset the state on module removal or resume). That seems to have +now forced the light off immediately when the module is loaded unless +the option kbd_backlight=1 is specified. + +Let's enable it by default again (for the first time). This should solve +https://bugzilla.redhat.com/show_bug.cgi?id=728478 + +Acked-by: Mattia Dongili +Signed-off-by: Josh Boyer +--- + drivers/platform/x86/sony-laptop.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c +index c006dee..40c4705 100644 +--- a/drivers/platform/x86/sony-laptop.c ++++ b/drivers/platform/x86/sony-laptop.c +@@ -127,7 +127,7 @@ MODULE_PARM_DESC(minor, + "default is -1 (automatic)"); + #endif + +-static int kbd_backlight; /* = 1 */ ++static int kbd_backlight = 1; + module_param(kbd_backlight, int, 0444); + MODULE_PARM_DESC(kbd_backlight, + "set this to 0 to disable keyboard backlight, " +-- +1.7.7.6 + From 34f57fef38f40ce3c20f4e36303dd519d3801ae3 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 29 Feb 2012 16:12:48 -0500 Subject: [PATCH 067/542] Linux v3.3-rc5-101-g88ebdda --- kernel.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 81eab8d32..1c0dd78e9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 5 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2386,6 +2386,9 @@ fi # '-' | | # '-' %changelog +* Wed Feb 29 2012 Dave Jones - 3.3.0-0.rc5.git3.1 +- Linux v3.3-rc5-101-g88ebdda + * Tue Feb 28 2012 Josh Boyer - Add patch to enable keyboard backlight on Sony laptops (rhbz 728478) From 957f70d8cea30c5859afa429369bf5780c4d9cdb Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 29 Feb 2012 16:13:30 -0500 Subject: [PATCH 068/542] Linux v3.3-rc5-101-g88ebdda --- sources | 1 + 1 file changed, 1 insertion(+) diff --git a/sources b/sources index 8d4050e4b..714fc9614 100644 --- a/sources +++ b/sources @@ -2,3 +2,4 @@ 19b5b3b5529c1d70463cf1db5177047d patch-3.3-rc5.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 915adf42637fc2fa08f11565fadef1fc patch-3.3-rc5-git2.xz +85ab3feb862960898ef69e3b0b939564 patch-3.3-rc5-git3.xz From 191eabc46e5a1e0995aec92212b849ea26df7dcc Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Thu, 1 Mar 2012 13:05:47 -0500 Subject: [PATCH 069/542] temporarily switch to low-performance polling IRQ mode when unexpected IRQs occur. --- kernel.spec | 8 + unhandled-irqs-switch-to-polling.patch | 269 +++++++++++++++++++++++++ 2 files changed, 277 insertions(+) create mode 100644 unhandled-irqs-switch-to-polling.patch diff --git a/kernel.spec b/kernel.spec index 1c0dd78e9..61ce5a840 100644 --- a/kernel.spec +++ b/kernel.spec @@ -780,6 +780,8 @@ Patch21301: cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch #rhbz 728478 Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch +Patch21400: unhandled-irqs-switch-to-polling.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1505,6 +1507,8 @@ ApplyPatch cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch #rhbz 728478 ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch +ApplyPatch unhandled-irqs-switch-to-polling.patch + # END OF PATCH APPLICATIONS %endif @@ -2386,6 +2390,10 @@ fi # '-' | | # '-' %changelog +* Thu Mar 01 2012 Dave Jones +- temporarily switch to low-performance polling IRQ mode when + unexpected IRQs occur. + * Wed Feb 29 2012 Dave Jones - 3.3.0-0.rc5.git3.1 - Linux v3.3-rc5-101-g88ebdda diff --git a/unhandled-irqs-switch-to-polling.patch b/unhandled-irqs-switch-to-polling.patch new file mode 100644 index 000000000..8eb09052b --- /dev/null +++ b/unhandled-irqs-switch-to-polling.patch @@ -0,0 +1,269 @@ +From davej Mon Jan 30 16:40:11 2012 +Return-Path: linux-kernel-owner@vger.kernel.org +X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on + gelk.kernelslacker.org +X-Spam-Level: +X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, + DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD, + T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 +Received: from mail.corp.redhat.com [10.5.5.52] + by gelk.kernelslacker.org with IMAP (fetchmail-6.3.20) + for (single-drop); Mon, 30 Jan 2012 16:40:11 -0500 (EST) +Received: from zmta01.collab.prod.int.phx2.redhat.com (LHLO + zmta01.collab.prod.int.phx2.redhat.com) (10.5.5.31) by + zmail11.collab.prod.int.phx2.redhat.com with LMTP; Mon, 30 Jan 2012 + 16:37:45 -0500 (EST) +Received: from localhost (localhost.localdomain [127.0.0.1]) + by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 4BAD0114054; + Mon, 30 Jan 2012 16:37:45 -0500 (EST) +X-Quarantine-ID: <1529X45BXJfc> +Authentication-Results: zmta01.collab.prod.int.phx2.redhat.com (amavisd-new); + dkim=softfail (fail, body has been altered) header.i=@gmail.com +Received: from zmta01.collab.prod.int.phx2.redhat.com ([127.0.0.1]) + by localhost (zmta01.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 1529X45BXJfc; Mon, 30 Jan 2012 16:37:45 -0500 (EST) +Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) + by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 717AC11404F; + Mon, 30 Jan 2012 16:37:44 -0500 (EST) +Received: from mx1.redhat.com (ext-mx14.extmail.prod.ext.phx2.redhat.com [10.5.110.19]) + by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q0ULbhea005095; + Mon, 30 Jan 2012 16:37:43 -0500 +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) + by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q0ULQIU9002068; + Mon, 30 Jan 2012 16:37:42 -0500 +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1753551Ab2A3Vha (ORCPT + + 52 others); Mon, 30 Jan 2012 16:37:30 -0500 +Received: from mail-pz0-f46.google.com ([209.85.210.46]:44901 "EHLO + mail-pz0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1751932Ab2A3Vh2 (ORCPT + ); + Mon, 30 Jan 2012 16:37:28 -0500 +Received: by dadi2 with SMTP id i2so3911730dad.19 + for ; Mon, 30 Jan 2012 13:37:28 -0800 (PST) +Received-SPF: pass (google.com: domain of jeroen.vandenkeybus@gmail.com designates 10.68.218.68 as permitted sender) client-ip=10.68.218.68; +Authentication-Results: mr.google.com; spf=pass (google.com: domain of jeroen.vandenkeybus@gmail.com designates 10.68.218.68 as permitted sender) smtp.mail=jeroen.vandenkeybus@gmail.com; dkim=pass header.i=jeroen.vandenkeybus@gmail.com +Received: from mr.google.com ([10.68.218.68]) + by 10.68.218.68 with SMTP id pe4mr25063612pbc.97.1327959448228 (num_hops = 1); + Mon, 30 Jan 2012 13:37:28 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gmail.com; s=gamma; + h=mime-version:date:message-id:subject:from:to:cc:content-type; + bh=acUEKJRLazlNr7PWqoJIHm/MPkfhI5SUq1Z0ntfqXSE=; + b=J1hmytKDfluL7NI73mVH+flbQ2+36FPRRx+DFhrPs8hiOebxJHysZZH+etW1ppCJG0 + ORowrKZYuyXb1CVYkSAYSnZ60r0edu8VycE4wsVItKQV8f0ZFyFZi5HteL1KiBRHqTYI + soeRaI/zW4cJv3AbTTc1Aj/4/HXKyuPtj0Ayc= +MIME-Version: 1.0 +Received: by 10.68.218.68 with SMTP id pe4mr20868027pbc.97.1327959448085; Mon, + 30 Jan 2012 13:37:28 -0800 (PST) +Received: by 10.143.38.11 with HTTP; Mon, 30 Jan 2012 13:37:28 -0800 (PST) +Date: Mon, 30 Jan 2012 22:37:28 +0100 +Message-ID: +Subject: [PATCH] Unhandled IRQs on AMD E-450: temporarily switch to + low-performance polling IRQ mode +From: Jeroen Van den Keybus +To: linux-kernel@vger.kernel.org +Cc: Clemens Ladisch , "Huang, Shane" , + Borislav Petkov , "Nguyen, Dong" , + jesse.brandeburg@gmail.com +Content-Type: text/plain; charset=ISO-8859-1 +Sender: linux-kernel-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-kernel@vger.kernel.org +X-RedHat-Spam-Score: -4.898 (DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD) +X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 +X-Scanned-By: MIMEDefang 2.68 on 10.5.110.19 +Status: RO +Content-Length: 7029 +Lines: 189 + +It seems that some motherboard designs using the ASM1083 PCI/PCIe +bridge (PCI device ID 1b21:1080, Rev. 01) suffer from stuck IRQ lines +on the PCI bus (causing the kernel to emit 'IRQxx: nobody cared' and +disable the IRQ). The following patch is an attempt to mitigate the +serious impact of permanently disabling an IRQ in that case and +actually make PCI devices better usable on this platform. + +It seems that the bridge fails to issue a IRQ deassertion message on +the PCIe bus, when the relevant driver causes the interrupting PCI +device to deassert its IRQ line. To solve this issue, it was tried to +re-issue an IRQ on a PCI device being able to do so (e1000 in this +case), but we suspect that the attempt to re-assert/deassert may have +occurred too soon after the initial IRQ for the ASM1083. Anyway, it +didn't work but if, after some delay, a new IRQ occurred, the related +IRQ deassertion message eventually did clear the IOAPIC IRQ. It would +be useful to re-enable the IRQ here. + +Therefore the patch below to poll_spurious_irqs() in spurious.c is +proposed, It does the following: + +1. lets the kernel decide that an IRQ is unhandled after only 10 +positives (instead of 100,000); +2. briefly (a few seconds or so, currently 1 s) switches to polling +IRQ at a higher rate than usual (100..1,000Hz instead of 10Hz, +currently 100Hz), but not too high to avoid excessive CPU load. Any +device drivers 'see' their interrupts handled with a higher latency +than usual, but they will still operate properly; +3. afterwards, simply reenable the IRQ. + +If proper operation of the PCIe legacy IRQ line emulation is restored +after 3, the system operates again at normal performance. If the IRQ +is still stuck after this procedure, the sequence repeats. + +If a genuinely stuck IRQ is used with this solution, the system would +simply sustain short bursts of 10 unhandled IRQs per second, and use +polling mode indefinitely at a moderate 100Hz rate. It seemed a good +alternative to the default irqpoll behaviour to me, which is why I +left it in poll_spurious_irqs() (instead of creating a new kernel +option). Additionally, if any device happens to share an IRQ with a +faulty one, that device is no longer banned forever. + +Debugging output is still present and may be removed. Bad IRQ +reporting is also commented out now. + +I have now tried it for about 2 months and I can conclude the following: + +1. The patch works and, judging from my Firewire card interrupt on +IRQ16, which repeats every 64 secs, I can confirm that the IRQ usually +gets reset when a new IRQ arrives (polling mode runs for 64 seconds +every time). +2. When testing a SiL-3114 SATA PCI card behind the ASM1083, I could +keep this running at fairly high speeds (50..70MB/s) for an hour or +so, but eventually the SiL driver crashed. In such conditions the PCI +system had to deal with a few hundred IRQs per second / polling mode +kicking in every 5..10 seconds). + +I would like to thank Clemens Ladisch for his invaluable help in +finding a solution (and providing a patch to avoid my SATA going down +every time during debugging). + + +Signed-off-by: Jeroen Van den Keybus +====== + +diff -up linux-3.2-rc4.orig/kernel/irq/spurious.c +linux-3.2-rc4/kernel/irq/spurious.c +--- linux-3.2-rc4.orig/kernel/irq/spurious.c 2011-12-01 23:56:01.000000000 +0100 ++++ linux-3.2-rc4/kernel/irq/spurious.c 2011-12-11 16:14:48.188377387 +0100 +@@ -18,7 +18,7 @@ + + static int irqfixup __read_mostly; + +-#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/10) ++#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/100) + static void poll_spurious_irqs(unsigned long dummy); + static DEFINE_TIMER(poll_spurious_irq_timer, poll_spurious_irqs, 0, 0); + static int irq_poll_cpu; +@@ -141,14 +141,15 @@ out: + static void poll_spurious_irqs(unsigned long dummy) + { + struct irq_desc *desc; +- int i; ++ int i, poll_again; + + if (atomic_inc_return(&irq_poll_active) != 1) + goto out; + irq_poll_cpu = smp_processor_id(); + ++ poll_again = 0; /* Will stay false as long as no polling candidate is found */ + for_each_irq_desc(i, desc) { +- unsigned int state; ++ unsigned int state, irq; + + if (!i) + continue; +@@ -158,15 +159,33 @@ static void poll_spurious_irqs(unsigned + barrier(); + if (!(state & IRQS_SPURIOUS_DISABLED)) + continue; +- +- local_irq_disable(); +- try_one_irq(i, desc, true); +- local_irq_enable(); ++ ++ /* We end up here with a disabled spurious interrupt. ++ desc->irqs_unhandled now tracks the number of times ++ the interrupt has been polled */ ++ ++ irq = desc->irq_data.irq; ++ if (desc->irqs_unhandled < 100) { /* 1 second delay with poll frequency 100 Hz */ ++ if (desc->irqs_unhandled == 0) ++ printk("Polling IRQ %d\n", irq); ++ local_irq_disable(); ++ try_one_irq(i, desc, true); ++ local_irq_enable(); ++ desc->irqs_unhandled++; ++ poll_again = 1; ++ } else { ++ printk("Reenabling IRQ %d\n", irq); ++ irq_enable(desc); /* Reenable the interrupt line */ ++ desc->depth--; ++ desc->istate &= (~IRQS_SPURIOUS_DISABLED); ++ desc->irqs_unhandled = 0; ++ } + } ++ if (poll_again) ++ mod_timer(&poll_spurious_irq_timer, ++ jiffies + POLL_SPURIOUS_IRQ_INTERVAL); + out: + atomic_dec(&irq_poll_active); +- mod_timer(&poll_spurious_irq_timer, +- jiffies + POLL_SPURIOUS_IRQ_INTERVAL); + } + + static inline int bad_action_ret(irqreturn_t action_ret) +@@ -177,11 +196,19 @@ static inline int bad_action_ret(irqretu + } + + /* +- * If 99,900 of the previous 100,000 interrupts have not been handled ++ * If 9 of the previous 10 interrupts have not been handled + * then assume that the IRQ is stuck in some manner. Drop a diagnostic + * and try to turn the IRQ off. + * +- * (The other 100-of-100,000 interrupts may have been a correctly ++ * Although this may cause early deactivation of a sporadically ++ * malfunctioning IRQ line, the poll system will: ++ * a) Poll it for 100 cycles at a 100 Hz rate ++ * b) Reenable it afterwards ++ * ++ * In worst case, with current settings, this will cause short bursts ++ * of 10 interrupts every second. ++ * ++ * (The other single interrupt may have been a correctly + * functioning device sharing an IRQ with the failing one) + */ + static void +@@ -302,19 +329,19 @@ void note_interrupt(unsigned int irq, st + } + + desc->irq_count++; +- if (likely(desc->irq_count < 100000)) ++ if (likely(desc->irq_count < 10)) + return; + + desc->irq_count = 0; +- if (unlikely(desc->irqs_unhandled > 99900)) { ++ if (unlikely(desc->irqs_unhandled >= 9)) { + /* + * The interrupt is stuck + */ +- __report_bad_irq(irq, desc, action_ret); ++ /* __report_bad_irq(irq, desc, action_ret); */ + /* + * Now kill the IRQ + */ +- printk(KERN_EMERG "Disabling IRQ #%d\n", irq); ++ printk(KERN_EMERG "Disabling IRQ %d\n", irq); + desc->istate |= IRQS_SPURIOUS_DISABLED; + desc->depth++; + irq_disable(desc); + +====== +-- +To unsubscribe from this list: send the line "unsubscribe linux-kernel" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html +Please read the FAQ at http://www.tux.org/lkml/ + From 543bc431456842f6fe5a1fea6f9c0691fc680bc0 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 2 Mar 2012 12:25:24 -0500 Subject: [PATCH 070/542] drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) --- drm-intel-crtc-dpms-fix.patch | 40 +++++++++++++++++++++++++++++++++++ kernel.spec | 5 +++++ 2 files changed, 45 insertions(+) create mode 100644 drm-intel-crtc-dpms-fix.patch diff --git a/drm-intel-crtc-dpms-fix.patch b/drm-intel-crtc-dpms-fix.patch new file mode 100644 index 000000000..eb582cbec --- /dev/null +++ b/drm-intel-crtc-dpms-fix.patch @@ -0,0 +1,40 @@ +From aed3f09db39596e539f90b11a5016aea4d8442e1 Mon Sep 17 00:00:00 2001 +From: Alban Browaeys +Date: Fri, 24 Feb 2012 17:12:45 +0000 +Subject: [PATCH] drm/i915: Prevent a machine hang by checking crtc->active + before loading lut + +Before loading the lut (gamma), check the active state of intel_crtc, +otherwise at least on gen2 hang ensue. + +This is reproducible in Xorg via: + xset dpms force off +then + xgamma -rgamma 2.0 # freeze. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44505 +Signed-off-by: Alban Browaeys +Signed-off-by: Chris Wilson +Reviewed-by: Jesse Barnes +Cc: stable@kernel.org +Signed-off-by: Jesse Barnes +--- + drivers/gpu/drm/i915/intel_display.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 4871ba0..f851db7 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -6184,7 +6184,7 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) + int i; + + /* The clocks have to be on to load the palette. */ +- if (!crtc->enabled) ++ if (!crtc->enabled || !intel_crtc->active) + return; + + /* use legacy palette for Ironlake */ +-- +1.7.7.6 + diff --git a/kernel.spec b/kernel.spec index 61ce5a840..c811303ff 100644 --- a/kernel.spec +++ b/kernel.spec @@ -705,6 +705,7 @@ Patch1800: drm-vgem.patch # nouveau + drm fixes # intel drm is all merged upstream Patch1824: drm-intel-next.patch +Patch1825: drm-intel-crtc-dpms-fix.patch Patch1900: linux-2.6-intel-iommu-igfx.patch @@ -1442,6 +1443,7 @@ ApplyPatch drm-vgem.patch # Intel DRM ApplyOptionalPatch drm-intel-next.patch +ApplyPatch drm-intel-crtc-dpms-fix.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch @@ -2390,6 +2392,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 02 2012 Adam Jackson +- drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) + * Thu Mar 01 2012 Dave Jones - temporarily switch to low-performance polling IRQ mode when unexpected IRQs occur. From 5a64af3faf1dad09c05ddbc802b6624edb12be61 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Fri, 2 Mar 2012 14:18:50 -0600 Subject: [PATCH 071/542] Disable threading on compression/decompression for hibernate --- ...threading-in-compression-for-hibernate.patch | 17 +++++++++++++++++ kernel.spec | 9 +++++++++ 2 files changed, 26 insertions(+) create mode 100644 disable-threading-in-compression-for-hibernate.patch diff --git a/disable-threading-in-compression-for-hibernate.patch b/disable-threading-in-compression-for-hibernate.patch new file mode 100644 index 000000000..685c294ef --- /dev/null +++ b/disable-threading-in-compression-for-hibernate.patch @@ -0,0 +1,17 @@ +In attempt to find the cause of some of the hibernate issues we are seeing, +turn off threading for compression. + +Signed-off-by: Justin M. Forbes + +diff -ruNp a/kernel/power/swap.c b/kernel/power/swap.c +--- a/kernel/power/swap.c 2012-03-02 13:52:27.777485028 -0600 ++++ b/kernel/power/swap.c 2012-03-02 14:05:20.168115129 -0600 +@@ -401,7 +401,7 @@ static int swap_writer_finish(struct swa + #define LZO_CMP_SIZE (LZO_CMP_PAGES * PAGE_SIZE) + + /* Maximum number of threads for compression/decompression. */ +-#define LZO_THREADS 3 ++#define LZO_THREADS 1 + + /* Maximum number of pages for read buffering. */ + #define LZO_READ_PAGES (MAP_PAGE_ENTRIES * 8) diff --git a/kernel.spec b/kernel.spec index c811303ff..1415113cc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -781,6 +781,9 @@ Patch21301: cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch #rhbz 728478 Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch +# Disable threading in hibernate compression +Patch21303: disable-threading-in-compression-for-hibernate.patch + Patch21400: unhandled-irqs-switch-to-polling.patch # compat-wireless patches @@ -1509,6 +1512,9 @@ ApplyPatch cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch #rhbz 728478 ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch +#Disable threading in hibernate compression +ApplyPatch disable-threading-in-compression-for-hibernate.patch + ApplyPatch unhandled-irqs-switch-to-polling.patch # END OF PATCH APPLICATIONS @@ -2392,6 +2398,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 02 2012 Justin M. Forbes +- Disable threading in hibernate compression/decompression + * Fri Mar 02 2012 Adam Jackson - drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) From b81b450037ea6d78fdda2080f92b3e7081c3c356 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 5 Mar 2012 09:09:48 -0500 Subject: [PATCH 072/542] Add -r to debuginfo_args to invoke eu-strip --reloc-debug-sections. The -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections reduces the number of unnecessary relocations in kernel module .ko.debug files. This saves ~500MB on the installed size of the kernel-debuginfo package and makes the rpm file ~30MB smaller. --- kernel.spec | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 1415113cc..9ea550139 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -566,8 +566,11 @@ BuildRequires: pciutils-devel gettext BuildConflicts: rhbuildsys(DiskFree) < 500Mb %if %{with_debuginfo} # Fancy new debuginfo generation introduced in Fedora 8/RHEL 6. -BuildRequires: rpm-build >= 4.4.2.1-4 -%define debuginfo_args --strict-build-id +# The -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections +# reduces the number of relocations in kernel module .ko.debug files and was +# introduced with rpm 4.9 and elfutils 0.153. +BuildRequires: rpm-build >= 4.9.0-1, elfutils >= elfutils-0.153-1 +%define debuginfo_args --strict-build-id -r %endif Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.xz @@ -2398,6 +2401,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 05 2012 Mark Wielaard +- Add -r to debuginfo_args to invoke eu-strip --reloc-debug-sections. + * Fri Mar 02 2012 Justin M. Forbes - Disable threading in hibernate compression/decompression From 16d5b4083a322db3225f71b095a63aa9a616e45f Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Mon, 5 Mar 2012 11:28:28 -0500 Subject: [PATCH 073/542] Turn-off CONFIG_B43_BCMA_EXTRA to avoid b43/brcmsmac overlap --- config-generic | 2 +- kernel.spec | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config-generic b/config-generic index 2e1f3ad61..34f38d163 100644 --- a/config-generic +++ b/config-generic @@ -1464,7 +1464,7 @@ CONFIG_B43=m CONFIG_B43_PCMCIA=y CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y -CONFIG_B43_BCMA_EXTRA=y +# CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y diff --git a/kernel.spec b/kernel.spec index 9ea550139..673b996f5 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2401,6 +2401,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 05 2012 John W. Linville +- Turn-off CONFIG_B43_BCMA_EXTRA to avoid b43/brcmsmac overlap + * Mon Mar 05 2012 Mark Wielaard - Add -r to debuginfo_args to invoke eu-strip --reloc-debug-sections. From 322dbeb8ef2ff814ad598926a88065ea1d97123f Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 5 Mar 2012 11:36:13 -0500 Subject: [PATCH 074/542] Linux 3.3-rc6 --- config-arm-generic | 1 + drm-intel-crtc-dpms-fix.patch | 40 ---------------------------------- kernel.spec | 17 +++++---------- s390x-enable-keys-compat.patch | 15 ------------- sources | 4 +--- 5 files changed, 8 insertions(+), 69 deletions(-) delete mode 100644 drm-intel-crtc-dpms-fix.patch delete mode 100644 s390x-enable-keys-compat.patch diff --git a/config-arm-generic b/config-arm-generic index 8d4d9a9d2..6cc0d0d58 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -201,6 +201,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768 # CONFIG_MACH_EUKREA_CPUIMX35SD is not set CONFIG_ARM_ERRATA_720789=y CONFIG_ARM_ERRATA_751472=y +CONFIG_OMAP4_ERRATA_I688=y # CONFIG_FB_MX3 is not set # CONFIG_MX3_IPU is not set # CONFIG_MX3_IPU_IRQS is not set diff --git a/drm-intel-crtc-dpms-fix.patch b/drm-intel-crtc-dpms-fix.patch deleted file mode 100644 index eb582cbec..000000000 --- a/drm-intel-crtc-dpms-fix.patch +++ /dev/null @@ -1,40 +0,0 @@ -From aed3f09db39596e539f90b11a5016aea4d8442e1 Mon Sep 17 00:00:00 2001 -From: Alban Browaeys -Date: Fri, 24 Feb 2012 17:12:45 +0000 -Subject: [PATCH] drm/i915: Prevent a machine hang by checking crtc->active - before loading lut - -Before loading the lut (gamma), check the active state of intel_crtc, -otherwise at least on gen2 hang ensue. - -This is reproducible in Xorg via: - xset dpms force off -then - xgamma -rgamma 2.0 # freeze. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44505 -Signed-off-by: Alban Browaeys -Signed-off-by: Chris Wilson -Reviewed-by: Jesse Barnes -Cc: stable@kernel.org -Signed-off-by: Jesse Barnes ---- - drivers/gpu/drm/i915/intel_display.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 4871ba0..f851db7 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -6184,7 +6184,7 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) - int i; - - /* The clocks have to be on to load the palette. */ -- if (!crtc->enabled) -+ if (!crtc->enabled || !intel_crtc->active) - return; - - /* use legacy palette for Ironlake */ --- -1.7.7.6 - diff --git a/kernel.spec b/kernel.spec index 673b996f5..a2e3aba56 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 5 +%define rcrev 6 # The git snapshot level -%define gitrev 3 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -708,7 +708,6 @@ Patch1800: drm-vgem.patch # nouveau + drm fixes # intel drm is all merged upstream Patch1824: drm-intel-next.patch -Patch1825: drm-intel-crtc-dpms-fix.patch Patch1900: linux-2.6-intel-iommu-igfx.patch @@ -769,9 +768,6 @@ Patch21236: scsi-fix-sd_revalidate_disk-oops.patch Patch21250: mcelog-rcu-splat.patch Patch21270: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch -#rhbz 790367 -Patch21280: s390x-enable-keys-compat.patch - #rhbz 795544 Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch @@ -1449,7 +1445,6 @@ ApplyPatch drm-vgem.patch # Intel DRM ApplyOptionalPatch drm-intel-next.patch -ApplyPatch drm-intel-crtc-dpms-fix.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch @@ -1500,9 +1495,6 @@ ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch ApplyPatch mcelog-rcu-splat.patch -#rhbz 790367 -ApplyPatch s390x-enable-keys-compat.patch - #rhbz 795544 ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch @@ -2401,6 +2393,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 05 2012 Dave Jones +- Linux 3.3-rc6 + * Mon Mar 05 2012 John W. Linville - Turn-off CONFIG_B43_BCMA_EXTRA to avoid b43/brcmsmac overlap diff --git a/s390x-enable-keys-compat.patch b/s390x-enable-keys-compat.patch deleted file mode 100644 index 43d203ca5..000000000 --- a/s390x-enable-keys-compat.patch +++ /dev/null @@ -1,15 +0,0 @@ -@@ -, +, @@ - arch/s390/Kconfig | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) ---- a/arch/s390/Kconfig -+++ a/arch/s390/Kconfig -@@ -227,6 +227,9 @@ config COMPAT - config SYSVIPC_COMPAT - def_bool y if COMPAT && SYSVIPC - -+config KEYS_COMPAT -+ def_bool y if COMPAT && KEYS -+ - config AUDIT_ARCH - def_bool y - diff --git a/sources b/sources index 714fc9614..b09786d65 100644 --- a/sources +++ b/sources @@ -1,5 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -19b5b3b5529c1d70463cf1db5177047d patch-3.3-rc5.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -915adf42637fc2fa08f11565fadef1fc patch-3.3-rc5-git2.xz -85ab3feb862960898ef69e3b0b939564 patch-3.3-rc5-git3.xz +cb0886dd96efbacc0c4923d36003b340 patch-3.3-rc6.xz From 49d8394023a1570fa5dc955c49e08963748862e2 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 5 Mar 2012 11:36:35 -0500 Subject: [PATCH 075/542] Disable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 34f38d163..5288f19fa 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y # CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3076,7 +3076,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3980,7 +3980,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..d823ebe73 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..02e1fe7d1 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index a2e3aba56..315080bd3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2393,6 +2393,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 05 2012 Dave Jones - 3.3.0-0.rc6.git0.2 +- Disable debugging options. + * Mon Mar 05 2012 Dave Jones - Linux 3.3-rc6 From 0c76388efa86faa5e75289c9e4d96c55a430bac2 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 5 Mar 2012 11:44:00 -0500 Subject: [PATCH 076/542] hush output --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c1e1ab92c..b9475a43f 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ debug: @perl -pi -e 's/# CONFIG_MAXSMP is not set/CONFIG_MAXSMP=y/' config-x86-generic - # Try out UAS in rawhide builds. + @# Try out UAS in rawhide builds. @perl -pi -e 's/# CONFIG_USB_UAS is not set/CONFIG_USB_UAS=m/' config-generic @perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec From b183b702f7fec9aecd67288ffbf6493edd980952 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 5 Mar 2012 14:22:10 -0500 Subject: [PATCH 077/542] Reenable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 5288f19fa..34f38d163 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y # CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3076,7 +3076,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=m # @@ -3980,7 +3980,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index d823ebe73..0eb253221 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_VM=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y -# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_SLUB_DEBUG_ON=y -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -# CONFIG_DEBUG_SG is not set +CONFIG_DEBUG_SG=y # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_WRITECOUNT=y +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_X86_PTDUMP is not set +CONFIG_X86_PTDUMP=y -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMADEVICES_VDEBUG is not set +CONFIG_DMADEVICES_DEBUG=y +CONFIG_DMADEVICES_VDEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_TEST_LIST_SORT=y -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 02e1fe7d1..6a7d1f767 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index 315080bd3..6f597da53 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 0 +%define rawhide_skip_docs 1 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2393,6 +2393,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 05 2012 Dave Jones - 3.3.0-0.rc6.git0.3 +- Reenable debugging options. + * Mon Mar 05 2012 Dave Jones - 3.3.0-0.rc6.git0.2 - Disable debugging options. From 43c809527e94828f887d4aa9e53171ee9b4c6e81 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 6 Mar 2012 22:32:20 -0500 Subject: [PATCH 078/542] Linux v3.3-rc6-131-g097d591 --- ...ry-refcount-leak-when-opening-a-FIFO.patch | 61 ------------------- kernel.spec | 13 ++-- sources | 1 + utrace.patch | 10 +-- 4 files changed, 11 insertions(+), 74 deletions(-) delete mode 100644 cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch diff --git a/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch b/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch deleted file mode 100644 index 9fd87acac..000000000 --- a/cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 5bccda0ebc7c0331b81ac47d39e4b920b198b2cd Mon Sep 17 00:00:00 2001 -From: Jeff Layton -Date: Thu, 23 Feb 2012 09:37:45 -0500 -Subject: [PATCH] cifs: fix dentry refcount leak when opening a FIFO on lookup - -The cifs code will attempt to open files on lookup under certain -circumstances. What happens though if we find that the file we opened -was actually a FIFO or other special file? - -Currently, the open filehandle just ends up being leaked leading to -a dentry refcount mismatch and oops on umount. Fix this by having the -code close the filehandle on the server if it turns out not to be a -regular file. While we're at it, change this spaghetti if statement -into a switch too. - -Cc: stable@vger.kernel.org -Reported-by: CAI Qian -Tested-by: CAI Qian -Reviewed-by: Shirish Pargaonkar -Signed-off-by: Jeff Layton -Signed-off-by: Steve French ---- - fs/cifs/dir.c | 20 ++++++++++++++++++-- - 1 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c -index 63a196b..bc7e244 100644 ---- a/fs/cifs/dir.c -+++ b/fs/cifs/dir.c -@@ -584,10 +584,26 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, - * If either that or op not supported returned, follow - * the normal lookup. - */ -- if ((rc == 0) || (rc == -ENOENT)) -+ switch (rc) { -+ case 0: -+ /* -+ * The server may allow us to open things like -+ * FIFOs, but the client isn't set up to deal -+ * with that. If it's not a regular file, just -+ * close it and proceed as if it were a normal -+ * lookup. -+ */ -+ if (newInode && !S_ISREG(newInode->i_mode)) { -+ CIFSSMBClose(xid, pTcon, fileHandle); -+ break; -+ } -+ case -ENOENT: - posix_open = true; -- else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP)) -+ case -EOPNOTSUPP: -+ break; -+ default: - pTcon->broken_posix_open = true; -+ } - } - if (!posix_open) - rc = cifs_get_inode_info_unix(&newInode, full_path, --- -1.7.0.4 - diff --git a/kernel.spec b/kernel.spec index 6f597da53..3d750b052 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 6 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -774,9 +774,6 @@ Patch21290: ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch #rhbz 727865 730007 Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch -#rhbz 798296 -Patch21301: cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch - #rhbz 728478 Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch @@ -1501,9 +1498,6 @@ ApplyPatch ums_realtek-do-not-use-stack-memory-for-DMA-in-__do_.patch #rhbz 727865 730007 ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch -#rhbz 798296 -ApplyPatch cifs-fix-dentry-refcount-leak-when-opening-a-FIFO.patch - #rhbz 728478 ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch @@ -2393,6 +2387,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 07 2012 Dave Jones - 3.3.0-0.rc6.git1.1 +- Linux v3.3-rc6-131-g097d591 + * Mon Mar 05 2012 Dave Jones - 3.3.0-0.rc6.git0.3 - Reenable debugging options. diff --git a/sources b/sources index b09786d65..f341d41fe 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 cb0886dd96efbacc0c4923d36003b340 patch-3.3-rc6.xz +20ca19d241eda3dd11fadc885c9ebe27 patch-3.3-rc6-git1.xz diff --git a/utrace.patch b/utrace.patch index 937c7f6e8..fdf24a472 100644 --- a/utrace.patch +++ b/utrace.patch @@ -1873,15 +1873,15 @@ index e2cd3e2..fa40928 100644 ftrace_graph_init_task(p); rt_mutex_init_task(p); -@@ -1550,6 +1555,8 @@ long do_fork(unsigned long clone_flags, - init_completion(&vfork); +@@ -1583,6 +1583,8 @@ long do_fork(unsigned long clone_flags, + get_task_struct(p); } + UTRACE_HOOK(current, CLONE, report_clone(clone_flags, p)); + - /* - * We set PF_STARTING at creation in case tracing wants to - * use this to distinguish a fully live task from one that + wake_up_new_task(p); + + /* forking complete and child started to run, tell ptracer */ @@ -1561,6 +1568,8 @@ long do_fork(unsigned long clone_flags, wake_up_new_task(p); From 987250ae87730a4a183ac68c64c0eae9ff7bfd93 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 7 Mar 2012 00:15:17 -0500 Subject: [PATCH 079/542] Linux v3.3-rc6-132-g55062d0 --- kernel.spec | 5 ++++- sources | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 3d750b052..f3d4af094 100644 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 6 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2387,6 +2387,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 07 2012 Dave Jones - 3.3.0-0.rc6.git2.1 +- Linux v3.3-rc6-132-g55062d0 + * Wed Mar 07 2012 Dave Jones - 3.3.0-0.rc6.git1.1 - Linux v3.3-rc6-131-g097d591 diff --git a/sources b/sources index f341d41fe..f2b511e75 100644 --- a/sources +++ b/sources @@ -2,3 +2,4 @@ 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 cb0886dd96efbacc0c4923d36003b340 patch-3.3-rc6.xz 20ca19d241eda3dd11fadc885c9ebe27 patch-3.3-rc6-git1.xz +1686288f26ee3960a694ad743f3247b1 patch-3.3-rc6-git2.xz From bb2459834713e1015b1db420eae5afde1a2e19b0 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 7 Mar 2012 17:11:26 -0500 Subject: [PATCH 080/542] Add debug patch for bugs 787171/766277 --- kernel.spec | 7 +++++++ weird-root-dentry-name-debug.patch | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 weird-root-dentry-name-debug.patch diff --git a/kernel.spec b/kernel.spec index f3d4af094..5b7e5a532 100644 --- a/kernel.spec +++ b/kernel.spec @@ -782,6 +782,8 @@ Patch21303: disable-threading-in-compression-for-hibernate.patch Patch21400: unhandled-irqs-switch-to-polling.patch +Patch22000: weird-root-dentry-name-debug.patch + # compat-wireless patches Patch50000: compat-wireless-config-fixups.patch Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch @@ -1506,6 +1508,8 @@ ApplyPatch disable-threading-in-compression-for-hibernate.patch ApplyPatch unhandled-irqs-switch-to-polling.patch +ApplyPatch weird-root-dentry-name-debug.patch + # END OF PATCH APPLICATIONS %endif @@ -2387,6 +2391,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 07 2012 Dave Jones +- Add debug patch for bugs 787171/766277 + * Wed Mar 07 2012 Dave Jones - 3.3.0-0.rc6.git2.1 - Linux v3.3-rc6-132-g55062d0 diff --git a/weird-root-dentry-name-debug.patch b/weird-root-dentry-name-debug.patch new file mode 100644 index 000000000..e2fb2e116 --- /dev/null +++ b/weird-root-dentry-name-debug.patch @@ -0,0 +1,19 @@ +debug patch for bz 787171/766277 + +diff --git a/fs/dcache.c b/fs/dcache.c +index bcbdb33..a6a5fdb 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -2530,8 +2530,10 @@ global_root: + */ + if (IS_ROOT(dentry) && + (dentry->d_name.len != 1 || dentry->d_name.name[0] != '/')) { +- WARN(1, "Root dentry has weird name <%.*s>\n", +- (int) dentry->d_name.len, dentry->d_name.name); ++ WARN(1, "Root dentry has weird name <%.*s> vfsmnt:%s fs:%s\n", ++ (int) dentry->d_name.len, dentry->d_name.name, ++ vfsmnt->mnt_root->d_name.name, ++ vfsmnt->mnt_sb->s_type->name); + } + if (!slash) + error = prepend(buffer, buflen, "/", 1); From 953a44d426ba6e879331f3ae6c9c09e6aa6fde16 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 12 Mar 2012 12:21:23 -0400 Subject: [PATCH 081/542] Linux 3.3-rc7 --- kernel.spec | 7 +++++-- sources | 4 +--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel.spec b/kernel.spec index 5b7e5a532..dabf3168b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 6 +%define rcrev 7 # The git snapshot level -%define gitrev 2 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2391,6 +2391,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 12 2012 Dave Jones 3.3.0-0.rc7.git0.1 +- Linux 3.3-rc7 + * Wed Mar 07 2012 Dave Jones - Add debug patch for bugs 787171/766277 diff --git a/sources b/sources index f2b511e75..e946d6b0e 100644 --- a/sources +++ b/sources @@ -1,5 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 -cb0886dd96efbacc0c4923d36003b340 patch-3.3-rc6.xz -20ca19d241eda3dd11fadc885c9ebe27 patch-3.3-rc6-git1.xz -1686288f26ee3960a694ad743f3247b1 patch-3.3-rc6-git2.xz +4364d0789141647508a9eb1fba8ffa6f patch-3.3-rc7.xz From f8424d652a7d426828655e3b94fc2f490e6c9eea Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 12 Mar 2012 12:22:00 -0400 Subject: [PATCH 082/542] Disable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 34f38d163..5288f19fa 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y # CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3076,7 +3076,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3980,7 +3980,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..d823ebe73 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..02e1fe7d1 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index dabf3168b..09ec856f7 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2391,6 +2391,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 12 2012 Dave Jones - 3.3.0-0.rc7.git0.2 +- Disable debugging options. + * Mon Mar 12 2012 Dave Jones 3.3.0-0.rc7.git0.1 - Linux 3.3-rc7 From cade301a3b0cfddb0860cbd134b4a1616e17c03e Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Mon, 12 Mar 2012 14:29:38 -0400 Subject: [PATCH 083/542] Reenable debugging options. --- config-generic | 8 ++-- config-nodebug | 110 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 4 files changed, 66 insertions(+), 63 deletions(-) diff --git a/config-generic b/config-generic index 5288f19fa..34f38d163 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y # CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3076,7 +3076,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -# CONFIG_USB_UAS is not set +CONFIG_USB_UAS=m # @@ -3980,7 +3980,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index d823ebe73..0eb253221 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,110 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_VM=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y -# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_SLUB_DEBUG_ON=y -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -# CONFIG_DEBUG_SG is not set +CONFIG_DEBUG_SG=y # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_WRITECOUNT is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_WRITECOUNT=y +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -# CONFIG_X86_PTDUMP is not set +CONFIG_X86_PTDUMP=y -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMADEVICES_VDEBUG is not set +CONFIG_DMADEVICES_DEBUG=y +CONFIG_DMADEVICES_VDEBUG=y CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_TEST_LIST_SORT=y -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index 02e1fe7d1..6a7d1f767 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -310,7 +310,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index 09ec856f7..57fd80fd5 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -158,7 +158,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -171,7 +171,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 0 +%define rawhide_skip_docs 1 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2391,6 +2391,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 12 2012 Dave Jones - 3.3.0-0.rc7.git0.3 +- Reenable debugging options. + * Mon Mar 12 2012 Dave Jones - 3.3.0-0.rc7.git0.2 - Disable debugging options. From 4f07bf38b535b6e2bb7fd019edc2791b51ec7dd4 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 12 Mar 2012 14:58:06 -0400 Subject: [PATCH 084/542] Make the irqpoll patch less chatty (rhbz 800520) Should look at making the frequency of checking dynamic, but this will help the immediate problem. --- unhandled-irqs-switch-to-polling.patch | 47 ++++++++++---------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/unhandled-irqs-switch-to-polling.patch b/unhandled-irqs-switch-to-polling.patch index 8eb09052b..6eeaf0bec 100644 --- a/unhandled-irqs-switch-to-polling.patch +++ b/unhandled-irqs-switch-to-polling.patch @@ -140,16 +140,16 @@ every time during debugging). Signed-off-by: Jeroen Van den Keybus + +Make it less chatty. Josh Boyer ====== -diff -up linux-3.2-rc4.orig/kernel/irq/spurious.c -linux-3.2-rc4/kernel/irq/spurious.c ---- linux-3.2-rc4.orig/kernel/irq/spurious.c 2011-12-01 23:56:01.000000000 +0100 -+++ linux-3.2-rc4/kernel/irq/spurious.c 2011-12-11 16:14:48.188377387 +0100 +--- linux-2.6.orig/kernel/irq/spurious.c ++++ linux-2.6/kernel/irq/spurious.c @@ -18,7 +18,7 @@ - + static int irqfixup __read_mostly; - + -#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/10) +#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/100) static void poll_spurious_irqs(unsigned long dummy); @@ -161,42 +161,37 @@ linux-3.2-rc4/kernel/irq/spurious.c struct irq_desc *desc; - int i; + int i, poll_again; - + if (atomic_inc_return(&irq_poll_active) != 1) goto out; irq_poll_cpu = smp_processor_id(); - + + poll_again = 0; /* Will stay false as long as no polling candidate is found */ for_each_irq_desc(i, desc) { - unsigned int state; + unsigned int state, irq; - + if (!i) continue; -@@ -158,15 +159,33 @@ static void poll_spurious_irqs(unsigned - barrier(); +@@ -159,14 +160,29 @@ static void poll_spurious_irqs(unsigned if (!(state & IRQS_SPURIOUS_DISABLED)) continue; -- + - local_irq_disable(); - try_one_irq(i, desc, true); - local_irq_enable(); -+ + /* We end up here with a disabled spurious interrupt. + desc->irqs_unhandled now tracks the number of times + the interrupt has been polled */ + + irq = desc->irq_data.irq; + if (desc->irqs_unhandled < 100) { /* 1 second delay with poll frequency 100 Hz */ -+ if (desc->irqs_unhandled == 0) -+ printk("Polling IRQ %d\n", irq); + local_irq_disable(); + try_one_irq(i, desc, true); + local_irq_enable(); + desc->irqs_unhandled++; + poll_again = 1; + } else { -+ printk("Reenabling IRQ %d\n", irq); + irq_enable(desc); /* Reenable the interrupt line */ + desc->depth--; + desc->istate &= (~IRQS_SPURIOUS_DISABLED); @@ -211,11 +206,11 @@ linux-3.2-rc4/kernel/irq/spurious.c - mod_timer(&poll_spurious_irq_timer, - jiffies + POLL_SPURIOUS_IRQ_INTERVAL); } - + static inline int bad_action_ret(irqreturn_t action_ret) -@@ -177,11 +196,19 @@ static inline int bad_action_ret(irqretu +@@ -177,11 +193,19 @@ static inline int bad_action_ret(irqretu } - + /* - * If 99,900 of the previous 100,000 interrupts have not been handled + * If 9 of the previous 10 interrupts have not been handled @@ -235,14 +230,14 @@ linux-3.2-rc4/kernel/irq/spurious.c * functioning device sharing an IRQ with the failing one) */ static void -@@ -302,19 +329,19 @@ void note_interrupt(unsigned int irq, st +@@ -302,19 +326,19 @@ void note_interrupt(unsigned int irq, st } - + desc->irq_count++; - if (likely(desc->irq_count < 100000)) + if (likely(desc->irq_count < 10)) return; - + desc->irq_count = 0; - if (unlikely(desc->irqs_unhandled > 99900)) { + if (unlikely(desc->irqs_unhandled >= 9)) { @@ -259,11 +254,3 @@ linux-3.2-rc4/kernel/irq/spurious.c desc->istate |= IRQS_SPURIOUS_DISABLED; desc->depth++; irq_disable(desc); - -====== --- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ - From c2984483882c4aa4a1a6508754a493c16e3bf120 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 12 Mar 2012 14:56:50 -0500 Subject: [PATCH 085/542] Create a working config file for highbank and add highbank to the spec file. Signed-off-by: Mark Langsdorf --- config-arm-highbank | 36 +++++++++++++++++++++- highbank-export-clock-functions.patch | 43 +++++++++++++++++++++++++++ kernel.spec | 14 +++++++-- 3 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 highbank-export-clock-functions.patch diff --git a/config-arm-highbank b/config-arm-highbank index 18fc0c4cc..c20f104f2 100644 --- a/config-arm-highbank +++ b/config-arm-highbank @@ -1,3 +1,37 @@ -ONFIG_ARCH_HIGHBANK=y +CONFIG_ARCH_HIGHBANK=y +# CONFIG_ARM_LPAE is not set +# CONFIG_ARM_THUMBEE is not set +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +# CONFIG_ARM_ERRATA_430973 is not set +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +# CONFIG_PL310_ERRATA_588369 is not set +# CONFIG_PL310_ERRATA_727915 is not set +# CONFIG_ARM_ERRATA_743622 is not set +# CONFIG_PL310_ERRATA_753970 is not set +# CONFIG_ARM_ERRATA_754322 is not set +# CONFIG_PL310_ERRATA_769419 is not set + +# CONFIG_THUMB2_KERNEL is not set + +CONFIG_ARM_TIMER_SP804=y + CONFIG_VFP=y +CONFIG_VFPv3=y CONFIG_NEON=y + +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_ATA_SFF=y + +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NET_CALXEDA_XGMAC=y + +CONFIG_GPIO_PL061=y + +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y + +# CONFIG_DVB_TDA1004X is not set +# CONFIG_DVB_PLL is not set diff --git a/highbank-export-clock-functions.patch b/highbank-export-clock-functions.patch new file mode 100644 index 000000000..f66754d2e --- /dev/null +++ b/highbank-export-clock-functions.patch @@ -0,0 +1,43 @@ +From 81a06eed2491273b7d6d274ae4be1d333c100ab0 Mon Sep 17 00:00:00 2001 +From: Mark Langsdorf +Date: Mon, 12 Mar 2012 06:28:19 -0400 +Subject: [PATCH] highbank: export clock functions + +Signed-off-by: Mark Langsdorf +--- + arch/arm/mach-highbank/clock.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git diff -up linux-3.2-rc4.orig/arch/arm/mach-highbank/clock.c diff -up linux-3.2-rc4/arch/arm/mach-highbank/clock.c +index c25a2ae..cdbc575 100644 +--- a/arch/arm/mach-highbank/clock.c ++++ b/arch/arm/mach-highbank/clock.c +@@ -27,14 +27,17 @@ int clk_enable(struct clk *clk) + { + return 0; + } ++EXPORT_SYMBOL_GPL(clk_enable); + + void clk_disable(struct clk *clk) + {} ++EXPORT_SYMBOL_GPL(clk_disable); + + unsigned long clk_get_rate(struct clk *clk) + { + return clk->rate; + } ++EXPORT_SYMBOL_GPL(clk_get_rate); + + long clk_round_rate(struct clk *clk, unsigned long rate) + { +@@ -45,6 +48,7 @@ int clk_set_rate(struct clk *clk, unsigned long rate) + { + return 0; + } ++EXPORT_SYMBOL_GPL(clk_set_rate); + + static struct clk eclk = { .rate = 200000000 }; + static struct clk pclk = { .rate = 150000000 }; +-- +1.7.9.1 + diff --git a/kernel.spec b/kernel.spec index 57fd80fd5..a28d4b901 100644 --- a/kernel.spec +++ b/kernel.spec @@ -269,10 +269,8 @@ Summary: The Linux kernel %define with_tegra 0 %define with_omap 0 %define with_imx 0 -%endif - -# disable highbank ARM kernels for the time being %define with_highbank 0 +%endif # kernel-kirkwood is only built for armv5 %ifnarch armv5tel @@ -747,6 +745,10 @@ Patch21000: arm-omap-dt-compat.patch Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch Patch21004: arm-tegra-nvec-kconfig.patch +# highbank patches +# Highbank clock functions need to be EXPORT for module builds +Patch21010: highbank-export-clock-functions.patch + Patch21070: ext4-Support-check-none-nocheck-mount-options.patch Patch21092: udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch @@ -1510,6 +1512,9 @@ ApplyPatch unhandled-irqs-switch-to-polling.patch ApplyPatch weird-root-dentry-name-debug.patch +#Highbank clock functions +ApplyPatch highbank-export-clock-functions.patch + # END OF PATCH APPLICATIONS %endif @@ -2391,6 +2396,9 @@ fi # '-' | | # '-' %changelog +* Mon Mar 12 2012 Mark Langsdorf +- Re-enable highbank config option and add new config file to support it + * Mon Mar 12 2012 Dave Jones - 3.3.0-0.rc7.git0.3 - Reenable debugging options. From ec5a8cd72e2ac5c435bd1dd6f731839960663117 Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Tue, 13 Mar 2012 13:26:37 -0400 Subject: [PATCH 086/542] Remove infrastructure related to compat-wireless integration --- compat-wireless-config-fixups.patch | 72 --- compat-wireless-integrated-build.patch | 12 - ...at-wireless-pr_fmt-warning-avoidance.patch | 611 ------------------ config-backports | 24 - kernel.spec | 113 +--- ...on-to-allow-external-modules-to-avoi.patch | 80 --- sources | 1 - 7 files changed, 12 insertions(+), 901 deletions(-) delete mode 100644 compat-wireless-config-fixups.patch delete mode 100644 compat-wireless-integrated-build.patch delete mode 100644 compat-wireless-pr_fmt-warning-avoidance.patch delete mode 100644 config-backports delete mode 100644 modpost-add-option-to-allow-external-modules-to-avoi.patch diff --git a/compat-wireless-config-fixups.patch b/compat-wireless-config-fixups.patch deleted file mode 100644 index f74dbd2d5..000000000 --- a/compat-wireless-config-fixups.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -up compat-wireless-2012-02-05/config.mk.orig compat-wireless-2012-02-05/config.mk ---- compat-wireless-2012-02-05/config.mk.orig 2012-02-05 16:10:31.000000000 -0500 -+++ compat-wireless-2012-02-05/config.mk 2012-02-06 11:43:46.142222712 -0500 -@@ -14,6 +14,9 @@ else - include $(KLIB_BUILD)/.config - endif - -+# Enable SSB module (needs to be visible in compat_autoconf.h) -+CONFIG_SSB=m -+ - ifneq ($(wildcard $(KLIB_BUILD)/Makefile),) - - COMPAT_LATEST_VERSION = 3 -diff -up compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile.orig compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile ---- compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile.orig 2012-02-05 16:10:39.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile 2012-02-06 11:43:46.143222699 -0500 -@@ -1 +1 @@ --obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o -+#obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o -diff -up compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile.orig compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile ---- compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile.orig 2012-02-05 16:10:37.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile 2012-02-06 11:43:46.143222699 -0500 -@@ -2,7 +2,7 @@ - # Makefile for the Atheros network device drivers. - # - --obj-$(CONFIG_ATL1) += atlx/ --obj-$(CONFIG_ATL2) += atlx/ --obj-$(CONFIG_ATL1E) += atl1e/ --obj-$(CONFIG_ATL1C) += atl1c/ -+#obj-$(CONFIG_ATL1) += atlx/ -+#obj-$(CONFIG_ATL2) += atlx/ -+#obj-$(CONFIG_ATL1E) += atl1e/ -+#obj-$(CONFIG_ATL1C) += atl1c/ -diff -up compat-wireless-2012-02-05/drivers/net/usb/Makefile.orig compat-wireless-2012-02-05/drivers/net/usb/Makefile ---- compat-wireless-2012-02-05/drivers/net/usb/Makefile.orig 2012-02-05 16:10:39.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/usb/Makefile 2012-02-06 11:45:23.531005184 -0500 -@@ -2,6 +2,6 @@ - # Makefile for USB Network drivers - # - --obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o --obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o --obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o -+#obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o -+#obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o -+#obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o -diff -up compat-wireless-2012-02-05/Makefile.orig compat-wireless-2012-02-05/Makefile ---- compat-wireless-2012-02-05/Makefile.orig 2012-02-05 16:10:31.000000000 -0500 -+++ compat-wireless-2012-02-05/Makefile 2012-02-06 11:43:46.145222675 -0500 -@@ -10,8 +10,8 @@ export KLIB_BUILD ?= $(KLIB)/build - MODPROBE := /sbin/modprobe - - ifneq ($(wildcard $(MODPROBE)),) --MADWIFI=$(shell $(MODPROBE) -l ath_pci) --OLD_IWL=$(shell $(MODPROBE) -l iwl4965) -+MADWIFI="" -+OLD_IWL="" - endif - - DESTDIR?= -@@ -44,8 +44,8 @@ endif - - endif - --obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/ --obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/ -+#obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/ -+#obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/ - - else - diff --git a/compat-wireless-integrated-build.patch b/compat-wireless-integrated-build.patch deleted file mode 100644 index 1d08e4b58..000000000 --- a/compat-wireless-integrated-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up compat-wireless-2011-12-01/Makefile.orig compat-wireless-2011-12-01/Makefile ---- compat-wireless-2011-12-01/Makefile.orig 2011-12-14 09:10:01.377297637 -0500 -+++ compat-wireless-2011-12-01/Makefile 2011-12-14 09:47:36.834100534 -0500 -@@ -68,7 +68,7 @@ all: modules - - modules: $(CREL_CHECK) - @./scripts/check_config.sh -- $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules -+ $(MAKE) -C $(KLIB_BUILD) M=$(PWD) INTEGRATED_BUILD=1 modules - @touch $@ - - bt: $(CREL_CHECK) diff --git a/compat-wireless-pr_fmt-warning-avoidance.patch b/compat-wireless-pr_fmt-warning-avoidance.patch deleted file mode 100644 index 6dbbc82e8..000000000 --- a/compat-wireless-pr_fmt-warning-avoidance.patch +++ /dev/null @@ -1,611 +0,0 @@ -diff -up compat-wireless-2012-02-05/compat/crc8.c.orig compat-wireless-2012-02-05/compat/crc8.c ---- compat-wireless-2012-02-05/compat/crc8.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/compat/crc8.c 2012-02-06 11:53:01.617278318 -0500 -@@ -14,6 +14,7 @@ - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/bcma/bcma_private.h.orig compat-wireless-2012-02-05/drivers/bcma/bcma_private.h ---- compat-wireless-2012-02-05/drivers/bcma/bcma_private.h.orig 2012-02-05 16:10:33.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/bcma/bcma_private.h 2012-02-06 11:53:01.618278306 -0500 -@@ -1,6 +1,7 @@ - #ifndef LINUX_BCMA_PRIVATE_H_ - #define LINUX_BCMA_PRIVATE_H_ - -+#undef pr_fmt - #ifndef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - #endif -diff -up compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c.orig compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c ---- compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c 2012-02-06 11:53:01.620278282 -0500 -@@ -10,6 +10,7 @@ - * Distribute under GPL. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c ---- compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig 2012-02-05 16:10:33.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 2012-02-06 11:53:01.621278269 -0500 -@@ -16,6 +16,7 @@ - * File contents: support functions for PCI/PCIe - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c ---- compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig 2012-02-05 16:10:33.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c 2012-02-06 11:53:01.622278256 -0500 -@@ -14,6 +14,7 @@ - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c ---- compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c 2012-02-06 11:53:01.625278218 -0500 -@@ -27,6 +27,7 @@ - * - *****************************************************************************/ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c ---- compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c 2012-02-06 11:53:01.630278156 -0500 -@@ -27,6 +27,7 @@ - * - *****************************************************************************/ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c.orig 2012-02-05 16:10:35.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c 2012-02-06 11:53:01.630278156 -0500 -@@ -6,6 +6,7 @@ - * - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c 2012-02-06 11:53:01.631278143 -0500 -@@ -21,6 +21,7 @@ - - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c 2012-02-06 11:53:01.631278143 -0500 -@@ -26,6 +26,7 @@ - * if_sdio_card_to_host() to pad the data. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c 2012-02-06 11:53:01.631278143 -0500 -@@ -17,6 +17,7 @@ - * (at your option) any later version. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c.orig 2012-02-05 16:10:35.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c 2012-02-06 11:53:01.632278130 -0500 -@@ -2,6 +2,7 @@ - * This file contains functions used in USB interface module. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c 2012-02-06 11:53:01.632278130 -0500 -@@ -4,6 +4,7 @@ - * thread etc.. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c 2012-02-06 11:53:01.633278118 -0500 -@@ -1,3 +1,4 @@ -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c.orig 2012-02-05 16:10:35.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c 2012-02-06 11:53:01.633278118 -0500 -@@ -2,6 +2,7 @@ - * This file contains the handling of RX in wlan driver. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c.orig 2012-02-05 16:10:36.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c 2012-02-06 11:53:01.633278118 -0500 -@@ -7,6 +7,7 @@ - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - */ -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c.orig 2012-02-05 16:10:36.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c 2012-02-06 11:53:01.634278106 -0500 -@@ -9,6 +9,7 @@ - */ - #define DRV_NAME "lbtf_usb" - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include "libertas_tf.h" -diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c ---- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c 2012-02-06 11:53:01.634278106 -0500 -@@ -7,6 +7,7 @@ - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - */ -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/base.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/base.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/cam.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/cam.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192de/sw.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/hw.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/phy.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/rf.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/sw.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/usb.c -diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h ---- compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h.orig 2012-02-06 11:53:38.798813484 -0500 -+++ compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h 2012-02-06 11:53:47.489704835 -0500 -@@ -30,6 +30,7 @@ - #ifndef __RTL_WIFI_H__ - #define __RTL_WIFI_H__ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/net/wireless/core.c.orig compat-wireless-2012-02-05/net/wireless/core.c ---- compat-wireless-2012-02-05/net/wireless/core.c.orig 2012-02-05 16:10:38.000000000 -0500 -+++ compat-wireless-2012-02-05/net/wireless/core.c 2012-02-06 11:53:01.640278030 -0500 -@@ -4,6 +4,7 @@ - * Copyright 2006-2010 Johannes Berg - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/net/wireless/lib80211.c.orig compat-wireless-2012-02-05/net/wireless/lib80211.c ---- compat-wireless-2012-02-05/net/wireless/lib80211.c.orig 2012-02-05 16:10:31.000000000 -0500 -+++ compat-wireless-2012-02-05/net/wireless/lib80211.c 2012-02-06 11:53:01.640278030 -0500 -@@ -13,6 +13,7 @@ - * - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c.orig compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c ---- compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c.orig 2012-02-05 16:10:31.000000000 -0500 -+++ compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c 2012-02-06 11:53:01.641278018 -0500 -@@ -10,6 +10,7 @@ - * more details. - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/net/wireless/reg.c.orig compat-wireless-2012-02-05/net/wireless/reg.c ---- compat-wireless-2012-02-05/net/wireless/reg.c.orig 2012-02-05 16:10:31.000000000 -0500 -+++ compat-wireless-2012-02-05/net/wireless/reg.c 2012-02-06 11:53:01.641278018 -0500 -@@ -42,6 +42,7 @@ - * - */ - -+#undef pr_fmt - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - - #include -diff -up compat-wireless-2012-02-05/patches/98-pr_fmt.patch.orig compat-wireless-2012-02-05/patches/98-pr_fmt.patch ---- compat-wireless-2012-02-05/patches/98-pr_fmt.patch.orig 2012-02-06 11:53:01.641278018 -0500 -+++ compat-wireless-2012-02-05/patches/98-pr_fmt.patch 2012-02-06 11:53:01.641278018 -0500 -@@ -0,0 +1,346 @@ -+The way the compat-* header files are included causes the default -+pr_fmt definition from to be evaluated for every file. -+Files that define pr_fmt then generate a lot of build SPAM about -+pr_fmt being redefined. -+ -+Eliminate the build noise by preemptively undefining pr_fmt in those -+files that define it. -+ -+diff -up compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt compat-wireless-3.2-rc1-1/compat/crc8.c -+--- compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt 2011-11-18 15:08:04.497812086 -0500 -++++ compat-wireless-3.2-rc1-1/compat/crc8.c 2011-11-18 15:20:09.450522691 -0500 -+@@ -14,6 +14,7 @@ -+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h -+--- compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt 2011-11-18 15:08:04.522323679 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h 2011-11-18 15:20:09.451522757 -0500 -+@@ -1,6 +1,7 @@ -+ #ifndef LINUX_BCMA_PRIVATE_H_ -+ #define LINUX_BCMA_PRIVATE_H_ -+ -++#undef pr_fmt -+ #ifndef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ #endif -+diff -up compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c -+--- compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt 2011-11-18 15:08:04.529757401 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c 2011-11-18 15:20:09.453522618 -0500 -+@@ -10,6 +10,7 @@ -+ * Distribute under GPL. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt 2011-11-18 15:08:04.531811389 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c 2011-11-18 15:20:09.455522411 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt 2011-11-18 15:08:04.533811528 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c 2011-11-18 15:20:09.456520247 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c 2011-11-18 15:20:09.456520247 -0500 -+@@ -6,6 +6,7 @@ -+ * -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c 2011-11-18 15:20:09.457520945 -0500 -+@@ -21,6 +21,7 @@ -+ -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt 2011-11-18 15:08:04.535829198 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c 2011-11-18 15:20:09.457520945 -0500 -+@@ -26,6 +26,7 @@ -+ * if_sdio_card_to_host() to pad the data. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c 2011-11-18 15:20:09.457520945 -0500 -+@@ -17,6 +17,7 @@ -+ * (at your option) any later version. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c 2011-11-18 15:20:09.458521084 -0500 -+@@ -2,6 +2,7 @@ -+ * This file contains functions used in USB interface module. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c 2011-11-18 15:20:09.458521084 -0500 -+@@ -4,6 +4,7 @@ -+ * thread etc.. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c 2011-11-18 15:20:09.458521084 -0500 -+@@ -1,3 +1,4 @@ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt 2011-11-18 15:08:04.538812017 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c 2011-11-18 15:20:09.459520455 -0500 -+@@ -2,6 +2,7 @@ -+ * This file contains the handling of RX in wlan driver. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt 2011-11-18 15:08:04.544819700 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c 2011-11-18 15:20:09.459520455 -0500 -+@@ -7,6 +7,7 @@ -+ * the Free Software Foundation; either version 2 of the License, or (at -+ * your option) any later version. -+ */ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c 2011-11-18 15:20:09.459520455 -0500 -+@@ -9,6 +9,7 @@ -+ */ -+ #define DRV_NAME "lbtf_usb" -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include "libertas_tf.h" -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c 2011-11-18 15:20:09.459520455 -0500 -+@@ -7,6 +7,7 @@ -+ * the Free Software Foundation; either version 2 of the License, or (at -+ * your option) any later version. -+ */ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt 2011-11-18 15:08:04.565011903 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c 2011-11-18 15:20:55.315644844 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c 2011-11-18 15:20:55.322652946 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2011-11-18 15:20:55.334647078 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2011-11-18 15:20:55.341625637 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include "../wifi.h" -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2011-11-18 15:20:55.342644635 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ ****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt 2011-11-18 15:08:04.568814042 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2011-11-18 15:20:55.350617325 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt 2011-11-18 15:08:04.569828848 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-11-18 15:20:55.358645682 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include "../wifi.h" -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt 2011-11-18 15:08:04.570818023 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2011-11-18 15:20:55.365635904 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include "../wifi.h" -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2011-11-18 15:20:55.371549230 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include "../wifi.h" -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2011-11-18 15:20:55.379720621 -0500 -+@@ -27,6 +27,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c -+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt 2011-11-18 15:08:04.572718638 -0500 -++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c 2011-11-18 15:20:55.389173129 -0500 -+@@ -25,6 +25,7 @@ -+ * -+ *****************************************************************************/ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/core.c -+--- compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500 -++++ compat-wireless-3.2-rc1-1/net/wireless/core.c 2011-11-18 15:20:55.395647078 -0500 -+@@ -4,6 +4,7 @@ -+ * Copyright 2006-2010 Johannes Berg -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211.c -+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500 -++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211.c 2011-11-18 15:20:55.405646450 -0500 -+@@ -13,6 +13,7 @@ -+ * -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c -+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt 2011-11-18 15:08:04.574811667 -0500 -++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c 2011-11-18 15:20:55.406648475 -0500 -+@@ -10,6 +10,7 @@ -+ * more details. -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include -+diff -up compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/reg.c -+--- compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt 2011-11-18 15:08:04.575716473 -0500 -++++ compat-wireless-3.2-rc1-1/net/wireless/reg.c 2011-11-18 15:20:55.408647986 -0500 -+@@ -33,6 +33,7 @@ -+ * -+ */ -+ -++#undef pr_fmt -+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+ #include diff --git a/config-backports b/config-backports deleted file mode 100644 index 33a3adcce..000000000 --- a/config-backports +++ /dev/null @@ -1,24 +0,0 @@ -# CONFIG_CFG80211 is not set -# CONFIG_LIB80211 is not set - -# CONFIG_MAC80211 is not set - -# CONFIG_BCMA is not set - -# -# ssb and b44 share infrastructure with b43 -# -# CONFIG_SSB is not set -# CONFIG_B44 is not set - -# -# Prevent b43 and brcmsmac from competing -# -# CONFIG_B43_BCMA is not set - -# -# These have to be turned-on again since compat-wireless does not -# provide them... -# -CONFIG_CRC7=m -CONFIG_AVERAGE=y diff --git a/kernel.spec b/kernel.spec index a28d4b901..17d6c804f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -152,9 +152,6 @@ Summary: The Linux kernel # build a release kernel on rawhide %define with_release %{?_with_release: 1} %{?!_with_release: 0} -# Include driver backports (e.g. compat-wireless) in the kernel build. -%define with_backports %{?_without_backports: 0} %{?!_without_backports: 1} - # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. @@ -207,20 +204,6 @@ Summary: The Linux kernel # The kernel tarball/base version %define kversion 3.%{base_sublevel} -# The compat-wireless version -%define cwversion 2012-02-05 - -####################################################################### -# If cwversion is less than kversion, make sure with_backports is -# turned-off. -# -# For rawhide, disable with_backports immediately after a rebase... -# -# (Uncomment the '#' and both spaces below to disable with_backports.) -# -%define with_backports 0 -####################################################################### - %define make_target bzImage %define KVERREL %{version}-%{release}.%{_target_cpu} @@ -388,7 +371,6 @@ Summary: The Linux kernel %define make_target image %define kernel_image arch/s390/boot/image %define with_tools 0 -%define with_backports 0 %endif %ifarch sparc64 @@ -421,7 +403,6 @@ Summary: The Linux kernel %define hdrarch arm %define make_target bzImage %define kernel_image arch/arm/boot/zImage -%define with_backports 0 # we build a up kernel on base softfp/hardfp platforms. its used for qemu. %ifnarch armv5tel armv7hl %define with_up 0 @@ -459,7 +440,6 @@ Summary: The Linux kernel %define with_debuginfo 0 %define with_perf 0 %define with_tools 0 -%define with_backports 0 %define _enable_debug_packages 0 %endif @@ -572,7 +552,6 @@ BuildRequires: rpm-build >= 4.9.0-1, elfutils >= elfutils-0.153-1 %endif Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.xz -Source1: compat-wireless-%{cwversion}.tar.bz2 Source15: merge.pl Source16: mod-extra.list @@ -605,8 +584,6 @@ Source112: config-arm-kirkwood Source113: config-arm-imx Source114: config-arm-highbank -Source200: config-backports - # This file is intentionally left empty in the stock kernel. Its a nicety # added for those wanting to do custom rebuilds with altered config opts. Source1000: config-local @@ -687,7 +664,6 @@ Patch471: floppy-Remove-_hlt-related-functions.patch Patch510: linux-2.6-silence-noise.patch Patch520: quite-apm.patch Patch530: linux-2.6-silence-fbcon-logo.patch -Patch540: modpost-add-option-to-allow-external-modules-to-avoi.patch Patch700: linux-2.6-e1000-ich9-montevina.patch @@ -786,11 +762,6 @@ Patch21400: unhandled-irqs-switch-to-polling.patch Patch22000: weird-root-dentry-name-debug.patch -# compat-wireless patches -Patch50000: compat-wireless-config-fixups.patch -Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch -Patch50002: compat-wireless-integrated-build.patch - %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1306,16 +1277,6 @@ make -f %{SOURCE19} config-release # Dynamically generate kernel .config files from config-* files make -f %{SOURCE20} VERSION=%{version} configs -%if %{with_backports} -# Turn-off bits provided by compat-wireless -for i in %{all_arch_configs} -do - mv $i $i.tmp - ./merge.pl %{SOURCE200} $i.tmp > $i - rm $i.tmp -done -%endif - # Merge in any user-provided local config option changes %if %{?all_arch_configs:1}%{!?all_arch_configs:0} for i in %{all_arch_configs} @@ -1419,11 +1380,6 @@ ApplyPatch linux-2.6-silence-noise.patch # Make fbcon not show the penguins with 'quiet' ApplyPatch linux-2.6-silence-fbcon-logo.patch -%if %{with_backports} -# modpost: add option to allow external modules to avoid taint -ApplyPatch modpost-add-option-to-allow-external-modules-to-avoi.patch -%endif - # Changes to upstream defaults. @@ -1562,34 +1518,14 @@ done # end of kernel config %endif +# get rid of unwanted files resulting from patch fuzz +find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null + # remove unnecessary SCM files find . -name .gitignore -exec rm -f {} \; >/dev/null cd .. -%if %{with_backports} - -# Always start fresh -rm -rf compat-wireless-%{cwversion} - -# Extract the compat-wireless bits -%setup -q -n kernel-%{kversion}%{?dist} -T -D -a 1 - -cd compat-wireless-%{cwversion} - -ApplyPatch compat-wireless-config-fixups.patch -ApplyPatch compat-wireless-pr_fmt-warning-avoidance.patch -ApplyPatch compat-wireless-integrated-build.patch - -ApplyPatch rt2x00_fix_MCU_request_failures.patch - -cd .. - -%endif - -# get rid of unwanted files resulting from patch fuzz -find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null - ### ### build ### @@ -1712,9 +1648,6 @@ BuildKernel() { # dirs for additional modules per module-init-tools, kbuild/modules.txt mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates -%if %{with_backports} - mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/backports -%endif # first copy everything cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build @@ -1855,6 +1788,12 @@ BuildKernel() { rm mod-extra.list mod-extra2.list mod-extra3.list popd + # remove files that will be auto generated by depmod at rpm -i time + for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap + do + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i + done + # Move the devel headers out of the root file system mkdir -p $RPM_BUILD_ROOT/usr/src/kernels mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir @@ -1867,33 +1806,6 @@ BuildKernel() { # prune junk from kernel-devel find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -exec rm -f {} \; - -%if %{with_backports} - - cd ../compat-wireless-%{cwversion}/ - - install -m 644 config.mk \ - $RPM_BUILD_ROOT/boot/config.mk-compat-wireless-%{cwversion}-$KernelVer - - make -s ARCH=$Arch V=1 %{?_smp_mflags} \ - KLIB_BUILD=../linux-%{KVERREL} \ - KMODPATH_ARG="INSTALL_MOD_PATH=$RPM_BUILD_ROOT" \ - KMODDIR="backports" install-modules %{?sparse_mflags} - - # mark modules executable so that strip-to-file can strip them - find $RPM_BUILD_ROOT/lib/modules/$KernelVer/backports -name "*.ko" \ - -type f | xargs --no-run-if-empty chmod u+x - - cd - - -%endif - - # remove files that will be auto generated by depmod at rpm -i time - for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap - do - rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i - done - } ### @@ -2336,10 +2248,6 @@ fi /lib/modules/%{KVERREL}%{?2:.%{2}}/build\ /lib/modules/%{KVERREL}%{?2:.%{2}}/source\ /lib/modules/%{KVERREL}%{?2:.%{2}}/updates\ -%if %{with_backports}\ -/boot/config.mk-compat-wireless-%{cwversion}-%{KVERREL}%{?2:.%{2}}\ -/lib/modules/%{KVERREL}%{?2:.%{2}}/backports\ -%endif\ %ifarch %{vdso_arches}\ /lib/modules/%{KVERREL}%{?2:.%{2}}/vdso\ /etc/ld.so.conf.d/kernel-%{KVERREL}%{?2:.%{2}}.conf\ @@ -2396,6 +2304,9 @@ fi # '-' | | # '-' %changelog +* Tue Mar 13 2012 John W. Linville +- Remove infrastructure related to compat-wireless integration + * Mon Mar 12 2012 Mark Langsdorf - Re-enable highbank config option and add new config file to support it diff --git a/modpost-add-option-to-allow-external-modules-to-avoi.patch b/modpost-add-option-to-allow-external-modules-to-avoi.patch deleted file mode 100644 index d20385457..000000000 --- a/modpost-add-option-to-allow-external-modules-to-avoi.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 69f63a67165da5e9f08c1132521598701d914573 Mon Sep 17 00:00:00 2001 -From: John W. Linville -Date: Wed, 14 Dec 2011 11:09:04 -0500 -Subject: [PATCH] modpost: add option to allow external modules to avoid taint - -In some cases, it might be desirable to package a module from an -external source tree alongside the base kernel. In those cases, it -might also be desirable to not have those modules tainting the kernel. - -This patch provides a mechanism for an external module build to declare -itself as an "integrated build". Such a module is then treated the same -as an intree module. - -Signed-off-by: John W. Linville ---- -Any thoughts on this? I'm thinking of adding this to Fedora kernels, -where I have been working to integrate the compat-wireless package as -part of the base kernel RPM. - - scripts/Makefile.modpost | 1 + - scripts/mod/modpost.c | 10 ++++++++-- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost -index 08dce14..160c6fb 100644 ---- a/scripts/Makefile.modpost -+++ b/scripts/Makefile.modpost -@@ -81,6 +81,7 @@ modpost = scripts/mod/modpost \ - $(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \ - $(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \ - $(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \ -+ $(if $(INTEGRATED_BUILD),-B) \ - $(if $(cross_build),-c) - - quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules -diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 2bd594e..5d077f9 100644 ---- a/scripts/mod/modpost.c -+++ b/scripts/mod/modpost.c -@@ -43,6 +43,9 @@ static int warn_unresolved = 0; - static int sec_mismatch_count = 0; - static int sec_mismatch_verbose = 1; - -+/* Is this a module being built as part of an integrated package? */ -+static int integrated_build = 0; -+ - enum export { - export_plain, export_unused, export_gpl, - export_unused_gpl, export_gpl_future, export_unknown -@@ -1851,7 +1854,7 @@ static void add_header(struct buffer *b, struct module *mod) - - static void add_intree_flag(struct buffer *b, int is_intree) - { -- if (is_intree) -+ if (is_intree || integrated_build) - buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n"); - } - -@@ -2101,7 +2104,7 @@ int main(int argc, char **argv) - struct ext_sym_list *extsym_iter; - struct ext_sym_list *extsym_start = NULL; - -- while ((opt = getopt(argc, argv, "i:I:e:cmsSo:awM:K:")) != -1) { -+ while ((opt = getopt(argc, argv, "i:I:e:cmsSo:awM:K:B")) != -1) { - switch (opt) { - case 'i': - kernel_read = optarg; -@@ -2139,6 +2142,9 @@ int main(int argc, char **argv) - case 'w': - warn_unresolved = 1; - break; -+ case 'B': -+ integrated_build = 1; -+ break; - default: - exit(1); - } --- -1.7.4.4 - diff --git a/sources b/sources index e946d6b0e..c3dd17d5d 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -02c210a8fd24acca8c1ac93f6f1d3913 compat-wireless-2012-02-05.tar.bz2 4364d0789141647508a9eb1fba8ffa6f patch-3.3-rc7.xz From dc7e77c88c9720346b924591f165c7b8ceec6ab4 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 14 Mar 2012 18:05:33 -0400 Subject: [PATCH 087/542] Linux v3.3-rc7-48-g762ad8a --- kernel.spec | 7 +++++-- sources | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 17d6c804f..25eab8cc9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 7 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2304,6 +2304,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 14 2012 Dave Jones - 3.3.0-0.rc7.git1.1 +- Linux v3.3-rc7-48-g762ad8a + * Tue Mar 13 2012 John W. Linville - Remove infrastructure related to compat-wireless integration diff --git a/sources b/sources index c3dd17d5d..0d4aeba82 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 4364d0789141647508a9eb1fba8ffa6f patch-3.3-rc7.xz +6ab8ca7dbd7c8920009a34fea4544973 patch-3.3-rc7-git1.xz From 26fca6fb1f2a52f813011ce65444b7b3ef942ea5 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 14 Mar 2012 18:28:26 -0400 Subject: [PATCH 088/542] add new options --- config-x86-generic | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..e5a18ef38 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -199,6 +199,8 @@ CONFIG_PANASONIC_LAPTOP=m CONFIG_SAMSUNG_LAPTOP=m CONFIG_SONY_LAPTOP=m CONFIG_TOPSTAR_LAPTOP=m +CONFIG_FUJITSU_TABLET=m +CONFIG_AMILO_RFKILL=m CONFIG_ACPI_WMI=m CONFIG_ACER_WMI=m From bf89f3a3696c8766b1f350c4a7127426933de6ea Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 14 Mar 2012 18:28:36 -0400 Subject: [PATCH 089/542] Reduce the foot print of the NFSv4 idmapping coda (bz 593035) --- ...reduce-the-footprint-of-the-idmapper.patch | 109 ++++++++++++++++++ ...Reduce-the-footprint-of-the-idmapper.patch | 46 ++++++++ kernel.spec | 15 ++- 3 files changed, 166 insertions(+), 4 deletions(-) create mode 100644 NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch create mode 100644 NFSv4-Reduce-the-footprint-of-the-idmapper.patch diff --git a/NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch b/NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch new file mode 100644 index 000000000..42d1052e2 --- /dev/null +++ b/NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch @@ -0,0 +1,109 @@ +diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c +--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-03-14 13:08:37.462928792 -0400 ++++ linux-3.2.noarch/fs/nfs/idmap.c 2012-03-14 13:10:17.076030982 -0400 +@@ -365,7 +365,7 @@ struct idmap_hashent { + + struct idmap_hashtable { + __u8 h_type; +- struct idmap_hashent h_entries[IDMAP_HASH_SZ]; ++ struct idmap_hashent *h_entries; + }; + + struct idmap { +@@ -420,20 +420,39 @@ nfs_idmap_new(struct nfs_client *clp) + return 0; + } + ++static void ++idmap_alloc_hashtable(struct idmap_hashtable *h) ++{ ++ if (h->h_entries != NULL) ++ return; ++ h->h_entries = kcalloc(IDMAP_HASH_SZ, ++ sizeof(*h->h_entries), ++ GFP_KERNEL); ++} ++ ++static void ++idmap_free_hashtable(struct idmap_hashtable *h) ++{ ++ int i; ++ ++ if (h->h_entries == NULL) ++ return; ++ for (i = 0; i < IDMAP_HASH_SZ; i++) ++ kfree(h->h_entries[i].ih_name); ++ kfree(h->h_entries); ++} ++ + void + nfs_idmap_delete(struct nfs_client *clp) + { + struct idmap *idmap = clp->cl_idmap; +- int i; + + if (!idmap) + return; + rpc_unlink(idmap->idmap_dentry); + clp->cl_idmap = NULL; +- for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++) +- kfree(idmap->idmap_user_hash.h_entries[i].ih_name); +- for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++) +- kfree(idmap->idmap_group_hash.h_entries[i].ih_name); ++ idmap_free_hashtable(&idmap->idmap_user_hash); ++ idmap_free_hashtable(&idmap->idmap_group_hash); + kfree(idmap); + } + +@@ -443,6 +462,8 @@ nfs_idmap_delete(struct nfs_client *clp) + static inline struct idmap_hashent * + idmap_name_hash(struct idmap_hashtable* h, const char *name, size_t len) + { ++ if (h->h_entries == NULL) ++ return NULL; + return &h->h_entries[fnvhash32(name, len) % IDMAP_HASH_SZ]; + } + +@@ -451,6 +472,8 @@ idmap_lookup_name(struct idmap_hashtable + { + struct idmap_hashent *he = idmap_name_hash(h, name, len); + ++ if (he == NULL) ++ return NULL; + if (he->ih_namelen != len || memcmp(he->ih_name, name, len) != 0) + return NULL; + if (time_after(jiffies, he->ih_expires)) +@@ -461,6 +484,8 @@ idmap_lookup_name(struct idmap_hashtable + static inline struct idmap_hashent * + idmap_id_hash(struct idmap_hashtable* h, __u32 id) + { ++ if (h->h_entries == NULL) ++ return NULL; + return &h->h_entries[fnvhash32(&id, sizeof(id)) % IDMAP_HASH_SZ]; + } + +@@ -468,6 +493,9 @@ static struct idmap_hashent * + idmap_lookup_id(struct idmap_hashtable *h, __u32 id) + { + struct idmap_hashent *he = idmap_id_hash(h, id); ++ ++ if (he == NULL) ++ return NULL; + if (he->ih_id != id || he->ih_namelen == 0) + return NULL; + if (time_after(jiffies, he->ih_expires)) +@@ -483,12 +511,14 @@ idmap_lookup_id(struct idmap_hashtable * + static inline struct idmap_hashent * + idmap_alloc_name(struct idmap_hashtable *h, char *name, size_t len) + { ++ idmap_alloc_hashtable(h); + return idmap_name_hash(h, name, len); + } + + static inline struct idmap_hashent * + idmap_alloc_id(struct idmap_hashtable *h, __u32 id) + { ++ idmap_alloc_hashtable(h); + return idmap_id_hash(h, id); + } + diff --git a/NFSv4-Reduce-the-footprint-of-the-idmapper.patch b/NFSv4-Reduce-the-footprint-of-the-idmapper.patch new file mode 100644 index 000000000..4110ef904 --- /dev/null +++ b/NFSv4-Reduce-the-footprint-of-the-idmapper.patch @@ -0,0 +1,46 @@ +diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c +--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-02-07 07:12:52.585471833 -0500 ++++ linux-3.2.noarch/fs/nfs/idmap.c 2012-03-14 13:08:37.462928792 -0400 +@@ -360,7 +360,7 @@ struct idmap_hashent { + unsigned long ih_expires; + __u32 ih_id; + size_t ih_namelen; +- char ih_name[IDMAP_NAMESZ]; ++ const char *ih_name; + }; + + struct idmap_hashtable { +@@ -424,11 +424,16 @@ void + nfs_idmap_delete(struct nfs_client *clp) + { + struct idmap *idmap = clp->cl_idmap; ++ int i; + + if (!idmap) + return; + rpc_unlink(idmap->idmap_dentry); + clp->cl_idmap = NULL; ++ for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++) ++ kfree(idmap->idmap_user_hash.h_entries[i].ih_name); ++ for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++) ++ kfree(idmap->idmap_group_hash.h_entries[i].ih_name); + kfree(idmap); + } + +@@ -491,9 +496,14 @@ static void + idmap_update_entry(struct idmap_hashent *he, const char *name, + size_t namelen, __u32 id) + { ++ char *str = kmalloc(namelen + 1, GFP_KERNEL); ++ if (str == NULL) ++ return; ++ kfree(he->ih_name); + he->ih_id = id; +- memcpy(he->ih_name, name, namelen); +- he->ih_name[namelen] = '\0'; ++ memcpy(str, name, namelen); ++ str[namelen] = '\0'; ++ he->ih_name = str; + he->ih_namelen = namelen; + he->ih_expires = jiffies + nfs_idmap_cache_timeout; + } diff --git a/kernel.spec b/kernel.spec index 25eab8cc9..967f47262 100644 --- a/kernel.spec +++ b/kernel.spec @@ -698,10 +698,12 @@ Patch2901: linux-2.6-v4l-dvb-experimental.patch Patch4000: ext4-fix-resize-when-resizing-within-single-group.patch # NFSv4 -Patch1101: linux-3.1-keys-remove-special-keyring.patch -Patch1102: linux-3.3-newidmapper-01.patch -Patch1103: linux-3.3-newidmapper-02.patch -Patch1104: linux-3.3-newidmapper-03.patch +Patch4101: linux-3.1-keys-remove-special-keyring.patch +Patch4102: linux-3.3-newidmapper-01.patch +Patch4103: linux-3.3-newidmapper-02.patch +Patch4104: linux-3.3-newidmapper-03.patch +Patch4105: NFSv4-Reduce-the-footprint-of-the-idmapper.patch +Patch4106: NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch # patches headed upstream Patch12016: disable-i8042-check-on-apple-mac.patch @@ -1333,6 +1335,8 @@ ApplyPatch linux-3.1-keys-remove-special-keyring.patch ApplyPatch linux-3.3-newidmapper-01.patch ApplyPatch linux-3.3-newidmapper-02.patch ApplyPatch linux-3.3-newidmapper-03.patch +ApplyPatch NFSv4-Reduce-the-footprint-of-the-idmapper.patch +ApplyPatch NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch # USB @@ -2304,6 +2308,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 14 2012 Steve Dickson +- Reduce the foot print of the NFSv4 idmapping coda (bz 593035) + * Wed Mar 14 2012 Dave Jones - 3.3.0-0.rc7.git1.1 - Linux v3.3-rc7-48-g762ad8a From 114779eefd82a43f1166258ad4b56b263bf7644f Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Wed, 14 Mar 2012 18:29:13 -0400 Subject: [PATCH 090/542] bump for build --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 967f47262..19a493be8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2308,7 +2308,7 @@ fi # '-' | | # '-' %changelog -* Wed Mar 14 2012 Steve Dickson +* Wed Mar 14 2012 Steve Dickson - 3.3.0-0.rc7.git1.2 - Reduce the foot print of the NFSv4 idmapping coda (bz 593035) * Wed Mar 14 2012 Dave Jones - 3.3.0-0.rc7.git1.1 From 631462571df9fa54d21e1dbb8d401007f8a7f57d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 14 Mar 2012 20:29:41 -0400 Subject: [PATCH 091/542] Fixup irqpoll patch to only activate on machines with ASM108x PCI bridge --- kernel.spec | 3 + unhandled-irqs-switch-to-polling.patch | 145 ++++++++++--------------- 2 files changed, 63 insertions(+), 85 deletions(-) diff --git a/kernel.spec b/kernel.spec index 19a493be8..f3e8c20ad 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2308,6 +2308,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 14 2012 Josh Boyer +- Fixup irqpoll patch to only activate on machines with ASM108x PCI bridge + * Wed Mar 14 2012 Steve Dickson - 3.3.0-0.rc7.git1.2 - Reduce the foot print of the NFSv4 idmapping coda (bz 593035) diff --git a/unhandled-irqs-switch-to-polling.patch b/unhandled-irqs-switch-to-polling.patch index 6eeaf0bec..39169ba96 100644 --- a/unhandled-irqs-switch-to-polling.patch +++ b/unhandled-irqs-switch-to-polling.patch @@ -1,62 +1,3 @@ -From davej Mon Jan 30 16:40:11 2012 -Return-Path: linux-kernel-owner@vger.kernel.org -X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on - gelk.kernelslacker.org -X-Spam-Level: -X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, - DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD, - T_TO_NO_BRKTS_FREEMAIL,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.2 -Received: from mail.corp.redhat.com [10.5.5.52] - by gelk.kernelslacker.org with IMAP (fetchmail-6.3.20) - for (single-drop); Mon, 30 Jan 2012 16:40:11 -0500 (EST) -Received: from zmta01.collab.prod.int.phx2.redhat.com (LHLO - zmta01.collab.prod.int.phx2.redhat.com) (10.5.5.31) by - zmail11.collab.prod.int.phx2.redhat.com with LMTP; Mon, 30 Jan 2012 - 16:37:45 -0500 (EST) -Received: from localhost (localhost.localdomain [127.0.0.1]) - by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 4BAD0114054; - Mon, 30 Jan 2012 16:37:45 -0500 (EST) -X-Quarantine-ID: <1529X45BXJfc> -Authentication-Results: zmta01.collab.prod.int.phx2.redhat.com (amavisd-new); - dkim=softfail (fail, body has been altered) header.i=@gmail.com -Received: from zmta01.collab.prod.int.phx2.redhat.com ([127.0.0.1]) - by localhost (zmta01.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id 1529X45BXJfc; Mon, 30 Jan 2012 16:37:45 -0500 (EST) -Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) - by zmta01.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 717AC11404F; - Mon, 30 Jan 2012 16:37:44 -0500 (EST) -Received: from mx1.redhat.com (ext-mx14.extmail.prod.ext.phx2.redhat.com [10.5.110.19]) - by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q0ULbhea005095; - Mon, 30 Jan 2012 16:37:43 -0500 -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q0ULQIU9002068; - Mon, 30 Jan 2012 16:37:42 -0500 -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1753551Ab2A3Vha (ORCPT - + 52 others); Mon, 30 Jan 2012 16:37:30 -0500 -Received: from mail-pz0-f46.google.com ([209.85.210.46]:44901 "EHLO - mail-pz0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1751932Ab2A3Vh2 (ORCPT - ); - Mon, 30 Jan 2012 16:37:28 -0500 -Received: by dadi2 with SMTP id i2so3911730dad.19 - for ; Mon, 30 Jan 2012 13:37:28 -0800 (PST) -Received-SPF: pass (google.com: domain of jeroen.vandenkeybus@gmail.com designates 10.68.218.68 as permitted sender) client-ip=10.68.218.68; -Authentication-Results: mr.google.com; spf=pass (google.com: domain of jeroen.vandenkeybus@gmail.com designates 10.68.218.68 as permitted sender) smtp.mail=jeroen.vandenkeybus@gmail.com; dkim=pass header.i=jeroen.vandenkeybus@gmail.com -Received: from mr.google.com ([10.68.218.68]) - by 10.68.218.68 with SMTP id pe4mr25063612pbc.97.1327959448228 (num_hops = 1); - Mon, 30 Jan 2012 13:37:28 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=gmail.com; s=gamma; - h=mime-version:date:message-id:subject:from:to:cc:content-type; - bh=acUEKJRLazlNr7PWqoJIHm/MPkfhI5SUq1Z0ntfqXSE=; - b=J1hmytKDfluL7NI73mVH+flbQ2+36FPRRx+DFhrPs8hiOebxJHysZZH+etW1ppCJG0 - ORowrKZYuyXb1CVYkSAYSnZ60r0edu8VycE4wsVItKQV8f0ZFyFZi5HteL1KiBRHqTYI - soeRaI/zW4cJv3AbTTc1Aj/4/HXKyuPtj0Ayc= -MIME-Version: 1.0 -Received: by 10.68.218.68 with SMTP id pe4mr20868027pbc.97.1327959448085; Mon, - 30 Jan 2012 13:37:28 -0800 (PST) -Received: by 10.143.38.11 with HTTP; Mon, 30 Jan 2012 13:37:28 -0800 (PST) Date: Mon, 30 Jan 2012 22:37:28 +0100 Message-ID: Subject: [PATCH] Unhandled IRQs on AMD E-450: temporarily switch to @@ -141,21 +82,23 @@ every time during debugging). Signed-off-by: Jeroen Van den Keybus -Make it less chatty. Josh Boyer +Make it less chatty. Only kick it in if we detect an ASM1083 PCI bridge. + +Josh Boyer ====== --- linux-2.6.orig/kernel/irq/spurious.c +++ linux-2.6/kernel/irq/spurious.c -@@ -18,7 +18,7 @@ +@@ -18,6 +18,8 @@ static int irqfixup __read_mostly; --#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/10) -+#define POLL_SPURIOUS_IRQ_INTERVAL (HZ/100) ++int irq_poll_and_retry = 0; ++ + #define POLL_SPURIOUS_IRQ_INTERVAL (HZ/10) static void poll_spurious_irqs(unsigned long dummy); static DEFINE_TIMER(poll_spurious_irq_timer, poll_spurious_irqs, 0, 0); - static int irq_poll_cpu; -@@ -141,14 +141,15 @@ out: +@@ -141,12 +143,13 @@ out: static void poll_spurious_irqs(unsigned long dummy) { struct irq_desc *desc; @@ -168,12 +111,9 @@ Make it less chatty. Josh Boyer + poll_again = 0; /* Will stay false as long as no polling candidate is found */ for_each_irq_desc(i, desc) { -- unsigned int state; -+ unsigned int state, irq; + unsigned int state; - if (!i) - continue; -@@ -159,14 +160,29 @@ static void poll_spurious_irqs(unsigned +@@ -159,14 +162,33 @@ static void poll_spurious_irqs(unsigned if (!(state & IRQS_SPURIOUS_DISABLED)) continue; @@ -183,19 +123,23 @@ Make it less chatty. Josh Boyer + /* We end up here with a disabled spurious interrupt. + desc->irqs_unhandled now tracks the number of times + the interrupt has been polled */ -+ -+ irq = desc->irq_data.irq; -+ if (desc->irqs_unhandled < 100) { /* 1 second delay with poll frequency 100 Hz */ ++ if (irq_poll_and_retry) { ++ if (desc->irqs_unhandled < 100) { /* 1 second delay with poll frequency 100 Hz */ ++ local_irq_disable(); ++ try_one_irq(i, desc, true); ++ local_irq_enable(); ++ desc->irqs_unhandled++; ++ poll_again = 1; ++ } else { ++ irq_enable(desc); /* Reenable the interrupt line */ ++ desc->depth--; ++ desc->istate &= (~IRQS_SPURIOUS_DISABLED); ++ desc->irqs_unhandled = 0; ++ } ++ } else { + local_irq_disable(); + try_one_irq(i, desc, true); + local_irq_enable(); -+ desc->irqs_unhandled++; -+ poll_again = 1; -+ } else { -+ irq_enable(desc); /* Reenable the interrupt line */ -+ desc->depth--; -+ desc->istate &= (~IRQS_SPURIOUS_DISABLED); -+ desc->irqs_unhandled = 0; + } } + if (poll_again) @@ -208,7 +152,7 @@ Make it less chatty. Josh Boyer } static inline int bad_action_ret(irqreturn_t action_ret) -@@ -177,11 +193,19 @@ static inline int bad_action_ret(irqretu +@@ -177,11 +199,19 @@ static inline int bad_action_ret(irqretu } /* @@ -230,7 +174,7 @@ Make it less chatty. Josh Boyer * functioning device sharing an IRQ with the failing one) */ static void -@@ -302,19 +326,19 @@ void note_interrupt(unsigned int irq, st +@@ -302,19 +332,24 @@ void note_interrupt(unsigned int irq, st } desc->irq_count++; @@ -242,15 +186,46 @@ Make it less chatty. Josh Boyer - if (unlikely(desc->irqs_unhandled > 99900)) { + if (unlikely(desc->irqs_unhandled >= 9)) { /* - * The interrupt is stuck +- * The interrupt is stuck ++ * The interrupt might be stuck */ - __report_bad_irq(irq, desc, action_ret); -+ /* __report_bad_irq(irq, desc, action_ret); */ ++ if (!irq_poll_and_retry) { ++ __report_bad_irq(irq, desc, action_ret); ++ printk(KERN_EMERG "Disabling IRQ %d\n", irq); ++ } else { ++ printk(KERN_INFO "IRQ %d might be stuck. Polling\n", ++ irq); ++ } /* * Now kill the IRQ */ - printk(KERN_EMERG "Disabling IRQ #%d\n", irq); -+ printk(KERN_EMERG "Disabling IRQ %d\n", irq); desc->istate |= IRQS_SPURIOUS_DISABLED; desc->depth++; irq_disable(desc); +--- linux-2.6.orig/drivers/pci/quirks.c ++++ linux-2.6/drivers/pci/quirks.c +@@ -1677,6 +1677,22 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); + ++/* ASM108x transparent PCI bridges apparently have broken IRQ deassert ++ * handling. This causes interrupts to get "stuck" and eventually disabled. ++ * However, the interrupts are often shared and disabling them is fairly bad. ++ * It's been somewhat successful to switch to polling mode and retry after ++ * a bit, so let's do that. ++ */ ++extern int irq_poll_and_retry; ++static void quirk_asm108x_poll_interrupts(struct pci_dev *dev) ++{ ++ dev_info(&dev->dev, "Buggy bridge found [%04x:%04x]\n", ++ dev->vendor, dev->device); ++ dev_info(&dev->dev, "Stuck interrupts will be polled and retried\n"); ++ irq_poll_and_retry = 1; ++} ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_asm108x_poll_interrupts); ++ + #ifdef CONFIG_X86_IO_APIC + /* + * Boot interrupts on some chipsets cannot be turned off. For these chipsets, From 7e5dab31d9801aa72e066cd1eb0c4127c69ec8fa Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 15 Mar 2012 14:54:42 -0500 Subject: [PATCH 092/542] CVE-2012-1179 fix pmd_bad() triggering in code paths holding mmap_sem read mode --- kernel.spec | 9 + mm-thp-fix-pmd_bad-triggering.patch | 447 ++++++++++++++++++++++++++++ 2 files changed, 456 insertions(+) create mode 100644 mm-thp-fix-pmd_bad-triggering.patch diff --git a/kernel.spec b/kernel.spec index f3e8c20ad..4cb762798 100644 --- a/kernel.spec +++ b/kernel.spec @@ -760,6 +760,9 @@ Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch # Disable threading in hibernate compression Patch21303: disable-threading-in-compression-for-hibernate.patch +#rhbz 803809 CVE-2012-1179 +Patch21304: mm-thp-fix-pmd_bad-triggering.patch + Patch21400: unhandled-irqs-switch-to-polling.patch Patch22000: weird-root-dentry-name-debug.patch @@ -1472,6 +1475,9 @@ ApplyPatch unhandled-irqs-switch-to-polling.patch ApplyPatch weird-root-dentry-name-debug.patch +#rhbz 803809 CVE-2012-1179 +ApplyPatch mm-thp-fix-pmd_bad-triggering.patch + #Highbank clock functions ApplyPatch highbank-export-clock-functions.patch @@ -2308,6 +2314,9 @@ fi # '-' | | # '-' %changelog +* Thu Mar 15 2012 Justin M. Forbes +- CVE-2012-1179 fix pmd_bad() triggering in code paths holding mmap_sem read mode (rhbz 803809) + * Wed Mar 14 2012 Josh Boyer - Fixup irqpoll patch to only activate on machines with ASM108x PCI bridge diff --git a/mm-thp-fix-pmd_bad-triggering.patch b/mm-thp-fix-pmd_bad-triggering.patch new file mode 100644 index 000000000..8e1a77cd7 --- /dev/null +++ b/mm-thp-fix-pmd_bad-triggering.patch @@ -0,0 +1,447 @@ +In some cases it may happen that pmd_none_or_clear_bad() is called +with the mmap_sem hold in read mode. In those cases the huge page +faults can allocate hugepmds under pmd_none_or_clear_bad() and that +can trigger a false positive from pmd_bad() that will not like to see +a pmd materializing as trans huge. + +It's not khugepaged the problem, khugepaged holds the mmap_sem in +write mode (and all those sites must hold the mmap_sem in read mode to +prevent pagetables to go away from under them, during code review it +seems vm86 mode on 32bit kernels requires that too unless it's +restricted to 1 thread per process or UP builds). The race is only +with the huge pagefaults that can convert a pmd_none() into a +pmd_trans_huge(). + +Effectively all these pmd_none_or_clear_bad() sites running with +mmap_sem in read mode are somewhat speculative with the page faults, +and the result is always undefined when they run simultaneously. This +is probably why it wasn't common to run into this. For example if the +madvise(MADV_DONTNEED) runs zap_page_range() shortly before the page +fault, the hugepage will not be zapped, if the page fault runs first +it will be zapped. + +Altering pmd_bad() not to error out if it finds hugepmds won't be +enough to fix this, because zap_pmd_range would then proceed to call +zap_pte_range (which would be incorrect if the pmd become a +pmd_trans_huge()). + +The simplest way to fix this is to read the pmd in the local stack +(regardless of what we read, no need of actual CPU barriers, only +compiler barrier needed), and be sure it is not changing under the +code that computes its value. Even if the real pmd is changing under +the value we hold on the stack, we don't care. If we actually end up +in zap_pte_range it means the pmd was not none already and it was not +huge, and it can't become huge from under us (khugepaged locking +explained above). + +All we need is to enforce that there is no way anymore that in a code +path like below, pmd_trans_huge can be false, but +pmd_none_or_clear_bad can run into a hugepmd. The overhead of a +barrier() is just a compiler tweak and should not be measurable (I +only added it for THP builds). I don't exclude different compiler +versions may have prevented the race too by caching the value of *pmd +on the stack (that hasn't been verified, but it wouldn't be impossible +considering pmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none +are all inlines and there's no external function called in between +pmd_trans_huge and pmd_none_or_clear_bad). + + if (pmd_trans_huge(*pmd)) { + if (next-addr != HPAGE_PMD_SIZE) { + VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem)); + split_huge_page_pmd(vma->vm_mm, pmd); + } else if (zap_huge_pmd(tlb, vma, pmd, addr)) + continue; + /* fall through */ + } + if (pmd_none_or_clear_bad(pmd)) + +Because this race condition could be exercised without special +privileges this was reported in CVE-2012-1179. + +The race was identified and fully explained by Ulrich who debugged it. +I'm quoting his accurate explanation below, for reference. + +====== start quote ======= + mapcount 0 page_mapcount 1 + kernel BUG at mm/huge_memory.c:1384! + +At some point prior to the panic, a "bad pmd ..." message similar to the +following is logged on the console: + + mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7). + +The "bad pmd ..." message is logged by pmd_clear_bad() before it clears +the page's PMD table entry. + + 143 void pmd_clear_bad(pmd_t *pmd) + 144 { +-> 145 pmd_ERROR(*pmd); + 146 pmd_clear(pmd); + 147 } + +After the PMD table entry has been cleared, there is an inconsistency +between the actual number of PMD table entries that are mapping the page +and the page's map count (_mapcount field in struct page). When the page +is subsequently reclaimed, __split_huge_page() detects this inconsistency. + + 1381 if (mapcount != page_mapcount(page)) + 1382 printk(KERN_ERR "mapcount %d page_mapcount %d\n", + 1383 mapcount, page_mapcount(page)); +-> 1384 BUG_ON(mapcount != page_mapcount(page)); + +The root cause of the problem is a race of two threads in a multithreaded +process. Thread B incurs a page fault on a virtual address that has never +been accessed (PMD entry is zero) while Thread A is executing an madvise() +system call on a virtual address within the same 2 MB (huge page) range. + + virtual address space + .---------------------. + | | + | | + .-|---------------------| + | | | + | | |<-- B(fault) + | | | + 2 MB | |/////////////////////|-. + huge < |/////////////////////| > A(range) + page | |/////////////////////|-' + | | | + | | | + '-|---------------------| + | | + | | + '---------------------' + +- Thread A is executing an madvise(..., MADV_DONTNEED) system call + on the virtual address range "A(range)" shown in the picture. + +sys_madvise + // Acquire the semaphore in shared mode. + down_read(¤t->mm->mmap_sem) + ... + madvise_vma + switch (behavior) + case MADV_DONTNEED: + madvise_dontneed + zap_page_range + unmap_vmas + unmap_page_range + zap_pud_range + zap_pmd_range + // + // Assume that this huge page has never been accessed. + // I.e. content of the PMD entry is zero (not mapped). + // + if (pmd_trans_huge(*pmd)) { + // We don't get here due to the above assumption. + } + // + // Assume that Thread B incurred a page fault and + .---------> // sneaks in here as shown below. + | // + | if (pmd_none_or_clear_bad(pmd)) + | { + | if (unlikely(pmd_bad(*pmd))) + | pmd_clear_bad + | { + | pmd_ERROR + | // Log "bad pmd ..." message here. + | pmd_clear + | // Clear the page's PMD entry. + | // Thread B incremented the map count + | // in page_add_new_anon_rmap(), but + | // now the page is no longer mapped + | // by a PMD entry (-> inconsistency). + | } + | } + | + v +- Thread B is handling a page fault on virtual address "B(fault)" shown + in the picture. + +... +do_page_fault + __do_page_fault + // Acquire the semaphore in shared mode. + down_read_trylock(&mm->mmap_sem) + ... + handle_mm_fault + if (pmd_none(*pmd) && transparent_hugepage_enabled(vma)) + // We get here due to the above assumption (PMD entry is zero). + do_huge_pmd_anonymous_page + alloc_hugepage_vma + // Allocate a new transparent huge page here. + ... + __do_huge_pmd_anonymous_page + ... + spin_lock(&mm->page_table_lock) + ... + page_add_new_anon_rmap + // Here we increment the page's map count (starts at -1). + atomic_set(&page->_mapcount, 0) + set_pmd_at + // Here we set the page's PMD entry which will be cleared + // when Thread A calls pmd_clear_bad(). + ... + spin_unlock(&mm->page_table_lock) + +The mmap_sem does not prevent the race because both threads are acquiring +it in shared mode (down_read). Thread B holds the page_table_lock while +the page's map count and PMD table entry are updated. However, Thread A +does not synchronize on that lock. +====== end quote ======= + +Reported-by: Ulrich Obergfell +Signed-off-by: Andrea Arcangeli +--- + arch/x86/kernel/vm86_32.c | 2 + + fs/proc/task_mmu.c | 9 ++++++ + include/asm-generic/pgtable.h | 57 +++++++++++++++++++++++++++++++++++++++++ + mm/memcontrol.c | 4 +++ + mm/memory.c | 14 ++++++++-- + mm/mempolicy.c | 2 +- + mm/mincore.c | 2 +- + mm/pagewalk.c | 2 +- + mm/swapfile.c | 4 +-- + 9 files changed, 87 insertions(+), 9 deletions(-) + +diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c +index b466cab..328cb37 100644 +--- a/arch/x86/kernel/vm86_32.c ++++ b/arch/x86/kernel/vm86_32.c +@@ -172,6 +172,7 @@ static void mark_screen_rdonly(struct mm_struct *mm) + spinlock_t *ptl; + int i; + ++ down_write(&mm->mmap_sem); + pgd = pgd_offset(mm, 0xA0000); + if (pgd_none_or_clear_bad(pgd)) + goto out; +@@ -190,6 +191,7 @@ static void mark_screen_rdonly(struct mm_struct *mm) + } + pte_unmap_unlock(pte, ptl); + out: ++ up_write(&mm->mmap_sem); + flush_tlb(); + } + +diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c +index 7dcd2a2..3efa725 100644 +--- a/fs/proc/task_mmu.c ++++ b/fs/proc/task_mmu.c +@@ -409,6 +409,9 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, + } else { + spin_unlock(&walk->mm->page_table_lock); + } ++ ++ if (pmd_trans_unstable(pmd)) ++ return 0; + /* + * The mmap_sem held all the way back in m_start() is what + * keeps khugepaged out of here and from collapsing things +@@ -507,6 +510,8 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, + struct page *page; + + split_huge_page_pmd(walk->mm, pmd); ++ if (pmd_trans_unstable(pmd)) ++ return 0; + + pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); + for (; addr != end; pte++, addr += PAGE_SIZE) { +@@ -670,6 +675,8 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, + int err = 0; + + split_huge_page_pmd(walk->mm, pmd); ++ if (pmd_trans_unstable(pmd)) ++ return 0; + + /* find the first VMA at or above 'addr' */ + vma = find_vma(walk->mm, addr); +@@ -961,6 +968,8 @@ static int gather_pte_stats(pmd_t *pmd, unsigned long addr, + spin_unlock(&walk->mm->page_table_lock); + } + ++ if (pmd_trans_unstable(pmd)) ++ return 0; + orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl); + do { + struct page *page = can_gather_numa_stats(*pte, md->vma, addr); +diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h +index 76bff2b..10f8291 100644 +--- a/include/asm-generic/pgtable.h ++++ b/include/asm-generic/pgtable.h +@@ -443,6 +443,63 @@ static inline int pmd_write(pmd_t pmd) + #endif /* __HAVE_ARCH_PMD_WRITE */ + #endif + ++/* ++ * This function is meant to be used by sites walking pagetables with ++ * the mmap_sem hold in read mode to protect against MADV_DONTNEED and ++ * transhuge page faults. MADV_DONTNEED can convert a transhuge pmd ++ * into a null pmd and the transhuge page fault can convert a null pmd ++ * into an hugepmd or into a regular pmd (if the hugepage allocation ++ * fails). While holding the mmap_sem in read mode the pmd becomes ++ * stable and stops changing under us only if it's not null and not a ++ * transhuge pmd. When those races occurs and this function makes a ++ * difference vs the standard pmd_none_or_clear_bad, the result is ++ * undefined so behaving like if the pmd was none is safe (because it ++ * can return none anyway). The compiler level barrier() is critically ++ * important to compute the two checks atomically on the same pmdval. ++ */ ++static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd) ++{ ++ /* depend on compiler for an atomic pmd read */ ++ pmd_t pmdval = *pmd; ++ /* ++ * The barrier will stabilize the pmdval in a register or on ++ * the stack so that it will stop changing under the code. ++ */ ++#ifdef CONFIG_TRANSPARENT_HUGEPAGE ++ barrier(); ++#endif ++ if (pmd_none(pmdval)) ++ return 1; ++ if (unlikely(pmd_bad(pmdval))) { ++ if (!pmd_trans_huge(pmdval)) ++ pmd_clear_bad(pmd); ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * This is a noop if Transparent Hugepage Support is not built into ++ * the kernel. Otherwise it is equivalent to ++ * pmd_none_or_trans_huge_or_clear_bad(), and shall only be called in ++ * places that already verified the pmd is not none and they want to ++ * walk ptes while holding the mmap sem in read mode (write mode don't ++ * need this). If THP is not enabled, the pmd can't go away under the ++ * code even if MADV_DONTNEED runs, but if THP is enabled we need to ++ * run a pmd_trans_unstable before walking the ptes after ++ * split_huge_page_pmd returns (because it may have run when the pmd ++ * become null, but then a page fault can map in a THP and not a ++ * regular page). ++ */ ++static inline int pmd_trans_unstable(pmd_t *pmd) ++{ ++#ifdef CONFIG_TRANSPARENT_HUGEPAGE ++ return pmd_none_or_trans_huge_or_clear_bad(pmd); ++#else ++ return 0; ++#endif ++} ++ + #endif /* !__ASSEMBLY__ */ + + #endif /* _ASM_GENERIC_PGTABLE_H */ +diff --git a/mm/memcontrol.c b/mm/memcontrol.c +index d0e57a3..67b0578 100644 +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -5193,6 +5193,8 @@ static int mem_cgroup_count_precharge_pte_range(pmd_t *pmd, + spinlock_t *ptl; + + split_huge_page_pmd(walk->mm, pmd); ++ if (pmd_trans_unstable(pmd)) ++ return 0; + + pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); + for (; addr != end; pte++, addr += PAGE_SIZE) +@@ -5355,6 +5357,8 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd, + spinlock_t *ptl; + + split_huge_page_pmd(walk->mm, pmd); ++ if (pmd_trans_unstable(pmd)) ++ return 0; + retry: + pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); + for (; addr != end; addr += PAGE_SIZE) { +diff --git a/mm/memory.c b/mm/memory.c +index fa2f04e..e3090fc 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -1251,12 +1251,20 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb, + VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem)); + split_huge_page_pmd(vma->vm_mm, pmd); + } else if (zap_huge_pmd(tlb, vma, pmd, addr)) +- continue; ++ goto next; + /* fall through */ + } +- if (pmd_none_or_clear_bad(pmd)) +- continue; ++ /* ++ * Here there can be other concurrent MADV_DONTNEED or ++ * trans huge page faults running, and if the pmd is ++ * none or trans huge it can change under us. This is ++ * because MADV_DONTNEED holds the mmap_sem in read ++ * mode. ++ */ ++ if (pmd_none_or_trans_huge_or_clear_bad(pmd)) ++ goto next; + next = zap_pte_range(tlb, vma, pmd, addr, next, details); ++ next: + cond_resched(); + } while (pmd++, addr = next, addr != end); + +diff --git a/mm/mempolicy.c b/mm/mempolicy.c +index 47296fe..0a37570 100644 +--- a/mm/mempolicy.c ++++ b/mm/mempolicy.c +@@ -512,7 +512,7 @@ static inline int check_pmd_range(struct vm_area_struct *vma, pud_t *pud, + do { + next = pmd_addr_end(addr, end); + split_huge_page_pmd(vma->vm_mm, pmd); +- if (pmd_none_or_clear_bad(pmd)) ++ if (pmd_none_or_trans_huge_or_clear_bad(pmd)) + continue; + if (check_pte_range(vma, pmd, addr, next, nodes, + flags, private)) +diff --git a/mm/mincore.c b/mm/mincore.c +index 636a868..936b4ce 100644 +--- a/mm/mincore.c ++++ b/mm/mincore.c +@@ -164,7 +164,7 @@ static void mincore_pmd_range(struct vm_area_struct *vma, pud_t *pud, + } + /* fall through */ + } +- if (pmd_none_or_clear_bad(pmd)) ++ if (pmd_none_or_trans_huge_or_clear_bad(pmd)) + mincore_unmapped_range(vma, addr, next, vec); + else + mincore_pte_range(vma, pmd, addr, next, vec); +diff --git a/mm/pagewalk.c b/mm/pagewalk.c +index 2f5cf10..aa9701e 100644 +--- a/mm/pagewalk.c ++++ b/mm/pagewalk.c +@@ -59,7 +59,7 @@ again: + continue; + + split_huge_page_pmd(walk->mm, pmd); +- if (pmd_none_or_clear_bad(pmd)) ++ if (pmd_none_or_trans_huge_or_clear_bad(pmd)) + goto again; + err = walk_pte_range(pmd, addr, next, walk); + if (err) +diff --git a/mm/swapfile.c b/mm/swapfile.c +index d999f09..f31b29d 100644 +--- a/mm/swapfile.c ++++ b/mm/swapfile.c +@@ -932,9 +932,7 @@ static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud, + pmd = pmd_offset(pud, addr); + do { + next = pmd_addr_end(addr, end); +- if (unlikely(pmd_trans_huge(*pmd))) +- continue; +- if (pmd_none_or_clear_bad(pmd)) ++ if (pmd_none_or_trans_huge_or_clear_bad(pmd)) + continue; + ret = unuse_pte_range(vma, pmd, addr, next, entry, page); + if (ret) + +-- +To unsubscribe, send a message with 'unsubscribe linux-mm' in +the body to majordomo@kvack.org. For more info on Linux MM, +see: http://www.linux-mm.org/ . +Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ +Don't email: email@kvack.org \ No newline at end of file From 841f4ae8658ba1086240ab7ff155111fe8d0dbc6 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 16 Mar 2012 07:58:36 -0400 Subject: [PATCH 093/542] Fixup irqpoll patch to really not impact machines without ASM108x bridges (rhbz 800520) WITH FEELING THIS TIME --- kernel.spec | 5 ++++- unhandled-irqs-switch-to-polling.patch | 25 +++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/kernel.spec b/kernel.spec index 4cb762798..e2f92f28e 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2314,6 +2314,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 16 2012 Josh Boyer +- Fix irqpoll patch to really only apply for ASM108x machines (rhbz 800520) + * Thu Mar 15 2012 Justin M. Forbes - CVE-2012-1179 fix pmd_bad() triggering in code paths holding mmap_sem read mode (rhbz 803809) diff --git a/unhandled-irqs-switch-to-polling.patch b/unhandled-irqs-switch-to-polling.patch index 39169ba96..2f25cda6f 100644 --- a/unhandled-irqs-switch-to-polling.patch +++ b/unhandled-irqs-switch-to-polling.patch @@ -174,17 +174,34 @@ Josh Boyer * functioning device sharing an IRQ with the failing one) */ static void -@@ -302,19 +332,24 @@ void note_interrupt(unsigned int irq, st +@@ -269,6 +299,8 @@ try_misrouted_irq(unsigned int irq, stru + void note_interrupt(unsigned int irq, struct irq_desc *desc, + irqreturn_t action_ret) + { ++ int unhandled_thresh = 999000; ++ + if (desc->istate & IRQS_POLL_INPROGRESS) + return; + +@@ -302,19 +334,31 @@ void note_interrupt(unsigned int irq, st } desc->irq_count++; - if (likely(desc->irq_count < 100000)) -+ if (likely(desc->irq_count < 10)) - return; +- return; ++ if (!irq_poll_and_retry) ++ if (likely(desc->irq_count < 100000)) ++ return; ++ else ++ if (likely(desc->irq_count < 10)) ++ return; desc->irq_count = 0; - if (unlikely(desc->irqs_unhandled > 99900)) { -+ if (unlikely(desc->irqs_unhandled >= 9)) { ++ if (irq_poll_and_retry) ++ unhandled_thresh = 9; ++ ++ if (unlikely(desc->irqs_unhandled >= unhandled_thresh)) { /* - * The interrupt is stuck + * The interrupt might be stuck From 63bfa6a42ca273f73fd737f1d2837e304a44beb0 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Fri, 16 Mar 2012 13:13:01 -0500 Subject: [PATCH 094/542] re-enable threading on hibernate compression/decompressio --- ...threading-in-compression-for-hibernate.patch | 17 ----------------- kernel.spec | 9 +++------ 2 files changed, 3 insertions(+), 23 deletions(-) delete mode 100644 disable-threading-in-compression-for-hibernate.patch diff --git a/disable-threading-in-compression-for-hibernate.patch b/disable-threading-in-compression-for-hibernate.patch deleted file mode 100644 index 685c294ef..000000000 --- a/disable-threading-in-compression-for-hibernate.patch +++ /dev/null @@ -1,17 +0,0 @@ -In attempt to find the cause of some of the hibernate issues we are seeing, -turn off threading for compression. - -Signed-off-by: Justin M. Forbes - -diff -ruNp a/kernel/power/swap.c b/kernel/power/swap.c ---- a/kernel/power/swap.c 2012-03-02 13:52:27.777485028 -0600 -+++ b/kernel/power/swap.c 2012-03-02 14:05:20.168115129 -0600 -@@ -401,7 +401,7 @@ static int swap_writer_finish(struct swa - #define LZO_CMP_SIZE (LZO_CMP_PAGES * PAGE_SIZE) - - /* Maximum number of threads for compression/decompression. */ --#define LZO_THREADS 3 -+#define LZO_THREADS 1 - - /* Maximum number of pages for read buffering. */ - #define LZO_READ_PAGES (MAP_PAGE_ENTRIES * 8) diff --git a/kernel.spec b/kernel.spec index e2f92f28e..55b215520 100644 --- a/kernel.spec +++ b/kernel.spec @@ -757,9 +757,6 @@ Patch21300: ACPICA-Fix-regression-in-FADT-revision-checks.patch #rhbz 728478 Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch -# Disable threading in hibernate compression -Patch21303: disable-threading-in-compression-for-hibernate.patch - #rhbz 803809 CVE-2012-1179 Patch21304: mm-thp-fix-pmd_bad-triggering.patch @@ -1468,9 +1465,6 @@ ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch #rhbz 728478 ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch -#Disable threading in hibernate compression -ApplyPatch disable-threading-in-compression-for-hibernate.patch - ApplyPatch unhandled-irqs-switch-to-polling.patch ApplyPatch weird-root-dentry-name-debug.patch @@ -2314,6 +2308,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 16 2012 Justin M. Forbes +- re-enable threading on hibernate compression/decompression + * Fri Mar 16 2012 Josh Boyer - Fix irqpoll patch to really only apply for ASM108x machines (rhbz 800520) From b4ed1de2267446ff1282cde954ce491f71def30f Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Mar 2012 15:44:23 -0400 Subject: [PATCH 095/542] Linux v3.3-rc7-103-g0c4d067 --- kernel.spec | 9 +- scsi-fix-sd_revalidate_disk-oops.patch | 187 ------------------------- sources | 2 +- 3 files changed, 6 insertions(+), 192 deletions(-) delete mode 100644 scsi-fix-sd_revalidate_disk-oops.patch diff --git a/kernel.spec b/kernel.spec index 55b215520..df380ad3d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -87,7 +87,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 7 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -743,7 +743,6 @@ Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 754518 Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch -Patch21236: scsi-fix-sd_revalidate_disk-oops.patch Patch21250: mcelog-rcu-splat.patch Patch21270: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch @@ -1452,7 +1451,6 @@ ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 754518 ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch -ApplyPatch scsi-fix-sd_revalidate_disk-oops.patch ApplyPatch mcelog-rcu-splat.patch @@ -2308,6 +2306,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 16 2012 Dave Jones - 3.3.0-0.rc7.git2.1 +- Linux v3.3-rc7-103-g0c4d067 + * Fri Mar 16 2012 Justin M. Forbes - re-enable threading on hibernate compression/decompression diff --git a/scsi-fix-sd_revalidate_disk-oops.patch b/scsi-fix-sd_revalidate_disk-oops.patch deleted file mode 100644 index efc657c7f..000000000 --- a/scsi-fix-sd_revalidate_disk-oops.patch +++ /dev/null @@ -1,187 +0,0 @@ -Hi, - -Thank you for review and comments. - -On 02/16/12 02:26, Tejun Heo wrote: -> On Wed, Feb 15, 2012 at 11:56:19AM +0900, Jun'ichi Nomura wrote: ->> +int invalidate_partitions(struct gendisk *disk, struct block_device *bdev) ->> +{ ->> + int res; ->> + ->> + res = drop_partitions(disk, bdev); ->> + if (res) ->> + return res; ->> + -> -> Hmmm... shouldn't we have set_capacity(disk, 0) here? - -Added. -I wasn't sure whether I should leave it to drivers. -But it seems capacity 0 for ENOMEDIUM device is reasonable. - ->> + check_disk_size_change(disk, bdev); ->> + bdev->bd_invalidated = 0; ->> + /* tell userspace that the media / partition table may have changed */ ->> + kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); -> -> Also, we really shouldn't be generating KOBJ_CHANGE after every -> -ENOMEDIUM open. This can easily lead to infinite loop. We should -> generate this iff we actually dropped partitions && modified the size. - -invalidate_partitions() is called only when bd_invalidated is set. -So KOBJ_CHANGE is not raised for every ENOMEDIUM open. - -I put it explicit in the function to make it safer for -possible misuse. - -How about this? - ---------------------------------------------------------- -Do not call drivers when invalidating partitions for -ENOMEDIUM - -When a scsi driver returns -ENOMEDIUM for open(), -__blkdev_get() calls rescan_partitions(), which ends up calling -sd_revalidate_disk() without getting a refcount of scsi_device. - -That could lead to oops like this: - - process A process B - ---------------------------------------------- - sys_open - __blkdev_get - sd_open - returns -ENOMEDIUM - scsi_remove_device - - rescan_partitions - sd_revalidate_disk - - -Oopses are reported here: -http://marc.info/?l=linux-scsi&m=132388619710052 - -This patch separates the partition invalidation from rescan_partitions() -and use it for -ENOMEDIUM case. - -Index: linux-3.3/block/partition-generic.c -=================================================================== ---- linux-3.3.orig/block/partition-generic.c 2012-02-15 09:00:25.147293790 +0900 -+++ linux-3.3/block/partition-generic.c 2012-02-16 10:48:22.257680685 +0900 -@@ -389,17 +389,11 @@ static bool disk_unlock_native_capacity( - } - } - --int rescan_partitions(struct gendisk *disk, struct block_device *bdev) -+static int drop_partitions(struct gendisk *disk, struct block_device *bdev) - { -- struct parsed_partitions *state = NULL; - struct disk_part_iter piter; - struct hd_struct *part; -- int p, highest, res; --rescan: -- if (state && !IS_ERR(state)) { -- kfree(state); -- state = NULL; -- } -+ int res; - - if (bdev->bd_part_count) - return -EBUSY; -@@ -412,6 +406,24 @@ rescan: - delete_partition(disk, part->partno); - disk_part_iter_exit(&piter); - -+ return 0; -+} -+ -+int rescan_partitions(struct gendisk *disk, struct block_device *bdev) -+{ -+ struct parsed_partitions *state = NULL; -+ struct hd_struct *part; -+ int p, highest, res; -+rescan: -+ if (state && !IS_ERR(state)) { -+ kfree(state); -+ state = NULL; -+ } -+ -+ res = drop_partitions(disk, bdev); -+ if (res) -+ return res; -+ - if (disk->fops->revalidate_disk) - disk->fops->revalidate_disk(disk); - check_disk_size_change(disk, bdev); -@@ -515,6 +527,26 @@ rescan: - return 0; - } - -+int invalidate_partitions(struct gendisk *disk, struct block_device *bdev) -+{ -+ int res; -+ -+ if (!bdev->bd_invalidated) -+ return 0; -+ -+ res = drop_partitions(disk, bdev); -+ if (res) -+ return res; -+ -+ set_capacity(disk, 0); -+ check_disk_size_change(disk, bdev); -+ bdev->bd_invalidated = 0; -+ /* tell userspace that the media / partition table may have changed */ -+ kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); -+ -+ return 0; -+} -+ - unsigned char *read_dev_sector(struct block_device *bdev, sector_t n, Sector *p) - { - struct address_space *mapping = bdev->bd_inode->i_mapping; -Index: linux-3.3/include/linux/genhd.h -=================================================================== ---- linux-3.3.orig/include/linux/genhd.h 2012-02-09 12:21:53.000000000 +0900 -+++ linux-3.3/include/linux/genhd.h 2012-02-16 10:47:43.783681813 +0900 -@@ -596,6 +596,7 @@ extern char *disk_name (struct gendisk * - - extern int disk_expand_part_tbl(struct gendisk *disk, int target); - extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); -+extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev); - extern struct hd_struct * __must_check add_partition(struct gendisk *disk, - int partno, sector_t start, - sector_t len, int flags, -Index: linux-3.3/fs/block_dev.c -=================================================================== ---- linux-3.3.orig/fs/block_dev.c 2012-02-09 12:21:53.000000000 +0900 -+++ linux-3.3/fs/block_dev.c 2012-02-16 10:47:52.602681441 +0900 -@@ -1183,8 +1183,12 @@ static int __blkdev_get(struct block_dev - * The latter is necessary to prevent ghost - * partitions on a removed medium. - */ -- if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) -- rescan_partitions(disk, bdev); -+ if (bdev->bd_invalidated) { -+ if (!ret) -+ rescan_partitions(disk, bdev); -+ else if (ret == -ENOMEDIUM) -+ invalidate_partitions(disk, bdev); -+ } - if (ret) - goto out_clear; - } else { -@@ -1214,8 +1218,12 @@ static int __blkdev_get(struct block_dev - if (bdev->bd_disk->fops->open) - ret = bdev->bd_disk->fops->open(bdev, mode); - /* the same as first opener case, read comment there */ -- if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM)) -- rescan_partitions(bdev->bd_disk, bdev); -+ if (bdev->bd_invalidated) { -+ if (!ret) -+ rescan_partitions(bdev->bd_disk, bdev); -+ else if (ret == -ENOMEDIUM) -+ invalidate_partitions(bdev->bd_disk, bdev); -+ } - if (ret) - goto out_unlock_bdev; - } diff --git a/sources b/sources index 0d4aeba82..aef728ad9 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz 4364d0789141647508a9eb1fba8ffa6f patch-3.3-rc7.xz -6ab8ca7dbd7c8920009a34fea4544973 patch-3.3-rc7-git1.xz +3f5bb6b92a6d434829ad39c0b4ebe639 patch-3.3-rc7-git2.xz From 0901f900daea44a08daea6a116be1ac8d20bc7da Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Mar 2012 15:50:50 -0400 Subject: [PATCH 096/542] Disable debugging options. --- config-debug | 1 - config-generic | 9 ++-- config-nodebug | 109 ++++++++++++++++++++++----------------------- config-x86-generic | 2 +- kernel.spec | 9 ++-- 5 files changed, 66 insertions(+), 64 deletions(-) diff --git a/config-debug b/config-debug index ca1ba2b59..03964c6c4 100644 --- a/config-debug +++ b/config-debug @@ -8,7 +8,6 @@ CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y CONFIG_DEBUG_SPINLOCK=y CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set diff --git a/config-generic b/config-generic index 34f38d163..e3bd991d4 100644 --- a/config-generic +++ b/config-generic @@ -1466,13 +1466,13 @@ CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y # CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_BCMA_PIO=y -CONFIG_B43_DEBUG=y +# CONFIG_B43_DEBUG is not set CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y # CONFIG_B43_FORCE_PIO is not set CONFIG_B43LEGACY=m -CONFIG_B43LEGACY_DEBUG=y +# CONFIG_B43LEGACY_DEBUG is not set CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3076,7 +3076,7 @@ CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_ENE_UB6250=m # CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_UAS=m +# CONFIG_USB_UAS is not set # @@ -3760,6 +3760,7 @@ CONFIG_DEBUG_RODATA_TEST=y CONFIG_DEBUG_NX_TEST=m CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_DEBUG_BOOT_PARAMS=y +CONFIG_DEBUG_VM=y # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set CONFIG_LOCKUP_DETECTOR=y # CONFIG_DEBUG_INFO_REDUCED is not set @@ -3980,7 +3981,7 @@ CONFIG_IBMASR=m CONFIG_PM_DEBUG=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -CONFIG_PM_TEST_SUSPEND=y +# CONFIG_PM_TEST_SUSPEND is not set CONFIG_PM_RUNTIME=y # CONFIG_PM_OPP is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..aff30011e 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,110 +2,109 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y -CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y -CONFIG_FAIL_MMC_REQUEST=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set -CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set -CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set -CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y -CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set +# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 -CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set -CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set -CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set -CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set -CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set # off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set -CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set -CONFIG_DEBUG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_DEBUG_OBJECTS_WORK is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_CEPH_LIB_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y -CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y -CONFIG_TEST_LIST_SORT=y +# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +# CONFIG_TEST_LIST_SORT is not set -CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DETECT_HUNG_TASK is not set CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set -CONFIG_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y diff --git a/config-x86-generic b/config-x86-generic index e5a18ef38..96ff5646c 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -312,7 +312,7 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m diff --git a/kernel.spec b/kernel.spec index df380ad3d..c24eaa52a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -155,7 +155,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -168,7 +168,7 @@ Summary: The Linux kernel %define doc_build_fail true %endif -%define rawhide_skip_docs 1 +%define rawhide_skip_docs 0 %if 0%{?rawhide_skip_docs} %define with_doc 0 %define doc_build_fail true @@ -2306,6 +2306,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 16 2012 Dave Jones - 3.3.0-0.rc7.git2.2 +- Disable debugging options. + * Fri Mar 16 2012 Dave Jones - 3.3.0-0.rc7.git2.1 - Linux v3.3-rc7-103-g0c4d067 From efa8ce08777b6e11f342174f16083b99f4290e8e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 16 Mar 2012 16:49:43 -0400 Subject: [PATCH 097/542] drm-i915-dp-stfu.patch: Muzzle a bunch of DP WARN()s. They're not wrong, but they're not helpful at this point. --- drm-i915-dp-stfu.patch | 69 ++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 6 ++++ 2 files changed, 75 insertions(+) create mode 100644 drm-i915-dp-stfu.patch diff --git a/drm-i915-dp-stfu.patch b/drm-i915-dp-stfu.patch new file mode 100644 index 000000000..8948229dc --- /dev/null +++ b/drm-i915-dp-stfu.patch @@ -0,0 +1,69 @@ +From 04a43e2598db35b3d0ec25925bb8475b5c0a3809 Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Fri, 16 Mar 2012 16:39:11 -0400 +Subject: [PATCH] drm/i915/dp: Use DRM_ERROR not WARN for sanity checks + +These are noisy as shit and creating a ton of abrt reports. I don't +need more, thanks. Proper fix upstream eventually. + +Signed-off-by: Adam Jackson +--- + drivers/gpu/drm/i915/intel_dp.c | 14 ++++++++------ + 1 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c +index 94f860c..6bf27c9 100644 +--- a/drivers/gpu/drm/i915/intel_dp.c ++++ b/drivers/gpu/drm/i915/intel_dp.c +@@ -331,7 +331,7 @@ intel_dp_check_edp(struct intel_dp *intel_dp) + if (!is_edp(intel_dp)) + return; + if (!ironlake_edp_have_panel_power(intel_dp) && !ironlake_edp_have_panel_vdd(intel_dp)) { +- WARN(1, "eDP powered off while attempting aux channel communication.\n"); ++ DRM_ERROR("eDP powered off while attempting aux channel communication.\n"); + DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n", + I915_READ(PCH_PP_STATUS), + I915_READ(PCH_PP_CONTROL)); +@@ -386,7 +386,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, + } + + if (try == 3) { +- WARN(1, "dp_aux_ch not started status 0x%08x\n", ++ DRM_ERROR("dp_aux_ch not started status 0x%08x\n", + I915_READ(ch_ctl)); + return -EBUSY; + } +@@ -992,8 +992,8 @@ static void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp) + return; + DRM_DEBUG_KMS("Turn eDP VDD on\n"); + +- WARN(intel_dp->want_panel_vdd, +- "eDP VDD already requested on\n"); ++ if (intel_dp->want_panel_vdd) ++ DRM_ERROR("eDP VDD already requested on\n"); + + intel_dp->want_panel_vdd = true; + +@@ -1058,7 +1058,8 @@ static void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync) + return; + + DRM_DEBUG_KMS("Turn eDP VDD off %d\n", intel_dp->want_panel_vdd); +- WARN(!intel_dp->want_panel_vdd, "eDP VDD not forced on"); ++ if (!intel_dp->want_panel_vdd) ++ DRM_ERROR("eDP VDD not forced on"); + + intel_dp->want_panel_vdd = false; + +@@ -1128,7 +1129,8 @@ static void ironlake_edp_panel_off(struct intel_dp *intel_dp) + + DRM_DEBUG_KMS("Turn eDP power off\n"); + +- WARN(intel_dp->want_panel_vdd, "Cannot turn power off while VDD is on\n"); ++ if (intel_dp->want_panel_vdd) ++ DRM_ERROR("Cannot turn power off while VDD is on\n"); + + pp = ironlake_get_pp_control(dev_priv); + pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE); +-- +1.7.7.6 + diff --git a/kernel.spec b/kernel.spec index c24eaa52a..ea3a5a498 100644 --- a/kernel.spec +++ b/kernel.spec @@ -682,6 +682,7 @@ Patch1800: drm-vgem.patch # nouveau + drm fixes # intel drm is all merged upstream Patch1824: drm-intel-next.patch +Patch1825: drm-i915-dp-stfu.patch Patch1900: linux-2.6-intel-iommu-igfx.patch @@ -1405,6 +1406,7 @@ ApplyPatch drm-vgem.patch # Intel DRM ApplyOptionalPatch drm-intel-next.patch +ApplyPatch drm-i915-dp-stfu.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch @@ -2306,6 +2308,10 @@ fi # '-' | | # '-' %changelog +* Fri Mar 16 2012 Adam Jackson +- drm-i915-dp-stfu.patch: Muzzle a bunch of DP WARN()s. They're not wrong, + but they're not helpful at this point. + * Fri Mar 16 2012 Dave Jones - 3.3.0-0.rc7.git2.2 - Disable debugging options. From 64c1946b9006a77d93f02645e7d25c351e14294a Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 16 Mar 2012 16:55:08 -0400 Subject: [PATCH 098/542] bump for build --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index ea3a5a498..108df7601 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2308,7 +2308,7 @@ fi # '-' | | # '-' %changelog -* Fri Mar 16 2012 Adam Jackson +* Fri Mar 16 2012 Adam Jackson - 3.3.0-0.rc7.git2.3 - drm-i915-dp-stfu.patch: Muzzle a bunch of DP WARN()s. They're not wrong, but they're not helpful at this point. From 3cc64333ded6916f108a325671afc6e2e63a2b80 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sun, 18 Mar 2012 22:47:47 -0400 Subject: [PATCH 099/542] Linux 3.3 --- kernel.spec | 13 ++++++++----- sources | 4 +--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/kernel.spec b/kernel.spec index 108df7601..5546f6a5b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -6,7 +6,7 @@ Summary: The Linux kernel # For a stable, released kernel, released_kernel should be 1. For rawhide # and/or a kernel built from an rc or git snapshot, released_kernel should # be 0. -%global released_kernel 0 +%global released_kernel 1 # Save original buildid for later if it's defined %if 0%{?buildid:1} @@ -54,13 +54,13 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 1 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching # on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base, # which yields a base_sublevel of 21. -%define base_sublevel 2 +%define base_sublevel 3 ## If this is a released kernel ## %if 0%{?released_kernel} @@ -85,9 +85,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%define rcrev 7 +%define rcrev 0 # The git snapshot level -%define gitrev 2 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -2308,6 +2308,9 @@ fi # '-' | | # '-' %changelog +* Sun Mar 18 2012 Dave Jones +- Linux 3.3 + * Fri Mar 16 2012 Adam Jackson - 3.3.0-0.rc7.git2.3 - drm-i915-dp-stfu.patch: Muzzle a bunch of DP WARN()s. They're not wrong, but they're not helpful at this point. diff --git a/sources b/sources index aef728ad9..2fad201c9 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz -4364d0789141647508a9eb1fba8ffa6f patch-3.3-rc7.xz -3f5bb6b92a6d434829ad39c0b4ebe639 patch-3.3-rc7-git2.xz +7133f5a2086a7d7ef97abac610c094f5 linux-3.3.tar.xz From 475d827aebfe7e658e40164370b933c8be284899 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 20 Mar 2012 08:44:32 -0400 Subject: [PATCH 100/542] mac80211: fix possible tid_rx->reorder_timer use after free from Stanislaw Gruska (rhbz 804007) --- kernel.spec | 12 +++++- ...-tid_rx-reorder_timer-use-after-free.patch | 42 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch diff --git a/kernel.spec b/kernel.spec index 5546f6a5b..2c0d3c989 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -760,6 +760,9 @@ Patch21302: sony-laptop-Enable-keyboard-backlight-by-default.patch #rhbz 803809 CVE-2012-1179 Patch21304: mm-thp-fix-pmd_bad-triggering.patch +#rhbz 804007 +Patch21305: mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch + Patch21400: unhandled-irqs-switch-to-polling.patch Patch22000: weird-root-dentry-name-debug.patch @@ -1465,6 +1468,9 @@ ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch #rhbz 728478 ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch +#rhbz 804007 +ApplyPatch mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch + ApplyPatch unhandled-irqs-switch-to-polling.patch ApplyPatch weird-root-dentry-name-debug.patch @@ -2308,6 +2314,10 @@ fi # '-' | | # '-' %changelog +* Tue Mar 20 2012 Josh Boyer +- mac80211: fix possible tid_rx->reorder_timer use after free + from Stanislaw Gruska (rhbz 804007) + * Sun Mar 18 2012 Dave Jones - Linux 3.3 diff --git a/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch b/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch new file mode 100644 index 000000000..accda8afc --- /dev/null +++ b/mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch @@ -0,0 +1,42 @@ +Is possible that we will arm the tid_rx->reorder_timer after +del_timer_sync() in ___ieee80211_stop_rx_ba_session(). We need to stop +timer after RCU grace period finish, so move it to +ieee80211_free_tid_rx(). Timer will not be armed again, as +rcu_dereference(sta->ampdu_mlme.tid_rx[tid]) will return NULL. + +Debug object detected problem with the following warning: +ODEBUG: free active (active state 0) object type: timer_list hint: sta_rx_agg_reorder_timer_expired+0x0/0xf0 [mac80211] + +Bug report (with all warning messages): +https://bugzilla.redhat.com/show_bug.cgi?id=804007 + +Reported-by: "jan p. springer" +Cc: stable@vger.kernel.org +Signed-off-by: Stanislaw Gruszka +--- + net/mac80211/agg-rx.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c +index 1068f66..64d3ce5 100644 +--- a/net/mac80211/agg-rx.c ++++ b/net/mac80211/agg-rx.c +@@ -49,6 +49,8 @@ static void ieee80211_free_tid_rx(struct rcu_head *h) + container_of(h, struct tid_ampdu_rx, rcu_head); + int i; + ++ del_timer_sync(&tid_rx->reorder_timer); ++ + for (i = 0; i < tid_rx->buf_size; i++) + dev_kfree_skb(tid_rx->reorder_buf[i]); + kfree(tid_rx->reorder_buf); +@@ -91,7 +93,6 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, + tid, WLAN_BACK_RECIPIENT, reason); + + del_timer_sync(&tid_rx->session_timer); +- del_timer_sync(&tid_rx->reorder_timer); + + call_rcu(&tid_rx->rcu_head, ieee80211_free_tid_rx); + } +-- +1.7.1 From 5bbe9ea49d6d1c9184054e1d23f3cb18213c1bcc Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 20 Mar 2012 10:31:52 -0400 Subject: [PATCH 101/542] CVE-2012-1568: execshield: predictable ascii armour base address (rhbz 804957) --- kernel.spec | 9 ++++- shlib_base_randomize.patch | 69 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 shlib_base_randomize.patch diff --git a/kernel.spec b/kernel.spec index 2c0d3c989..75154a91f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 3 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -763,6 +763,9 @@ Patch21304: mm-thp-fix-pmd_bad-triggering.patch #rhbz 804007 Patch21305: mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch +#rhbz 804957 CVE-2012-1568 +Patch21306: shlib_base_randomize.patch + Patch21400: unhandled-irqs-switch-to-polling.patch Patch22000: weird-root-dentry-name-debug.patch @@ -1471,6 +1474,9 @@ ApplyPatch sony-laptop-Enable-keyboard-backlight-by-default.patch #rhbz 804007 ApplyPatch mac80211-fix-possible-tid_rx-reorder_timer-use-after-free.patch +#rhbz 804957 CVE-2012-1568 +ApplyPatch shlib_base_randomize.patch + ApplyPatch unhandled-irqs-switch-to-polling.patch ApplyPatch weird-root-dentry-name-debug.patch @@ -2315,6 +2321,7 @@ fi # '-' %changelog * Tue Mar 20 2012 Josh Boyer +- CVE-2012-1568: execshield: predictable ascii armour base address (rhbz 804957) - mac80211: fix possible tid_rx->reorder_timer use after free from Stanislaw Gruska (rhbz 804007) diff --git a/shlib_base_randomize.patch b/shlib_base_randomize.patch new file mode 100644 index 000000000..80e4d644b --- /dev/null +++ b/shlib_base_randomize.patch @@ -0,0 +1,69 @@ +diff -uNrp kernel-3.2.fc16.orig/arch/x86/mm/mmap.c kernel-3.2.fc16.new/arch/x86/mm/mmap.c +--- kernel-3.2.fc16.orig/arch/x86/mm/mmap.c 2012-03-19 16:47:03.495169091 -0400 ++++ kernel-3.2.fc16.new/arch/x86/mm/mmap.c 2012-03-19 16:50:03.574168052 -0400 +@@ -106,6 +106,10 @@ static unsigned long mmap_legacy_base(vo + return TASK_UNMAPPED_BASE + mmap_rnd(); + } + ++#ifdef CONFIG_X86_32 ++ #define SHLIB_BASE 0x00111000 ++#endif ++ + /* + * This function, called very early during the creation of a new + * process VM image, sets up which VM layout function to use: +@@ -126,8 +126,10 @@ void arch_pick_mmap_layout(struct mm_str + #ifdef CONFIG_X86_32 + if (!(current->personality & READ_IMPLIES_EXEC) + && !(__supported_pte_mask & _PAGE_NX) +- && mmap_is_ia32()) ++ && mmap_is_ia32()) { ++ mm->shlib_base = SHLIB_BASE + mmap_rnd(); + mm->get_unmapped_exec_area = arch_get_unmapped_exec_area; ++ } + #endif + mm->unmap_area = arch_unmap_area_topdown; + } +diff -uNrp kernel-3.2.fc16.orig/include/linux/mm_types.h kernel-3.2.fc16.new/include/linux/mm_types.h +--- kernel-3.2.fc16.orig/include/linux/mm_types.h 2012-03-19 16:46:47.382169153 -0400 ++++ kernel-3.2.fc16.new/include/linux/mm_types.h 2012-03-19 16:50:40.738168219 -0400 +@@ -300,6 +300,7 @@ struct mm_struct { + void (*unmap_area) (struct mm_struct *mm, unsigned long addr); + #endif + unsigned long mmap_base; /* base of mmap area */ ++ unsigned long shlib_base; /* base of lib map area (ASCII armour)*/ + unsigned long task_size; /* size of task vm space */ + unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ + unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ +diff -uNrp kernel-3.2.fc16.orig/mm/mmap.c kernel-3.2.fc16.new/mm/mmap.c +--- kernel-3.2.fc16.orig/mm/mmap.c 2012-03-19 16:46:15.791169274 -0400 ++++ kernel-3.2.fc16.new/mm/mmap.c 2012-03-19 16:51:37.351166875 -0400 +@@ -1594,8 +1594,6 @@ static bool should_randomize(void) + !(current->personality & ADDR_NO_RANDOMIZE); + } + +-#define SHLIB_BASE 0x00110000 +- + unsigned long + arch_get_unmapped_exec_area(struct file *filp, unsigned long addr0, + unsigned long len0, unsigned long pgoff, unsigned long flags) +@@ -1612,8 +1610,8 @@ arch_get_unmapped_exec_area(struct file + return addr; + + if (!addr) +- addr = !should_randomize() ? SHLIB_BASE : +- randomize_range(SHLIB_BASE, 0x01000000, len); ++ addr = !should_randomize() ? mm->shlib_base : ++ randomize_range(mm->shlib_base, 0x01000000, len); + + if (addr) { + addr = PAGE_ALIGN(addr); +@@ -1623,7 +1621,7 @@ arch_get_unmapped_exec_area(struct file + return addr; + } + +- addr = SHLIB_BASE; ++ addr = mm->shlib_base; + for (vma = find_vma(mm, addr); ; vma = vma->vm_next) { + /* At this point: (!vma || addr < vma->vm_end). */ + if (TASK_SIZE - len < addr) From 3b5b9ca4f6ae18cfcc4a67b763ba96596032790d Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 20 Mar 2012 16:50:59 -0400 Subject: [PATCH 102/542] Don't bind the IPS driver if no irq is assigned (typically BIOS bug). (rhbz 804353) --- ips-noirq.patch | 15 +++++++++++++++ kernel.spec | 7 +++++++ 2 files changed, 22 insertions(+) create mode 100644 ips-noirq.patch diff --git a/ips-noirq.patch b/ips-noirq.patch new file mode 100644 index 000000000..95837ecf4 --- /dev/null +++ b/ips-noirq.patch @@ -0,0 +1,15 @@ +--- a/drivers/platform/x86/intel_ips.c ++++ a/drivers/platform/x86/intel_ips.c +@@ -1603,6 +1603,12 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id) + goto error_unmap; + } + ++ /* No IRQ assigned is a BIOS failure... */ ++ if (dev->irq <= 0) { ++ ret = -ENODEV; ++ goto error_unmap; ++ } ++ + /* + * IRQ handler for ME interaction + * Note: don't use MSI here as the PCH has bugs. diff --git a/kernel.spec b/kernel.spec index 75154a91f..e1c3f4d9c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -717,6 +717,8 @@ Patch14000: hibernate-freeze-filesystems.patch Patch14010: lis3-improve-handling-of-null-rate.patch +Patch19000: ips-noirq.patch + Patch20000: utrace.patch # Flattened devicetree support @@ -1439,6 +1441,8 @@ ApplyPatch hibernate-freeze-filesystems.patch ApplyPatch lis3-improve-handling-of-null-rate.patch +ApplyPatch ips-noirq.patch + # utrace. ApplyPatch utrace.patch @@ -2320,6 +2324,9 @@ fi # '-' | | # '-' %changelog +* Tue Mar 20 2012 Dave Jones +- Don't bind the IPS driver if no irq is assigned (typically BIOS bug). (rhbz 804353) + * Tue Mar 20 2012 Josh Boyer - CVE-2012-1568: execshield: predictable ascii armour base address (rhbz 804957) - mac80211: fix possible tid_rx->reorder_timer use after free From 98931fa9d113305798c9162551d7eb43d5bf593d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 21 Mar 2012 15:09:49 -0400 Subject: [PATCH 103/542] Ship hmac file for vmlinuz for FIPS-140 (rhbz 805538) --- kernel.spec | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index e1c3f4d9c..486bb613b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 3 +%global baserelease 4 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -529,7 +529,7 @@ ExclusiveOS: Linux # BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar BuildRequires: bzip2, xz, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk -BuildRequires: gcc >= 3.4.2, binutils >= 2.12, redhat-rpm-config +BuildRequires: gcc >= 3.4.2, binutils >= 2.12, redhat-rpm-config, hmaccalc BuildRequires: net-tools BuildRequires: xmlto, asciidoc %if %{with_sparse} @@ -1640,6 +1640,11 @@ BuildKernel() { $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer + # hmac sign the kernel for FIPS + echo "Creating hmac file: $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac" + ls -l $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer + sha512hmac $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer | sed -e "s,$RPM_BUILD_ROOT,," > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac; + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer # Override $(mod-fw) because we don't want it to install any firmware # we'll get it from the linux-firmware package and we don't want conflicts @@ -2261,6 +2266,7 @@ fi %{expand:%%files %{?2}}\ %defattr(-,root,root)\ /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:.%{2}}\ +/%{image_install_path}/.vmlinuz-%{KVERREL}%{?2:.%{2}}.hmac \ %attr(600,root,root) /boot/System.map-%{KVERREL}%{?2:.%{2}}\ /boot/config-%{KVERREL}%{?2:.%{2}}\ %dir /lib/modules/%{KVERREL}%{?2:.%{2}}\ @@ -2324,6 +2330,9 @@ fi # '-' | | # '-' %changelog +* Wed Mar 21 2012 Josh Boyer +- Ship hmac file for vmlinuz for FIPS-140 (rhbz 805538) + * Tue Mar 20 2012 Dave Jones - Don't bind the IPS driver if no irq is assigned (typically BIOS bug). (rhbz 804353) From 6797a3efaed636c6d6befb4c89347ed24fc7aa42 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 23 Mar 2012 12:18:34 -0400 Subject: [PATCH 104/542] Apply patches that should solve the bluetooth use-after-free oopses. (rhbz 806033) --- bluetooth-use-after-free.patch | 105 +++++++++++++++++++++++++++++++++ kernel.spec | 7 +++ 2 files changed, 112 insertions(+) create mode 100644 bluetooth-use-after-free.patch diff --git a/bluetooth-use-after-free.patch b/bluetooth-use-after-free.patch new file mode 100644 index 000000000..0d21cad9a --- /dev/null +++ b/bluetooth-use-after-free.patch @@ -0,0 +1,105 @@ +From 2a5a5ec620a29d4ba07743c3151cdf0a417c8f8c Mon Sep 17 00:00:00 2001 +From: Andrei Emeltchenko +Date: Thu, 2 Feb 2012 10:32:18 +0200 +Subject: [PATCH] Bluetooth: Use list _safe deleting from conn chan_list + +Fixes possible bug when deleting element from the list in +function hci_chan_list_flush. list_for_each_entry_rcu is used +and after deleting element from the list we also free pointer +and then list_entry_rcu is taken from freed pointer. + +Signed-off-by: Andrei Emeltchenko +Acked-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +--- + net/bluetooth/hci_conn.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c +index b074bd6..b4ecdde 100644 +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -975,10 +975,10 @@ int hci_chan_del(struct hci_chan *chan) + + void hci_chan_list_flush(struct hci_conn *conn) + { +- struct hci_chan *chan; ++ struct hci_chan *chan, *n; + + BT_DBG("conn %p", conn); + +- list_for_each_entry_rcu(chan, &conn->chan_list, list) ++ list_for_each_entry_safe(chan, n, &conn->chan_list, list) + hci_chan_del(chan); + } +-- +1.7.6.5 + +From 3c4e0df028935618d052235ba85bc7079be13394 Mon Sep 17 00:00:00 2001 +From: Andrei Emeltchenko +Date: Thu, 2 Feb 2012 10:32:17 +0200 +Subject: [PATCH] Bluetooth: Use list _safe deleting from conn_hash_list + +Use list_for_each_entry_safe which is safe version against removal +of list entry. Otherwise we remove hci_conn element and reference +next element which result in accessing LIST_POISON. + +[ 95.571834] Bluetooth: unknown link type 127 +[ 95.578349] BUG: unable to handle kernel paging request at 20002000 +[ 95.580236] IP: [<20002000>] 0x20001fff +[ 95.580763] *pde = 00000000 +[ 95.581196] Oops: 0000 [#1] SMP +... +[ 95.582298] Pid: 3355, comm: hciconfig Tainted: G O 3.2.0-VirttualBox +[ 95.582298] EIP: 0060:[<20002000>] EFLAGS: 00210206 CPU: 0 +[ 95.582298] EIP is at 0x20002000 +... +[ 95.582298] Call Trace: +[ 95.582298] [] ? hci_conn_hash_flush+0x76/0xf0 [bluetooth] +[ 95.582298] [] hci_dev_do_close+0xc1/0x2e0 [bluetooth] +[ 95.582298] [] ? hci_dev_get+0x69/0xb0 [bluetooth] +[ 95.582298] [] hci_dev_close+0x2a/0x50 [bluetooth] +[ 95.582298] [] hci_sock_ioctl+0x1af/0x3f0 [bluetooth] +[ 95.582298] [] ? handle_pte_fault+0x8a/0x8f0 +[ 95.582298] [] sock_ioctl+0x5f/0x260 +[ 95.582298] [] ? sock_fasync+0x90/0x90 +[ 95.582298] [] do_vfs_ioctl+0x83/0x5b0 +[ 95.582298] [] ? do_page_fault+0x297/0x500 +[ 95.582298] [] ? spurious_fault+0xd0/0xd0 +[ 95.582298] [] ? up_read+0x1b/0x30 +[ 95.582298] [] ? do_page_fault+0x297/0x500 +[ 95.582298] [] ? init_fpu+0xef/0x160 +[ 95.582298] [] ? do_debug+0x180/0x180 +[ 95.582298] [] ? fpu_finit+0x28/0x80 +[ 95.582298] [] sys_ioctl+0x87/0x90 +[ 95.582298] [] sysenter_do_call+0x12/0x38 +... + +Signed-off-by: Andrei Emeltchenko +Acked-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +--- + net/bluetooth/hci_conn.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c +index aca71c0..b074bd6 100644 +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -795,11 +795,11 @@ timer: + void hci_conn_hash_flush(struct hci_dev *hdev) + { + struct hci_conn_hash *h = &hdev->conn_hash; +- struct hci_conn *c; ++ struct hci_conn *c, *n; + + BT_DBG("hdev %s", hdev->name); + +- list_for_each_entry_rcu(c, &h->list, list) { ++ list_for_each_entry_safe(c, n, &h->list, list) { + c->state = BT_CLOSED; + + hci_proto_disconn_cfm(c, HCI_ERROR_LOCAL_HOST_TERM); +-- +1.7.6.5 + diff --git a/kernel.spec b/kernel.spec index 486bb613b..1d5433a45 100644 --- a/kernel.spec +++ b/kernel.spec @@ -717,6 +717,8 @@ Patch14000: hibernate-freeze-filesystems.patch Patch14010: lis3-improve-handling-of-null-rate.patch +Patch15000: bluetooth-use-after-free.patch + Patch19000: ips-noirq.patch Patch20000: utrace.patch @@ -1441,6 +1443,8 @@ ApplyPatch hibernate-freeze-filesystems.patch ApplyPatch lis3-improve-handling-of-null-rate.patch +ApplyPatch bluetooth-use-after-free.patch + ApplyPatch ips-noirq.patch # utrace. @@ -2330,6 +2334,9 @@ fi # '-' | | # '-' %changelog +* Fri Mar 23 2012 Dave Jones +- Apply patches that should solve the bluetooth use-after-free oopses. (rhbz 806033) + * Wed Mar 21 2012 Josh Boyer - Ship hmac file for vmlinuz for FIPS-140 (rhbz 805538) From 52f64574fa138692890e9fddfef7d9fcddfc6883 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Fri, 23 Mar 2012 15:36:23 -0400 Subject: [PATCH 105/542] bump for build --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 1d5433a45..971133b5b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 4 +%global baserelease 5 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2334,7 +2334,7 @@ fi # '-' | | # '-' %changelog -* Fri Mar 23 2012 Dave Jones +* Fri Mar 23 2012 Dave Jones 3.3.0-5 - Apply patches that should solve the bluetooth use-after-free oopses. (rhbz 806033) * Wed Mar 21 2012 Josh Boyer From f1d2f5da9efb9a26289e66c23e835b51ae5e6773 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 27 Mar 2012 11:59:27 -0400 Subject: [PATCH 106/542] Add some additional support for Apple hardware --- apple-gmux-backlight-support.patch | 384 +++++++++++++++++++++++++++++ uefi-multi-gpu.patch | 274 ++++++++++++++++++++ 2 files changed, 658 insertions(+) create mode 100644 apple-gmux-backlight-support.patch create mode 100644 uefi-multi-gpu.patch diff --git a/apple-gmux-backlight-support.patch b/apple-gmux-backlight-support.patch new file mode 100644 index 000000000..87879ed93 --- /dev/null +++ b/apple-gmux-backlight-support.patch @@ -0,0 +1,384 @@ +commit 9964e2a108292685fbbf0980493c5e9776eac762 +Author: Seth Forshee +Date: Fri Mar 16 14:41:21 2012 -0500 + + apple_bl: Add register/unregister functions + + Add functions to allow other modules to enable or disable apple_bl. This + will be used by the gmux driver to disable apple_bl when the gmux is + present, as it is a better and more reliable option for brightness + control. + + Signed-off-by: Seth Forshee + Signed-off-by: Matthew Garrett + +diff --git a/drivers/video/backlight/apple_bl.c b/drivers/video/backlight/apple_bl.c +index be98d15..a523b25 100644 +--- a/drivers/video/backlight/apple_bl.c ++++ b/drivers/video/backlight/apple_bl.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + static struct backlight_device *apple_backlight_device; + +@@ -221,14 +222,32 @@ static struct acpi_driver apple_bl_driver = { + }, + }; + ++static atomic_t apple_bl_registered = ATOMIC_INIT(0); ++ ++int apple_bl_register(void) ++{ ++ if (atomic_xchg(&apple_bl_registered, 1) == 0) ++ return acpi_bus_register_driver(&apple_bl_driver); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(apple_bl_register); ++ ++void apple_bl_unregister(void) ++{ ++ if (atomic_xchg(&apple_bl_registered, 0) == 1) ++ acpi_bus_unregister_driver(&apple_bl_driver); ++} ++EXPORT_SYMBOL_GPL(apple_bl_unregister); ++ + static int __init apple_bl_init(void) + { +- return acpi_bus_register_driver(&apple_bl_driver); ++ return apple_bl_register(); + } + + static void __exit apple_bl_exit(void) + { +- acpi_bus_unregister_driver(&apple_bl_driver); ++ apple_bl_unregister(); + } + + module_init(apple_bl_init); +diff --git a/include/linux/apple_bl.h b/include/linux/apple_bl.h +new file mode 100644 +index 0000000..47bedc0 +--- /dev/null ++++ b/include/linux/apple_bl.h +@@ -0,0 +1,26 @@ ++/* ++ * apple_bl exported symbols ++ */ ++ ++#ifndef _LINUX_APPLE_BL_H ++#define _LINUX_APPLE_BL_H ++ ++#ifdef CONFIG_BACKLIGHT_APPLE ++ ++extern int apple_bl_register(void); ++extern void apple_bl_unregister(void); ++ ++#else /* !CONFIG_BACKLIGHT_APPLE */ ++ ++static inline int apple_bl_register(void) ++{ ++ return 0; ++} ++ ++static inline void apple_bl_unregister(void) ++{ ++} ++ ++#endif /* !CONFIG_BACKLIGHT_APPLE */ ++ ++#endif /* _LINUX_APPLE_BL_H */ +commit 89c093937dc8b07db4652251c83ec3710e5f15a2 +Author: Seth Forshee +Date: Fri Mar 16 14:41:22 2012 -0500 + + platform/x86: Add driver for Apple gmux device + + Apple laptops with hybrid graphics have a device named gmux that + controls the muxing of the LVDS panel between the GPUs as well as screen + brightness. This driver adds support for the gmux device. Only backlight + control is supported initially. + + Signed-off-by: Seth Forshee + Signed-off-by: Matthew Garrett + Tested-by: Grant Likely + +diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig +index ce10f03..c5b4bfe 100644 +--- a/drivers/platform/x86/Kconfig ++++ b/drivers/platform/x86/Kconfig +@@ -752,4 +752,14 @@ config SAMSUNG_Q10 + This driver provides support for backlight control on Samsung Q10 + and related laptops, including Dell Latitude X200. + ++config APPLE_GMUX ++ tristate "Apple Gmux Driver" ++ depends on PNP ++ select BACKLIGHT_CLASS_DEVICE ++ ---help--- ++ This driver provides support for the gmux device found on many ++ Apple laptops, which controls the display mux for the hybrid ++ graphics as well as the backlight. Currently only backlight ++ control is supported by the driver. ++ + endif # X86_PLATFORM_DEVICES +diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile +index dcfee6b..bf7e4f9 100644 +--- a/drivers/platform/x86/Makefile ++++ b/drivers/platform/x86/Makefile +@@ -49,3 +49,4 @@ obj-$(CONFIG_MXM_WMI) += mxm-wmi.o + obj-$(CONFIG_INTEL_MID_POWER_BUTTON) += intel_mid_powerbtn.o + obj-$(CONFIG_INTEL_OAKTRAIL) += intel_oaktrail.o + obj-$(CONFIG_SAMSUNG_Q10) += samsung-q10.o ++obj-$(CONFIG_APPLE_GMUX) += apple-gmux.o +diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c +new file mode 100644 +index 0000000..c81e31f +--- /dev/null ++++ b/drivers/platform/x86/apple-gmux.c +@@ -0,0 +1,242 @@ ++/* ++ * Gmux driver for Apple laptops ++ * ++ * Copyright (C) Canonical Ltd. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct apple_gmux_data { ++ unsigned long iostart; ++ unsigned long iolen; ++ ++ struct backlight_device *bdev; ++}; ++ ++/* ++ * gmux port offsets. Many of these are not yet used, but may be in the ++ * future, and it's useful to have them documented here anyhow. ++ */ ++#define GMUX_PORT_VERSION_MAJOR 0x04 ++#define GMUX_PORT_VERSION_MINOR 0x05 ++#define GMUX_PORT_VERSION_RELEASE 0x06 ++#define GMUX_PORT_SWITCH_DISPLAY 0x10 ++#define GMUX_PORT_SWITCH_GET_DISPLAY 0x11 ++#define GMUX_PORT_INTERRUPT_ENABLE 0x14 ++#define GMUX_PORT_INTERRUPT_STATUS 0x16 ++#define GMUX_PORT_SWITCH_DDC 0x28 ++#define GMUX_PORT_SWITCH_EXTERNAL 0x40 ++#define GMUX_PORT_SWITCH_GET_EXTERNAL 0x41 ++#define GMUX_PORT_DISCRETE_POWER 0x50 ++#define GMUX_PORT_MAX_BRIGHTNESS 0x70 ++#define GMUX_PORT_BRIGHTNESS 0x74 ++ ++#define GMUX_MIN_IO_LEN (GMUX_PORT_BRIGHTNESS + 4) ++ ++#define GMUX_INTERRUPT_ENABLE 0xff ++#define GMUX_INTERRUPT_DISABLE 0x00 ++ ++#define GMUX_INTERRUPT_STATUS_ACTIVE 0 ++#define GMUX_INTERRUPT_STATUS_DISPLAY (1 << 0) ++#define GMUX_INTERRUPT_STATUS_POWER (1 << 2) ++#define GMUX_INTERRUPT_STATUS_HOTPLUG (1 << 3) ++ ++#define GMUX_BRIGHTNESS_MASK 0x00ffffff ++#define GMUX_MAX_BRIGHTNESS GMUX_BRIGHTNESS_MASK ++ ++static inline u8 gmux_read8(struct apple_gmux_data *gmux_data, int port) ++{ ++ return inb(gmux_data->iostart + port); ++} ++ ++static inline void gmux_write8(struct apple_gmux_data *gmux_data, int port, ++ u8 val) ++{ ++ outb(val, gmux_data->iostart + port); ++} ++ ++static inline u32 gmux_read32(struct apple_gmux_data *gmux_data, int port) ++{ ++ return inl(gmux_data->iostart + port); ++} ++ ++static int gmux_get_brightness(struct backlight_device *bd) ++{ ++ struct apple_gmux_data *gmux_data = bl_get_data(bd); ++ return gmux_read32(gmux_data, GMUX_PORT_BRIGHTNESS) & ++ GMUX_BRIGHTNESS_MASK; ++} ++ ++static int gmux_update_status(struct backlight_device *bd) ++{ ++ struct apple_gmux_data *gmux_data = bl_get_data(bd); ++ u32 brightness = bd->props.brightness; ++ ++ /* ++ * Older gmux versions require writing out lower bytes first then ++ * setting the upper byte to 0 to flush the values. Newer versions ++ * accept a single u32 write, but the old method also works, so we ++ * just use the old method for all gmux versions. ++ */ ++ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS, brightness); ++ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 1, brightness >> 8); ++ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 2, brightness >> 16); ++ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 3, 0); ++ ++ return 0; ++} ++ ++static const struct backlight_ops gmux_bl_ops = { ++ .get_brightness = gmux_get_brightness, ++ .update_status = gmux_update_status, ++}; ++ ++static int __devinit gmux_probe(struct pnp_dev *pnp, ++ const struct pnp_device_id *id) ++{ ++ struct apple_gmux_data *gmux_data; ++ struct resource *res; ++ struct backlight_properties props; ++ struct backlight_device *bdev; ++ u8 ver_major, ver_minor, ver_release; ++ int ret = -ENXIO; ++ ++ gmux_data = kzalloc(sizeof(*gmux_data), GFP_KERNEL); ++ if (!gmux_data) ++ return -ENOMEM; ++ pnp_set_drvdata(pnp, gmux_data); ++ ++ res = pnp_get_resource(pnp, IORESOURCE_IO, 0); ++ if (!res) { ++ pr_err("Failed to find gmux I/O resource\n"); ++ goto err_free; ++ } ++ ++ gmux_data->iostart = res->start; ++ gmux_data->iolen = res->end - res->start; ++ ++ if (gmux_data->iolen < GMUX_MIN_IO_LEN) { ++ pr_err("gmux I/O region too small (%lu < %u)\n", ++ gmux_data->iolen, GMUX_MIN_IO_LEN); ++ goto err_free; ++ } ++ ++ if (!request_region(gmux_data->iostart, gmux_data->iolen, ++ "Apple gmux")) { ++ pr_err("gmux I/O already in use\n"); ++ goto err_free; ++ } ++ ++ /* ++ * On some machines the gmux is in ACPI even thought the machine ++ * doesn't really have a gmux. Check for invalid version information ++ * to detect this. ++ */ ++ ver_major = gmux_read8(gmux_data, GMUX_PORT_VERSION_MAJOR); ++ ver_minor = gmux_read8(gmux_data, GMUX_PORT_VERSION_MINOR); ++ ver_release = gmux_read8(gmux_data, GMUX_PORT_VERSION_RELEASE); ++ if (ver_major == 0xff && ver_minor == 0xff && ver_release == 0xff) { ++ pr_info("gmux device not present\n"); ++ ret = -ENODEV; ++ goto err_release; ++ } ++ ++ pr_info("Found gmux version %d.%d.%d\n", ver_major, ver_minor, ++ ver_release); ++ ++ memset(&props, 0, sizeof(props)); ++ props.type = BACKLIGHT_PLATFORM; ++ props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS); ++ ++ /* ++ * Currently it's assumed that the maximum brightness is less than ++ * 2^24 for compatibility with old gmux versions. Cap the max ++ * brightness at this value, but print a warning if the hardware ++ * reports something higher so that it can be fixed. ++ */ ++ if (WARN_ON(props.max_brightness > GMUX_MAX_BRIGHTNESS)) ++ props.max_brightness = GMUX_MAX_BRIGHTNESS; ++ ++ bdev = backlight_device_register("gmux_backlight", &pnp->dev, ++ gmux_data, &gmux_bl_ops, &props); ++ if (IS_ERR(bdev)) { ++ ret = PTR_ERR(bdev); ++ goto err_release; ++ } ++ ++ gmux_data->bdev = bdev; ++ bdev->props.brightness = gmux_get_brightness(bdev); ++ backlight_update_status(bdev); ++ ++ /* ++ * The backlight situation on Macs is complicated. If the gmux is ++ * present it's the best choice, because it always works for ++ * backlight control and supports more levels than other options. ++ * Disable the other backlight choices. ++ */ ++ acpi_video_unregister(); ++ apple_bl_unregister(); ++ ++ return 0; ++ ++err_release: ++ release_region(gmux_data->iostart, gmux_data->iolen); ++err_free: ++ kfree(gmux_data); ++ return ret; ++} ++ ++static void __devexit gmux_remove(struct pnp_dev *pnp) ++{ ++ struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp); ++ ++ backlight_device_unregister(gmux_data->bdev); ++ release_region(gmux_data->iostart, gmux_data->iolen); ++ kfree(gmux_data); ++ ++ acpi_video_register(); ++ apple_bl_register(); ++} ++ ++static const struct pnp_device_id gmux_device_ids[] = { ++ {"APP000B", 0}, ++ {"", 0} ++}; ++ ++static struct pnp_driver gmux_pnp_driver = { ++ .name = "apple-gmux", ++ .probe = gmux_probe, ++ .remove = __devexit_p(gmux_remove), ++ .id_table = gmux_device_ids, ++}; ++ ++static int __init apple_gmux_init(void) ++{ ++ return pnp_register_driver(&gmux_pnp_driver); ++} ++ ++static void __exit apple_gmux_exit(void) ++{ ++ pnp_unregister_driver(&gmux_pnp_driver); ++} ++ ++module_init(apple_gmux_init); ++module_exit(apple_gmux_exit); ++ ++MODULE_AUTHOR("Seth Forshee "); ++MODULE_DESCRIPTION("Apple Gmux Driver"); ++MODULE_LICENSE("GPL"); ++MODULE_DEVICE_TABLE(pnp, gmux_device_ids); diff --git a/uefi-multi-gpu.patch b/uefi-multi-gpu.patch new file mode 100644 index 000000000..68cc5c6fe --- /dev/null +++ b/uefi-multi-gpu.patch @@ -0,0 +1,274 @@ +diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h +index c4b9dc2..2723c07 100644 +--- a/arch/x86/include/asm/vga.h ++++ b/arch/x86/include/asm/vga.h +@@ -17,4 +17,10 @@ + #define vga_readb(x) (*(x)) + #define vga_writeb(x, y) (*(y) = (x)) + ++#if CONFIG_FB_EFI ++#define __ARCH_HAS_VGA_DEFAULT_DEVICE ++extern struct pci_dev *vga_default_device(void); ++extern void vga_set_default_device(struct pci_dev *pdev); ++#endif ++ + #endif /* _ASM_X86_VGA_H */ +diff --git a/arch/x86/video/fbdev.c b/arch/x86/video/fbdev.c +index c5ffb6a..d5644bb 100644 +--- a/arch/x86/video/fbdev.c ++++ b/arch/x86/video/fbdev.c +@@ -9,24 +9,34 @@ + #include + #include + #include ++#include + + int fb_is_primary_device(struct fb_info *info) + { + struct device *device = info->device; + struct pci_dev *pci_dev = NULL; ++ struct pci_dev *default_device = vga_default_device(); + struct resource *res = NULL; +- int retval = 0; + + if (device) + pci_dev = to_pci_dev(device); + +- if (pci_dev) +- res = &pci_dev->resource[PCI_ROM_RESOURCE]; ++ if (!pci_dev) ++ return 0; ++ ++ if (default_device) { ++ if (pci_dev == default_device) ++ return 1; ++ else ++ return 0; ++ } ++ ++ res = &pci_dev->resource[PCI_ROM_RESOURCE]; + + if (res && res->flags & IORESOURCE_ROM_SHADOW) +- retval = 1; ++ return 1; + +- return retval; ++ return 0; + } + EXPORT_SYMBOL(fb_is_primary_device); + MODULE_LICENSE("GPL"); +diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c +index 9a2c805..44c664e 100644 +--- a/drivers/gpu/vga/vga_switcheroo.c ++++ b/drivers/gpu/vga/vga_switcheroo.c +@@ -28,6 +28,8 @@ + #include + #include + ++#include ++ + struct vga_switcheroo_client { + struct pci_dev *pdev; + struct fb_info *fb_info; +@@ -140,7 +142,7 @@ int vga_switcheroo_register_client(struct pci_dev *pdev, + vgasr_priv.clients[index].reprobe = reprobe; + vgasr_priv.clients[index].can_switch = can_switch; + vgasr_priv.clients[index].id = -1; +- if (pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW) ++ if (pdev == vga_default_device()) + vgasr_priv.clients[index].active = true; + + vgasr_priv.registered_clients |= (1 << index); +@@ -248,9 +250,8 @@ static int vga_switchto_stage1(struct vga_switcheroo_client *new_client) + if (new_client->pwr_state == VGA_SWITCHEROO_OFF) + vga_switchon(new_client); + +- /* swap shadow resource to denote boot VGA device has changed so X starts on new device */ +- active->pdev->resource[PCI_ROM_RESOURCE].flags &= ~IORESOURCE_ROM_SHADOW; +- new_client->pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; ++ vga_set_default_device(new_client->pdev); ++ + return 0; + } + +diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c +index 111d956..e223b96 100644 +--- a/drivers/gpu/vga/vgaarb.c ++++ b/drivers/gpu/vga/vgaarb.c +@@ -136,6 +136,11 @@ struct pci_dev *vga_default_device(void) + { + return vga_default; + } ++ ++void vga_set_default_device(struct pci_dev *pdev) ++{ ++ vga_default = pdev; ++} + #endif + + static inline void vga_irq_set_state(struct vga_device *vgadev, bool state) +@@ -605,10 +610,12 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) + goto bail; + } + ++#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE + if (vga_default == pdev) { + pci_dev_put(vga_default); + vga_default = NULL; + } ++#endif + + if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) + vga_decode_count--; +diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c +index a3cd8ca..7dd9f2b 100644 +--- a/drivers/pci/pci-sysfs.c ++++ b/drivers/pci/pci-sysfs.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include "pci.h" + + static int sysfs_initialized; /* = 0 */ +@@ -414,6 +415,10 @@ static ssize_t + boot_vga_show(struct device *dev, struct device_attribute *attr, char *buf) + { + struct pci_dev *pdev = to_pci_dev(dev); ++ struct pci_dev *vga_dev = vga_default_device(); ++ ++ if (vga_dev) ++ return sprintf(buf, "%u\n", (pdev == vga_dev)); + + return sprintf(buf, "%u\n", + !!(pdev->resource[PCI_ROM_RESOURCE].flags & +diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c +index 784139a..66ed991 100644 +--- a/drivers/video/efifb.c ++++ b/drivers/video/efifb.c +@@ -18,6 +18,8 @@ + + static bool request_mem_succeeded = false; + ++static struct pci_dev *default_vga; ++ + static struct fb_var_screeninfo efifb_defined __devinitdata = { + .activate = FB_ACTIVATE_NOW, + .height = -1, +@@ -298,35 +300,70 @@ static struct fb_ops efifb_ops = { + .fb_imageblit = cfb_imageblit, + }; + ++struct pci_dev *vga_default_device(void) ++{ ++ return default_vga; ++} ++ ++void vga_set_default_device(struct pci_dev *pdev) ++{ ++ default_vga = pdev; ++} ++ + static int __init efifb_setup(char *options) + { + char *this_opt; + int i; ++ struct pci_dev *dev = NULL; ++ ++ if (options && *options) { ++ while ((this_opt = strsep(&options, ",")) != NULL) { ++ if (!*this_opt) continue; ++ ++ for (i = 0; i < M_UNKNOWN; i++) { ++ if (!strcmp(this_opt, dmi_list[i].optname) && ++ dmi_list[i].base != 0) { ++ screen_info.lfb_base = dmi_list[i].base; ++ screen_info.lfb_linelength = dmi_list[i].stride; ++ screen_info.lfb_width = dmi_list[i].width; ++ screen_info.lfb_height = dmi_list[i].height; ++ } ++ } ++ if (!strncmp(this_opt, "base:", 5)) ++ screen_info.lfb_base = simple_strtoul(this_opt+5, NULL, 0); ++ else if (!strncmp(this_opt, "stride:", 7)) ++ screen_info.lfb_linelength = simple_strtoul(this_opt+7, NULL, 0) * 4; ++ else if (!strncmp(this_opt, "height:", 7)) ++ screen_info.lfb_height = simple_strtoul(this_opt+7, NULL, 0); ++ else if (!strncmp(this_opt, "width:", 6)) ++ screen_info.lfb_width = simple_strtoul(this_opt+6, NULL, 0); ++ } ++ } + +- if (!options || !*options) +- return 0; ++ for_each_pci_dev(dev) { ++ int i; + +- while ((this_opt = strsep(&options, ",")) != NULL) { +- if (!*this_opt) continue; ++ if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) ++ continue; + +- for (i = 0; i < M_UNKNOWN; i++) { +- if (!strcmp(this_opt, dmi_list[i].optname) && +- dmi_list[i].base != 0) { +- screen_info.lfb_base = dmi_list[i].base; +- screen_info.lfb_linelength = dmi_list[i].stride; +- screen_info.lfb_width = dmi_list[i].width; +- screen_info.lfb_height = dmi_list[i].height; +- } ++ for (i=0; i < DEVICE_COUNT_RESOURCE; i++) { ++ resource_size_t start, end; ++ ++ if (!(pci_resource_flags(dev, i) & IORESOURCE_MEM)) ++ continue; ++ ++ start = pci_resource_start(dev, i); ++ end = pci_resource_end(dev, i); ++ ++ if (!start || !end) ++ continue; ++ ++ if (screen_info.lfb_base >= start && ++ (screen_info.lfb_base + screen_info.lfb_size) < end) ++ default_vga = dev; + } +- if (!strncmp(this_opt, "base:", 5)) +- screen_info.lfb_base = simple_strtoul(this_opt+5, NULL, 0); +- else if (!strncmp(this_opt, "stride:", 7)) +- screen_info.lfb_linelength = simple_strtoul(this_opt+7, NULL, 0) * 4; +- else if (!strncmp(this_opt, "height:", 7)) +- screen_info.lfb_height = simple_strtoul(this_opt+7, NULL, 0); +- else if (!strncmp(this_opt, "width:", 6)) +- screen_info.lfb_width = simple_strtoul(this_opt+6, NULL, 0); + } ++ + return 0; + } + +diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h +index 9c3120d..7ad7f2a 100644 +--- a/include/linux/vgaarb.h ++++ b/include/linux/vgaarb.h +@@ -31,6 +31,7 @@ + #ifndef LINUX_VGA_H + #define LINUX_VGA_H + ++#include