diff --git a/0001-drivers-crypto-nx-fix-init-race-alignmasks-and-GCM-b.patch b/0001-drivers-crypto-nx-fix-init-race-alignmasks-and-GCM-b.patch new file mode 100644 index 000000000..c8d30455e --- /dev/null +++ b/0001-drivers-crypto-nx-fix-init-race-alignmasks-and-GCM-b.patch @@ -0,0 +1,83 @@ +From b05ceba560e094d27ff716f6df1e2d5ef670d4d3 Mon Sep 17 00:00:00 2001 +From: Kent Yoder +Date: Wed, 27 Feb 2013 15:50:27 -0600 +Subject: [PATCH] drivers/crypto/nx: fix init race, alignmasks and GCM bug + + Fixes a race on driver init with registering algorithms where the +driver status flag wasn't being set before self testing started. + + Added the cra_alignmask field for CBC and ECB modes. + + Fixed a bug in GCM where AES block size was being used instead of +authsize. + +Signed-off-by: Kent Yoder +--- + drivers/crypto/nx/nx-aes-cbc.c | 1 + + drivers/crypto/nx/nx-aes-ecb.c | 1 + + drivers/crypto/nx/nx-aes-gcm.c | 2 +- + drivers/crypto/nx/nx.c | 4 ++-- + 4 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/crypto/nx/nx-aes-cbc.c b/drivers/crypto/nx/nx-aes-cbc.c +index a76d4c4..35d483f 100644 +--- a/drivers/crypto/nx/nx-aes-cbc.c ++++ b/drivers/crypto/nx/nx-aes-cbc.c +@@ -126,6 +126,7 @@ struct crypto_alg nx_cbc_aes_alg = { + .cra_blocksize = AES_BLOCK_SIZE, + .cra_ctxsize = sizeof(struct nx_crypto_ctx), + .cra_type = &crypto_blkcipher_type, ++ .cra_alignmask = 0xf, + .cra_module = THIS_MODULE, + .cra_init = nx_crypto_ctx_aes_cbc_init, + .cra_exit = nx_crypto_ctx_exit, +diff --git a/drivers/crypto/nx/nx-aes-ecb.c b/drivers/crypto/nx/nx-aes-ecb.c +index ba5f161..7bbc9a8 100644 +--- a/drivers/crypto/nx/nx-aes-ecb.c ++++ b/drivers/crypto/nx/nx-aes-ecb.c +@@ -123,6 +123,7 @@ struct crypto_alg nx_ecb_aes_alg = { + .cra_priority = 300, + .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, + .cra_blocksize = AES_BLOCK_SIZE, ++ .cra_alignmask = 0xf, + .cra_ctxsize = sizeof(struct nx_crypto_ctx), + .cra_type = &crypto_blkcipher_type, + .cra_module = THIS_MODULE, +diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c +index c8109ed..6cca6c3 100644 +--- a/drivers/crypto/nx/nx-aes-gcm.c ++++ b/drivers/crypto/nx/nx-aes-gcm.c +@@ -219,7 +219,7 @@ static int gcm_aes_nx_crypt(struct aead_request *req, int enc) + if (enc) + NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; + else +- nbytes -= AES_BLOCK_SIZE; ++ nbytes -= crypto_aead_authsize(crypto_aead_reqtfm(req)); + + csbcpb->cpb.aes_gcm.bit_length_data = nbytes * 8; + +diff --git a/drivers/crypto/nx/nx.c b/drivers/crypto/nx/nx.c +index c767f23..7621d05 100644 +--- a/drivers/crypto/nx/nx.c ++++ b/drivers/crypto/nx/nx.c +@@ -454,6 +454,8 @@ static int nx_register_algs(void) + if (rc) + goto out; + ++ nx_driver.of.status = NX_OKAY; ++ + rc = crypto_register_alg(&nx_ecb_aes_alg); + if (rc) + goto out; +@@ -498,8 +500,6 @@ static int nx_register_algs(void) + if (rc) + goto out_unreg_s512; + +- nx_driver.of.status = NX_OKAY; +- + goto out; + + out_unreg_s512: +-- +1.7.11.7 + diff --git a/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch b/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch new file mode 100644 index 000000000..acdd66d48 --- /dev/null +++ b/HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch @@ -0,0 +1,55 @@ +From d0a934b764c67b4bf626f5b7cf725a6e3066afd2 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Mon, 13 May 2013 15:01:30 +0000 +Subject: HID: input: return ENODATA if reading battery attrs fails + +power_supply core has the bad habit of calling our battery callbacks +from within power_supply_register(). Furthermore, if the callbacks +fail with an unhandled error code, it will skip any uevent that it +might currently process. +So if HID-core registers battery devices, an "add" uevent is generated +and the battery callbacks are called. These will gracefully fail due +to timeouts as they might still hold locks on event processing. One +could argue that this should be fixed in power_supply core, but the +least we can do is to signal ENODATA so power_supply core will just +skip the property and continue with the uevent. + +This fixes a bug where "add" and "remove" uevents are skipped for +battery devices. upower is unable to track these devices and currently +needs to ignore them. + +This patch also overwrites any other error code. I cannot see any reason +why we should forward protocol- or I/O-errors to the power_supply core. +We handle these errors in hid_ll_driver later, anyway, so just skip +them. power_supply core cannot do anything useful with them, anyway, +and we avoid skipping important uevents and confusing user-space. + +Thanks a lot to Daniel Nicoletti for pushing and investigating +on this. + +Cc: Jiri Kosina +Cc: Anton Vorontsov +Cc: David Woodhouse +Reported-by: Daniel Nicoletti +Signed-off-by: David Herrmann +Signed-off-by: Jiri Kosina +--- +diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c +index 945b815..c526a3c 100644 +--- a/drivers/hid/hid-input.c ++++ b/drivers/hid/hid-input.c +@@ -354,10 +354,10 @@ static int hidinput_get_battery_property(struct power_supply *psy, + dev->battery_report_type); + + if (ret != 2) { +- if (ret >= 0) +- ret = -EINVAL; ++ ret = -ENODATA; + break; + } ++ ret = 0; + + if (dev->battery_min < dev->battery_max && + buf[1] >= dev->battery_min && +-- +cgit v0.9.2 diff --git a/HID-kye-Add-report-fixup-for-Genius-Gila-Gaming-mouse.patch b/HID-kye-Add-report-fixup-for-Genius-Gila-Gaming-mouse.patch new file mode 100644 index 000000000..6913eb520 --- /dev/null +++ b/HID-kye-Add-report-fixup-for-Genius-Gila-Gaming-mouse.patch @@ -0,0 +1,98 @@ +From 3685c18e17f12438d0a83331c1b6a5b00fade7a1 Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires +Date: Tue, 02 Jul 2013 16:10:09 +0000 +Subject: HID: kye: Add report fixup for Genius Gila Gaming mouse + +Genius Gila Gaming Mouse presents an obviously wrong report descriptor. +the Consumer control (report ID 3) is the following: +0x05, 0x0c, // Usage Page (Consumer Devices) 105 +0x09, 0x01, // Usage (Consumer Control) 107 +0xa1, 0x01, // Collection (Application) 109 +0x85, 0x03, // Report ID (3) 111 +0x19, 0x00, // Usage Minimum (0) 113 +0x2a, 0xff, 0x7f, // Usage Maximum (32767) 115 +0x15, 0x00, // Logical Minimum (0) 118 +0x26, 0xff, 0x7f, // Logical Maximum (32767) 120 +0x75, 0x10, // Report Size (16) 123 +0x95, 0x03, // Report Count (3) 125 +0x81, 0x00, // Input (Data,Arr,Abs) 127 +0x75, 0x08, // Report Size (8) 129 +0x95, 0x01, // Report Count (1) 131 +0x81, 0x01, // Input (Cnst,Arr,Abs) 133 +0xc0, // End Collection 135 + +So the first input whithin this report has a count of 3 but a usage range +of 32768. So this value is obviously wrong as it should not be greater than +the report count. + +Fixes: +https://bugzilla.redhat.com/show_bug.cgi?id=959721 + +Signed-off-by: Benjamin Tissoires +Signed-off-by: Jiri Kosina +--- +diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c +index 8f616bd..27aa7c7 100644 +--- a/drivers/hid/hid-core.c ++++ b/drivers/hid/hid-core.c +@@ -1589,6 +1589,7 @@ static const struct hid_device_id hid_have_special_driver[] = { + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KENSINGTON, USB_DEVICE_ID_KS_SLIMBLADE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KEYTOUCH, USB_DEVICE_ID_KEYTOUCH_IEC) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_ERGO_525V) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_I405X) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_MOUSEPEN_I608X) }, +diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h +index 3da75dd..b2b692e 100644 +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -474,6 +474,7 @@ + + #define USB_VENDOR_ID_KYE 0x0458 + #define USB_DEVICE_ID_KYE_ERGO_525V 0x0087 ++#define USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE 0x0138 + #define USB_DEVICE_ID_KYE_GPEN_560 0x5003 + #define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010 + #define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011 +diff --git a/drivers/hid/hid-kye.c b/drivers/hid/hid-kye.c +index 6af90db..1e2ee2aa 100644 +--- a/drivers/hid/hid-kye.c ++++ b/drivers/hid/hid-kye.c +@@ -314,6 +314,25 @@ static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc, + *rsize = sizeof(easypen_m610x_rdesc_fixed); + } + break; ++ case USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE: ++ /* ++ * the fixup that need to be done: ++ * - change Usage Maximum in the Comsumer Control ++ * (report ID 3) to a reasonable value ++ */ ++ if (*rsize >= 135 && ++ /* Usage Page (Consumer Devices) */ ++ rdesc[104] == 0x05 && rdesc[105] == 0x0c && ++ /* Usage (Consumer Control) */ ++ rdesc[106] == 0x09 && rdesc[107] == 0x01 && ++ /* Usage Maximum > 12287 */ ++ rdesc[114] == 0x2a && rdesc[116] > 0x2f) { ++ hid_info(hdev, ++ "fixing up Genius Gila Gaming Mouse " ++ "report descriptor\n"); ++ rdesc[116] = 0x2f; ++ } ++ break; + } + return rdesc; + } +@@ -407,6 +426,8 @@ static const struct hid_device_id kye_devices[] = { + USB_DEVICE_ID_KYE_MOUSEPEN_I608X) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, + USB_DEVICE_ID_KYE_EASYPEN_M610X) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, ++ USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, + { } + }; + MODULE_DEVICE_TABLE(hid, kye_devices); +-- +cgit v0.9.2 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/KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch b/KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch new file mode 100644 index 000000000..678e82953 --- /dev/null +++ b/KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch @@ -0,0 +1,45 @@ +diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c +index 094b5d9..64a4b03 100644 +--- a/arch/x86/kvm/x86.c ++++ b/arch/x86/kvm/x86.c +@@ -1194,20 +1194,37 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, struct msr_data *msr) + elapsed = ns - kvm->arch.last_tsc_nsec; + + if (vcpu->arch.virtual_tsc_khz) { ++ int faulted = 0; ++ + /* n.b - signed multiplication and division required */ + usdiff = data - kvm->arch.last_tsc_write; + #ifdef CONFIG_X86_64 + usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz; + #else + /* do_div() only does unsigned */ +- asm("idivl %2; xor %%edx, %%edx" +- : "=A"(usdiff) +- : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz)); ++ asm("1: idivl %[divisor]\n" ++ "2: xor %%edx, %%edx\n" ++ " movl $0, %[faulted]\n" ++ "3:\n" ++ ".section .fixup,\"ax\"\n" ++ "4: movl $1, %[faulted]\n" ++ " jmp 3b\n" ++ ".previous\n" ++ ++ _ASM_EXTABLE(1b, 4b) ++ ++ : "=A"(usdiff), [faulted] "=r" (faulted) ++ : "A"(usdiff * 1000), [divisor] "rm"(vcpu->arch.virtual_tsc_khz)); ++ + #endif + do_div(elapsed, 1000); + usdiff -= elapsed; + if (usdiff < 0) + usdiff = -usdiff; ++ ++ /* idivl overflow => difference is larger than USEC_PER_SEC */ ++ if (faulted) ++ usdiff = USEC_PER_SEC; + } else + usdiff = USEC_PER_SEC; /* disable TSC match window below */ + 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 diff --git a/Makefile.config b/Makefile.config index 97e4704a3..5d74b885c 100644 --- a/Makefile.config +++ b/Makefile.config @@ -9,16 +9,13 @@ CONFIGFILES = \ $(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config \ $(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.config $(CFG)-armv7hl.config \ + $(CFG)-armv7l-tegra.config $(CFG)-armv7hl-tegra.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ - $(CFG)-sparc64.config \ - $(CFG)-ppc64.config $(CFG)-ppc64-debug.config + $(CFG)-ppc64.config $(CFG)-ppc64-debug.config -PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x sparc64 +PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x arm TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS))) configs: $(CONFIGFILES) @@ -36,24 +33,21 @@ temp-generic: config-generic temp-debug-generic: config-generic cat config-generic config-debug > temp-debug-generic +temp-armv7-generic: config-armv7-generic temp-generic + perl merge.pl $^ > $@ + +temp-armv7: config-armv7 temp-armv7-generic + perl merge.pl $^ > $@ + +temp-armv7-tegra: config-armv7-tegra temp-armv7-generic + perl merge.pl $^ > $@ + temp-arm-generic: config-arm-generic temp-generic perl merge.pl $^ > $@ -temp-armv7l-omap-generic: config-arm-omap-generic temp-arm-generic - perl merge.pl $^ > $@ - -temp-armv7l-tegra: config-arm-tegra temp-arm-generic - perl merge.pl $^ > $@ - temp-armv5tel-kirkwood: config-arm-kirkwood temp-arm-generic perl merge.pl $^ > $@ -temp-armv7l-imx: config-arm-imx temp-arm-generic - perl merge.pl $^ > $@ - -temp-armv7l-highbank: config-arm-highbank temp-arm-generic - perl merge.pl $^ > $@ - temp-x86-32: config-x86-32-generic config-x86-generic perl merge.pl $^ > $@ @@ -72,9 +66,6 @@ temp-x86_64-generic: temp-x86-64 temp-generic temp-x86_64-debug-generic: temp-x86-64 temp-debug-generic perl merge.pl $^ > $@ -temp-sparc64-generic: config-sparc64-generic temp-generic - perl merge.pl $^ > $@ - temp-powerpc-generic: config-powerpc-generic temp-generic perl merge.pl $^ > $@ @@ -105,9 +96,6 @@ kernel-$(VERSION)-x86_64.config: /dev/null temp-x86_64-generic kernel-$(VERSION)-x86_64-debug.config: /dev/null temp-x86_64-debug-generic perl merge.pl $^ x86_64 > $@ -kernel-$(VERSION)-sparc64.config: /dev/null temp-sparc64-generic - perl merge.pl $^ sparc64 > $@ - kernel-$(VERSION)-ppc64.config: config-powerpc64 temp-powerpc-generic perl merge.pl $^ powerpc > $@ @@ -117,40 +105,19 @@ kernel-$(VERSION)-ppc64-debug.config: config-powerpc64 temp-powerpc-debug-generi kernel-$(VERSION)-s390x.config: config-s390x temp-s390-generic perl merge.pl $^ s390 > $@ -kernel-$(VERSION)-arm.config: /dev/null temp-arm-generic - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv5tel.config: /dev/null temp-arm-generic - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv7hl.config: /dev/null temp-arm-generic - perl merge.pl $^ arm > $@ - kernel-$(VERSION)-armv5tel-kirkwood.config: /dev/null temp-armv5tel-kirkwood perl merge.pl $^ arm > $@ -kernel-$(VERSION)-armv7l-imx.config: /dev/null temp-armv7l-imx +kernel-$(VERSION)-armv7l.config: /dev/null temp-armv7 perl merge.pl $^ arm > $@ -kernel-$(VERSION)-armv7l-highbank.config: /dev/null temp-armv7l-highbank +kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7-tegra perl merge.pl $^ arm > $@ -kernel-$(VERSION)-armv7l-omap.config: /dev/null temp-armv7l-omap-generic +kernel-$(VERSION)-armv7hl.config: /dev/null temp-armv7 perl merge.pl $^ arm > $@ -kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7l-tegra - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv7hl-imx.config: /dev/null temp-armv7l-imx - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv7hl-highbank.config: /dev/null temp-armv7l-highbank - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv7hl-omap.config: /dev/null temp-armv7l-omap-generic - perl merge.pl $^ arm > $@ - -kernel-$(VERSION)-armv7hl-tegra.config: /dev/null temp-armv7l-tegra +kernel-$(VERSION)-armv7hl-tegra.config: /dev/null temp-armv7-tegra perl merge.pl $^ arm > $@ kernel-$(VERSION)-ppc.config: /dev/null temp-powerpc32-generic diff --git a/NFS-optimise-away-unnecessary-setattrs-for-open-O_TRUNC.patch b/NFS-optimise-away-unnecessary-setattrs-for-open-O_TRUNC.patch new file mode 100644 index 000000000..89b6308cd --- /dev/null +++ b/NFS-optimise-away-unnecessary-setattrs-for-open-O_TRUNC.patch @@ -0,0 +1,153 @@ +From: Trond Myklebust + +Currently, we will correctly optimise away a truncate that doesn't +change the file size. However, in the case of open(O_TRUNC), we +also want to optimise away the time changes. + +Signed-off-by: Trond Myklebust +--- + fs/nfs/dir.c | 25 +++++++++++++++++++------ + fs/nfs/inode.c | 4 ++-- + fs/nfs/nfs4proc.c | 10 +++++++--- + 3 files changed, 28 insertions(+), 11 deletions(-) + +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c +index fd9a872..bb132a8 100644 +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -1429,6 +1429,7 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry + } + + open_flags = nd->intent.open.flags; ++ attr.ia_valid = 0; + + ctx = create_nfs_open_context(dentry, open_flags); + res = ERR_CAST(ctx); +@@ -1437,11 +1438,14 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry + + if (nd->flags & LOOKUP_CREATE) { + attr.ia_mode = nd->intent.open.create_mode; +- attr.ia_valid = ATTR_MODE; ++ attr.ia_valid |= ATTR_MODE; + attr.ia_mode &= ~current_umask(); +- } else { ++ } else + open_flags &= ~(O_EXCL | O_CREAT); +- attr.ia_valid = 0; ++ ++ if (open_flags & O_TRUNC) { ++ attr.ia_valid |= ATTR_SIZE; ++ attr.ia_size = 0; + } + + /* Open the file on the server */ +@@ -1495,6 +1499,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd) + struct inode *inode; + struct inode *dir; + struct nfs_open_context *ctx; ++ struct iattr attr; + int openflags, ret = 0; + + if (nd->flags & LOOKUP_RCU) +@@ -1523,19 +1528,27 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd) + /* We cannot do exclusive creation on a positive dentry */ + if ((openflags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL)) + goto no_open_dput; +- /* We can't create new files, or truncate existing ones here */ +- openflags &= ~(O_CREAT|O_EXCL|O_TRUNC); ++ /* We can't create new files here */ ++ openflags &= ~(O_CREAT|O_EXCL); + + ctx = create_nfs_open_context(dentry, openflags); + ret = PTR_ERR(ctx); + if (IS_ERR(ctx)) + goto out; ++ ++ attr.ia_valid = 0; ++ if (openflags & O_TRUNC) { ++ attr.ia_valid |= ATTR_SIZE; ++ attr.ia_size = 0; ++ nfs_wb_all(inode); ++ } ++ + /* + * Note: we're not holding inode->i_mutex and so may be racing with + * operations that change the directory. We therefore save the + * change attribute *before* we do the RPC call. + */ +- inode = NFS_PROTO(dir)->open_context(dir, ctx, openflags, NULL); ++ inode = NFS_PROTO(dir)->open_context(dir, ctx, openflags, &attr); + if (IS_ERR(inode)) { + ret = PTR_ERR(inode); + switch (ret) { +diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c +index f649fba..57d0abb 100644 +--- a/fs/nfs/inode.c ++++ b/fs/nfs/inode.c +@@ -401,7 +401,7 @@ out_no_inode: + goto out; + } + +-#define NFS_VALID_ATTRS (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_SIZE|ATTR_ATIME|ATTR_ATIME_SET|ATTR_MTIME|ATTR_MTIME_SET|ATTR_FILE) ++#define NFS_VALID_ATTRS (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_SIZE|ATTR_ATIME|ATTR_ATIME_SET|ATTR_MTIME|ATTR_MTIME_SET|ATTR_FILE|ATTR_OPEN) + + int + nfs_setattr(struct dentry *dentry, struct iattr *attr) +@@ -423,7 +423,7 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr) + + /* Optimization: if the end result is no change, don't RPC */ + attr->ia_valid &= NFS_VALID_ATTRS; +- if ((attr->ia_valid & ~ATTR_FILE) == 0) ++ if ((attr->ia_valid & ~(ATTR_FILE|ATTR_OPEN)) == 0) + return 0; + + /* Write all dirty data */ +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index 1515e45..c4c6b48 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -833,7 +833,7 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry, + p->o_arg.bitmask = server->attr_bitmask; + p->o_arg.dir_bitmask = server->cache_consistency_bitmask; + p->o_arg.claim = NFS4_OPEN_CLAIM_NULL; +- if (flags & O_CREAT) { ++ if (attrs != NULL && attrs->ia_valid != 0) { + u32 *s; + + p->o_arg.u.attrs = &p->attrs; +@@ -890,7 +890,7 @@ static int can_open_cached(struct nfs4_state *state, fmode_t mode, int open_mode + { + int ret = 0; + +- if (open_mode & O_EXCL) ++ if (open_mode & (O_EXCL|O_TRUNC)) + goto out; + switch (mode & (FMODE_READ|FMODE_WRITE)) { + case FMODE_READ: +@@ -1038,7 +1038,7 @@ static struct nfs4_state *nfs4_try_open_cached(struct nfs4_opendata *opendata) + struct nfs4_state *state = opendata->state; + struct nfs_inode *nfsi = NFS_I(state->inode); + struct nfs_delegation *delegation; +- int open_mode = opendata->o_arg.open_flags & O_EXCL; ++ int open_mode = opendata->o_arg.open_flags & (O_EXCL|O_TRUNC); + fmode_t fmode = opendata->o_arg.fmode; + nfs4_stateid stateid; + int ret = -EAGAIN; +@@ -2439,6 +2439,10 @@ nfs4_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr, + } + } + ++ /* Deal with open(O_TRUNC) */ ++ if (sattr->ia_valid & ATTR_OPEN) ++ sattr->ia_valid &= ~(ATTR_MTIME|ATTR_CTIME|ATTR_OPEN); ++ + status = nfs4_do_setattr(inode, cred, fattr, sattr, state); + if (status == 0) + nfs_setattr_update_inode(inode, sattr); +-- +1.7.7.6 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel 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-Minor-cleanups-for-nfs4_handle_exception-and-n.patch b/NFSv4-Minor-cleanups-for-nfs4_handle_exception-and-n.patch new file mode 100644 index 000000000..105235126 --- /dev/null +++ b/NFSv4-Minor-cleanups-for-nfs4_handle_exception-and-n.patch @@ -0,0 +1,51 @@ +From 14977489ffdb80d4caf5a184ba41b23b02fbacd9 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Tue, 27 Mar 2012 18:31:25 -0400 +Subject: [PATCH] NFSv4: Minor cleanups for nfs4_handle_exception and + nfs4_async_handle_error + +Signed-off-by: Trond Myklebust +--- + fs/nfs/nfs4proc.c | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index 1933e67..f82bde0 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -270,7 +270,7 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc + case 0: + return 0; + case -NFS4ERR_OPENMODE: +- if (nfs_have_delegation(inode, FMODE_READ)) { ++ if (inode && nfs_have_delegation(inode, FMODE_READ)) { + nfs_inode_return_delegation(inode); + exception->retry = 1; + return 0; +@@ -282,10 +282,9 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc + case -NFS4ERR_DELEG_REVOKED: + case -NFS4ERR_ADMIN_REVOKED: + case -NFS4ERR_BAD_STATEID: +- if (state != NULL) +- nfs_remove_bad_delegation(state->inode); + if (state == NULL) + break; ++ nfs_remove_bad_delegation(state->inode); + nfs4_schedule_stateid_recovery(server, state); + goto wait_on_recovery; + case -NFS4ERR_EXPIRED: +@@ -3825,8 +3824,9 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server, + case -NFS4ERR_DELEG_REVOKED: + case -NFS4ERR_ADMIN_REVOKED: + case -NFS4ERR_BAD_STATEID: +- if (state != NULL) +- nfs_remove_bad_delegation(state->inode); ++ if (state == NULL) ++ break; ++ nfs_remove_bad_delegation(state->inode); + case -NFS4ERR_OPENMODE: + if (state == NULL) + break; +-- +1.7.7.6 + diff --git a/NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch b/NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch new file mode 100644 index 000000000..5b7f5e51d --- /dev/null +++ b/NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch @@ -0,0 +1,37 @@ +From 34d91cfbc163c6e2a136a27c96918fc35de06341 Mon Sep 17 00:00:00 2001 +From: William Dauchy +Date: Wed, 14 Mar 2012 12:32:04 +0100 +Subject: [PATCH] NFSv4: Rate limit the state manager for lock reclaim warning + messages + +Adding rate limit on `Lock reclaim failed` messages since it could fill +up system logs +Signed-off-by: William Dauchy +Signed-off-by: Trond Myklebust + +Conflicts: + + fs/nfs/nfs4state.c +--- + fs/nfs/nfs4state.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c +index bacb271..3676b5c 100644 +--- a/fs/nfs/nfs4state.c ++++ b/fs/nfs/nfs4state.c +@@ -1247,8 +1247,9 @@ restart: + spin_lock(&state->state_lock); + list_for_each_entry(lock, &state->lock_states, ls_locks) { + if (!(lock->ls_flags & NFS_LOCK_INITIALIZED)) +- printk("%s: Lock reclaim failed!\n", +- __func__); ++ pr_warn_ratelimited("NFS: " ++ "%s: Lock reclaim " ++ "failed!\n", __func__); + } + spin_unlock(&state->state_lock); + nfs4_put_open_state(state); +-- +1.7.7.6 + 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/NFSv4-fix-open-O_TRUNC-and-ftruncate-error-handling.patch b/NFSv4-fix-open-O_TRUNC-and-ftruncate-error-handling.patch new file mode 100644 index 000000000..134b210fe --- /dev/null +++ b/NFSv4-fix-open-O_TRUNC-and-ftruncate-error-handling.patch @@ -0,0 +1,69 @@ +From: Trond Myklebust + +If the file wasn't opened for writing, then truncate and ftruncate +need to report the appropriate errors. + +Reported-by: Miklos Szeredi +Signed-off-by: Trond Myklebust +Cc: stable@vger.kernel.org +--- + fs/nfs/dir.c | 4 ++-- + fs/nfs/nfs4proc.c | 15 ++++++++++++--- + 2 files changed, 14 insertions(+), 5 deletions(-) + +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c +index bb132a8..51a2686 100644 +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -1429,7 +1429,7 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry + } + + open_flags = nd->intent.open.flags; +- attr.ia_valid = 0; ++ attr.ia_valid = ATTR_OPEN; + + ctx = create_nfs_open_context(dentry, open_flags); + res = ERR_CAST(ctx); +@@ -1536,7 +1536,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd) + if (IS_ERR(ctx)) + goto out; + +- attr.ia_valid = 0; ++ attr.ia_valid = ATTR_OPEN; + if (openflags & O_TRUNC) { + attr.ia_valid |= ATTR_SIZE; + attr.ia_size = 0; +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index c4c6b48..e2a2893 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -1921,10 +1921,19 @@ static int nfs4_do_setattr(struct inode *inode, struct rpc_cred *cred, + }; + int err; + do { +- err = nfs4_handle_exception(server, +- _nfs4_do_setattr(inode, cred, fattr, sattr, state), +- &exception); ++ err = _nfs4_do_setattr(inode, cred, fattr, sattr, state); ++ switch (err) { ++ case -NFS4ERR_OPENMODE: ++ if (state && !(state->state & FMODE_WRITE)) { ++ err = -EBADF; ++ if (sattr->ia_valid & ATTR_OPEN) ++ err = -EACCES; ++ goto out; ++ } ++ } ++ err = nfs4_handle_exception(server, err, &exception); + } while (exception.retry); ++out: + return err; + } + +-- +1.7.7.6 + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel diff --git a/TODO b/TODO index 652000ee2..872876078 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,6 @@ Config TODOs: * review & disable a bunch of the I2C, RTC, DVB, SOUND options. +* Re-enable CONFIG_RELOCATABLE for 32bit builds with 3.4 Spec file TODOs: diff --git a/VMX-x86-handle-host-TSC-calibration-failure.patch b/VMX-x86-handle-host-TSC-calibration-failure.patch new file mode 100644 index 000000000..6b6ddd2d2 --- /dev/null +++ b/VMX-x86-handle-host-TSC-calibration-failure.patch @@ -0,0 +1,58 @@ +@@ -, +, @@ + VMX: x86: handle host TSC calibration failure + + If the host TSC calibration fails, tsc_khz is zero (see tsc_init.c). + Handle such case properly in KVM (instead of dividing by zero). + + https://bugzilla.redhat.com/show_bug.cgi?id=859282 + + Signed-off-by: Marcelo Tosatti + Signed-off-by: Gleb Natapov +--- a/arch/x86/kvm/x86.c ++++ a/arch/x86/kvm/x86.c +@@ -1079,6 +1079,10 @@ static void kvm_set_tsc_khz(struct kvm_vcpu *vcpu, u32 this_tsc_khz) + u32 thresh_lo, thresh_hi; + int use_scaling = 0; + ++ /* tsc_khz can be zero if TSC calibration fails */ ++ if (this_tsc_khz == 0) ++ return; ++ + /* Compute a scale to convert nanoseconds in TSC cycles */ + kvm_get_time_scale(this_tsc_khz, NSEC_PER_SEC / 1000, + &vcpu->arch.virtual_tsc_shift, +@@ -1156,20 +1160,23 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, struct msr_data *msr) + ns = get_kernel_ns(); + elapsed = ns - kvm->arch.last_tsc_nsec; + +- /* n.b - signed multiplication and division required */ +- usdiff = data - kvm->arch.last_tsc_write; ++ if (vcpu->arch.virtual_tsc_khz) { ++ /* n.b - signed multiplication and division required */ ++ usdiff = data - kvm->arch.last_tsc_write; + #ifdef CONFIG_X86_64 +- usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz; ++ usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz; + #else +- /* do_div() only does unsigned */ +- asm("idivl %2; xor %%edx, %%edx" +- : "=A"(usdiff) +- : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz)); ++ /* do_div() only does unsigned */ ++ asm("idivl %2; xor %%edx, %%edx" ++ : "=A"(usdiff) ++ : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz)); + #endif +- do_div(elapsed, 1000); +- usdiff -= elapsed; +- if (usdiff < 0) +- usdiff = -usdiff; ++ do_div(elapsed, 1000); ++ usdiff -= elapsed; ++ if (usdiff < 0) ++ usdiff = -usdiff; ++ } else ++ usdiff = USEC_PER_SEC; /* disable TSC match window below */ + + /* + * Special case: TSC write with a small delta (1 second) of virtual diff --git a/acpi-debug-infinite-loop.patch b/acpi-debug-infinite-loop.patch new file mode 100644 index 000000000..f2cc1a55e --- /dev/null +++ b/acpi-debug-infinite-loop.patch @@ -0,0 +1,25 @@ +--- linux-2.6.34.noarch/include/acpi/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400 ++++ linux-2.6.34.noarch/include/acpi/acconfig.h 2010-07-01 14:49:17.000000000 -0400 +@@ -117,7 +117,7 @@ + + /* Maximum number of While() loop iterations before forced abort */ + +-#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF ++#define ACPI_MAX_LOOP_ITERATIONS 0xFFFFFF + + /* Maximum sleep allowed via Sleep() operator */ + +--- a/drivers/acpi/acpica/dscontrol.c ++++ b/drivers/acpi/acpica/dscontrol.c +@@ -212,6 +212,11 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, + * loop does not implement a timeout. + */ + control_state->control.loop_count++; ++ if ((control_state->control.loop_count > 1) && ++ (control_state->control.loop_count % 0xffff == 0)) ++ printk("ACPI: While loop taking a really long time. loop_count=0x%x\n", ++ control_state->control.loop_count); ++ + if (control_state->control.loop_count > + ACPI_MAX_LOOP_ITERATIONS) { + status = AE_AML_INFINITE_LOOP; diff --git a/acpi-ensure-thermal-limits-match-cpu-freq.patch b/acpi-ensure-thermal-limits-match-cpu-freq.patch deleted file mode 100644 index 9d97b6024..000000000 --- a/acpi-ensure-thermal-limits-match-cpu-freq.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 9a056a5843ff83db987d6e18625f4a2ee64b5450 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 30 Aug 2011 10:07:24 -0400 -Subject: [PATCH] ACPI: Ensure thermal limits match CPU frequencies - -The ACPI thermal management code supports slowing down a CPU when it's -overheating. Right now that's done by choosing to run it at 100%, 75%, 50% -or 25% of full speed. However, most CPUs do not allow an arbitrary -frequency to be set and so will run at the first frequency below that value. -This doesn't match the intent of the specification, which is to drop the -frequency state by state until the temperature stabalises. Fix this up -so it uses actual frequencies rather than percentages. - -Reported by: Gene Snider -Signed-off-by: Matthew Garrett ---- - drivers/acpi/Kconfig | 1 + - drivers/acpi/processor_thermal.c | 45 +++++++++++++++++++++---------------- - 2 files changed, 26 insertions(+), 20 deletions(-) - -diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig -index de0e3df..7d1bdb5 100644 ---- a/drivers/acpi/Kconfig -+++ b/drivers/acpi/Kconfig -@@ -185,6 +185,7 @@ config ACPI_PROCESSOR - tristate "Processor" - select THERMAL - select CPU_IDLE -+ select CPU_FREQ_TABLE - default y - help - This driver installs ACPI as the idle handler for Linux and uses -diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c -index 870550d..1c4eb60 100644 ---- a/drivers/acpi/processor_thermal.c -+++ b/drivers/acpi/processor_thermal.c -@@ -52,10 +52,8 @@ ACPI_MODULE_NAME("processor_thermal"); - * _any_ cpufreq driver and not only the acpi-cpufreq driver. - */ - --#define CPUFREQ_THERMAL_MIN_STEP 0 --#define CPUFREQ_THERMAL_MAX_STEP 3 - --static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_reduction_pctg); -+static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_limit_state); - static unsigned int acpi_thermal_cpufreq_is_init = 0; - - static int cpu_has_cpufreq(unsigned int cpu) -@@ -70,19 +68,19 @@ static int acpi_thermal_cpufreq_notifier(struct notifier_block *nb, - unsigned long event, void *data) - { - struct cpufreq_policy *policy = data; -- unsigned long max_freq = 0; -+ int state = per_cpu(cpufreq_thermal_limit_state, policy->cpu); -+ struct cpufreq_frequency_table *table; - - if (event != CPUFREQ_ADJUST) -- goto out; -+ return 0; -+ -+ table = cpufreq_frequency_get_table(policy->cpu); - -- max_freq = ( -- policy->cpuinfo.max_freq * -- (100 - per_cpu(cpufreq_thermal_reduction_pctg, policy->cpu) * 20) -- ) / 100; -+ if (!table) -+ return 0; - -- cpufreq_verify_within_limits(policy, 0, max_freq); -+ cpufreq_verify_within_limits(policy, 0, table[state].frequency); - -- out: - return 0; - } - -@@ -92,10 +90,21 @@ static struct notifier_block acpi_thermal_cpufreq_notifier_block = { - - static int cpufreq_get_max_state(unsigned int cpu) - { -+ int count = 0; -+ struct cpufreq_frequency_table *table; -+ - if (!cpu_has_cpufreq(cpu)) - return 0; - -- return CPUFREQ_THERMAL_MAX_STEP; -+ table = cpufreq_frequency_get_table(cpu); -+ -+ if (!table) -+ return 0; -+ -+ while (table[count].frequency != CPUFREQ_TABLE_END) -+ count++; -+ -+ return count; - } - - static int cpufreq_get_cur_state(unsigned int cpu) -@@ -103,7 +112,7 @@ static int cpufreq_get_cur_state(unsigned int cpu) - if (!cpu_has_cpufreq(cpu)) - return 0; - -- return per_cpu(cpufreq_thermal_reduction_pctg, cpu); -+ return per_cpu(cpufreq_thermal_limit_state, cpu); - } - - static int cpufreq_set_cur_state(unsigned int cpu, int state) -@@ -111,7 +120,7 @@ static int cpufreq_set_cur_state(unsigned int cpu, int state) - if (!cpu_has_cpufreq(cpu)) - return 0; - -- per_cpu(cpufreq_thermal_reduction_pctg, cpu) = state; -+ per_cpu(cpufreq_thermal_limit_state, cpu) = state; - cpufreq_update_policy(cpu); - return 0; - } -@@ -122,7 +131,7 @@ void acpi_thermal_cpufreq_init(void) - - for (i = 0; i < nr_cpu_ids; i++) - if (cpu_present(i)) -- per_cpu(cpufreq_thermal_reduction_pctg, i) = 0; -+ per_cpu(cpufreq_thermal_limit_state, i) = 0; - - i = cpufreq_register_notifier(&acpi_thermal_cpufreq_notifier_block, - CPUFREQ_POLICY_NOTIFIER); -@@ -170,15 +179,11 @@ int acpi_processor_get_limit_info(struct acpi_processor *pr) - return 0; - } - --/* thermal coolign device callbacks */ -+/* thermal cooling device callbacks */ - static int acpi_processor_max_state(struct acpi_processor *pr) - { - int max_state = 0; - -- /* -- * There exists four states according to -- * cpufreq_thermal_reduction_ptg. 0, 1, 2, 3 -- */ - max_state += cpufreq_get_max_state(pr->id); - if (pr->flags.throttling) - max_state += (pr->throttling.state_count -1); --- -1.7.6 - diff --git a/linux-2.6-acpi-video-dos.patch b/acpi-video-dos.patch similarity index 100% rename from linux-2.6-acpi-video-dos.patch rename to acpi-video-dos.patch diff --git a/af_key-fix-info-leaks-in-notify-messages.patch b/af_key-fix-info-leaks-in-notify-messages.patch new file mode 100644 index 000000000..9d20aec0f --- /dev/null +++ b/af_key-fix-info-leaks-in-notify-messages.patch @@ -0,0 +1,37 @@ +From a5cc68f3d63306d0d288f31edfc2ae6ef8ecd887 Mon Sep 17 00:00:00 2001 +From: Mathias Krause +Date: Wed, 26 Jun 2013 21:52:30 +0000 +Subject: af_key: fix info leaks in notify messages + +key_notify_sa_flush() and key_notify_policy_flush() miss to initialize +the sadb_msg_reserved member of the broadcasted message and thereby +leak 2 bytes of heap memory to listeners. Fix that. + +Signed-off-by: Mathias Krause +Cc: Steffen Klassert +Cc: "David S. Miller" +Cc: Herbert Xu +Signed-off-by: David S. Miller +--- +diff --git a/net/key/af_key.c b/net/key/af_key.c +index c5fbd75..9da8620 100644 +--- a/net/key/af_key.c ++++ b/net/key/af_key.c +@@ -1710,6 +1710,7 @@ static int key_notify_sa_flush(const struct km_event *c) + hdr->sadb_msg_version = PF_KEY_V2; + hdr->sadb_msg_errno = (uint8_t) 0; + hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); ++ hdr->sadb_msg_reserved = 0; + + pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); + +@@ -2699,6 +2700,7 @@ static int key_notify_policy_flush(const struct km_event *c) + hdr->sadb_msg_errno = (uint8_t) 0; + hdr->sadb_msg_satype = SADB_SATYPE_UNSPEC; + hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t)); ++ hdr->sadb_msg_reserved = 0; + pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net); + return 0; + +-- +cgit v0.9.2 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/arm-export-read_current_timer.patch b/arm-export-read_current_timer.patch new file mode 100644 index 000000000..5059d6862 --- /dev/null +++ b/arm-export-read_current_timer.patch @@ -0,0 +1,10 @@ +--- linux-3.7.0-0.rc2.git1.2.fc19.x86_64/arch/arm/kernel/armksyms.c.orig 2012-10-01 00:47:46.000000000 +0100 ++++ linux-3.7.0-0.rc2.git1.2.fc19.x86_64/arch/arm/kernel/armksyms.c 2012-10-24 09:06:46.570452677 +0100 +@@ -50,6 +50,7 @@ + + /* platform dependent support */ + EXPORT_SYMBOL(arm_delay_ops); ++EXPORT_SYMBOL(read_current_timer); + + /* networking */ + EXPORT_SYMBOL(csum_partial); diff --git a/arm-omap-dt-compat.patch b/arm-omap-dt-compat.patch deleted file mode 100644 index 4046e938f..000000000 --- a/arm-omap-dt-compat.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -up linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c.fdt linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c ---- linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c.fdt 2011-08-04 16:51:12.034188064 -0500 -+++ linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c 2011-08-04 22:13:52.801156923 -0500 -@@ -591,6 +591,11 @@ static void __init omap3_beagle_init(voi - beagle_opp_init(); - } - -+static const char *omap3_beagle_dt_match[] __initdata = { -+ "ti,omap3-beagle", -+ NULL -+}; -+ - MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") - /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ - .boot_params = 0x80000100, -@@ -600,4 +605,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagl - .init_irq = omap3_beagle_init_irq, - .init_machine = omap3_beagle_init, - .timer = &omap3_secure_timer, -+ .dt_compat = omap3_beagle_dt_match, - MACHINE_END -diff -up linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c.fdt linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c ---- linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c.fdt 2011-08-04 16:51:12.092169023 -0500 -+++ linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c 2011-08-04 22:15:29.200157437 -0500 -@@ -708,6 +708,11 @@ static void __init omap4_panda_map_io(vo - omap44xx_map_common_io(); - } - -+static const char *omap4_panda_match[] __initdata = { -+ "ti,omap4-panda", -+ NULL, -+}; -+ - MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") - /* Maintainer: David Anders - Texas Instruments Inc */ - .boot_params = 0x80000100, -@@ -717,4 +722,5 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda - .init_irq = gic_init_irq, - .init_machine = omap4_panda_init, - .timer = &omap4_timer, -+ .dt_compat = omap4_panda_match, - MACHINE_END diff --git a/arm-omap-ehci-fix.patch b/arm-omap-ehci-fix.patch new file mode 100644 index 000000000..f6fc0a934 --- /dev/null +++ b/arm-omap-ehci-fix.patch @@ -0,0 +1,190 @@ +From 54a419668b0f27b7982807fb2376d237e0a0ce05 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Tue, 12 Mar 2013 10:44:39 +0000 +Subject: USB: EHCI: split ehci-omap out to a separate driver + +This patch (as1645) converts ehci-omap over to the new "ehci-hcd is a +library" approach, so that it can coexist peacefully with other EHCI +platform drivers and can make use of the private area allocated at +the end of struct ehci_hcd. + +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman +--- +diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig +index c59a112..62f4e9a 100644 +--- a/drivers/usb/host/Kconfig ++++ b/drivers/usb/host/Kconfig +@@ -155,7 +155,7 @@ config USB_EHCI_MXC + Variation of ARC USB block used in some Freescale chips. + + config USB_EHCI_HCD_OMAP +- bool "EHCI support for OMAP3 and later chips" ++ tristate "EHCI support for OMAP3 and later chips" + depends on USB_EHCI_HCD && ARCH_OMAP + default y + ---help--- +diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile +index 001fbff..56de410 100644 +--- a/drivers/usb/host/Makefile ++++ b/drivers/usb/host/Makefile +@@ -27,6 +27,7 @@ obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o + obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o + obj-$(CONFIG_USB_EHCI_HCD_PLATFORM) += ehci-platform.o + obj-$(CONFIG_USB_EHCI_MXC) += ehci-mxc.o ++obj-$(CONFIG_USB_EHCI_HCD_OMAP) += ehci-omap.o + + obj-$(CONFIG_USB_OXU210HP_HCD) += oxu210hp-hcd.o + obj-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o +diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c +index b416a3f..303b022 100644 +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -1252,11 +1252,6 @@ MODULE_LICENSE ("GPL"); + #define PLATFORM_DRIVER ehci_hcd_sh_driver + #endif + +-#ifdef CONFIG_USB_EHCI_HCD_OMAP +-#include "ehci-omap.c" +-#define PLATFORM_DRIVER ehci_hcd_omap_driver +-#endif +- + #ifdef CONFIG_PPC_PS3 + #include "ehci-ps3.c" + #define PS3_SYSTEM_BUS_DRIVER ps3_ehci_driver +@@ -1346,6 +1341,7 @@ MODULE_LICENSE ("GPL"); + !IS_ENABLED(CONFIG_USB_EHCI_HCD_PLATFORM) && \ + !IS_ENABLED(CONFIG_USB_CHIPIDEA_HOST) && \ + !IS_ENABLED(CONFIG_USB_EHCI_MXC) && \ ++ !IS_ENABLED(CONFIG_USB_EHCI_HCD_OMAP) && \ + !defined(PLATFORM_DRIVER) && \ + !defined(PS3_SYSTEM_BUS_DRIVER) && \ + !defined(OF_PLATFORM_DRIVER) && \ +diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c +index 0555ee4..fa66757 100644 +--- a/drivers/usb/host/ehci-omap.c ++++ b/drivers/usb/host/ehci-omap.c +@@ -36,6 +36,9 @@ + * - convert to use hwmod and runtime PM + */ + ++#include ++#include ++#include + #include + #include + #include +@@ -43,6 +46,10 @@ + #include + #include + #include ++#include ++#include ++ ++#include "ehci.h" + + #include + +@@ -57,9 +64,11 @@ + #define EHCI_INSNREG05_ULPI_EXTREGADD_SHIFT 8 + #define EHCI_INSNREG05_ULPI_WRDATA_SHIFT 0 + +-/*-------------------------------------------------------------------------*/ ++#define DRIVER_DESC "OMAP-EHCI Host Controller driver" + +-static const struct hc_driver ehci_omap_hc_driver; ++static const char hcd_name[] = "ehci-omap"; ++ ++/*-------------------------------------------------------------------------*/ + + + static inline void ehci_write(void __iomem *base, u32 reg, u32 val) +@@ -166,6 +175,12 @@ static void disable_put_regulator( + /* configure so an HC device and id are always provided */ + /* always called with process context; sleeping is OK */ + ++static struct hc_driver __read_mostly ehci_omap_hc_driver; ++ ++static const struct ehci_driver_overrides ehci_omap_overrides __initdata = { ++ .reset = omap_ehci_init, ++}; ++ + /** + * ehci_hcd_omap_probe - initialize TI-based HCDs + * +@@ -315,56 +330,33 @@ static struct platform_driver ehci_hcd_omap_driver = { + /*.suspend = ehci_hcd_omap_suspend, */ + /*.resume = ehci_hcd_omap_resume, */ + .driver = { +- .name = "ehci-omap", ++ .name = hcd_name, + } + }; + + /*-------------------------------------------------------------------------*/ + +-static const struct hc_driver ehci_omap_hc_driver = { +- .description = hcd_name, +- .product_desc = "OMAP-EHCI Host Controller", +- .hcd_priv_size = sizeof(struct ehci_hcd), +- +- /* +- * generic hardware linkage +- */ +- .irq = ehci_irq, +- .flags = HCD_MEMORY | HCD_USB2, +- +- /* +- * basic lifecycle operations +- */ +- .reset = omap_ehci_init, +- .start = ehci_run, +- .stop = ehci_stop, +- .shutdown = ehci_shutdown, +- +- /* +- * managing i/o requests and associated device resources +- */ +- .urb_enqueue = ehci_urb_enqueue, +- .urb_dequeue = ehci_urb_dequeue, +- .endpoint_disable = ehci_endpoint_disable, +- .endpoint_reset = ehci_endpoint_reset, ++static int __init ehci_omap_init(void) ++{ ++ if (usb_disabled()) ++ return -ENODEV; + +- /* +- * scheduling support +- */ +- .get_frame_number = ehci_get_frame, ++ pr_info("%s: " DRIVER_DESC "\n", hcd_name); + +- /* +- * root hub support +- */ +- .hub_status_data = ehci_hub_status_data, +- .hub_control = ehci_hub_control, +- .bus_suspend = ehci_bus_suspend, +- .bus_resume = ehci_bus_resume, ++ ehci_init_driver(&ehci_omap_hc_driver, &ehci_omap_overrides); ++ return platform_driver_register(&ehci_hcd_omap_driver); ++} ++module_init(ehci_omap_init); + +- .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete, +-}; ++static void __exit ehci_omap_cleanup(void) ++{ ++ platform_driver_unregister(&ehci_hcd_omap_driver); ++} ++module_exit(ehci_omap_cleanup); + + MODULE_ALIAS("platform:ehci-omap"); + MODULE_AUTHOR("Texas Instruments, Inc."); + MODULE_AUTHOR("Felipe Balbi "); + ++MODULE_DESCRIPTION(DRIVER_DESC); ++MODULE_LICENSE("GPL"); +-- +cgit v0.9.1 diff --git a/arm-smsc-support-reading-mac-address-from-device-tree.patch b/arm-smsc-support-reading-mac-address-from-device-tree.patch deleted file mode 100644 index a36c68369..000000000 --- a/arm-smsc-support-reading-mac-address-from-device-tree.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 0b608345e114681f66ca0a3cf9d9434728da62ce Mon Sep 17 00:00:00 2001 -From: Ken Cox -Date: Thu, 23 Jun 2011 10:36:43 -0500 -Subject: [PATCH] Support reading mac address from device tree. - -If CONFIG_OF is enabled, we will try to read the mac address from the device tree. This enables us the ability to have a "static" mac address on arm boards such as the pandaboard and beagleboard which generate random mac addresses. ---- - drivers/net/usb/smsc75xx.c | 17 +++++++++++++++++ - drivers/net/usb/smsc95xx.c | 18 +++++++++++++++++- - 2 files changed, 34 insertions(+), 1 deletions(-) - -diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c -index 753ee6e..ac0a200 100644 ---- a/drivers/net/usb/smsc75xx.c -+++ b/drivers/net/usb/smsc75xx.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include "smsc75xx.h" - - #define SMSC_CHIPNAME "smsc75xx" -@@ -658,6 +659,22 @@ static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) - - static void smsc75xx_init_mac_address(struct usbnet *dev) - { -+ void *address; -+#ifdef CONFIG_OF -+ struct device_node *np; -+ -+ /* try the device tree */ -+ np = of_find_node_by_name(NULL, "smsc75xx"); -+ if (np) { -+ address = of_get_property(np, "local-mac-address", NULL); -+ if (address) { -+ memcpy(dev->net->dev_addr, address, ETH_ALEN); -+ netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n"); -+ return; -+ } -+ } -+#endif -+ - /* try reading mac address from EEPROM */ - if (smsc75xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, - dev->net->dev_addr) == 0) { -diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index bc86f4b..c83942d 100644 ---- a/drivers/net/usb/smsc95xx.c -+++ b/drivers/net/usb/smsc95xx.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include "smsc95xx.h" - - #define SMSC_CHIPNAME "smsc95xx" -@@ -639,6 +640,22 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) - - static void smsc95xx_init_mac_address(struct usbnet *dev) - { -+ void *address; -+#ifdef CONFIG_OF -+ struct device_node *np; -+ -+ /* try the device tree */ -+ np = of_find_node_by_name(NULL, "smsc95xx"); -+ if (np) { -+ address = of_get_property(np, "local-mac-address", NULL); -+ if (address) { -+ memcpy(dev->net->dev_addr, address, ETH_ALEN); -+ netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n"); -+ return; -+ } -+ } -+#endif -+ - /* try reading mac address from EEPROM */ - if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, - dev->net->dev_addr) == 0) { -@@ -648,7 +665,6 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) - return; - } - } -- - /* no eeprom, or eeprom values are invalid. generate random MAC */ - random_ether_addr(dev->net->dev_addr); - netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n"); --- -1.7.2.3 - diff --git a/arm-tegra-fixclk.patch b/arm-tegra-fixclk.patch new file mode 100644 index 000000000..df0991293 --- /dev/null +++ b/arm-tegra-fixclk.patch @@ -0,0 +1,28 @@ +diff --git a/drivers/clk/tegra/clk-periph.c b/drivers/clk/tegra/clk-periph.c +index 788486e..2f4d0e3 100644 +--- a/drivers/clk/tegra/clk-periph.c ++++ b/drivers/clk/tegra/clk-periph.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include "clk.h" + +@@ -128,6 +129,7 @@ void tegra_periph_reset_deassert(struct clk *c) + + tegra_periph_reset(gate, 0); + } ++EXPORT_SYMBOL_GPL(tegra_periph_reset_deassert); + + void tegra_periph_reset_assert(struct clk *c) + { +@@ -147,6 +149,7 @@ void tegra_periph_reset_assert(struct clk *c) + + tegra_periph_reset(gate, 1); + } ++EXPORT_SYMBOL_GPL(tegra_periph_reset_assert); + + const struct clk_ops tegra_clk_periph_ops = { + .get_parent = clk_periph_get_parent, diff --git a/arm-tegra-usb-no-reset-linux33.patch b/arm-tegra-usb-no-reset-linux33.patch new file mode 100644 index 000000000..342e80f5a --- /dev/null +++ b/arm-tegra-usb-no-reset-linux33.patch @@ -0,0 +1,16 @@ +--- linux-3.3.4-3.fc17.x86_64_orig/drivers/usb/core/hub.c 2012-05-02 20:08:18.421685932 -0400 ++++ linux-3.3.4-3.fc17.x86_64/drivers/usb/core/hub.c 2012-05-02 20:30:36.565865425 -0400 +@@ -3484,6 +3484,13 @@ static void hub_events(void) + (u16) hub->change_bits[0], + (u16) hub->event_bits[0]); + ++ /* Don't disconnect USB-SATA on TrimSlice */ ++ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { ++ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && ++ (hub->event_bits[0] == 0x2)) ++ hub->event_bits[0] = 0; ++ } ++ + /* Lock the device, then check to see if we were + * disconnected while waiting for the lock to succeed. */ + usb_lock_device(hdev); diff --git a/ath3k-dont-use-stack-memory-for-DMA.patch b/ath3k-dont-use-stack-memory-for-DMA.patch new file mode 100644 index 000000000..610a00067 --- /dev/null +++ b/ath3k-dont-use-stack-memory-for-DMA.patch @@ -0,0 +1,72 @@ +Memory allocated by vmalloc (including stack) can not be used for DMA, +i.e. data pointer on usb_control_msg() should not point to stack memory. + +Resolves: +https://bugzilla.redhat.com/show_bug.cgi?id=977558 + +Reported-and-tested-by: Andy Lawrence +Signed-off-by: Stanislaw Gruszka +--- + drivers/bluetooth/ath3k.c | 38 +++++++++++++++++++++++++++++--------- + 1 file changed, 29 insertions(+), 9 deletions(-) + +diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c +index 11f467c..81b636c 100644 +--- a/drivers/bluetooth/ath3k.c ++++ b/drivers/bluetooth/ath3k.c +@@ -193,24 +193,44 @@ error: + + static int ath3k_get_state(struct usb_device *udev, unsigned char *state) + { +- int pipe = 0; ++ int ret, pipe = 0; ++ char *buf; ++ ++ buf = kmalloc(1, GFP_KERNEL); ++ if (!buf) ++ return -ENOMEM; + + pipe = usb_rcvctrlpipe(udev, 0); +- return usb_control_msg(udev, pipe, ATH3K_GETSTATE, +- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, +- state, 0x01, USB_CTRL_SET_TIMEOUT); ++ ret = usb_control_msg(udev, pipe, ATH3K_GETSTATE, ++ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, ++ buf, 1, USB_CTRL_SET_TIMEOUT); ++ ++ *state = *buf; ++ kfree(buf); ++ ++ return ret; + } + + static int ath3k_get_version(struct usb_device *udev, + struct ath3k_version *version) + { +- int pipe = 0; ++ int ret, pipe = 0; ++ char *buf; ++ const int size = sizeof(struct ath3k_version); ++ ++ buf = kmalloc(size, GFP_KERNEL); ++ if (!buf) ++ return -ENOMEM; + + pipe = usb_rcvctrlpipe(udev, 0); +- return usb_control_msg(udev, pipe, ATH3K_GETVERSION, +- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version, +- sizeof(struct ath3k_version), +- USB_CTRL_SET_TIMEOUT); ++ ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION, ++ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, ++ buf, size, USB_CTRL_SET_TIMEOUT); ++ ++ memcpy(version, buf, size); ++ kfree(buf); ++ ++ return ret; + } + + static int ath3k_load_fwfile(struct usb_device *udev, +-- +1.7.11.7 diff --git a/ath9k_rx_dma_stop_check.patch b/ath9k_rx_dma_stop_check.patch new file mode 100644 index 000000000..606eb1c63 --- /dev/null +++ b/ath9k_rx_dma_stop_check.patch @@ -0,0 +1,28 @@ +--- a/drivers/net/wireless/ath/ath9k/mac.c ++++ b/drivers/net/wireless/ath/ath9k/mac.c +@@ -689,7 +689,7 @@ bool ath9k_hw_stopdmarecv(struct ath_hw + { + #define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ + struct ath_common *common = ath9k_hw_common(ah); +- u32 mac_status, last_mac_status = 0; ++ u32 mac_status = 0, last_mac_status = 0; + int i; + + /* Enable access to the DMA observation bus */ +@@ -719,6 +719,16 @@ bool ath9k_hw_stopdmarecv(struct ath_hw + } + + if (i == 0) { ++ if (!AR_SREV_9300_20_OR_LATER(ah) && ++ (mac_status & 0x700) == 0) { ++ /* ++ * DMA is idle but the MAC is still stuck ++ * processing events ++ */ ++ *reset = true; ++ return true; ++ } ++ + ath_err(common, + "DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x DMADBG_7=0x%08x\n", + AH_RX_STOP_DMA_TIMEOUT / 1000, diff --git a/bridge-only-expire-the-mdb-entry-when-query-is-received.patch b/bridge-only-expire-the-mdb-entry-when-query-is-received.patch new file mode 100644 index 000000000..b58b57083 --- /dev/null +++ b/bridge-only-expire-the-mdb-entry-when-query-is-received.patch @@ -0,0 +1,159 @@ +From 9f00b2e7cf241fa389733d41b615efdaa2cb0f5b Mon Sep 17 00:00:00 2001 +From: Cong Wang +Date: Tue, 21 May 2013 21:52:55 +0000 +Subject: bridge: only expire the mdb entry when query is received + +Currently we arm the expire timer when the mdb entry is added, +however, this causes problem when there is no querier sent +out after that. + +So we should only arm the timer when a corresponding query is +received, as suggested by Herbert. + +And he also mentioned "if there is no querier then group +subscriptions shouldn't expire. There has to be at least one querier +in the network for this thing to work. Otherwise it just degenerates +into a non-snooping switch, which is OK." + +Cc: Herbert Xu +Cc: Stephen Hemminger +Cc: "David S. Miller" +Cc: Adam Baker +Signed-off-by: Cong Wang +Acked-by: Herbert Xu +Signed-off-by: David S. Miller +--- +(limited to 'net/bridge') + +diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c +index 2475147..40bda80 100644 +--- a/net/bridge/br_multicast.c ++++ b/net/bridge/br_multicast.c +@@ -617,8 +617,6 @@ rehash: + + mp->br = br; + mp->addr = *group; +- setup_timer(&mp->timer, br_multicast_group_expired, +- (unsigned long)mp); + + hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]); + mdb->size++; +@@ -656,7 +654,6 @@ static int br_multicast_add_group(struct net_bridge *br, + struct net_bridge_mdb_entry *mp; + struct net_bridge_port_group *p; + struct net_bridge_port_group __rcu **pp; +- unsigned long now = jiffies; + int err; + + spin_lock(&br->multicast_lock); +@@ -671,7 +668,6 @@ static int br_multicast_add_group(struct net_bridge *br, + + if (!port) { + mp->mglist = true; +- mod_timer(&mp->timer, now + br->multicast_membership_interval); + goto out; + } + +@@ -679,7 +675,7 @@ static int br_multicast_add_group(struct net_bridge *br, + (p = mlock_dereference(*pp, br)) != NULL; + pp = &p->next) { + if (p->port == port) +- goto found; ++ goto out; + if ((unsigned long)p->port < (unsigned long)port) + break; + } +@@ -690,8 +686,6 @@ static int br_multicast_add_group(struct net_bridge *br, + rcu_assign_pointer(*pp, p); + br_mdb_notify(br->dev, port, group, RTM_NEWMDB); + +-found: +- mod_timer(&p->timer, now + br->multicast_membership_interval); + out: + err = 0; + +@@ -1131,6 +1125,10 @@ static int br_ip4_multicast_query(struct net_bridge *br, + if (!mp) + goto out; + ++ setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp); ++ mod_timer(&mp->timer, now + br->multicast_membership_interval); ++ mp->timer_armed = true; ++ + max_delay *= br->multicast_last_member_count; + + if (mp->mglist && +@@ -1205,6 +1203,10 @@ static int br_ip6_multicast_query(struct net_bridge *br, + if (!mp) + goto out; + ++ setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp); ++ mod_timer(&mp->timer, now + br->multicast_membership_interval); ++ mp->timer_armed = true; ++ + max_delay *= br->multicast_last_member_count; + if (mp->mglist && + (timer_pending(&mp->timer) ? +@@ -1263,7 +1265,7 @@ static void br_multicast_leave_group(struct net_bridge *br, + call_rcu_bh(&p->rcu, br_multicast_free_pg); + br_mdb_notify(br->dev, port, group, RTM_DELMDB); + +- if (!mp->ports && !mp->mglist && ++ if (!mp->ports && !mp->mglist && mp->timer_armed && + netif_running(br->dev)) + mod_timer(&mp->timer, jiffies); + } +@@ -1275,30 +1277,12 @@ static void br_multicast_leave_group(struct net_bridge *br, + br->multicast_last_member_interval; + + if (!port) { +- if (mp->mglist && ++ if (mp->mglist && mp->timer_armed && + (timer_pending(&mp->timer) ? + time_after(mp->timer.expires, time) : + try_to_del_timer_sync(&mp->timer) >= 0)) { + mod_timer(&mp->timer, time); + } +- +- goto out; +- } +- +- for (p = mlock_dereference(mp->ports, br); +- p != NULL; +- p = mlock_dereference(p->next, br)) { +- if (p->port != port) +- continue; +- +- if (!hlist_unhashed(&p->mglist) && +- (timer_pending(&p->timer) ? +- time_after(p->timer.expires, time) : +- try_to_del_timer_sync(&p->timer) >= 0)) { +- mod_timer(&p->timer, time); +- } +- +- break; + } + + out: +@@ -1674,6 +1658,7 @@ void br_multicast_stop(struct net_bridge *br) + hlist_for_each_entry_safe(mp, n, &mdb->mhash[i], + hlist[ver]) { + del_timer(&mp->timer); ++ mp->timer_armed = false; + call_rcu_bh(&mp->rcu, br_multicast_free_group); + } + } +diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h +index e260710..1b0ac95 100644 +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h +@@ -112,6 +112,7 @@ struct net_bridge_mdb_entry + struct timer_list timer; + struct br_ip addr; + bool mglist; ++ bool timer_armed; + }; + + struct net_bridge_mdb_htable +-- +cgit v0.9.2 diff --git a/bridge-send-query-as-soon-as-leave-is-received.patch b/bridge-send-query-as-soon-as-leave-is-received.patch new file mode 100644 index 000000000..8b6652e7e --- /dev/null +++ b/bridge-send-query-as-soon-as-leave-is-received.patch @@ -0,0 +1,57 @@ +From 6b7df111ece130fa979a0c4f58e53674c1e47d3e Mon Sep 17 00:00:00 2001 +From: Cong Wang +Date: Tue, 21 May 2013 21:52:56 +0000 +Subject: bridge: send query as soon as leave is received + +Continue sending queries when leave is received if the user marks +it as a querier. + +Cc: Herbert Xu +Cc: Stephen Hemminger +Cc: "David S. Miller" +Cc: Adam Baker +Signed-off-by: Cong Wang +Acked-by: Herbert Xu +Signed-off-by: David S. Miller +--- +(limited to 'net/bridge') + +diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c +index 40bda80..37a4676 100644 +--- a/net/bridge/br_multicast.c ++++ b/net/bridge/br_multicast.c +@@ -1250,6 +1250,32 @@ static void br_multicast_leave_group(struct net_bridge *br, + if (!mp) + goto out; + ++ if (br->multicast_querier && ++ !timer_pending(&br->multicast_querier_timer)) { ++ __br_multicast_send_query(br, port, &mp->addr); ++ ++ time = jiffies + br->multicast_last_member_count * ++ br->multicast_last_member_interval; ++ mod_timer(port ? &port->multicast_query_timer : ++ &br->multicast_query_timer, time); ++ ++ for (p = mlock_dereference(mp->ports, br); ++ p != NULL; ++ p = mlock_dereference(p->next, br)) { ++ if (p->port != port) ++ continue; ++ ++ if (!hlist_unhashed(&p->mglist) && ++ (timer_pending(&p->timer) ? ++ time_after(p->timer.expires, time) : ++ try_to_del_timer_sync(&p->timer) >= 0)) { ++ mod_timer(&p->timer, time); ++ } ++ ++ break; ++ } ++ } ++ + if (port && (port->flags & BR_MULTICAST_FAST_LEAVE)) { + struct net_bridge_port_group __rcu **pp; + +-- +cgit v0.9.2 diff --git a/bridge-timer-fix.patch b/bridge-timer-fix.patch new file mode 100644 index 000000000..888a6f009 --- /dev/null +++ b/bridge-timer-fix.patch @@ -0,0 +1,13 @@ +diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c +index d6448e3..aadb596 100644 +--- a/net/bridge/br_multicast.c ++++ b/net/bridge/br_multicast.c +@@ -269,7 +269,7 @@ static void br_multicast_del_pg(struct net_bridge *br, + del_timer(&p->timer); + call_rcu_bh(&p->rcu, br_multicast_free_pg); + +- if (!mp->ports && !mp->mglist && ++ if (!mp->ports && !mp->mglist && mp->timer_armed && + netif_running(br->dev)) + mod_timer(&mp->timer, jiffies); + 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/linux-2.6-compile-fixes.patch b/compile-fixes.patch similarity index 100% rename from linux-2.6-compile-fixes.patch rename to compile-fixes.patch diff --git a/config-arm-generic b/config-arm-generic index fb2a7355d..7951f541f 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -1,62 +1,130 @@ +# Generic ARM config. This is common config options that should be +# enabled on all ARM kernels and hence should be added here +# +# FIXME - we need to add debug/nodebug generic build options +# CONFIG_DEBUG_PER_CPU_MAPS is not set + +# Generic ARM processor options CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_SMP is not set - -# CONFIG_CMDLINE_FORCE is not set - -CONFIG_CC_OPTIMIZE_FOR_SIZE=y - -CONFIG_ARCH_VERSATILE=y -CONFIG_ARCH_VERSATILE_PB=y -CONFIG_MACH_VERSATILE_AB=y -CONFIG_MACH_VERSATILE_DT=y - -CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set - -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -# CONFIG_CPU_CACHE_ROUND_ROBIN is not set - -CONFIG_ZBOOT_ROM_TEXT=0 -CONFIG_ZBOOT_ROM_BSS=0 - -# CONFIG_XIP_KERNEL is not set - -CONFIG_ATAGS_PROC=y - -# CONFIG_FPE_NWFPE is not set -CONFIG_FPE_FASTFPE=y -CONFIG_VFP=y - -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -# CONFIG_PM_TRACE is not set -CONFIG_SUSPEND=y -# CONFIG_PM_TEST_SUSPEND is not set -CONFIG_APM_EMULATION=y CONFIG_ARM_THUMB=y - CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +CONFIG_VFP=y +CONFIG_ARM_UNWIND=y +# CONFIG_ARCH_MULTI_V7 is not set +# CONFIG_OABI_COMPAT is not set -# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_SMP=y +CONFIG_NR_CPUS=4 +CONFIG_SMP_ON_UP=y -CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20" +CONFIG_ARM_ARCH_TIMER=y + +CONFIG_CMDLINE="" + +# CONFIG_ARM_LPAE is not set +# CONFIG_FPE_NWFPE is not set +CONFIG_FPE_FASTFPE=y +CONFIG_HIGHPTE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_UACCESS_WITH_MEMCPY=y +# CONFIG_GENERIC_CPUFREQ_CPU0 is not set + +# Generic ARM Errata +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_751472=y +CONFIG_ARM_ERRATA_742230=y +CONFIG_ARM_ERRATA_742231=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_PL310_ERRATA_753970=y + +# Generic ARM config options +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_LOCAL_TIMERS=y + +CONFIG_ATAGS=y +CONFIG_ATAGS_PROC=y + +CONFIG_PL330_DMA=y +CONFIG_AMBA_PL08X=y +CONFIG_PL330_DMA=y +# CONFIG_XIP_KERNEL is not set +# CONFIG_PID_IN_CONTEXTIDR is not set + +# Generic options we want for ARM that aren't defualt +CONFIG_EARLY_PRINTK=y + +CONFIG_HIGHMEM=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y + +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y + +CONFIG_RCU_FANOUT=32 + +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -# CONFIG_CPU_IDLE is not set +CONFIG_PM=y +CONFIG_PM_STD_PARTITION="" +CONFIG_SUSPEND=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CPU_TOPOLOGY=y -CONFIG_LEDS=y -CONFIG_LEDS_CPU=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_LSM_MMAP_MIN_ADDR=32768 -CONFIG_MTD_AFS_PARTS=y -CONFIG_MTD_ARM_INTEGRATOR=y -CONFIG_MTD_IMPA7=y +# CONFIG_XEN is not set + +CONFIG_PINCTRL=y +CONFIG_PINCONF=y + +CONFIG_COMMON_CLK=y + +CONFIG_THERMAL=y + +CONFIG_ETHERNET=y + +CONFIG_PERF_EVENTS=y +CONFIG_PERF_COUNTERS=y + +CONFIG_CC_STACKPROTECTOR=y + +CONFIG_SECCOMP=y +CONFIG_STRICT_DEVMEM=y + +CONFIG_SPARSE_IRQ=y + +# Generic HW for all ARM platforms +CONFIG_LEDS_GPIO=m + +CONFIG_LBDAF=y + +CONFIG_GPIOLIB=y +CONFIG_RFKILL_GPIO=m +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_PINCTRL_SINGLE=m +CONFIG_POWER_RESET_GPIO=y + +CONFIG_USB_ULPI=y + +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_SOC=m +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_SIMPLE_CARD=m +# CONFIG_SND_SOC_CACHE_LZO is not set +CONFIG_SND_SOC_ALL_CODECS=m +CONFIG_SND_SPI=y CONFIG_AX88796=m CONFIG_AX88796_93CX6=y @@ -68,104 +136,317 @@ CONFIG_SMC911X=m CONFIG_SMSC911X=m CONFIG_SERIO_AMBAKMI=m - -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y - -CONFIG_I2C_VERSATILE=y - -CONFIG_THERMAL=y - -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set - +CONFIG_I2C_NOMADIK=m +CONFIG_ARM_SP805_WATCHDOG=m CONFIG_FB_ARMCLCD=m - -CONFIG_SND_ARM=y -CONFIG_SND_ARMAACI=m -CONFIG_SND_SOC=m -# CONFIG_SND_SOC_CACHE_LZO is not set -# CONFIG_SND_SOC_ALL_CODECS is not set - -CONFIG_USB_MUSB_HDRC=y -CONFIG_MUSB_PIO_ONLY=y -CONFIG_USB_TUSB6010=y -# CONFIG_USB_MUSB_DEBUG is not set +CONFIG_FB_SSD1307=m +CONFIG_MPCORE_WATCHDOG=m +CONFIG_BACKLIGHT_PWM=m CONFIG_MMC_ARMMMCI=m -CONFIG_MMC_DW=m -# CONFIG_MMC_DW_IDMAC is not set - -CONFIG_RTC_DRV_PL030=m -CONFIG_RTC_DRV_PL031=m - -# CONFIG_SGI_IOC4 is not set - -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_LL is not set - -CONFIG_ARM_UNWIND=y - -CONFIG_RCU_FANOUT=32 - -# CONFIG_USB_ULPI is not set -# CONFIG_OC_ETM is not set - -# CONFIG_MTD_PISMO is not set - -CONFIG_PERF_EVENTS=y -CONFIG_PERF_COUNTERS=y - -# CONFIG_MG_DISK is not set -# CONFIG_GPIO_PL061 is not set - -CONFIG_CC_STACKPROTECTOR=y - -CONFIG_AUTO_ZRELADDR=y - -# CONFIG_ARM_CHARLCD is not set -# CONFIG_DEPRECATED_PARAM_STRUCT is not set - -# CONFIG_ARM_SP805_WATCHDOG is not set - -CONFIG_PM_OPP=y - -CONFIG_SECCOMP=y -CONFIG_STRICT_DEVMEM=y - -# CONFIG_AMBA_PL08X is not set - -# CONFIG_HVC_DCC is not set - -CONFIG_SPARSE_IRQ=y - -# CONFIG_ARM_PATCH_PHYS_VIRT is not set - -CONFIG_HWSPINLOCK_OMAP=m - -CONFIG_USE_OF=y -CONFIG_PROC_DEVICETREE=y -CONFIG_MTD_PHYSMAP_OF=m -CONFIG_SERIAL_OF_PLATFORM=m +CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_OF=m +CONFIG_MMC_SPI=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_PCI=m +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_IDMAC is not set CONFIG_MMC_SDHCI_PXAV3=m CONFIG_MMC_SDHCI_PXAV2=m -CONFIG_ARM_APPENDED_DTB=y -CONFIG_MTD_OF_PARTS=y -CONFIG_PL330_DMA=y -# CONFIG_ARM_KPROBES_TEST is not set -# CONFIG_ARM_ATAG_DTB_COMPAT is not set +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set -# CONFIG_FTGMAC100 is not set -# CONFIG_FTMAC100 is not set -# -CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 -CONFIG_LSM_MMAP_MIN_ADDR=32768 +CONFIG_SPI=y +# Generic GPIO options +CONFIG_GENERIC_GPIO=y + +CONFIG_MTD=m +CONFIG_MTD_TESTS=m +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_MTD_AR7_PARTS is not set +CONFIG_MTD_CFI=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_ALAUDA=m +# CONFIG_MTD_ONENAND is not set +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_IMPA7=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_M25P80=m +CONFIG_M25PXX_USE_FAST_READ=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_DOCG4 is not set +CONFIG_MTD_NAND_GPIO=m +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_ORION=m +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_OTP is not set +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_PLATRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_SLRAM is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y +CONFIG_MTD_DATAFLASH_OTP=y +CONFIG_MTD_SST25L=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 + +# CONFIG_SM_FTL is not set + +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set + +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set + +# HW crypto and rng +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_AES_ARM=m +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_EXYNOS=m + +# Device tree +CONFIG_DTC=y +CONFIG_OF=y +CONFIG_USE_OF=y +CONFIG_OF_DEVICE=y +CONFIG_OF_IRQ=y +CONFIG_OF_GPIO=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set + +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_OF_GPIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_I2C_MUX_PINCTRL=m +CONFIG_OF_MDIO=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m + +CONFIG_BPF_JIT=y + +CONFIG_RCU_FANOUT_LEAF=16 +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_LEGACY_SYSFS=y + +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_SNVS=m + +CONFIG_RFKILL_REGULATOR=m +CONFIG_INPUT_88PM80X_ONKEY=y +CONFIG_INPUT_GP2A=m +CONFIG_INPUT_GPIO_TILT_POLLED=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_ARIZONA_HAPTICS=m +CONFIG_INPUT_MC13783_PWRBUTTON=m + +CONFIG_SERIAL_AMBA_PL010=m +CONFIG_SERIAL_AMBA_PL011=m +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX310X=y +CONFIG_SERIAL_IFX6X60=m + +CONFIG_GPIO_74X164=m +CONFIG_GPIO_ADNP=m +CONFIG_GPIO_ARIZONA=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_PL061=y + +CONFIG_SPI_ALTERA=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_DW_MMIO=m +CONFIG_SPI_GPIO=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_PL022=m +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_XCOMM=m +CONFIG_SPI_XILINX=m +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TLE62X0=m +CONFIG_BMP085_SPI=m +CONFIG_BMP085_SPI=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_93XX46=m +CONFIG_KS8851=m +CONFIG_MICREL_KS8995MA=m +CONFIG_LIBERTAS_SPI=m +CONFIG_P54_SPI=m +CONFIG_P54_SPI_DEFAULT_EEPROM=y + +CONFIG_MFD_CORE=m +CONFIG_MFD_88PM800=m +CONFIG_MFD_88PM805=m +CONFIG_MFD_ARIZONA_SPI=m +CONFIG_MFD_MC13XXX_SPI=m +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_WM5102 is not set +# CONFIG_MFD_WM5110 is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_MAX8907 is not set + +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_ARIZONA=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8973=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_CHARGER_MANAGER=y +CONFIG_EXTCON_GPIO=m + +CONFIG_SENSORS_AD7314=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_LIS3_SPI=m + +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_MRF24J40=m + +# CONFIG_ARM_VIRT_EXT is not set +# CONFIG_PINCTRL_EXYNOS4 is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set + +# CONFIG_AUTO_ZRELADDR is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# CONFIG_VFIO is not set + +# CONFIG_XIP_KERNEL is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_APM_EMULATION is not set +# CONFIG_DEPRECATED_PARAM_STRUCT is not set + +# CONFIG_SERIAL_8250_EM is not set +# CONFIG_GPIO_EM is not set +# CONFIG_HVC_DCC is not set +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_MC13783=m + +# CONFIG_VIRTIO_CONSOLE is not set + +# Possibly part of Snowball +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set + +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_COMMON_CLK_DEBUG is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +# CONFIG_ARM_KPROBES_TEST is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set + +# CONFIG_DEBUG_PINCTRL is not set + +# HW Disabled because it causes issues on ARM platforms # disable TPM on arm at least on the trimslices it causes havoc # CONFIG_TCG_TPM is not set + # CONFIG_IMA is not set # ERROR: "__bswapsi2" [drivers/staging/crystalhd/crystalhd.ko] undefined! @@ -179,6 +460,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’ @@ -186,26 +468,40 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768 # CONFIG_DRM_NOUVEAU is not set # CONFIG_MLX4_EN is not set +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_MC13783=m + # 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 -# -# FIXME: Guesses, need checking -# CONFIG_MACH_EUKREA_CPUIMX35SD is not set -CONFIG_ARM_ERRATA_720789=y -CONFIG_ARM_ERRATA_751472=y +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set + +# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set +# CONFIG_PANEL_ACX565AKM is not set +# CONFIG_PANEL_N8X0 is not set + +# CONFIG_LCD_L4F00242T03 is not set +# CONFIG_LCD_LMS283GF05 is not set +# CONFIG_LCD_LTV350QV is not set +# CONFIG_LCD_ILI9320 is not set +# CONFIG_LCD_TDO24M is not set +# CONFIG_LCD_VGG2432A4 is not set +# CONFIG_LCD_S6E63M0 is not set +# CONFIG_LCD_LD9040 is not set +# CONFIG_LCD_AMS369FG06 is not set + # CONFIG_FB_MX3 is not set # CONFIG_MX3_IPU is not set # CONFIG_MX3_IPU_IRQS is not set # CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set # CONFIG_CS89x0 is not set +# CONFIG_DVB_USB_PCTV452E is not set +# CONFIG_PINCTRL_EXYNOS is not set -# CONFIG_OF_SELFTEST is not set -# CONFIG_MACH_IMX51_DT is not set -# CONFIG_MACH_IMX53_DT is not set -# CONFIG_MACH_MX53_EVK is not set -# CONFIG_MACH_MX53_SMD is not set -# CONFIG_MACH_MX53_LOCO is not set -# CONFIG_MACH_MX53_ARD is not set -# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_EZX_PCAP is not set + +# CONFIG_EXTCON_ARIZONA is not set diff --git a/config-arm-highbank b/config-arm-highbank deleted file mode 100644 index d4aca8222..000000000 --- a/config-arm-highbank +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index e28c2cb55..000000000 --- a/config-arm-imx +++ /dev/null @@ -1,104 +0,0 @@ -CONFIG_ARCH_MXC=y -CONFIG_ARCH_MX51=y -CONFIG_MACH_MX51_BABBAGE=y -CONFIG_MACH_MX51_3DS=y -CONFIG_MACH_EUKREA_CPUIMX51=y -CONFIG_VFP=y -CONFIG_NEON=y - -CONFIG_MACH_EUKREA_CPUIMX51SD=y -CONFIG_MACH_MX51_EFIKAMX=y -CONFIG_MACH_MX51_EFIKASB=y -# CONFIG_SWP_EMULATE is not set -# CONFIG_THUMB2_KERNEL is not set -CONFIG_CPU_FREQ_IMX=y -CONFIG_W1_MASTER_MXC=m -CONFIG_IMX_SDMA=y -CONFIG_MACH_MX31ADS=y -CONFIG_MACH_MX31LILLY=y -CONFIG_MACH_MX31LITE=y -CONFIG_MACH_PCM037=y -CONFIG_MACH_MX31_3DS=y -CONFIG_MACH_MX31MOBOARD=y -CONFIG_MACH_QONG=y -CONFIG_MACH_ARMADILLO5X0=y -CONFIG_MACH_KZM_ARM11_01=y -CONFIG_MACH_BUG=y -CONFIG_MACH_PCM043=y -CONFIG_MACH_MX35_3DS=y -CONFIG_MACH_EUKREA_CPUIMX35=y -CONFIG_MACH_VPR200=y -CONFIG_SOC_IMX6Q=y -CONFIG_MXC_IRQ_PRIOR=y -CONFIG_MXC_PWM=m -CONFIG_MXC_DEBUG_BOARD=y -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_CACHE_L2X0=y -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -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 -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_NET_VENDOR_FREESCALE=y -CONFIG_FEC=y -CONFIG_KEYBOARD_IMX=m -CONFIG_SERIAL_IMX=y -CONFIG_HW_RANDOM_MXC_RNGA=m -CONFIG_I2C_IMX=m -CONFIG_GPIO_GENERIC_PLATFORM=y -CONFIG_GPIO_MCP23S08=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_PLL=m -CONFIG_SND_IMX_SOC=m -CONFIG_USB_EHCI_MXC=y -# CONFIG_USB_IMX21_HCD is not set -CONFIG_MMC_SDHCI_ESDHC_IMX=m -CONFIG_MMC_MXC=m -CONFIG_RTC_MXC=m - -CONFIG_BACKLIGHT_PWM=m -CONFIG_LEDS_PWM=m - -CONFIG_MACH_PCM037_EET=y -# CONFIG_MACH_MX31_3DS_MXC_NAND_USE_BBT is not set -CONFIG_MXC_USE_EPIT=y -CONFIG_ARM_THUMBEE=y -CONFIG_ARM_ERRATA_430973=y -CONFIG_ARM_ERRATA_458693=y -CONFIG_ARM_ERRATA_460075=y -CONFIG_ARM_ERRATA_743622=y -CONFIG_ARM_ERRATA_754322=y -CONFIG_CAN_FLEXCAN=m -CONFIG_MTD_NAND_MXC=m -CONFIG_INPUT_PWM_BEEPER=m -CONFIG_SERIAL_IMX_CONSOLE=y -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..b622c8051 100644 --- a/config-arm-kirkwood +++ b/config-arm-kirkwood @@ -1,26 +1,48 @@ CONFIG_ARCH_KIRKWOOD=y +CONFIG_ARCH_KIRKWOOD_DT=y +# CONFIG_SMP is not set +# CONFIG_VFP is not set + +CONFIG_MACH_D2NET_V2=y CONFIG_MACH_DB88F6281_BP=y -CONFIG_MACH_RD88F6192_NAS=y -CONFIG_MACH_RD88F6281=y -CONFIG_MACH_MV88F6281GTW_GE=y -CONFIG_MACH_SHEEVAPLUG=y -CONFIG_MACH_ESATA_SHEEVAPLUG=y -CONFIG_MACH_GURUPLUG=y CONFIG_MACH_DOCKSTAR=y -CONFIG_MACH_TS219=y -CONFIG_MACH_TS41X=y +CONFIG_MACH_DOCKSTAR_DT=y +CONFIG_MACH_DREAMPLUG_DT=y +CONFIG_MACH_ESATA_SHEEVAPLUG=y +CONFIG_MACH_DLINK_KIRKWOOD_DT=y +CONFIG_MACH_GOFLEXNET_DT=y +CONFIG_MACH_GURUPLUG=y +CONFIG_MACH_GURUPLUG_DT=y +CONFIG_MACH_ICONNECT_DT=y +CONFIG_MACH_IB62X0_DT=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_INETSPACE_V2_DT=y +CONFIG_MACH_IOMEGA_IX2_200_DT=y +CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_LSXL_DT=y +CONFIG_MACH_MPLCEC4_DT=y +CONFIG_MACH_MV88F6281GTW_GE=y +CONFIG_MACH_NETSPACE_LITE_V2_DT=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_NETSPACE_MAX_V2_DT=y +CONFIG_MACH_NETSPACE_MINI_V2_DT=y +CONFIG_MACH_NETSPACE_V2=y +CONFIG_MACH_NETSPACE_V2_DT=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_NSA310_DT=y +CONFIG_MACH_OPENBLOCKS_A6_DT=y CONFIG_MACH_OPENRD_BASE=y CONFIG_MACH_OPENRD_CLIENT=y CONFIG_MACH_OPENRD_ULTIMATE=y -CONFIG_MACH_NETSPACE_V2=y -CONFIG_MACH_INETSPACE_V2=y -CONFIG_MACH_NETSPACE_MAX_V2=y -CONFIG_MACH_D2NET_V2=y -CONFIG_MACH_NET2BIG_V2=y -CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_RD88F6192_NAS=y +CONFIG_MACH_RD88F6281=y +CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_TOPKICK_DT=y +CONFIG_MACH_TS219=y +CONFIG_MACH_TS219_DT=y +CONFIG_MACH_TS41X=y CONFIG_MACH_T5325=y -# CONFIG_CPU_FEROCEON_OLD_ID is not set - CONFIG_CACHE_FEROCEON_L2=y CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH=y @@ -36,11 +58,29 @@ CONFIG_SND_KIRKWOOD_SOC_T5325=m CONFIG_MMC_MVSDIO=m CONFIG_LEDS_NS2=m CONFIG_LEDS_NETXBIG=m -CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_MV=y CONFIG_MV_XOR=y CONFIG_CRYPTO_DEV_MV_CESA=m +# CONFIG_PINCTRL_EXYNOS is not set +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_KIRKWOOD=y -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_CPU_IDLE_KIRKWOOD is not set +CONFIG_POWER_RESET_QNAP=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_KIRKWOOD_THERMAL=m +CONFIG_REGULATOR_LP8755=m +# CONFIG_DRM_TILCDC is not set +CONFIG_OF_DISPLAY_TIMING=y +CONFIG_OF_VIDEOMODE=y +CONFIG_SND_ATMEL_SOC=m + +# CONFIG_CPU_FEROCEON_OLD_ID is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_HIGHPTE is not set +# CONFIG_VIRTUALIZATION is not set +# CONFIG_EDAC is not set +# CONFIG_SPI is not set +CONFIG_FB_XGI=m diff --git a/config-arm-omap-generic b/config-arm-omap-generic deleted file mode 100644 index 9e15f6379..000000000 --- a/config-arm-omap-generic +++ /dev/null @@ -1,1101 +0,0 @@ -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_LOCKBREAK=y -CONFIG_ARCH_HAS_CPUFREQ=y -# CONFIG_SPARSE_IRQ is not set -CONFIG_TREE_PREEMPT_RCU=y -CONFIG_PREEMPT_RCU=y -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -# 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 -CONFIG_USE_GENERIC_SMP_HELPERS=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_STOP_MACHINE=y -# CONFIG_INLINE_SPIN_UNLOCK is not set -# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set -# CONFIG_INLINE_READ_UNLOCK is not set -# CONFIG_INLINE_READ_UNLOCK_IRQ is not set -# CONFIG_INLINE_WRITE_UNLOCK is not set -# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set -CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_ARCH_VERSATILE is not set -CONFIG_ARCH_OMAP=y -# CONFIG_GPIO_PCA953X is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# TI OMAP Common Features -CONFIG_ARCH_OMAP_OTG=y -# CONFIG_ARCH_OMAP1 is not set -CONFIG_ARCH_OMAP2PLUS=y - -# -# OMAP Feature Selections -# -CONFIG_OMAP_SMARTREFLEX=y -CONFIG_OMAP_SMARTREFLEX_CLASS3=y -CONFIG_OMAP_RESET_CLOCKS=y -CONFIG_OMAP_MUX=y -# CONFIG_OMAP_MUX_DEBUG is not set -CONFIG_OMAP_MUX_WARNINGS=y -CONFIG_OMAP_MCBSP=y -CONFIG_OMAP_MBOX_FWK=m -CONFIG_OMAP_MBOX_KFIFO_SIZE=256 -CONFIG_OMAP_32K_TIMER=y -# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set -CONFIG_OMAP_32K_TIMER_HZ=128 -CONFIG_OMAP_DM_TIMER=y -# CONFIG_OMAP_PM_NONE is not set -CONFIG_OMAP_PM_NOOP=y - -# -# TI OMAP2/3/4 Specific Features -# -CONFIG_ARCH_OMAP2PLUS_TYPICAL=y -# CONFIG_ARCH_OMAP2 is not set -CONFIG_ARCH_OMAP3=y -CONFIG_ARCH_OMAP4=y -CONFIG_SOC_OMAP3430=y -# CONFIG_SOC_OMAPTI816X is not set -CONFIG_OMAP_PACKAGE_CBB=y -CONFIG_OMAP_PACKAGE_CBL=y -CONFIG_OMAP_PACKAGE_CBS=y - -# -# OMAP Board Type -# -CONFIG_MACH_OMAP3_BEAGLE=y -CONFIG_MACH_DEVKIT8000=y -CONFIG_MACH_OMAP_LDP=y -CONFIG_MACH_OMAP3530_LV_SOM=y -CONFIG_MACH_OMAP3_TORPEDO=y -CONFIG_MACH_OVERO=y -CONFIG_MACH_OMAP3EVM=y -CONFIG_MACH_OMAP3517EVM=y -CONFIG_MACH_CRANEBOARD=y -CONFIG_MACH_OMAP3_PANDORA=y -CONFIG_MACH_OMAP3_TOUCHBOOK=y -CONFIG_MACH_OMAP_3430SDP=y -CONFIG_MACH_NOKIA_RM680=y -CONFIG_MACH_NOKIA_RX51=y -CONFIG_MACH_OMAP_ZOOM2=y -CONFIG_MACH_OMAP_ZOOM3=y -CONFIG_MACH_CM_T35=y -CONFIG_MACH_CM_T3517=y -CONFIG_MACH_IGEP0020=y -CONFIG_MACH_IGEP0030=y -CONFIG_MACH_SBC3530=y -CONFIG_MACH_OMAP_3630SDP=y -CONFIG_MACH_OMAP_4430SDP=y -CONFIG_MACH_OMAP4_PANDA=y -CONFIG_MACH_TI8168EVM=y -CONFIG_OMAP3_EMU=y -# CONFIG_OMAP3_SDRC_AC_TIMING is not set -# System MMU -CONFIG_CPU_32v6K=y -CONFIG_CPU_V7=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_HAS_ASID=y -CONFIG_ARM_THUMBEE=y -CONFIG_SWP_EMULATE=y -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_OUTER_CACHE=y -CONFIG_OUTER_CACHE_SYNC=y -CONFIG_CACHE_L2X0=y -CONFIG_CACHE_PL310=y -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -CONFIG_CPU_HAS_PMU=y -CONFIG_ARM_ERRATA_430973=y -# CONFIG_ARM_ERRATA_458693 is not set -# CONFIG_ARM_ERRATA_460075 is not set -# CONFIG_ARM_ERRATA_742230 is not set -# CONFIG_ARM_ERRATA_742231 is not set -CONFIG_PL310_ERRATA_588369=y -CONFIG_PL310_ERRATA_769419=y -CONFIG_ARM_ERRATA_720789=y -# CONFIG_ARM_ERRATA_743622 is not set -# CONFIG_ARM_ERRATA_751472 is not set -# CONFIG_ARM_ERRATA_753970 is not set -# CONFIG_ARM_ERRATA_754322 is not set -# CONFIG_ARM_ERRATA_754327 is not set -# CONFIG_ARM_ERRATA_764369 is not set -CONFIG_ARM_GIC=y -# CONFIG_PCI_SYSCALL is not set -# CONFIG_PCCARD is not set -CONFIG_SMP=y -CONFIG_SMP_ON_UP=y -CONFIG_HAVE_ARM_SCU=y -CONFIG_HAVE_ARM_TWD=y -CONFIG_NR_CPUS=2 -CONFIG_HOTPLUG_CPU=y -CONFIG_LOCAL_TIMERS=y -# CONFIG_PREEMPT_VOLUNTARY is not set -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 -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_MENU=y -CONFIG_VFPv3=y -CONFIG_NEON=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_BINFMT_MISC=m -CONFIG_PM_DEBUG=y -# CONFIG_PM_ADVANCED_DEBUG is not set -# CONFIG_PM_VERBOSE is not set -CONFIG_CAN_PM_TRACE=y -CONFIG_PM_SLEEP_SMP=y -# CONFIG_APM_EMULATION is not set -CONFIG_ARCH_HAS_OPP=y -CONFIG_PM_OPP=y -# CONFIG_NET_IPGRE_DEMUX is not set -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set -# CONFIG_ARPD is not set -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -CONFIG_NF_DEFRAG_IPV4=m -# CONFIG_NET_DCCPPROBE is not set -# CONFIG_L2TP_V3 is not set -# CONFIG_DECNET_ROUTER is not set -# CONFIG_NET_SCH_INGRESS is not set -# CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_FLOW is not set -# CONFIG_NET_ACT_CSUM is not set -# CONFIG_NET_CLS_IND is not set -CONFIG_RPS=y -CONFIG_XPS=y -# CONFIG_CAN_SLCAN is not set -# CONFIG_CAN_DEV is not set -CONFIG_RXKAD=m -CONFIG_FIRMWARE_IN_KERNEL=y -# CONFIG_DEBUG_DEVRES is not set -CONFIG_MTD=y -CONFIG_MTD_TESTS=m -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -CONFIG_SM_FTL=m -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_GPIO_ADDR is not set -CONFIG_MTD_PLATRAM=m -# CONFIG_MTD_DATAFLASH is not set -CONFIG_MTD_M25P80=m -CONFIG_M25PXX_USE_FAST_READ=y -# CONFIG_MTD_SST25L is not set -CONFIG_MTD_SLRAM=m -CONFIG_MTD_PHRAM=m -CONFIG_MTD_DOC2000=m -CONFIG_MTD_DOC2001=m -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 -CONFIG_MTD_NAND_ECC=y -# CONFIG_MTD_NAND_ECC_SMC is not set -CONFIG_MTD_NAND=y -# CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_GPIO is not set -CONFIG_MTD_NAND_OMAP2=y -CONFIG_MTD_NAND_OMAP_PREFETCH=y -CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y -CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND_NANDSIM is not set -CONFIG_MTD_NAND_PLATFORM=y -# CONFIG_MTD_ALAUDA is not set -CONFIG_MTD_ONENAND=y -# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set -# CONFIG_MTD_ONENAND_GENERIC is not set -CONFIG_MTD_ONENAND_OMAP2=y -# CONFIG_MTD_ONENAND_OTP is not set -CONFIG_MTD_ONENAND_2X_PROGRAM=y -CONFIG_MTD_ONENAND_SIM=m -CONFIG_MTD_UBI_GLUEBI=m -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV_RAM_SIZE=65536 -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -CONFIG_HMC6352=m -CONFIG_DS1682=m -CONFIG_TI_DAC7512=m -CONFIG_BMP085=m -CONFIG_C2PORT=m -CONFIG_EEPROM_AT25=m -CONFIG_EEPROM_93XX46=m -# CONFIG_IWMC3200TOP_DEBUGFS is not set -# CONFIG_SCSI_PROC_FS is not set -# CONFIG_BLK_DEV_SR_VENDOR is not set -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_OSD_INITIATOR is not set -# CONFIG_SATA_AHCI_PLATFORM is not set -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_RAID is not set -# CONFIG_DM_LOG_USERSPACE is not set -CONFIG_DM_MULTIPATH=y -# CONFIG_TARGET_CORE is not set -# CONFIG_MACVTAP is not set -CONFIG_MII=y -# CONFIG_MARVELL_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_QSEMI_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM63XX_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_REALTEK_PHY is not set -# CONFIG_NATIONAL_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MICREL_PHY is not set -# CONFIG_FIXED_PHY is not set -# CONFIG_MDIO_BITBANG is not set -# CONFIG_AX88796 is not set -# CONFIG_SMC91X is not set -# CONFIG_TI_DAVINCI_EMAC is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_DAVINCI_CPDMA is not set -CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y -CONFIG_ENC28J60=m -# CONFIG_ENC28J60_WRITEVERIFY is not set -# CONFIG_ETHOC is not set -CONFIG_SMC911X=y -CONFIG_SMSC911X=y -# CONFIG_DNET is not set -# CONFIG_B44 is not set -CONFIG_KS8851=m -# CONFIG_NETDEV_1000 is not set -# CONFIG_NETDEV_10000 is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_AR9170_USB is not set -# CONFIG_B43_SDIO is not set -# CONFIG_B43_PHY_N is not set -# CONFIG_HOSTAP is not set -# CONFIG_IWM is not set -CONFIG_LIBERTAS_SPI=m -# CONFIG_LIBERTAS_MESH is not set -CONFIG_P54_SPI=m -# CONFIG_P54_SPI_DEFAULT_EEPROM is not set -# CONFIG_RT2800USB_RT33XX is not set -# CONFIG_RTL8192CE is not set -CONFIG_WL1251_SPI=m -CONFIG_WL12XX_SPI=m -CONFIG_WL12XX_SDIO_TEST=m -# CONFIG_WIMAX_IWMC3200_SDIO is not set -CONFIG_USB_USBNET=y -CONFIG_USB_NET_CDCETHER=y -CONFIG_USB_NET_CDC_NCM=y -CONFIG_USB_NET_RNDIS_HOST=y -# CONFIG_ATM_TCP is not set -# CONFIG_IEEE802154_FAKEHARD is not set -# CONFIG_CAIF_TTY is not set -# CONFIG_CAIF_SPI_SLAVE is not set -CONFIG_PPP_BSDCOMP=m -# CONFIG_PPPOL2TP is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_ISDN is not set -CONFIG_INPUT_POLLDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_EVBUG=m -# CONFIG_KEYBOARD_QT2160 is not set -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_TCA6416=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MCS=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -# CONFIG_KEYBOARD_OMAP4 is not set -CONFIG_KEYBOARD_TWL4030=m -CONFIG_KEYBOARD_XTKBD=m -CONFIG_MOUSE_PS2=m -CONFIG_MOUSE_GPIO=m -CONFIG_JOYSTICK_AS5011=m -# CONFIG_TABLET_USB_HANWANG is not set -CONFIG_TOUCHSCREEN_ADS7846=m -CONFIG_TOUCHSCREEN_AD7877=m -CONFIG_TOUCHSCREEN_AD7879=m -CONFIG_TOUCHSCREEN_AD7879_I2C=m -# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -CONFIG_TOUCHSCREEN_CY8CTMG110=m -CONFIG_TOUCHSCREEN_HAMPSHIRE=m -CONFIG_TOUCHSCREEN_QT602240=m -CONFIG_TOUCHSCREEN_TPS6507X=m -# CONFIG_TOUCHSCREEN_TSC2005 is not set -CONFIG_INPUT_AD714X=m -CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_AD714X_SPI=m -# CONFIG_INPUT_APPLEIR is not set -CONFIG_INPUT_TWL4030_PWRBUTTON=y -CONFIG_INPUT_TWL4030_VIBRA=y -CONFIG_INPUT_TWL6040_VIBRA=y -CONFIG_INPUT_UINPUT=y -# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set -CONFIG_INPUT_ADXL34X=m -CONFIG_INPUT_ADXL34X_I2C=m -CONFIG_INPUT_ADXL34X_SPI=m -# CONFIG_INPUT_CMA3000_I2C is not set -# CONFIG_SERIO_AMBAKMI is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_GAMEPORT_NS558 is not set -# CONFIG_GAMEPORT_L4 is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set -CONFIG_SERIAL_8250_DETECT_IRQ=y -# CONFIG_SERIAL_AMBA_PL010 is not set -# CONFIG_SERIAL_AMBA_PL011 is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX3107 is not set -CONFIG_SERIAL_OMAP=y -CONFIG_SERIAL_OMAP_CONSOLE=y -# CONFIG_SERIAL_IFX6X60 is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y -# CONFIG_I2C_GPIO is not set -CONFIG_I2C_OMAP=y -# CONFIG_I2C_SIMTEC is not set -CONFIG_I2C_TAOS_EVM=m -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y -# SPI Master Controller Drivers -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_GPIO is not set -# CONFIG_SPI_OC_TINY is not set -CONFIG_SPI_OMAP24XX=y -# CONFIG_SPI_PL022 is not set -# CONFIG_SPI_PXA2XX_PCI is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPI_DESIGNWARE is not set -# SPI Protocol Masters -CONFIG_SPI_SPIDEV=y -# CONFIG_SPI_TLE62X0 is not set - -# -# PPS support -# -# CONFIG_PPS is not set -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y - -# -# Memory mapped GPIO expanders: -# -# CONFIG_GPIO_BASIC_MMIO is not set -# CONFIG_GPIO_IT8761E is not set -# CONFIG_GPIO_PL061 is not set - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_SX150X is not set -CONFIG_GPIO_TWL4030=y -# CONFIG_GPIO_ADP5588 is not set - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MCP23S08 is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_74X164 is not set - -# -# AC97 GPIO expanders: -# - -# -# MODULbus GPIO expanders: -# -# CONFIG_W1 is not set -# CONFIG_CHARGER_TWL4030 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADCXX is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_MAX1111 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_SHT15 is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_ADS7871 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_SENSORS_LIS3_SPI is not set -# CONFIG_SENSORS_LIS3_I2C is not set -CONFIG_WATCHDOG_NOWAYOUT=y -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_MPCORE_WATCHDOG is not set -CONFIG_OMAP_WATCHDOG=y -# CONFIG_TWL4030_WATCHDOG is not set -CONFIG_SSB=y -# CONFIG_SSB_SDIOHOST is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_HTC_EGPIO is not set -# CONFIG_HTC_I2CPLD is not set -# CONFIG_TPS65010 is not set -CONFIG_TWL4030_CORE=y -# CONFIG_TWL4030_MADC is not set -CONFIG_TWL4030_POWER=y -CONFIG_TWL4030_CODEC=y -# CONFIG_TWL6030_PWM is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_MC13XXX is not set -# CONFIG_EZX_PCAP is not set -CONFIG_MFD_OMAP_USB_HOST=y -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_WL1273_CORE is not set -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_DUMMY is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=y -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -CONFIG_REGULATOR_TWL4030=y -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_TPS6524X is not set -CONFIG_VIDEOBUF_DMA_CONTIG=m -CONFIG_V4L2_MEM2MEM_DEV=m -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -# Encoders/decoders and other helper chips -# - -# -CONFIG_VIDEO_IR_I2C=m -CONFIG_VIDEO_CS5345=m -CONFIG_VIDEO_M52790=m -CONFIG_VIDEO_WM8739=m -CONFIG_VIDEO_VP27SMPX=m -CONFIG_VIDEO_OV7670=m -CONFIG_VIDEO_SAA717X=m -CONFIG_VIDEO_SAA7127=m -CONFIG_VIDEO_UPD64031A=m -CONFIG_VIDEO_UPD64083=m -CONFIG_VIDEO_ADP1653=m -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_SAA6588 is not set -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -CONFIG_VIDEO_TVP7002=m -# CONFIG_VIDEO_VPX3220 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_ADV7343 is not set -CONFIG_VIDEO_AK881X=m -# CONFIG_VIDEO_VPFE_CAPTURE is not set -CONFIG_VIDEO_OMAP2_VOUT=m -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_OMAP3 is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_USB_ET61X251=m -CONFIG_USB_SN9C102=m -CONFIG_VIDEO_MEM2MEM_TESTDEV=m -CONFIG_RADIO_TEA5764=m -CONFIG_RADIO_SAA7706H=m -CONFIG_RADIO_TEF6862=m -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_SMS_SDIO_DRV is not set -# CONFIG_DVB_DUMMY_FE is not set -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_PLL=m -# CONFIG_DRM is not set -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -# CONFIG_FB_DDC is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set -# CONFIG_FB_OMAP_LCD_VGA is not set -CONFIG_OMAP2_VRAM=y -CONFIG_OMAP2_VRFB=y -CONFIG_OMAP2_DSS=y -CONFIG_OMAP2_VRAM_SIZE=12 -CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y -# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set -CONFIG_OMAP2_DSS_DPI=y -# CONFIG_OMAP2_DSS_RFBI is not set -CONFIG_OMAP2_DSS_VENC=y -CONFIG_OMAP4_DSS_HDMI=y -# CONFIG_OMAP2_DSS_SDI is not set -# CONFIG_OMAP2_DSS_DSI is not set -# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set -CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=1 -CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET=y -CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y -CONFIG_FB_OMAP2=y -CONFIG_FB_OMAP2_DEBUG_SUPPORT=y -CONFIG_FB_OMAP2_NUM_FBS=3 - -# -# OMAP2/3 Display Device Drivers -# -CONFIG_PANEL_GENERIC_DPI=y -CONFIG_PANEL_SHARP_LS037V7DW01=y -CONFIG_PANEL_NEC_NL8048HL11_01B=y -CONFIG_PANEL_TPO_TD043MTEA1=y -# CONFIG_LCD_L4F00242T03 is not set -# CONFIG_LCD_LMS283GF05 is not set -# CONFIG_LCD_LTV350QV is not set -# CONFIG_LCD_TDO24M is not set -# CONFIG_LCD_VGG2432A4 is not set -# CONFIG_LCD_PLATFORM is not set -# CONFIG_LCD_S6E63M0 is not set -# CONFIG_LCD_AMS369FG06 is not set -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_DISPLAY_SUPPORT=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -CONFIG_SND_HRTIMER=m -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_RAWMIDI_SEQ=m -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set -# CONFIG_SND_DRIVERS is not set -# CONFIG_SND_ARM is not set -# CONFIG_SND_SPI is not set -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_SOC=y -# CONFIG_SND_SOC_CACHE_LZO is not set -CONFIG_SND_OMAP_SOC=y -CONFIG_SND_OMAP_SOC_MCBSP=y -CONFIG_SND_OMAP_SOC_MCPDM=y -CONFIG_SND_OMAP_SOC_RX51=y -CONFIG_SND_OMAP_SOC_OVERO=y -CONFIG_SND_OMAP_SOC_OMAP3EVM=y -CONFIG_SND_OMAP_SOC_AM3517EVM=y -CONFIG_SND_OMAP_SOC_SDP3430=y -CONFIG_SND_OMAP_SOC_SDP4430=y -CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y -CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y -CONFIG_SND_OMAP_SOC_ZOOM2=y -CONFIG_SND_OMAP_SOC_IGEP0020=y -CONFIG_SND_OMAP_SOC_OMAP4_HDMI=y -CONFIG_SND_SOC_I2C_AND_SPI=y -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_TLV320AIC23=y -CONFIG_SND_SOC_TLV320AIC3X=y -CONFIG_SND_SOC_TWL4030=y -CONFIG_SND_SOC_TWL6040=y -# CONFIG_SOUND_PRIME is not set -# CONFIG_HID_TIVO_SLIDE is not set -# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set -# CONFIG_USB_DEVICEFS is not set -CONFIG_USB_OTG=y -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_WUSB is not set -# CONFIG_USB_WUSB_CBAF is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_EHCI_HCD_OMAP=y -# CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_OHCI_HCD is not set -# CONFIG_USB_U132_HCD is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_HWA_HCD is not set -# CONFIG_USB_MUSB_TUSB6010 is not set -CONFIG_USB_MUSB_OMAP2PLUS=y -# CONFIG_USB_MUSB_AM35X is not set -# CONFIG_USB_MUSB_HOST is not set -# CONFIG_USB_MUSB_PERIPHERAL is not set -CONFIG_USB_MUSB_OTG=y -CONFIG_USB_GADGET_MUSB_HDRC=y -CONFIG_USB_INVENTRA_DMA=y -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=m -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -# CONFIG_USB_UAS is not set -# CONFIG_USB_LIBUSUAL is not set -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -# CONFIG_USB_SERIAL_SAMBA is not set -CONFIG_USB_SERIAL_ZIO=m -CONFIG_USB_RIO500=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -CONFIG_USB_TEST=m -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_DEBUG_FS=y -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_R8A66597 is not set -# CONFIG_USB_GADGET_PXA_U2O is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -CONFIG_USB_GADGET_DUALSPEED=y -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -CONFIG_USB_ETH=y -CONFIG_USB_ETH_RNDIS=y -CONFIG_USB_ETH_EEM=y -# CONFIG_USB_G_NCM is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_G_NOKIA is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set -CONFIG_USB_GPIO_VBUS=y -# CONFIG_ISP1301_OMAP is not set -CONFIG_TWL4030_USB=y -CONFIG_TWL6030_USB=y -CONFIG_NOP_USB_XCEIV=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_OMAP=m -CONFIG_MMC_OMAP_HS=y -CONFIG_MMC_SPI=m -# CONFIG_MMC_DW is not set -# CONFIG_MMC_USHC is not set -# CONFIG_MEMSTICK is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_GPIO_PLATFORM=y -CONFIG_LEDS_GPIO_OF=y -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_REGULATOR is not set -# CONFIG_LEDS_LT3593 is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_GPIO is not set -# CONFIG_NFC_DEVICES is not set -# CONFIG_ACCESSIBILITY is not set -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_TWL4030=m -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_DS1305=m -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_M48T86=m -# CONFIG_RTC_DRV_PL030 is not set -# CONFIG_RTC_DRV_PL031 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_VICAM is not set -CONFIG_PRISM2_USB=m -CONFIG_BRCM80211=y -CONFIG_BRCMFMAC=y -CONFIG_RT2870=m -CONFIG_R8712U=m -CONFIG_R8712_AP=y -CONFIG_ZRAM=m -# CONFIG_ZRAM_DEBUG is not set -# CONFIG_LIRC_STAGING is not set -CONFIG_TIDSPBRIDGE=m -CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000 -# CONFIG_TIDSPBRIDGE_DEBUG is not set -CONFIG_TIDSPBRIDGE_RECOVERY=y -# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set -CONFIG_TIDSPBRIDGE_WDT3=y -CONFIG_TIDSPBRIDGE_WDT_TIMEOUT=5 -# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set -# CONFIG_TIDSPBRIDGE_BACKTRACE is not set -# CONFIG_WESTBRIDGE is not set -CONFIG_WESTBRIDGE_HAL_SELECTED=y -CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL=y -# CONFIG_MACH_NO_WESTBRIDGE is not set -# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set -# CONFIG_REISERFS_PROC_INFO is not set -CONFIG_JFS_STATISTICS=y -CONFIG_XFS_RT=y -CONFIG_OCFS2_FS_STATS=y -CONFIG_OCFS2_DEBUG_MASKLOG=y -# CONFIG_BTRFS_FS is not set -CONFIG_PRINT_QUOTA_WARNING=y -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_AUTOFS4_FS=m -# CONFIG_NTFS_DEBUG is not set -# CONFIG_NTFS_RW is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_LZO=y -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -# CONFIG_JFFS2_CMODE_NONE is not set -# CONFIG_JFFS2_CMODE_PRIORITY is not set -# CONFIG_JFFS2_CMODE_SIZE is not set -CONFIG_JFFS2_CMODE_FAVOURLZO=y -# CONFIG_LOGFS is not set -CONFIG_NFS_FS=m -# CONFIG_NFS_V4_1 is not set -CONFIG_ROOT_NFS=y -CONFIG_NFSD_DEPRECATED=y -CONFIG_LOCKD=y -CONFIG_NFS_ACL_SUPPORT=y -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_FSCACHE is not set -# CONFIG_CIFS_ACL is not set -# CONFIG_NCPFS_SMALLDOS is not set -# CONFIG_9P_FSCACHE is not set -# CONFIG_9P_FS_POSIX_ACL is not set -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=y -# CONFIG_DLM_DEBUG is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_LOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_DEBUG_PREEMPT=y -# CONFIG_BKL is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_DEBUG_HIGHMEM is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_LIST is not set -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -CONFIG_RCU_CPU_STALL_VERBOSE=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_KGDB_TESTS is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -CONFIG_EARLY_PRINTK=y -# CONFIG_DEBUG_ICEDCC is not set -CONFIG_OC_ETM=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_IMA is not set -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_RNG=m -# CONFIG_CRYPTO_PCRYPT is not set -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_SEQIV=m -CONFIG_CRYPTO_CTR=m -# CONFIG_CRYPTO_VMAC is not set -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_AES=m -# CONFIG_CRYPTO_CAST6 is not set -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_USER_API=m -CONFIG_CRYPTO_USER_API_HASH=m -CONFIG_CRYPTO_USER_API_SKCIPHER=m -CONFIG_CRYPTO_DEV_OMAP_SHAM=m -CONFIG_CRYPTO_DEV_OMAP_AES=m -CONFIG_LIBCRC32C=y -# CONFIG_RFKILL_REGULATOR is not set -# CONFIG_RFKILL_GPIO is not set -# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set -# 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 -# CONFIG_BT_ATH3K is not set -# CONFIG_BT_WILINK is not set -# CONFIG_USB_HSO is not set - -CONFIG_CRYSTALHD=m - -CONFIG_GPIO_GENERIC_PLATFORM=y - -CONFIG_MACH_OMAP_GENERIC=y -CONFIG_PL310_ERRATA_753970=y -CONFIG_ARM_CPU_TOPOLOGY=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_SMT=y -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_NET_VENDOR_MICROCHIP=y -CONFIG_SENSORS_AD7314=m -CONFIG_REGULATOR_GPIO=y -CONFIG_VIDEO_MT9P031=m -CONFIG_VIDEO_MT9T001=m -CONFIG_VIDEO_S5K6AA=m -CONFIG_PANEL_DVI=m -CONFIG_PANEL_PICODLP=m -CONFIG_USB_RENESAS_USBHS=m -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -CONFIG_LEDS_RENESAS_TPU=y -# CONFIG_OMAP_IOMMU is not set -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 -# CONFIG_SOC_OMAPAM33XX is not set -# CONFIG_MACH_TI8148EVM is not set -# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set -# CONFIG_MICREL_KS8995MA is not set -# CONFIG_CHARGER_MANAGER is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_S5M_CORE is not set -# CONFIG_VIDEO_AS3645A is not set -# - diff --git a/config-arm-tegra b/config-arm-tegra index 4c537ef5e..8b62dedf5 100644 --- a/config-arm-tegra +++ b/config-arm-tegra @@ -1,29 +1,47 @@ CONFIG_ARCH_TEGRA=y -CONFIG_MACH_HARMONY=y + +CONFIG_ARCH_TEGRA_2x_SOC=y +# CONFIG_ARCH_TEGRA_3x_SOC is not set +# CONFIG_ARM_LPAE is not set + +CONFIG_VFP=y +CONFIG_VFPv3=y + +# CONFIG_MACH_HARMONY is not set 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_PREEMPT=y -CONFIG_AEABI=y +CONFIG_ARM_CPU_TOPOLOGY=y -CONFIG_I2C_TEGRA=y +CONFIG_TEGRA_PCI=y +CONFIG_TEGRA_IOMMU_GART=y +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_I2C_TEGRA=m + +# This block is temporary until we work out why the MMC modules don't work as modules CONFIG_MMC=y CONFIG_MMC_BLOCK=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF=y +CONFIG_MMC_SPI=y + CONFIG_MMC_SDHCI_TEGRA=y # CONFIG_RCU_BOOST is not set CONFIG_TEGRA_SYSTEM_DMA=y CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m CONFIG_ARM_THUMBEE=y CONFIG_SWP_EMULATE=y # CONFIG_CPU_BPREDICT_DISABLE is not set @@ -43,62 +61,66 @@ CONFIG_ARM_ERRATA_720789=y # CONFIG_ARM_ERRATA_754322 is not set # CONFIG_ARM_ERRATA_754327 is not set # CONFIG_ARM_ERRATA_764369 is not set -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 # CONFIG_GPIO_MCP23S08 is not set -CONFIG_KEYBOARD_TEGRA=y -# CONFIG_MPCORE_WATCHDOG is not set +# CONFIG_KEYBOARD_TEGRA is not set +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA20=y CONFIG_USB_EHCI_TEGRA=y -CONFIG_RTC_DRV_TEGRA=m +CONFIG_RTC_DRV_TEGRA=y CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_WM8753=m CONFIG_SND_SOC_TEGRA_WM8903=m CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m -CONFIG_MFD_NVEC=y -# CONFIG_DEBUG_PREEMPT is not set -# CONFIG_RCU_CPU_STALL_VERBOSE is not set -# CONFIG_PREEMPT_TRACER is not set +# AC100 (PAZ00) +# CONFIG_MFD_NVEC is not set +CONFIG_MFD_TPS80031=y CONFIG_KEYBOARD_NVEC=y CONFIG_SERIO_NVEC_PS2=y CONFIG_NVEC_POWER=y CONFIG_POWER_SUPPLY=y +CONFIG_NVEC_LEDS=y +CONFIG_NVEC_PAZ00=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_MFD_TPS6586X is not set +# CONFIG_RTC_DRV_TPS6586X is not set -CONFIG_CRYSTALHD=m +CONFIG_PWM_TEGRA=m + +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +CONFIG_DRM_TEGRA=m + +CONFIG_CPU_PM=y +CONFIG_ARM_CPU_SUSPEND=y + +CONFIG_CRYPTO_DEV_TEGRA_AES=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 -# CONFIG_INPUT_GP2A is not set -# CONFIG_INPUT_GPIO_TILT_POLLED is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_PLL is not set -# CONFIG_SND_SOC_TEGRA_ALC5632 is not set +CONFIG_OF=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_OF_GPIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +# CONFIG_DRM_TEGRA_DEBUG is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_SPI_TOPCLIFF_PCH is not set +# CONFIG_SPI_DW_PCI is not set diff --git a/config-armv7 b/config-armv7 new file mode 100644 index 000000000..db8a2b69d --- /dev/null +++ b/config-armv7 @@ -0,0 +1,501 @@ +# ARM unified arch kernel +CONFIG_CPU_V7=y +# CONFIG_ARCH_MULTI_V4 is not set +# CONFIG_ARCH_MULTI_V4T is not set +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +# This is V6 so we'll eventually support it in v5 unified kernels +# CONFIG_ARCH_BCM is not set +CONFIG_ARCH_HIGHBANK=y +CONFIG_ARCH_MVEBU=y +# CONFIG_ARCH_MXC is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_PICOXCELL=y +CONFIG_ARCH_SOCFPGA=y +CONFIG_ARCH_SUNXI=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_ARCH_VEXPRESS_DT=y +CONFIG_ARCH_VIRT=y +# CONFIG_ARCH_WM8850 is not set +CONFIG_ARCH_ZYNQ=y + +# These are supported in the LPAE kernel +# CONFIG_ARM_LPAE is not set +# CONFIG_XEN is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_ARM_VIRT_EXT is not set + +# highbank +# 2013/04/19 - stability issues +# CONFIG_CPU_IDLE_CALXEDA is not set +CONFIG_EDAC_HIGHBANK_MC=m +CONFIG_EDAC_HIGHBANK_L2=m +CONFIG_SATA_HIGHBANK=m +CONFIG_ARM_HIGHBANK_CPUFREQ=m + +# versatile +CONFIG_VEXPRESS_CONFIG=y +CONFIG_FB=y +CONFIG_FB_ARMCLCD=m +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_IMAGEBLIT=m +CONFIG_TOUCHSCREEN_ADS7846=m + +CONFIG_OC_ETM=y +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y + +# mvebu +CONFIG_MACH_ARMADA_370_XP=y +CONFIG_MACH_ARMADA_370=y +CONFIG_MACH_ARMADA_XP=y + +CONFIG_CACHE_TAUROS2=y +CONFIG_MV_XOR=y +CONFIG_CRYPTO_DEV_MV_CESA=m +CONFIG_MV643XX_ETH=m +CONFIG_I2C_MV64XXX=m +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_ARMADA_370=y +CONFIG_PINCTRL_ARMADA_XP=y +CONFIG_PINCTRL_DOVE=y +CONFIG_EDAC_MV64X60=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_MV=m +CONFIG_MVNETA=m +CONFIG_GPIO_MVEBU=y +CONFIG_MVEBU_CLK_CORE=y +CONFIG_MVEBU_CLK_GATING=y +CONFIG_MMC_MVSDIO=m +CONFIG_SPI_ORION=m +CONFIG_USB_MV_UDC=m + +# omap +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +# CONFIG_ARCH_OMAP2 is not set +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +# CONFIG_SOC_OMAP5 is not set +# CONFIG_SOC_OMAP2420 is not set +# CONFIG_SOC_OMAP2430 is not set +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_TI81XX=y +CONFIG_SOC_AM33XX=y +CONFIG_MACH_OMAP_GENERIC=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_DEVKIT8000=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3517EVM=y +CONFIG_MACH_CRANEBOARD=y +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +# CONFIG_MACH_NOKIA_N8X0 is not set +# CONFIG_MACH_NOKIA_RM680 is not set +# CONFIG_MACH_NOKIA_RX51 is not set +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_CM_T35=y +CONFIG_MACH_CM_T3517=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_TI8148EVM=y +CONFIG_MACH_OMAP_4430SDP=y +CONFIG_MACH_OMAP4_PANDA=y + +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_32K_TIMER_HZ=128 +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set + +CONFIG_OMAP_MCBSP=y +CONFIG_OMAP_MBOX_FWK=m +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_OMAP_IOMMU=y +CONFIG_OMAP_IOVMM=m +CONFIG_OMAP3_EMU=y +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +CONFIG_ARM_OMAP2PLUS_CPUFREQ=y + +CONFIG_TI_ST=m +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_DAVINCI_MDIO=m +CONFIG_TI_DAVINCI_CPDMA=m +CONFIG_TI_CPSW=m +CONFIG_TI_CPTS=y +CONFIG_TI_EMIF=m +CONFIG_MFD_TPS65217=m +CONFIG_REGULATOR_TPS65217=m +CONFIG_BACKLIGHT_TPS65217=m + +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y + +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_I2C_OMAP=m +CONFIG_CHARGER_TWL4030=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_CODEC=y +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TWL4030_USB=m +CONFIG_TWL6030_USB=m +CONFIG_TWL6030_PWM=m +CONFIG_TWL6040_CORE=y +CONFIG_CLK_TWL6040=m +CONFIG_OMAP_INTERCONNECT=m +# CONFIG_MFD_TPS80031 is not set +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MTD_ONENAND_OMAP2=m +CONFIG_HDQ_MASTER_OMAP=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_BACKLIGHT_PANDORA=m +CONFIG_OMAP_OCP2SCP=m +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD_OMAP3=y +CONFIG_USB_MUSB_AM35X=m +CONFIG_USB_MUSB_OMAP2PLUS=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_GADGET_MUSB_HDRC=m +# CONFIG_MUSB_PIO_ONLY is not set +# CONFIG_USB_MUSB_DEBUG is not set +CONFIG_OMAP_CONTROL_USB=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +CONFIG_RTC_DRV_MAX8907=m +# CONFIG_RTC_DRV_TWL92330 is not set +CONFIG_RTC_DRV_TWL4030=m +CONFIG_RTC_DRV_OMAP=m +# Note needs to be compiled in until we build MMC modular +CONFIG_DMA_OMAP=y +CONFIG_OMAP_IOVMM=m +CONFIG_HWSPINLOCK_OMAP=m +CONFIG_SENSORS_TWL4030_MADC=m + +CONFIG_WL_TI=y +CONFIG_WLCORE_SDIO=m +CONFIG_WLCORE_SPI=m +CONFIG_WL1251_SPI=m +CONFIG_WL12XX_SPI=m +CONFIG_WL12XX_SDIO_TEST=m +CONFIG_WL18XX=m +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_MFD_WL1273_CORE=m +CONFIG_NFC_WILINK=m + +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_PREFETCH=y +CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y +CONFIG_SPI_DAVINCI=m +CONFIG_SPI_OMAP24XX=y +CONFIG_MFD_TI_SSP=m +CONFIG_SPI_TI_SSP=m + +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_TOUCHSCREEN_TI_TSCADC=m + +# OMAP thermal temp. Can likely be built as module but doesn't autoload so build in to ensure performance on PandaES +CONFIG_OMAP_BANDGAP=y +CONFIG_OMAP4_THERMAL=y +CONFIG_OMAP5_THERMAL=y + +# OMAP3 thermal/power +CONFIG_POWER_AVS=y +CONFIG_POWER_AVS_OMAP=y +CONFIG_POWER_AVS_OMAP_CLASS3=y + +CONFIG_ARM_OMAP2PLUS_CPUFREQ=y + +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m + +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_OMAP_AES=m +CONFIG_HW_RANDOM_OMAP=m + +# CONFIG_DRM_TILCDC is not set +CONFIG_DRM_OMAP=m +CONFIG_DRM_OMAP_NUM_CRTCS=2 +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRAM_SIZE=0 +CONFIG_OMAP2_VRFB=y +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +# CONFIG_FB_OMAP_LCD_VGA is not set +# CONFIG_FB_OMAP2 is not set +# CONFIG_FB_DA8XX is not set + +CONFIG_OMAP2_DSS=m +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DPI=y +CONFIG_OMAP2_DSS_RFBI=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP4_DSS_HDMI=y +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_DSI=y +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET=y +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y + +CONFIG_PANEL_GENERIC_DPI=m +CONFIG_PANEL_TFP410=m +CONFIG_PANEL_SHARP_LS037V7DW01=m +CONFIG_PANEL_PICODLP=m +CONFIG_PANEL_TAAL=m +CONFIG_PANEL_NEC_NL8048HL11_01B=m +CONFIG_PANEL_TPO_TD043MTEA1=m +CONFIG_PANEL_LGPHILIPS_LB035Q02=m +CONFIG_PANEL_ACX565AKM=m +# CONFIG_PANEL_N8X0 is not set + +# Enable V4L2 drivers for OMAP2+ +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_OMAP3 is not set +# CONFIG_VIDEO_VPFE_CAPTURE is not set +# The ones below are for TI Davinci +# CONFIG_VIDEO_VPSS_SYSTEM is not set +# CONFIG_VIDEO_DM6446_CCDC is not set +# CONFIG_VIDEO_DM644X_VPBE is not set +# CONFIG_VIDEO_DM355_CCDC is not set +# CONFIG_VIDEO_ISIF is not set +# Also enable vivi driver - useful for testing a full kernelspace V4L2 driver +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VIDEO_VIVI=m + +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m +CONFIG_SND_OMAP_SOC_OMAP_HDMI=m +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m + +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_OMAP_SOC_AM3517EVM=m +CONFIG_SND_OMAP_SOC_DMIC=m +CONFIG_SND_OMAP_SOC_IGEP0020=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_MCPDM=m +CONFIG_SND_OMAP_SOC_OMAP_HDMI=m +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m +CONFIG_SND_OMAP_SOC_OMAP3EVM=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OVERO=m +# CONFIG_SND_OMAP_SOC_RX51 is not set +CONFIG_SND_OMAP_SOC_SDP4430=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_RADIO_WL128X=m + +# CONFIG_OMAP_REMOTEPROC is not set + +# CONFIG_TIDSPBRIDGE is not set +# CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000 +# CONFIG_TIDSPBRIDGE_DEBUG is not set +# CONFIG_TIDSPBRIDGE_RECOVERY=y +# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set +# CONFIG_TIDSPBRIDGE_WDT3=y +# CONFIG_TIDSPBRIDGE_WDT_TIMEOUT=5 +# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set +# CONFIG_TIDSPBRIDGE_BACKTRACE is not set + +# CONFIG_OMAP2_DSS_DEBUGFS is not set +# CONFIG_OMAP_IOMMU_DEBUG is not set +# CONFIG_OMAP_MUX_DEBUG is not set +# CONFIG_VIDEO_OMAP3_DEBUG is not set + +# Allwinner a1x +CONFIG_PINCTRL_SUNXI=y +# CONFIG_SUNXI_RFKILL=y +# CONFIG_SUNXI_NAND=y +# CONFIG_SUNXI_DBGREG=m +# CONFIG_WEMAC_SUN4I=y +# CONFIG_KEYBOARD_SUN4IKEYPAD=m +# CONFIG_KEYBOARD_SUN4I_KEYBOARD=m +# CONFIG_IR_SUN4I=m +# CONFIG_TOUCHSCREEN_SUN4I_TS=m +# CONFIG_SUN4I_G2D=y +# CONFIG_I2C_SUN4I=y +# CONFIG_DRM_MALI=m +# CONFIG_MALI=m +# CONFIG_FB_SUNXI=m +# CONFIG_FB_SUNXI_UMP=y +# CONFIG_FB_SUNXI_LCD=m +# CONFIG_FB_SUNXI_HDMI=m +# CONFIG_SOUND_SUN4I=y +# CONFIG_SND_SUN4I_SOC_CODEC=y +# CONFIG_SND_SUN4I_SOC_HDMIAUDIO=y +# CONFIG_SND_SUN4I_SOC_SPDIF=m +# CONFIG_SND_SUN4I_SOC_I2S_INTERFACE=m +# CONFIG_SND_SOC_I2C_AND_SPI=y +# CONFIG_USB_SW_SUN4I_HCD=y +# CONFIG_USB_SW_SUN4I_HCD0=y +# CONFIG_USB_SW_SUN4I_HCI=y +# CONFIG_USB_SW_SUN4I_EHCI0=y +# CONFIG_USB_SW_SUN4I_EHCI1=y +# CONFIG_USB_SW_SUN4I_OHCI0=y +# CONFIG_USB_SW_SUN4I_OHCI1=y +# CONFIG_USB_SW_SUN4I_USB=y +# CONFIG_USB_SW_SUN4I_USB_MANAGER=y +# CONFIG_MMC_SUNXI_POWER_CONTROL=y +# CONFIG_MMC_SUNXI=y +# CONFIG_RTC_DRV_SUN4I=y + +# imx +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_DRM_IMX is not set +# CONFIG_DRM_IMX_FB_HELPER=m +# CONFIG_DRM_IMX_PARALLEL_DISPLAY=m +# CONFIG_DRM_IMX_IPUV3_CORE=m +# CONFIG_DRM_IMX_IPUV3=m +# CONFIG_VIDEO_CODA is not set + +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_88PM80X_ONKEY=m + +# exynos +# CONFIG_DRM_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set +# CONFIG_PINCTRL_EXYNOS is not set + +# picoxcell +CONFIG_CRYPTO_DEV_PICOXCELL=m +CONFIG_HW_RANDOM_PICOXCELL=m + +# ST Ericsson +# CONFIG_I2C_NOMADIK is not set +# CONFIG_SENSORS_LIS3_I2C is not set + +# ZYNQ +CONFIG_LATTICE_ECP3_CONFIG=m + +# MMC/SD +CONFIG_MMC_TMIO=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m + +# Multi function devices +CONFIG_MFD_CORE=m +CONFIG_MFD_SYSCON=y +CONFIG_MFD_88PM800=m +CONFIG_MFD_88PM805=m +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC6387XB=y + +# Regulator drivers +CONFIG_REGULATOR_FAN53555=m +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_REGULATOR_DUMMY is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_RFKILL_REGULATOR=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8973=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65912=m +CONFIG_REGULATOR_MAX8907=m +CONFIG_REGULATOR_LP872X=y +CONFIG_REGULATOR_LP8755=m + +# Needs work/investigation + +# CONFIG_ARM_CHARLCD is not set +# CONFIG_MTD_AFS_PARTS is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEPRECATED_PARAM_STRUCT is not set + +# CONFIG_ARM_KPROBES_TEST is not set + +# Defined config options we don't use yet +# CONFIG_PINCTRL_IMX35 is not set +# CONFIG_DRM_IMX_FB_HELPER is not set +# CONFIG_DRM_IMX_PARALLEL_DISPLAY is not set +# CONFIG_DRM_IMX_IPUV3_CORE is not set +# CONFIG_DRM_IMX_IPUV3 is not set +# CONFIG_REGULATOR_ANATOP is not set + +# CONFIG_BATTERY_RX51 is not set +# CONFIG_IR_RX51 is not set +# CONFIG_GENERIC_CPUFREQ_CPU0 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set + +# CONFIG_DVB_USB_PCTV452E is not set +# We need to fix these as they should be either generic includes or kconfig fixes +# 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 + +# CONFIG_VIRTUALIZATION is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_POWER_RESET_QNAP is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_OMAP2_DSS_DEBUG is not set diff --git a/config-armv7-generic b/config-armv7-generic new file mode 100644 index 000000000..58c581629 --- /dev/null +++ b/config-armv7-generic @@ -0,0 +1,469 @@ +# arm configs for sharing between armv7 and armv7-lpae +# Generic ARM config options +CONFIG_ARM=y + +CONFIG_CMDLINE="" +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_AEABI=y +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_GIC=y +CONFIG_ARM_ASM_UNIFIED=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_SWP_EMULATE=y +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_HIGHPTE=y +CONFIG_AUTO_ZRELADDR=y +CONFIG_EARLY_PRINTK=y +CONFIG_ATAGS=y +CONFIG_ATAGS_PROC=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 + +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y + +# CONFIG_OABI_COMPAT is not set +# CONFIG_FPE_NWFPE is not set +# CONFIG_FPE_FASTFPE is not set +# CONFIG_APM_EMULATION is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +# CONFIG_DMA_CACHE_RWFO is not set +# CONFIG_THUMB2_KERNEL is not set +# CONFIG_HVC_DCC is not set +# CONFIG_XIP_KERNEL is not set +# CONFIG_ARM_VIRT_EXT is not set + +# errata +# v5/v6 +# CONFIG_ARM_ERRATA_326103 is not set +# CONFIG_ARM_ERRATA_411920 is not set +# Cortex-A8 +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_458693=y +CONFIG_ARM_ERRATA_460075=y +# Cortex-A9 +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_742230=y +CONFIG_ARM_ERRATA_742231=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_ERRATA_751472=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +# Disabled due to causing highbank to crash +# CONFIG_PL310_ERRATA_588369 is not set +# CONFIG_PL310_ERRATA_727915 is not set +CONFIG_PL310_ERRATA_753970=y +CONFIG_PL310_ERRATA_769419=y +# Cortex-A15 +CONFIG_ARM_ERRATA_798181=y + +# generic that deviates from or should be merged into config-generic +CONFIG_SMP=y +CONFIG_NR_CPUS=8 +CONFIG_SMP_ON_UP=y +CONFIG_HIGHMEM=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y + +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y + +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 + +# 2013/04/19 - disable due to stability issues in 3.9 for the moment +# CONFIG_CPU_IDLE is not set +## CONFIG_CPU_IDLE_GOV_LADDER is not set +# CONFIG_CPU_IDLE_GOV_MENU is not set +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set + +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_LSM_MMAP_MIN_ADDR=32768 + +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +CONFIG_SECCOMP=y +CONFIG_STRICT_DEVMEM=y + +CONFIG_XZ_DEC_ARM=y +CONFIG_OC_ETM=y + +CONFIG_PM=y +CONFIG_PM_STD_PARTITION="" +CONFIG_SUSPEND=y +CONFIG_ARM_CPU_SUSPEND=y + +CONFIG_LOCAL_TIMERS=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_CC_STACKPROTECTOR=y + +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y + +# Root as NFS, different from mainline +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y + +CONFIG_LBDAF=y + +CONFIG_COMMON_CLK=y + +# Device tree +CONFIG_DTC=y +CONFIG_OF=y +CONFIG_USE_OF=y +CONFIG_OF_DEVICE=y +CONFIG_OF_IRQ=y +CONFIG_DMA_OF=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_GPIO=y +CONFIG_I2C_MUX_PINCTRL=m +CONFIG_OF_MDIO=m + +CONFIG_OF_DISPLAY_TIMING=y +CONFIG_OF_VIDEOMODE=y + +# General vexpress ARM drivers +CONFIG_ARM_AMBA=y +CONFIG_ARM_TIMER_SP804=y + +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_8250_DW=y + +CONFIG_RTC_DRV_PL030=y +CONFIG_RTC_DRV_PL031=y + +# disable because it's currently broken on highbank :-/ +# CONFIG_PL330_DMA is not set +CONFIG_AMBA_PL08X=y +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_I2C_VERSATILE=m +CONFIG_GPIO_PL061=y +CONFIG_SENSORS_VEXPRESS=m +CONFIG_FB_ARMCLCD=m +CONFIG_REGULATOR_VEXPRESS=m + +# usb +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_ULPI=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +CONFIG_USB_ISP1760_HCD=m + +# Multifunction Devices +CONFIG_MFD_SYSCON=y +CONFIG_MFD_TPS65912_SPI=y +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_MC13XXX_SPI is not set + +# Pin stuff +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=m +# CONFIG_PINCTRL_SAMSUNG is not set +# CONFIG_PINCTRL_EXYNOS4 is not set + +# GPIO +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_EXTCON_GPIO=m +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_ADNP=m +CONFIG_GPIO_MCP23S08=m +CONFIG_POWER_RESET_GPIO=y +CONFIG_RFKILL_GPIO=m +CONFIG_SERIAL_8250_EM=m +CONFIG_INPUT_GPIO_TILT_POLLED=m +CONFIG_MDIO_BUS_MUX_GPIO=m +CONFIG_MDIO_BUS_MUX_MMIOREG=m +CONFIG_LEDS_GPIO=m +CONFIG_GPIOLIB=y +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_74X164=m +CONFIG_GPIO_TPS65912=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_CHARGER_GPIO=m + +CONFIG_SPI=y +CONFIG_SPI_GPIO=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_PL022=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_ALTERA=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_S3C64XX=m +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_XCOMM=m +CONFIG_SPI_XILINX=m +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_TLE62X0=m + +# HW crypto and rng +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_AES_ARM=m + +# EDAC +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_LEGACY_SYSFS=y + +# Watchdog +CONFIG_MPCORE_WATCHDOG=m + +# Thermal / powersaving +CONFIG_THERMAL=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_ARM_PSCI=y + +# MTD +CONFIG_MTD_OF_PARTS=y +# CONFIG_MG_DISK is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y +CONFIG_MTD_DATAFLASH_OTP=y +CONFIG_MTD_M25P80=m +CONFIG_MTD_SST25L=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_93XX46=m + +# MMC/SD +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SPI=m +CONFIG_MMC_DW=m +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_PCI=m +CONFIG_SPI_DW_MMIO=m +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_IDMAC is not set + +# Sound +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_SOC=m +CONFIG_SND_SPI=y +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_SOC_ALL_CODECS=m +# CONFIG_SND_ATMEL_SOC is not set + +# Displays +CONFIG_FB_SSD1307=m + +# PWM +CONFIG_PWM=y +CONFIG_BACKLIGHT_PWM=m + +# RTC +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_RX4581=m + +# Regulators +CONFIG_REGULATOR=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_CHARGER_MANAGER=y +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8973=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_LP8755=m +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS65912=m + +CONFIG_SENSORS_AD7314=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_LIS3_SPI=m +CONFIG_SENSORS_GPIO_FAN=m + +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_LD9040=m +CONFIG_LCD_AMS369FG06=m +CONFIG_LCD_LMS501KF03=m +CONFIG_LCD_HX8357=m + +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_GP2A=m +CONFIG_INPUT_ARIZONA_HAPTICS=m +CONFIG_INPUT_MC13783_PWRBUTTON=m + + +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_TSC2005=m + +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_PWM=m +CONFIG_BMP085_SPI=m + +# Ethernet +CONFIG_KS8851=m +CONFIG_ENC28J60=m +CONFIG_LIBERTAS_SPI=m +CONFIG_P54_SPI=m +CONFIG_P54_SPI_DEFAULT_EEPROM=n +CONFIG_MICREL_KS8995MA=m +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_MRF24J40=m + +CONFIG_ARM_KPROBES_TEST=m + +# jffs2 +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_ZLIB=y + +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set + +# Should be in generic +CONFIG_ETHERNET=y +CONFIG_BPF_JIT=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set + +# CONFIG_PATA_PLATFORM is not set +CONFIG_PERF_EVENTS=y + +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_DRM_EXYNOS is not set +# CONFIG_DRM_TILCDC is not set +# CONFIG_DRM_IMX is not set +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +# CONFIG_CS89x0 is not set +# CONFIG_DM9000 is not set +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +# CONFIG_I2C_NOMADIK is not set +# CONFIG_LEDS_RENESAS_TPU is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_EZX_PCAP is not set + +# Needs work/investigation +# CONFIG_ARM_CHARLCD is not set +# CONFIG_MTD_AFS_PARTS is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_M25PXX_USE_FAST_READ is not set +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_IFX6X60 is not set + +# these modules all fail with missing __bad_udelay +# http://www.spinics.net/lists/arm/msg15615.html provides some background +# CONFIG_SUNGEM is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_RADEON is not set +# 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’ +# CONFIG_SND_ALI5451 is not set +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_MLX4_EN is not set + +# Debug options. We need to deal with them at some point like x86 +# CONFIG_COMMON_CLK_DEBUG is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_DEBUG_PINCTRL is not set diff --git a/config-armv7-tegra b/config-armv7-tegra new file mode 100644 index 000000000..20cda8a7b --- /dev/null +++ b/config-armv7-tegra @@ -0,0 +1,108 @@ +CONFIG_ARCH_TEGRA=y + +CONFIG_ARCH_TEGRA_2x_SOC=y +# CONFIG_ARCH_TEGRA_3x_SOC is not set +# CONFIG_ARCH_TEGRA_114_SOC is not set + +# CONFIG_NEON is not set +# These are supported in the LPAE kernel +# CONFIG_ARM_LPAE is not set +# CONFIG_XEN is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_ARM_VIRT_EXT is not set +# CONFIG_VIRTUALIZATION is not set + +# CONFIG_MACH_HARMONY is not set +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_VENTANA=y + +CONFIG_TEGRA_PCI=y +CONFIG_TEGRA_IOMMU_GART=y +CONFIG_TEGRA_IOMMU_SMMU=y + +CONFIG_I2C_TEGRA=m + +# This block is temporary until we work out why the MMC modules don't work as modules +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF=y +CONFIG_MMC_SDHCI_TEGRA=y + +CONFIG_TEGRA_SYSTEM_DMA=y +CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m + +CONFIG_KEYBOARD_TEGRA=m +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA20=y +CONFIG_PINCTRL_TEGRA30=y +CONFIG_USB_EHCI_TEGRA=y +CONFIG_RTC_DRV_TEGRA=y + +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +CONFIG_SND_SOC_TEGRA_WM9712=m +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m +CONFIG_SND_SOC_TEGRA20_AC97=m + +# AC100 (PAZ00) +CONFIG_MFD_NVEC=y +CONFIG_MFD_TPS80031=y +CONFIG_KEYBOARD_NVEC=y +CONFIG_SERIO_NVEC_PS2=y +CONFIG_NVEC_POWER=y +CONFIG_POWER_SUPPLY=y +CONFIG_NVEC_LEDS=y +CONFIG_NVEC_PAZ00=y + +# CONFIG_MFD_TPS6586X is not set +# CONFIG_RTC_DRV_TPS6586X is not set + +CONFIG_PWM_TEGRA=m + +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 + +CONFIG_DRM_TEGRA=m + +CONFIG_CRYPTO_DEV_TEGRA_AES=m + +CONFIG_LEDS_RENESAS_TPU=y + +CONFIG_OF=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_TEGRA=y +CONFIG_OF_GPIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y + +# CONFIG_DRM_TEGRA_DEBUG is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_SPI_TOPCLIFF_PCH is not set +# CONFIG_SPI_DW_PCI is not set +# CONFIG_SPI_PXA2XX is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_EXYNOS5440 is not set 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/config-debug b/config-debug index ca1ba2b59..ad06116c7 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 @@ -73,6 +72,8 @@ CONFIG_DEBUG_PERF_USE_VMALLOC=y CONFIG_JBD2_DEBUG=y +CONFIG_NFSD_FAULT_INJECTION=y + CONFIG_DEBUG_BLK_CGROUP=y CONFIG_DRBD_FAULT_INJECTION=y @@ -95,6 +96,7 @@ CONFIG_PCI_DEFAULT_USE_CRS=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y CONFIG_TEST_LIST_SORT=y @@ -110,3 +112,8 @@ CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y +CONFIG_MAC80211_MESSAGE_TRACING=y + +CONFIG_EDAC_DEBUG=y +CONFIG_LATENCYTOP=y +CONFIG_SCHEDSTATS=y diff --git a/config-generic b/config-generic index 108a9a9f4..cd6cac369 100644 --- a/config-generic +++ b/config-generic @@ -4,6 +4,8 @@ CONFIG_MMU=y CONFIG_SMP=y CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LOCALVERSION="" CONFIG_CROSS_COMPILE="" CONFIG_DEFAULT_HOSTNAME="(none)" @@ -39,7 +41,7 @@ CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_SYSCTL=y -CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_BUF_SHIFT=18 # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set # CONFIG_EXPERT is not set @@ -52,7 +54,8 @@ CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_CFQ=y -CONFIG_USER_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_NAMESPACES=y CONFIG_PID_NS=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y @@ -66,12 +69,9 @@ CONFIG_PREEMPT_VOLUNTARY=y CONFIG_SLUB=y # CONFIG_SLUB_STATS is not set -CONFIG_MISC_DEVICES=y # CONFIG_AD525X_DPOT is not set # CONFIG_ATMEL_PWM is not set -CONFIG_IWMC3200TOP=m -# CONFIG_IWMC3200TOP_DEBUG is not set -CONFIG_IWMC3200TOP_DEBUGFS=y +# CONFIG_IWMC3200TOP is not set # # Loadable module support @@ -91,6 +91,7 @@ CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y CONFIG_HT_IRQ=y CONFIG_PCI_MSI=y +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y CONFIG_PCIEASPM=y @@ -101,7 +102,6 @@ CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_HOTPLUG_PCI_FAKE=m # CONFIG_ISA is not set -# CONFIG_MCA is not set # CONFIG_SCx200 is not set # @@ -128,6 +128,7 @@ CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_TIFM_SD=m CONFIG_MMC_WBSD=m @@ -136,6 +137,7 @@ CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_CB710=m CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_USHC=m +CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_VUB300=m CONFIG_CB710_CORE=m @@ -165,6 +167,7 @@ CONFIG_MLX4_INFINIBAND=m CONFIG_INFINIBAND_NES=m # CONFIG_INFINIBAND_NES_DEBUG is not set CONFIG_INFINIBAND_QIB=m +# CONFIG_INFINIBAND_OCRDMA is not set # # Executable file formats @@ -185,36 +188,87 @@ CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set + +# CONFIG_CMA is not set + # CONFIG_SPI is not set # # Memory Technology Devices (MTD) # -# CONFIG_MTD is not set +CONFIG_MTD=m +# CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_AR7_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_CHAR is not set +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# # CONFIG_MTD_CFI is not set # CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# # CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_TS5500 is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# Self-contained MTD device drivers +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +CONFIG_MTD_PHRAM=m # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# # CONFIG_MTD_DOCG3 is not set +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_ONENAND is not set # CONFIG_MTD_NAND_VERIFY_WRITE is not set # CONFIG_MTD_NAND_ECC_BCH is not set # CONFIG_MTD_NAND_MUSEUM_IDS is not set # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_LPDDR is not set -# CONFIG_MTD_UBI is not set - +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +CONFIG_MTD_UBI_GLUEBI=m # # Parallel port support @@ -249,20 +303,14 @@ CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_NBD=m -# CONFIG_BLK_DEV_NVME is not set +CONFIG_BLK_DEV_NVME=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_INITRD=y -CONFIG_BLK_DEV_ATIIXP=y -CONFIG_LBD=y CONFIG_BLK_DEV_IO_TRACE=y -CONFIG_BLK_DEV_DELKIN=m -# CONFIG_BLK_DEV_IT8213 is not set -# CONFIG_BLK_DEV_TC86C001 is not set -CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -274,64 +322,20 @@ CONFIG_BLK_DEV_THROTTLING=y # # CONFIG_IDE is not set -CONFIG_BLK_DEV_IDE=y - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -CONFIG_BLK_DEV_IDECS=m -CONFIG_BLK_DEV_IDECD=m -# CONFIG_BLK_DEV_IDETAPE is not set -CONFIG_IDE_TASK_IOCTL=y -# CONFIG_BLK_DEV_IDE_SATA is not set - -# -# IDE chipset support/bugfixes -# -CONFIG_BLK_DEV_CMD640=y -CONFIG_BLK_DEV_CMD640_ENHANCED=y -CONFIG_BLK_DEV_IDEPCI=y -# CONFIG_BLK_DEV_OFFBOARD is not set -CONFIG_BLK_DEV_GENERIC=y -# CONFIG_BLK_DEV_OPTI621 is not set -CONFIG_BLK_DEV_RZ1000=y -CONFIG_BLK_DEV_IDEDMA_PCI=y -CONFIG_BLK_DEV_AEC62XX=y -CONFIG_BLK_DEV_ALI15X3=y -# CONFIG_BLK_DEV_AMD74XX is not set -CONFIG_BLK_DEV_CMD64X=y -CONFIG_BLK_DEV_TRIFLEX=y -# CONFIG_BLK_DEV_CY82C693 is not set -CONFIG_BLK_DEV_CS5520=y -CONFIG_BLK_DEV_CS5530=y -CONFIG_BLK_DEV_CS5535=y -CONFIG_BLK_DEV_HPT366=y -CONFIG_BLK_DEV_IT821X=y -CONFIG_BLK_DEV_JMICRON=y -# CONFIG_BLK_DEV_SC1200 is not set -CONFIG_BLK_DEV_PIIX=y -# CONFIG_BLK_DEV_NS87415 is not set -CONFIG_BLK_DEV_PDC202XX_OLD=y -CONFIG_BLK_DEV_PDC202XX_NEW=y -CONFIG_BLK_DEV_SVWKS=y -CONFIG_BLK_DEV_SIIMAGE=y -CONFIG_BLK_DEV_SIS5513=y -# CONFIG_BLK_DEV_SLC90E66 is not set -# CONFIG_BLK_DEV_TRM290 is not set -CONFIG_BLK_DEV_VIA82CXXX=y -CONFIG_BLK_DEV_IDEDMA=y # CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_RSXX is not set CONFIG_SCSI_VIRTIO=m CONFIG_VIRTIO_BLK=m CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set CONFIG_VIRTIO_NET=m -CONFIG_VMXNET3=m CONFIG_HW_RANDOM_VIRTIO=m CONFIG_VIRTIO_CONSOLE=y CONFIG_VHOST_NET=m +CONFIG_TCM_VHOST=m # # SCSI device support @@ -345,6 +349,7 @@ CONFIG_SCSI_SRP=m CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_TGT=m CONFIG_SCSI_ISCI=m +CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m @@ -392,7 +397,8 @@ CONFIG_SCSI_3W_9XXX=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m -CONFIG_SCSI_AIC7XXX_OLD=m +# http://lists.fedoraproject.org/pipermail/kernel/2013-February/004102.html +# CONFIG_SCSI_AIC7XXX_OLD is not set CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 # CONFIG_AIC7XXX_BUILD_FIRMWARE is not set @@ -421,6 +427,12 @@ CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS_LOGGING=y +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS_LOGGING=y + +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m CONFIG_SCSI_MVUMI=m @@ -430,6 +442,7 @@ CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_SCSI_PMCRAID=m @@ -443,7 +456,7 @@ CONFIG_SCSI_ARCMSR=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_FLASHPOINT=y -# CONFIG_SCSI_DMX3191D is not set +CONFIG_SCSI_DMX3191D=m # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA_PIO is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set @@ -467,8 +480,11 @@ CONFIG_SCSI_DC395x=m CONFIG_SCSI_DEBUG=m CONFIG_SCSI_DC390T=m CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m CONFIG_SCSI_QLA_ISCSI=m -# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_IPR=m +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPR_DUMP=y # CONFIG_SCSI_DPT_I2O is not set CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set @@ -481,6 +497,7 @@ CONFIG_ATA_BMDMA=y CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_SFF=y CONFIG_ATA_PIIX=y +# CONFIG_SATA_HIGHBANK is not set CONFIG_ATA_ACPI=y CONFIG_BLK_DEV_SX8=m CONFIG_PDC_ADMA=m @@ -500,6 +517,7 @@ CONFIG_SATA_SX4=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m +# CONFIG_SATA_ZPODD is not set CONFIG_SATA_ACARD_AHCI=m # CONFIG_PATA_LEGACY is not set @@ -571,11 +589,14 @@ CONFIG_ASYNC_RAID6_TEST=m CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=m CONFIG_DM_DEBUG=y -# CONFIG_DM_DELAY is not set +CONFIG_DM_DELAY=m CONFIG_DM_MIRROR=y CONFIG_DM_MULTIPATH=m CONFIG_DM_SNAPSHOT=y CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CACHE_CLEANER=m # CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set # CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_UEVENT=y @@ -585,6 +606,7 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_RAID=m CONFIG_DM_FLAKEY=m +CONFIG_DM_VERITY=m # # Fusion MPT device support @@ -607,6 +629,7 @@ CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_NOSY=m +CONFIG_FIREWIRE_SERIAL=m # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # @@ -650,6 +673,7 @@ CONFIG_TCP_MD5SIG=y # Networking options # CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_NET_KEY=m @@ -677,6 +701,7 @@ CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y CONFIG_SYN_COOKIES=y +CONFIG_NET_IPVTI=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -728,6 +753,7 @@ CONFIG_IPV6_MIP6=y CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_GRE is not set CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_MROUTE=y @@ -747,9 +773,10 @@ CONFIG_NET_9P_RDMA=m # CONFIG_DECNET is not set CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y # PHY timestamping adds overhead -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y @@ -757,6 +784,7 @@ CONFIG_NF_CONNTRACK=m CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=y @@ -771,8 +799,10 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m @@ -786,10 +816,12 @@ CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y @@ -851,6 +883,7 @@ CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CONNTRACK_IPV4=y CONFIG_NF_CONNTRACK_IPV6=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_NAT=m @@ -858,6 +891,8 @@ CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_SCTP=m CONFIG_NF_CT_NETLINK=m +# CONFIG_NF_CT_NETLINK_TIMEOUT is not set +CONFIG_NF_CT_NETLINK_HELPER=m CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_IP_NF_MATCH_AH=m @@ -865,7 +900,6 @@ CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_ECN=m @@ -873,6 +907,8 @@ CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_TARGET_TTL=m +CONFIG_NF_NAT_IPV4=m +CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m @@ -904,6 +940,9 @@ CONFIG_IP6_NF_SECURITY=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_TARGET_HL=m +CONFIG_NF_NAT_IPV6=m +# CONFIG_IP6_NF_TARGET_MASQUERADE is not set +# CONFIG_IP6_NF_TARGET_NPT is not set # # Bridge: Netfilter Configuration @@ -964,12 +1003,15 @@ CONFIG_IP_SCTP=m CONFIG_NET_SCTPPROBE=m # CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_HMAC_NONE is not set -CONFIG_SCTP_HMAC_SHA1=y -# CONFIG_SCTP_HMAC_MD5 is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y CONFIG_ATM=m CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y CONFIG_LLC=m # CONFIG_LLC2 is not set CONFIG_IPX=m @@ -994,7 +1036,8 @@ CONFIG_IP_DCCP_CCID3=y # # TIPC Configuration (EXPERIMENTAL) # -# CONFIG_TIPC is not set +CONFIG_TIPC=m +CONFIG_TIPC_PORTS=8192 # CONFIG_TIPC_ADVANCED is not set # CONFIG_TIPC_DEBUG is not set @@ -1022,6 +1065,9 @@ CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_PLUG=m CONFIG_NET_CLS=y CONFIG_NET_CLS_ACT=y CONFIG_NET_CLS_BASIC=m @@ -1043,6 +1089,7 @@ CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_IPSET=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_ACT_CSUM=m @@ -1057,7 +1104,13 @@ CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_DCB=y -# CONFIG_OPENVSWITCH is not set +CONFIG_DNS_RESOLVER=m +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m +CONFIG_VSOCKETS=m CONFIG_NETPRIO_CGROUP=m @@ -1079,10 +1132,13 @@ CONFIG_IFB=m CONFIG_NET_TEAM=m CONFIG_NET_TEAM_MODE_ROUNDROBIN=m CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m +CONFIG_NET_TEAM_MODE_BROADCAST=m CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m +CONFIG_VXLAN=m CONFIG_EQUALIZER=m CONFIG_TUN=m CONFIG_VETH=m @@ -1163,6 +1219,9 @@ CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1C=m CONFIG_ATL1E=m +CONFIG_NET_CADENCE=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_MACB=m CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m @@ -1219,16 +1278,22 @@ CONFIG_E100=m CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m +CONFIG_IGB_HWMON=y CONFIG_IGB_DCA=y +CONFIG_IGB_PTP=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBEVF=m CONFIG_IXGBE=m CONFIG_IXGBE_DCA=y CONFIG_IXGBE_DCB=y +CONFIG_IXGBE_HWMON=y +CONFIG_IXGBE_PTP=y + # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MVMDIO=m CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -1259,6 +1324,7 @@ CONFIG_FORCEDETH=m CONFIG_NET_VENDOR_OKI=y # CONFIG_PCH_GBE is not set +# CONFIG_PCH_PTP is not set CONFIG_NET_PACKET_ENGINE=y CONFIG_HAMACHI=m @@ -1323,13 +1389,20 @@ CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_VELOCITY=m +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=m CONFIG_PHYLIB=y +CONFIG_AT803X_PHY=m +CONFIG_AMD_PHY=m CONFIG_BROADCOM_PHY=m +CONFIG_BCM87XX_PHY=m CONFIG_CICADA_PHY=m CONFIG_DAVICOM_PHY=m +CONFIG_DP83640_PHY=m CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m CONFIG_NATIONAL_PHY=m @@ -1358,6 +1431,8 @@ CONFIG_NET_PCI=y CONFIG_B44=m CONFIG_B44_PCI=y CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y CONFIG_CNIC=m CONFIG_FEALNX=m CONFIG_NET_POCKET=y @@ -1372,11 +1447,9 @@ CONFIG_JME=m # # Ethernet (10000 Mbit) # -CONFIG_IP1000=m -CONFIG_MLX4_EN=m -# CONFIG_MLX4_DEBUG is not set -CONFIG_SFC=m -# CONFIG_SFC_MTD is not set +# CONFIG_IP1000 is not set +# CONFIG_MLX4_EN is not set +# CONFIG_SFC is not set # CONFIG_FDDI is not set # CONFIG_DEFXX is not set @@ -1393,7 +1466,10 @@ CONFIG_IPPP_FILTER=y CONFIG_PPP_BSDCOMP=y CONFIG_PPPOE=m CONFIG_PPP_MPPE=m -# CONFIG_SLIP is not set +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +# CONFIG_SLIP_MODE_SLIP6 is not set # # Wireless LAN @@ -1413,7 +1489,7 @@ CONFIG_CFG80211_DEFAULT_PS=y CONFIG_NL80211=y # CONFIG_NL80211_TESTMODE is not set CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y +# CONFIG_WIRELESS_EXT_SYSFS is not set CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m @@ -1435,44 +1511,51 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_WIMAX_I2400M_USB=m CONFIG_WIMAX_I2400M_SDIO=m CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 -CONFIG_WIMAX_IWMC3200_SDIO=y +# CONFIG_WIMAX_IWMC3200_SDIO is not set -CONFIG_ADM8211=m +# CONFIG_ADM8211 is not set CONFIG_ATH_COMMON=m +CONFIG_ATH_CARDS=m CONFIG_ATH5K=m CONFIG_ATH5K_DEBUG=y # CONFIG_ATH5K_TRACER is not set CONFIG_ATH6KL=m CONFIG_ATH6KL_DEBUG=y +CONFIG_ATH6KL_SDIO=m +CONFIG_ATH6KL_USB=m +CONFIG_AR5523=m CONFIG_ATH9K=m CONFIG_ATH9K_PCI=y CONFIG_ATH9K_AHB=y # CONFIG_ATH9K_DEBUG is not set +# CONFIG_ATH9K_MAC_DEBUG is not set CONFIG_ATH9K_DEBUGFS=y CONFIG_ATH9K_HTC=m CONFIG_ATH9K_BTCOEX_SUPPORT=y # CONFIG_ATH9K_HTC_DEBUGFS is not set -CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_WIL6210=m +CONFIG_WIL6210_ISR_COR=y CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y # CONFIG_CARL9170_HWRNG is not set CONFIG_AT76C50X_USB=m -CONFIG_AIRO=m -CONFIG_AIRO_CS=m -CONFIG_ATMEL=m +# CONFIG_AIRO is not set +# CONFIG_AIRO_CS is not set +# CONFIG_ATMEL is not set 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_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 @@ -1481,6 +1564,10 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y CONFIG_BRCMSMAC=m CONFIG_BRCMFMAC=m CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_SDIO_OOB=y +CONFIG_BRCMFMAC_USB=y +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMISCAN is not set # CONFIG_BRCMDBG is not set CONFIG_HERMES=m CONFIG_HERMES_CACHE_FW_ON_INIT=y @@ -1490,12 +1577,9 @@ CONFIG_PCI_HERMES=m CONFIG_PLX_HERMES=m CONFIG_PCMCIA_HERMES=m CONFIG_ORINOCO_USB=m -CONFIG_HOSTAP=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_FIRMWARE=y -CONFIG_HOSTAP_FIRMWARE_NVRAM=y -CONFIG_HOSTAP_CS=m +# CONFIG_TMD_HERMES is not set +# CONFIG_PCMCIA_SPECTRUM is not set +# CONFIG_HOSTAP is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_IPW2100_DEBUG is not set @@ -1506,14 +1590,16 @@ CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_CS=m CONFIG_LIBERTAS_SDIO=m # CONFIG_LIBERTAS_DEBUG is not set -CONFIG_LIBERTAS_THINFIRM=m -CONFIG_LIBERTAS_THINFIRM_USB=m -# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +# CONFIG_LIBERTAS_THINFIRM is not set CONFIG_LIBERTAS_MESH=y CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m CONFIG_IWLWIFI_DEBUG=y CONFIG_IWLWIFI_DEBUGFS=y CONFIG_IWLWIFI_DEVICE_SVTOOL=y +# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set +CONFIG_IWLWIFI_UCODE16=y # CONFIG_IWLWIFI_P2P is not set CONFIG_IWLEGACY=m CONFIG_IWLEGACY_DEBUG=y @@ -1521,20 +1607,15 @@ CONFIG_IWLEGACY_DEBUGFS=y # CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set CONFIG_IWL4965=y CONFIG_IWL3945=m +# CONFIG_IWM is not set # CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set -CONFIG_IWM=m -# CONFIG_IWM_DEBUG is not set -# CONFIG_IWM_TRACING is not set CONFIG_MAC80211_HWSIM=m CONFIG_P54_COMMON=m CONFIG_P54_USB=m CONFIG_P54_PCI=m -CONFIG_PCI_ATMEL=m CONFIG_MWL8K=m # CONFIG_PRISM54 is not set -CONFIG_PCMCIA_SPECTRUM=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_PCMCIA_WL3501=m +# CONFIG_PCMCIA_WL3501 is not set CONFIG_RT2X00=m CONFIG_RT2X00_LIB_DEBUGFS=y # CONFIG_RT2X00_DEBUG is not set @@ -1548,17 +1629,19 @@ CONFIG_RT2800USB_RT35XX=y CONFIG_RT2800USB_RT53XX=y CONFIG_RT2800USB_UNKNOWN=y CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT3290=y CONFIG_RT2800PCI_RT33XX=y CONFIG_RT2800PCI_RT35XX=y CONFIG_RT2800PCI_RT53XX=y CONFIG_RT73USB=m CONFIG_RTL8180=m CONFIG_RTL8187=m -CONFIG_TMD_HERMES=m -CONFIG_USB_ZD1201=m +# CONFIG_USB_ZD1201 is not set CONFIG_USB_NET_RNDIS_WLAN=m CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_NET_SMSC75XX=m +# CONFIG_WL_TI is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -1573,14 +1656,18 @@ CONFIG_WL1251=m CONFIG_WL1251_SPI=m CONFIG_WL1251_SDIO=m +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m CONFIG_RTL8192CU=m CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m CONFIG_MWIFIEX=m CONFIG_MWIFIEX_SDIO=m CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_USB=m # # Token Ring devices @@ -1622,7 +1709,20 @@ CONFIG_BAYCOM_PAR=m CONFIG_BAYCOM_EPP=m CONFIG_YAM=m -# CONFIG_NFC is not set +CONFIG_NFC=m +CONFIG_NFC_NCI=m +CONFIG_NFC_HCI=m +CONFIG_NFC_SHDLC=y +CONFIG_NFC_LLCP=y + +# +# Near Field Communication (NFC) devices +# +CONFIG_NFC_PN544=m +CONFIG_NFC_PN544_I2C=m +CONFIG_NFC_PN533=m +CONFIG_NFC_MICROREAD=m +CONFIG_NFC_MICROREAD_I2C=m # # IrDA (infrared) support @@ -1686,6 +1786,7 @@ CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m @@ -1840,6 +1941,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_MATRIXKMAP is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m @@ -1873,6 +1975,7 @@ CONFIG_SERIO_SERPORT=y CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_PS2MULT is not set +CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set @@ -1890,6 +1993,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_ADP5589 is not set @@ -1901,6 +2005,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_OMAP4 is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set @@ -1911,6 +2016,8 @@ CONFIG_MOUSE_VSXXXAA=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +CONFIG_MOUSE_CYAPA=m CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_ANALOG=m CONFIG_JOYSTICK_A3D=m @@ -1947,7 +2054,9 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_AD7879 is not set CONFIG_TOUCHSCREEN_AD7879_I2C=m # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EDT_FT5X06=m CONFIG_TOUCHSCREEN_EETI=m CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_ELO=m @@ -1955,6 +2064,8 @@ CONFIG_TOUCHSCREEN_FUJITSU=m CONFIG_TOUCHSCREEN_GUNZE=m # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_ILI210X=m +CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_MCS5000=m CONFIG_TOUCHSCREEN_MK712=m @@ -1968,6 +2079,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m CONFIG_TOUCHSCREEN_PIXCIR=m CONFIG_TOUCHSCREEN_UCB1400=m CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WACOM_I2C=m CONFIG_TOUCHSCREEN_USB_E2I=y CONFIG_TOUCHSCREEN_USB_COMPOSITE=m # CONFIG_TOUCHSCREEN_WM97XX is not set @@ -1976,9 +2088,12 @@ CONFIG_TOUCHSCREEN_W90X900=m CONFIG_TOUCHSCREEN_ST1232=m CONFIG_TOUCHSCREEN_ATMEL_MXT=m # CONFIG_TOUCHSCREEN_MAX11801 is not set +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m CONFIG_INPUT_MISC=y CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_RETU_PWRBUTTON=m CONFIG_INPUT_UINPUT=m CONFIG_INPUT_WISTRON_BTNS=m CONFIG_INPUT_ATLAS_BTNS=m @@ -2019,15 +2134,18 @@ CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_TCG_TPM=m CONFIG_TCG_TIS=m +# CONFIG_TCG_TIS_I2C_INFINEON is not set CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m # CONFIG_TCG_INFINEON is not set +# CONFIG_TCG_ST33_I2C is not set CONFIG_TELCLOCK=m # # Serial drivers # CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 @@ -2045,6 +2163,7 @@ CONFIG_CYCLADES=m # CONFIG_ISI is not set # CONFIG_RIO is not set CONFIG_SERIAL_JSM=m +# CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_MFD_HSU is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set @@ -2053,6 +2172,7 @@ CONFIG_SERIAL_JSM=m # # Non-8250 serial port support # +# CONFIG_SERIAL_KGDB_NMI is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_XILINX_PS_UART is not set @@ -2099,6 +2219,8 @@ CONFIG_I2C_ALGOPCA=m # CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_INTEL_MID is not set # CONFIG_I2C_EG20T is not set +# CONFIG_I2C_CBUS_GPIO is not set +CONFIG_I2C_VIPERBOARD=m CONFIG_EEPROM_AT24=m CONFIG_EEPROM_LEGACY=m @@ -2141,6 +2263,7 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m @@ -2160,6 +2283,7 @@ CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_HDAPS=m +# CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_I5K_AMB is not set # FIXME: IBMAEM x86 only? CONFIG_SENSORS_IBMAEM=m @@ -2183,12 +2307,15 @@ CONFIG_SENSORS_LM93=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SIS5595=m +CONFIG_CHARGER_SMB347=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m @@ -2220,6 +2347,8 @@ CONFIG_SENSORS_WM8350=m CONFIG_SENSORS_WM831X=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA209=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_EMC1403=m @@ -2256,14 +2385,38 @@ CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m # CONFIG_HMC6352 is not set # CONFIG_BMP085 is not set +# CONFIG_BMP085_I2C is not set # CONFIG_PCH_PHUB is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_USB_SWITCH_FSA9480 is not set +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +# CONFIG_SERIAL_RP2 is not set -# CONFIG_W1 is not set +CONFIG_W1=m +CONFIG_W1_CON=y +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +# CONFIG_HDQ_MASTER_OMAP is not set +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_BQ27000=m # # Mice @@ -2323,12 +2476,14 @@ CONFIG_W83697UG_WDT=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_TPM=m # CONFIG_NVRAM is not set # CONFIG_RTC is not set # CONFIG_RTC_DEBUG is not set # CONFIG_GEN_RTC is not set CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y +# CONFIG_RTC_SYSTOHC is not set CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y @@ -2355,7 +2510,9 @@ CONFIG_RTC_DRV_RS5C372=m # CONFIG_RTC_DRV_SA1100 is not set # CONFIG_RTC_DRV_TEST is not set CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8523=m CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_DS2404=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_RX8581=m @@ -2371,6 +2528,10 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_EM3027=m CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_ISL12022=m +# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_R3964=m # CONFIG_APPLICOM is not set @@ -2397,24 +2558,35 @@ CONFIG_VGA_ARB_MAX_GPUS=16 # CONFIG_STUB_POULSBO is not set CONFIG_DRM=m +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +# CONFIG_DRM_AST is not set # do not enable on f17 or older +# CONFIG_DRM_CIRRUS_QEMU is not set # do not enable on f17 or older # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m CONFIG_DRM_RADEON_KMS=y +# CONFIG_DRM_RADEON_UMS is not set # CONFIG_DRM_I810 is not set # CONFIG_DRM_MGA is not set +# CONFIG_DRM_MGAG200 is not set # do not enable on f17 or older # CONFIG_DRM_SIS is not set # CONFIG_DRM_SAVAGE is not set CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y -# CONFIG_DRM_VIA is not set +CONFIG_DRM_VIA=m CONFIG_DRM_NOUVEAU=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_NOUVEAU_DEBUG=y # CONFIG_DRM_PSB is not set CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I2C_NXP_TDA998X=m +# CONFIG_DRM_UDL is not set CONFIG_DRM_VMWGFX=m +# CONFIG_DRM_VMWGFX_FBCON is not set +CONFIG_DRM_VGEM=m # # PCMCIA character devices @@ -2429,15 +2601,23 @@ CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 CONFIG_HANGCHECK_TIMER=m +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_MEDIA_PCI_SUPPORT=y # # Multimedia devices # CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_V4L2_INT_DEVICE is not set CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_VIVI is not set @@ -2452,6 +2632,7 @@ CONFIG_V4L_USB_DRIVERS=y CONFIG_VIDEO_CAPTURE_DRIVERS=y CONFIG_V4L_PCI_DRIVERS=y CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y CONFIG_VIDEO_BT848=m CONFIG_VIDEO_BT848_DVB=y CONFIG_VIDEO_BWQCAM=m @@ -2481,6 +2662,7 @@ CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_HEXIUM_GEMINI=m CONFIG_VIDEO_IVTV=m +# CONFIG_VIDEO_IVTV_ALSA is not set CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MXB=m CONFIG_VIDEO_PVRUSB2_DVB=y @@ -2492,6 +2674,8 @@ CONFIG_VIDEO_SAA7134_ALSA=m CONFIG_VIDEO_SAA7134_DVB=m CONFIG_VIDEO_SAA7134_RC=y CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y CONFIG_VIDEO_W9966=m CONFIG_VIDEO_ZORAN=m CONFIG_VIDEO_ZORAN_AVS6EYES=m @@ -2511,6 +2695,7 @@ CONFIG_VIDEO_TM6000_DVB=m CONFIG_VIDEO_TLG2300=m # CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_M5MOLS is not set +# CONFIG_EXYNOS_VIDEO is not set CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y @@ -2519,30 +2704,18 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # Radio Adapters # CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=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 -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_MEDIA_TUNER_MAX2165=m -CONFIG_MEDIA_TUNER_TDA18218=m -CONFIG_MEDIA_TUNER_TDA18212=m + +# +# V4L/DVB tuners +# Selected automatically by not setting CONFIG_MEDIA_TUNER_CUSTOMISE +# +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set # # Digital Video Broadcasting Devices @@ -2553,80 +2726,21 @@ CONFIG_DVB_NET=y CONFIG_DVB_MAX_ADAPTERS=8 CONFIG_DVB_DYNAMIC_MINORS=y -CONFIG_DVB_FE_CUSTOMISE=y -CONFIG_DVB_STB0899=m -CONFIG_DVB_STB6100=m -CONFIG_DVB_STV090x=m -CONFIG_DVB_STV6110x=m -CONFIG_DVB_DRXK=m -CONFIG_DVB_TDA18271C2DD=m -CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_MT312=m -CONFIG_DVB_ZL10036=m -CONFIG_DVB_ZL10039=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8261=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TUA6100=m -CONFIG_DVB_CX24116=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_DS3000=m -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_S5H1432=m -CONFIG_DVB_IX2505V=m -CONFIG_DVB_L64781=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_DIB7000M=m -CONFIG_DVB_DIB7000P=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_TDA10023=m -CONFIG_DVB_STV0297=m -CONFIG_DVB_NXT200X=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_S5H1409=m -CONFIG_DVB_AU8522=m -CONFIG_DVB_S5H1411=m -CONFIG_DVB_DIB8000=m -CONFIG_DVB_TUNER_DIB0070=m -CONFIG_DVB_TUNER_DIB0090=m -CONFIG_DVB_LNBP21=m -CONFIG_DVB_ISL6421=m -CONFIG_DVB_ISL6423=m -CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_MB86A16=m -CONFIG_DVB_DRXD=m -CONFIG_DVB_CXD2820R=m +# +# DVB frontends +# Selected automatically by not setting CONFIG_DVB_FE_CUSTOMISE +# +# CONFIG_DVB_FE_CUSTOMISE is not set # -# Supported Frontend Modules +# Supported DVB bridge Modules # CONFIG_DVB_BT8XX=m CONFIG_DVB_BUDGET_CORE=m CONFIG_DVB_PLUTO2=m CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_SMS_USB_DRV=m CONFIG_SMS_SDIO_DRV=m CONFIG_DVB_TTUSB_DEC=m @@ -2639,27 +2753,13 @@ CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_IT913X=m CONFIG_DVB_USB_MXL111SF=m -CONFIG_DVB_TDA10071=m -CONFIG_DVB_LNBP22=m -CONFIG_DVB_A8293=m -CONFIG_DVB_IT913X_FE=m CONFIG_DVB_DM1105=m -CONFIG_DVB_S921=m -CONFIG_DVB_ISL6405=m -CONFIG_DVB_LGS8GL5=m -CONFIG_DVB_DUMMY_FE=m CONFIG_DVB_FIREDTV=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m -CONFIG_DVB_MB86A20S=m CONFIG_DVB_USB_TECHNISAT_USB2=m -CONFIG_DVB_DIB9000=m -CONFIG_DVB_HD29L2=m -CONFIG_DVB_STV0367=m +CONFIG_DVB_USB_V2=m -# -# Supported SAA7146 based PCI Adapters -# CONFIG_DVB_AV7110=m CONFIG_DVB_AV7110_OSD=y CONFIG_DVB_BUDGET=m @@ -2667,17 +2767,14 @@ CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m CONFIG_DVB_BUDGET_PATCH=m -# -# Supported USB Adapters -# CONFIG_DVB_TTUSB_BUDGET=m -# -# Supported FlexCopII (B2C2) Adapters -# CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set + CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set CONFIG_DVB_USB=m @@ -2704,7 +2801,10 @@ CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_AZ6007=m CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_AF9035=m CONFIG_DVB_PT1=m @@ -2721,8 +2821,11 @@ CONFIG_VIDEO_PVRUSB2_SYSFS=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_RC_CORE=m +CONFIG_RC_DECODERS=y +CONFIG_LIRC=m CONFIG_RC_LOOPBACK=m CONFIG_RC_MAP=m +CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m @@ -2742,8 +2845,15 @@ CONFIG_IR_REDRAT3=m CONFIG_IR_ENE=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_TTUSBIR=m +CONFIG_IR_GPIO_CIR=m CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_SH_VEU is not set +# CONFIG_V4L_TEST_DRIVERS is not set + # CONFIG_VIDEO_MEM2MEM_TESTDEV is not set # @@ -2768,12 +2878,14 @@ CONFIG_FB=y # CONFIG_FB_ATY_CT is not set # CONFIG_FB_ATY_GX is not set # CONFIG_FB_ASILIANT is not set +# CONFIG_FB_AUO_K190X is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_CIRRUS is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_HECUBA is not set # CONFIG_FB_HGA is not set +# CONFIG_FB_I740 is not set CONFIG_FB_I810=m CONFIG_FB_I810_GTF=y CONFIG_FB_I810_I2C=y @@ -2808,6 +2920,7 @@ CONFIG_FB_I810_I2C=y # CONFIG_FB_SM501 is not set # CONFIG_FB_SMSCUFX is not set CONFIG_FB_TILEBLITTING=y +CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TRIDENT is not set # CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y @@ -2824,6 +2937,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_TMIO is not set # CONFIG_FB_BROADSHEET is not set CONFIG_FB_UDL=m +# CONFIG_FB_GOLDFISH is not set # CONFIG_FIRMWARE_EDID is not set @@ -2947,6 +3061,7 @@ CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CA0132_DSP=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 @@ -3001,6 +3116,7 @@ CONFIG_SND_USB_6FIRE=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_SPEAKERS=m CONFIG_SND_ISIGHT=m +CONFIG_SND_SCS1X=m # # Open Sound System @@ -3021,7 +3137,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 @@ -3032,8 +3151,10 @@ CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y # CONFIG_USB_EHCI_MV is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_HCD_SSB is not set +# CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y CONFIG_USB_SL811_HCD=m CONFIG_USB_SL811_HCD_ISO=y @@ -3072,7 +3193,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 # @@ -3082,9 +3203,12 @@ CONFIG_USB_HID=y CONFIG_HID_SUPPORT=y -CONFIG_HID=m +CONFIG_HID=y +CONFIG_I2C_HID=m +CONFIG_HID_BATTERY_STRENGTH=y # debugging default is y upstream now CONFIG_HIDRAW=y +CONFIG_UHID=m CONFIG_HID_PID=y CONFIG_LOGITECH_FF=y CONFIG_HID_LOGITECH_DJ=m @@ -3107,9 +3231,11 @@ CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=y CONFIG_HID_QUANTA=y CONFIG_HID_PRIMAX=m +CONFIG_HID_PS3REMOTE=m CONFIG_HID_PRODIKEYS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_GYRATION=m +CONFIG_HID_ICADE=m CONFIG_HID_TWINHAN=m CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m @@ -3120,12 +3246,15 @@ CONFIG_HID_ROCCAT_KONE=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SUNPLUS=m +CONFIG_HID_STEELSERIES=m CONFIG_HID_GREENASIA=m CONFIG_HID_SMARTJOYPLUS=m CONFIG_HID_TOPSEED=m +CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZYDACRON=m +# CONFIG_HID_SENSOR_HUB is not set CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_UCLOGIC=m @@ -3136,6 +3265,7 @@ CONFIG_HID_ACRUX=m CONFIG_HID_ACRUX_FF=y CONFIG_HID_KEYTOUCH=m CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO_TPKBD=m CONFIG_HID_ROCCAT_ARVO=m CONFIG_HID_ROCCAT_ISKU=m CONFIG_HID_ROCCAT_KOVAPLUS=m @@ -3144,6 +3274,12 @@ CONFIG_HOLTEK_FF=y CONFIG_HID_SPEEDLINK=m CONFIG_HID_WIIMOTE=m CONFIG_HID_WIIMOTE_EXT=y +CONFIG_HID_KYE=m +CONFIG_HID_SAITEK=m +CONFIG_HID_TIVO=m +CONFIG_HID_GENERIC=y +CONFIG_HID_AUREAL=m + # # USB Imaging devices @@ -3223,6 +3359,7 @@ CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m @@ -3233,6 +3370,7 @@ CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_NET_CDC_EEM=m CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_ZAURUS=m CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_INT51X1=m @@ -3255,6 +3393,7 @@ CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y # CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_CHIPIDEA is not set # # USB port drivers @@ -3279,6 +3418,7 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_EMPEG=m +# CONFIG_USB_SERIAL_F81232 is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_GARMIN=m @@ -3304,9 +3444,11 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7715_PARPORT=y # CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_ZTE is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m CONFIG_USB_SERIAL_NAVMAN=m @@ -3327,8 +3469,10 @@ CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_XSENS_MT=m CONFIG_USB_SERIAL_DEBUG=m CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_QT2=m CONFIG_USB_SERIAL_CONSOLE=y @@ -3346,6 +3490,10 @@ CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m CONFIG_USB_ALI_M5632=y CONFIG_USB_APPLEDISPLAY=m +# CONFIG_OMAP_USB2 is not set +# CONFIG_OMAP_USB3 is not set +# CONFIG_OMAP_CONTROL_USB is not set +CONFIG_USB_RCAR_PHY=m CONFIG_USB_ATM=m CONFIG_USB_CXACRU=m # CONFIG_USB_C67X00_HCD is not set @@ -3364,6 +3512,8 @@ CONFIG_USB_FILE_STORAGE=m CONFIG_USB_IOWARRIOR=m CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_HSIC_USB3503=m CONFIG_USB_LCD=m CONFIG_USB_LD=m CONFIG_USB_LEGOTOWER=m @@ -3375,6 +3525,8 @@ CONFIG_USB_PWC_INPUT_EVDEV=y CONFIG_USB_SISUSBVGA=m CONFIG_USB_SISUSBVGA_CON=y CONFIG_RADIO_SI470X=y +CONFIG_USB_KEENE=m +CONFIG_USB_MA901=m CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m CONFIG_RADIO_SI4713=m @@ -3390,6 +3542,8 @@ CONFIG_USB_ZERO=m CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +# CONFIG_USB_ISP1301 is not set + # CONFIG_USB_OTG is not set # @@ -3402,6 +3556,7 @@ CONFIG_SSB_PCMCIAHOST=y # CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_GPIO=y # Multifunction USB devices # CONFIG_MFD_PCF50633 is not set @@ -3410,16 +3565,17 @@ CONFIG_PCF50633_GPIO=m # CONFIG_AB3100_CORE is not set CONFIG_INPUT_PCF50633_PMU=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_DS3232=m -CONFIG_RTC_DRV_ISL12022=m CONFIG_MFD_SUPPORT=y CONFIG_MFD_VX855=m CONFIG_MFD_SM501=m CONFIG_MFD_SM501_GPIO=y +CONFIG_MFD_RTSX_PCI=m +# CONFIG_MFD_TI_AM335X_TSCADC is not set +CONFIG_MFD_VIPERBOARD=m +# CONFIG_MFD_RETU is not set # CONFIG_MFD_TC6393XB is not set -CONFIG_MFD_WM8400=m +# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8350 is not set # CONFIG_MFD_WM831X is not set @@ -3428,6 +3584,7 @@ CONFIG_MFD_WM8400=m # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_LPC_SCH is not set +# CONFIG_LPC_ICH is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_ASIC3 is not set @@ -3443,6 +3600,11 @@ CONFIG_MFD_WM8400=m # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_ARIZONA is not set +# CONFIG_MFD_ARIZONA_I2C is not set # # File systems @@ -3489,7 +3651,7 @@ CONFIG_DNOTIFY=y CONFIG_AUTOFS4_FS=y # CONFIG_EXOFS_FS is not set # CONFIG_EXOFS_DEBUG is not set -# CONFIG_NILFS2_FS is not set +CONFIG_NILFS2_FS=m # CONFIG_LOGFS is not set CONFIG_CEPH_FS=m CONFIG_BLK_DEV_RBD=m @@ -3543,6 +3705,7 @@ CONFIG_DEBUG_FS=y # CONFIG_ADFS_FS is not set CONFIG_AFFS_FS=m CONFIG_ECRYPT_FS=m +# CONFIG_ECRYPT_FS_MESSAGING is not set CONFIG_HFS_FS=m CONFIG_HFSPLUS_FS=m CONFIG_BEFS_FS=m @@ -3562,6 +3725,7 @@ CONFIG_SQUASHFS_ZLIB=y # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set CONFIG_SYSV_FS=m CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set @@ -3572,25 +3736,26 @@ CONFIG_9P_FS_POSIX_ACL=y CONFIG_FUSE_FS=m # CONFIG_OMFS_FS is not set CONFIG_CUSE=m +# CONFIG_F2FS_FS is not set # # Network File Systems # CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m +CONFIG_NFS_V2=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" CONFIG_NFSD=m CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y -# Maybe see if we want this on for debug kernels? -# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_NFS_FSCACHE=y # CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_NEW_IDMAPPER=y CONFIG_PNFS_OBJLAYOUT=m CONFIG_PNFS_BLOCK=m CONFIG_LOCKD=m @@ -3599,16 +3764,19 @@ CONFIG_EXPORTFS=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUNRPC_DEBUG=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_CIFS=m CONFIG_CIFS_STATS=y # CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_SMB2=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_FSCACHE=y CONFIG_CIFS_ACL=y CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_NFSD_EXPORT=y @@ -3644,7 +3812,11 @@ CONFIG_DLM_DEBUG=y CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_DLM=y -# CONFIG_UBIFS_FS is not set + +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +# CONFIG_UBIFS_FS_DEBUG is not set # # Partition Types @@ -3656,7 +3828,8 @@ CONFIG_AMIGA_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_EFI_PARTITION=y CONFIG_KARMA_PARTITION=y -# CONFIG_LDM_PARTITION is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_MINIX_SUBPARTITION=y @@ -3710,6 +3883,17 @@ CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_NLS_ASCII=y @@ -3732,6 +3916,8 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_DRIVER is not set CONFIG_HEADERS_CHECK=y # CONFIG_LKDTM is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_READABLE_ASM is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_LOCKDEP is not set @@ -3756,17 +3942,20 @@ 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_VM_RB is not set # revisit this if performance isn't horrible # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set CONFIG_LOCKUP_DETECTOR=y # CONFIG_DEBUG_INFO_REDUCED is not set # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +# CONFIG_PANIC_ON_OOPS is not set CONFIG_ATOMIC64_SELFTEST=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m +CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_DEBUG_SECTION_MISMATCH is not set # CONFIG_BACKTRACE_SELF_TEST is not set -CONFIG_LATENCYTOP=y CONFIG_RESOURCE_COUNTERS=y # CONFIG_COMPAT_BRK is not set # CONFIG_DEBUG_VIRTUAL is not set @@ -3805,6 +3994,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set # CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_YAMA is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y # CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set @@ -3833,6 +4023,7 @@ CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_DEFLATE=m @@ -3860,7 +4051,7 @@ CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SEQIV=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TGR192=m @@ -3888,12 +4079,14 @@ CONFIG_CRYPTO_USER=m # CONFIG_CRC16=y CONFIG_CRC32=m +# CONFIG_CRC32_SELFTEST is not set CONFIG_CRC_CCITT=m CONFIG_CRC_ITU_T=m CONFIG_CRC_T10DIF=m CONFIG_CRC8=m # CONFIG_CRC7 is not set CONFIG_CORDIC=m +# CONFIG_DDR is not set CONFIG_CRYPTO_ZLIB=m CONFIG_ZLIB_INFLATE=y @@ -3915,6 +4108,8 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=m CONFIG_BACKLIGHT_PROGEAR=m # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630 is not set +# CONFIG_BACKLIGHT_LM3639 is not set CONFIG_FB_NVIDIA_BACKLIGHT=y CONFIG_FB_RIVA_BACKLIGHT=y CONFIG_FB_RADEON_BACKLIGHT=y @@ -3922,11 +4117,11 @@ CONFIG_FB_ATY128_BACKLIGHT=y CONFIG_FB_ATY_BACKLIGHT=y # CONFIG_BACKLIGHT_SAHARA is not set CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_LP855X=m CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m -CONFIG_SCHEDSTATS=y CONFIG_SCHED_DEBUG=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y @@ -3943,10 +4138,11 @@ CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_SCHED=y -CONFIG_CGROUP_MEM_RES_CTLR=y -CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y # XXX disabled by default, pass 'swapaccount' -# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set -CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y # XXX disabled by default, pass 'swapaccount' +# CONFIG_MEMCG_SWAP_ENABLED is not set +CONFIG_MEMCG_KMEM=y +# CONFIG_CGROUP_HUGETLB is not set CONFIG_CGROUP_PERF=y CONFIG_BLK_CGROUP=y @@ -3964,10 +4160,21 @@ CONFIG_KEXEC=y CONFIG_HWMON=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_THERMAL_HWMON=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=y +# CONFIG_THERMAL_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_EMULATION is not set +# CONFIG_CPU_THERMAL is not set CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +# +# Bus devices +# +# CONFIG_OMAP_OCP2SCP is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y @@ -3976,9 +4183,11 @@ 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 +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y @@ -4000,7 +4209,22 @@ CONFIG_NET_VENDOR_SMC=y # CONFIG_MOUSE_ATIXL is not set -# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_MEDIA_PARPORT_SUPPORT 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 @@ -4018,6 +4242,7 @@ CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m # CONFIG_SND_SOC is not set +CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_NEW_LEDS=y @@ -4030,19 +4255,28 @@ CONFIG_LEDS_CLASS=y # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_S3C24XX is not set +# CONFIG_LEDS_PCA9633 is not set CONFIG_LEDS_DELL_NETBOOKS=m # CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_LM355x is not set # CONFIG_LEDS_OT200 is not set +# CONFIG_LEDS_PWM is not set CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_ONESHOT=m CONFIG_LEDS_TRIGGER_IDE_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +# CONFIG_LEDS_TRIGGER_CPU is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_ALIX2=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LM3530=m +# CONFIG_LEDS_LM3642 is not set +CONFIG_LEDS_LM3556=m +CONFIG_LEDS_BLINKM=m CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m @@ -4055,25 +4289,29 @@ CONFIG_LEDS_WM831X_STATUS=m CONFIG_DMADEVICES=y CONFIG_DMA_ENGINE=y CONFIG_DW_DMAC=m +# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set # CONFIG_TIMB_DMA is not set # CONFIG_DMATEST is not set CONFIG_ASYNC_TX_DMA=y CONFIG_UNUSED_SYMBOLS=y -CONFIG_UTRACE=y +CONFIG_UPROBE_EVENT=y CONFIG_FTRACE=y CONFIG_DYNAMIC_FTRACE=y # CONFIG_IRQSOFF_TRACER is not set CONFIG_SCHED_TRACER=y CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACER_SNAPSHOT=y CONFIG_FTRACE_SYSCALLS=y CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_TRACE_BRANCH_PROFILING is not set CONFIG_FUNCTION_PROFILER=y CONFIG_RING_BUFFER_BENCHMARK=m +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set CONFIG_FUNCTION_TRACER=y CONFIG_STACK_TRACER=y # CONFIG_FUNCTION_GRAPH_TRACER is not set @@ -4097,7 +4335,7 @@ CONFIG_CFAG12864B_RATE=20 # CONFIG_PHANTOM is not set -CONFIG_POWER_SUPPLY=m +CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_TEST_POWER is not set @@ -4105,6 +4343,7 @@ CONFIG_APM_POWER=m # CONFIG_WM831X_POWER is not set # CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set # CONFIG_BATTERY_BQ20Z75 is not set @@ -4112,12 +4351,15 @@ CONFIG_APM_POWER=m # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_GOLDFISH is not set # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_BQ2415X is not set +CONFIG_POWER_RESET=y # CONFIG_PDA_POWER is not set @@ -4127,11 +4369,15 @@ CONFIG_UIO=m CONFIG_UIO_CIF=m # CONFIG_UIO_PDRV is not set # CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m # CONFIG_UIO_NETX is not set +CONFIG_VFIO=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VFIO_PCI=m # LIRC @@ -4151,13 +4397,12 @@ CONFIG_LIRC_TTUSBIR=m # CONFIG_DEVKMEM is not set -CONFIG_BNX2X=m -CONFIG_SCSI_BNX2X_FCOE=m - CONFIG_NOZOMI=m # CONFIG_TPS65010 is not set CONFIG_INPUT_APANEL=m +CONFIG_INPUT_GP2A=m +# CONFIG_INPUT_GPIO_TILT_POLLED is not set # CONFIG_INTEL_MENLOW is not set CONFIG_ENCLOSURE_SERVICES=m @@ -4171,6 +4416,7 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y @@ -4196,6 +4442,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=m # CONFIG_PHONET is not set # CONFIG_ICS932S401 is not set +# CONFIG_ATMEL_SSC is not set # CONFIG_C2PORT is not set @@ -4209,8 +4456,10 @@ CONFIG_WM8350_POWER=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set -CONFIG_USB_WHCI_HCD=m +# CONFIG_USB_WHCI_HCD is not set CONFIG_USB_HWA_HCD=m +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set CONFIG_UWB=m CONFIG_UWB_HWA=m @@ -4218,7 +4467,6 @@ CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_STAGING=y -# CONFIG_RTLLIB is not set # CONFIG_ANDROID is not set CONFIG_STAGING_MEDIA=y # CONFIG_DVB_AS102 is not set @@ -4247,19 +4495,24 @@ CONFIG_USB_ATMEL=m # CONFIG_RAR_REGISTER is not set # CONFIG_VT6656 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_RTL8192E is not set +# Larry Finger maintains these (rhbz 913753) +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m +CONFIG_RTL8192E=m # CONFIG_INPUT_GPIO is not set # CONFIG_VIDEO_CX25821 is not set # CONFIG_R8187SE is not set # CONFIG_RTL8192U is not set -# CONFIG_BATMAN_ADV is not set # CONFIG_FB_SM7XX is not set # CONFIG_SPECTRA is not set # CONFIG_ZRAM is not set # 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 @@ -4277,9 +4530,26 @@ CONFIG_ALTERA_STAPL=m # CONFIG_RTS5139 is not set # CONFIG_NVEC_LEDS is not set # CONFIG_VT6655 is not set -# +# CONFIG_ZSMALLOC is not set +# CONFIG_RAMSTER is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_IPACK_BUS is not set +# CONFIG_CSR_WIFI is not set +# CONFIG_ZCACHE2 is not set +# CONFIG_NET_VENDOR_SILICOM is not set +# CONFIG_SBYPASS is not set +# CONFIG_BPCTL is not set +# CONFIG_CED1401 is not set +# CONFIG_DGRP is not set +# CONFIG_SB105X is not set # END OF STAGING +# +# Remoteproc drivers (EXPERIMENTAL) +# +# CONFIG_STE_MODEM_RPROC is not set + CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -4293,16 +4563,20 @@ CONFIG_IMA_AUDIT=y CONFIG_IMA_LSM_RULES=y # CONFIG_EVM is not set +# CONFIG_PWM is not set CONFIG_LSM_MMAP_MIN_ADDR=65536 CONFIG_STRIP_ASM_SYMS=y # CONFIG_RCU_FANOUT_EXACT is not set -CONFIG_RCU_FAST_NO_HZ=y +# FIXME: Revisit FAST_NO_HZ after it's fixed +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_RCU_NOCB_CPU is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TRACE is not set +# CONFIG_RCU_CPU_STALL_INFO is not set CONFIG_SPARSE_RCU_POINTER=y CONFIG_KSM=y @@ -4316,6 +4590,12 @@ CONFIG_IEEE802154=m CONFIG_IEEE802154_6LOWPAN=m CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IEEE802154_FAKELB=m + +CONFIG_MAC802154=m + +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set CONFIG_PPS=m # CONFIG_PPS_CLIENT_KTIMER is not set @@ -4327,8 +4607,10 @@ CONFIG_PPS_CLIENT_GPIO=m CONFIG_NTP_PPS=y CONFIG_PTP_1588_CLOCK=m +CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_CLEANCACHE=y +CONFIG_FRONTSWAP=y # CONFIG_MDIO_GPIO is not set # CONFIG_KEYBOARD_GPIO is not set @@ -4347,6 +4629,9 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_CS5535 is not set # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_IT8761E is not set +# CONFIG SB105x is not set +# CONFIG_GPIO_TS5500 is not set +CONFIG_GPIO_VIPERBOARD=m # CONFIG_GPIO_MAX7300 is not set # CONFIG_UCB1400_CORE is not set # CONFIG_TPS6105X is not set @@ -4358,18 +4643,29 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_VX855 is not set # CONFIG_GPIO_PCH is not set # CONFIG_GPIO_ML_IOH is not set - +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_SX150X is not set # FIXME: Why? CONFIG_EVENT_POWER_TRACING_DEPRECATED=y CONFIG_TEST_KSTRTOX=y +CONFIG_XZ_DEC=y +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set # CONFIG_XZ_DEC_TEST is not set +# CONFIG_POWER_AVS is not set + CONFIG_TARGET_CORE=m CONFIG_ISCSI_TARGET=m CONFIG_LOOPBACK_TARGET=m +CONFIG_SBP_TARGET=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m @@ -4378,8 +4674,13 @@ CONFIG_TCM_FC=m CONFIG_HWSPINLOCK=m CONFIG_PSTORE=y +CONFIG_PSTORE_RAM=m +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_FTRACE is not set + # CONFIG_AVERAGE is not set +# CONFIG_VMXNET3 is not set # CONFIG_SIGMA is not set @@ -4389,10 +4690,24 @@ CONFIG_BCMA=m CONFIG_BCMA_BLOCKIO=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y # CONFIG_BCMA_DEBUG is not set # CONFIG_GOOGLE_FIRMWARE is not set -CONFIG_INTEL_MID_PTI=m +# CONFIG_INTEL_MID_PTI is not set CONFIG_IOMMU_SUPPORT=y +# CONFIG_MAILBOX is not set + +# CONFIG_HSI is not set + # CONFIG_PM_DEVFREQ is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# CONFIG_MODULE_VERIFY_ELF is not set +# CONFIG_CRYPTO_KEY_TYPE is not set +# CONFIG_PGP_LIBRARY is not set +# CONFIG_PGP_PRELOAD is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set diff --git a/config-nodebug b/config-nodebug index 0eb253221..6db2dde22 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,111 +2,120 @@ 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_NFSD_FAULT_INJECTION is not set -CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DEBUG_BLK_CGROUP is not set -CONFIG_ATH_DEBUG=y -CONFIG_CARL9170_DEBUGFS=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_DRBD_FAULT_INJECTION is not set -CONFIG_DEBUG_OBJECTS_WORK=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_CARL9170_DEBUGFS is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set -CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DEBUG_OBJECTS_WORK is not set + +# 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_KDB_CONTINUE_CATASTROPHIC=0 -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 +# CONFIG_MAC80211_MESSAGE_TRACING is not set + +# CONFIG_EDAC_DEBUG is not set + +# CONFIG_SPI_DEBUG is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SCHEDSTATS is not set diff --git a/config-powerpc-generic b/config-powerpc-generic index a05befa1d..2ef1da559 100644 --- a/config-powerpc-generic +++ b/config-powerpc-generic @@ -159,9 +159,15 @@ CONFIG_IDE_TASK_IOCTL=y # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set -CONFIG_BLK_DEV_IDE_PMAC=m -CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y +# CONFIG_BLK_DEV_IDE_PMAC is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_DELKIN=m +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_TC86C001 is not set CONFIG_BLK_DEV_IDEDMA=y +CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_HD is not set # CONFIG_USB_STORAGE_ISD200 is not set CONFIG_MTD_PHYSMAP_OF=m @@ -175,11 +181,11 @@ CONFIG_PMAC_APM_EMU=m CONFIG_HW_RANDOM_PASEMI=m CONFIG_EDAC=y -# CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_MM_EDAC=m CONFIG_EDAC_PASEMI=m CONFIG_EDAC_AMD8131=m CONFIG_EDAC_AMD8111=m +CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_AXON_RAM is not set # CONFIG_OPROFILE_CELL is not set @@ -307,7 +313,7 @@ CONFIG_SPARSE_IRQ=y # CONFIG_PPC_MPC5200_LPBFIFO is not set # CONFIG_CAN_MSCAN is not set # CONFIG_CAN_MPC5XXX is not set -CONFIG_PATA_MACIO=m +CONFIG_PATA_MACIO=y CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_88PM8607 is not set @@ -339,6 +345,7 @@ CONFIG_I2C_MPC=m CONFIG_RFKILL_GPIO=m # CONFIG_CRYPTO_DEV_FSL_CAAM is not set +# CONFIG_CRYPTO_SHA1_PPC is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_MCP23S08 is not set @@ -350,9 +357,6 @@ CONFIG_RFKILL_GPIO=m # CONFIG_NET_VENDOR_PASEMI is not set # CONFIG_NET_VENDOR_TOSHIBA is not set -# Disable btrfs until it is shown to work with 64k pages (rhbz 747079) -# CONFIG_BTRFS_FS is not set -# # CONFIG_CPU_IDLE is not set # CONFIG_OF_SELFTEST is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set @@ -360,3 +364,30 @@ CONFIG_RFKILL_GPIO=m # CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_STRICT_DEVMEM=y +CONFIG_RCU_FANOUT_LEAF=16 + +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_MPIC_MSGR is not set +# CONFIG_FA_DUMP is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set + +# CONFIG_FAIL_IOMMU is not set + +# CONFIG_PPC_DENORMALISATION is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# CONFIG_OF_DISPLAY_TIMING is not set +# CONFIG_OF_VIDEOMODE is not set + +CONFIG_POWER_RESET_GPIO=y +CONFIG_FB_SSD1307=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=n + +CONFIG_XZ_DEC_POWERPC=y diff --git a/config-powerpc32-generic b/config-powerpc32-generic index e856b9ff0..935aab420 100644 --- a/config-powerpc32-generic +++ b/config-powerpc32-generic @@ -33,6 +33,8 @@ CONFIG_SCSI_MESH=m CONFIG_SCSI_MESH_SYNC_RATE=5 CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_LBDAF=y + CONFIG_SCSI_MAC53C94=m CONFIG_ADB_CUDA=y CONFIG_ADB_MACIO=y @@ -45,7 +47,7 @@ CONFIG_NET_VENDOR_APPLE=y CONFIG_BMAC=m CONFIG_MACE=m # CONFIG_MACE_AAUI_PORT is not set -CONFIG_MV643XX_ETH=m +# CONFIG_MV643XX_ETH is not set CONFIG_I2C_HYDRA=m CONFIG_I2C_MPC=m CONFIG_THERM_WINDTUNNEL=m diff --git a/config-powerpc64 b/config-powerpc64 index d099c513c..d88b95f8b 100644 --- a/config-powerpc64 +++ b/config-powerpc64 @@ -1,6 +1,9 @@ CONFIG_WINDFARM_PM81=y CONFIG_WINDFARM_PM91=y CONFIG_WINDFARM_PM121=y +CONFIG_WINDFARM_PM72=y +CONFIG_WINDFARM_RM31=y + CONFIG_PPC_PMAC64=y CONFIG_PPC_MAPLE=y # CONFIG_PPC_CELL is not set @@ -139,8 +142,7 @@ CONFIG_PERF_EVENTS=y CONFIG_EVENT_PROFILE=y CONFIG_KVM_BOOK3S_64=m -#-- Enable _HV once publicly available POWER7 hardware can use it -# CONFIG_KVM_BOOK3S_64_HV is not set +CONFIG_KVM_BOOK3S_64_HV=y # CONFIG_KVM_EXIT_TIMING is not set #-- bz#607175 @@ -154,12 +156,29 @@ CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_PSERIES_ENERGY=m +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_PSERIES_IDLE=y + CONFIG_PPC_ICSWX=y CONFIG_IO_EVENT_IRQ=y CONFIG_HW_RANDOM_AMD=m +CONFIG_UIO_PDRV=m + +CONFIG_HW_RANDOM_PSERIES=m +CONFIG_CRYPTO_DEV_NX=y +CONFIG_CRYPTO_842=m +CONFIG_CRYPTO_DEV_NX_ENCRYPT=m +CONFIG_CRYPTO_DEV_NX_COMPRESS=m + + CONFIG_BPF_JIT=y # CONFIG_PPC_ICSWX_PID is not set # CONFIG_PPC_ICSWX_USE_SIGILL is not set # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_PCIEPORTBUS is not set +# CONFIG_PPC_TRANSACTIONAL_MEM is not set +# CONFIG_SND_HDA_INTEL is not set +CONFIG_BLK_DEV_RSXX=m diff --git a/config-s390x b/config-s390x index f03942191..9ab57f8aa 100644 --- a/config-s390x +++ b/config-s390x @@ -197,6 +197,7 @@ CONFIG_QETH_L3=m CONFIG_CRYPTO_SHA512_S390=m CONFIG_VIRTUALIZATION=y CONFIG_KVM=m +# CONFIG_KVM_S390_UCONTROL is not set CONFIG_S390_GUEST=y @@ -210,6 +211,7 @@ CONFIG_CHSC_SCH=m CONFIG_HVC_IUCV=y CONFIG_RCU_FANOUT=64 +CONFIG_RCU_FANOUT_LEAF=16 CONFIG_SECCOMP=y @@ -239,3 +241,34 @@ CONFIG_STRICT_DEVMEM=y CONFIG_CRYPTO_GHASH_S390=m CONFIG_NET_CORE=y CONFIG_ETHERNET=y + +CONFIG_BPF_JIT=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_SCM_BUS=y +CONFIG_EADM_SCH=m +CONFIG_SCM_BLOCK=m +CONFIG_SCM_BLOCK_CLUSTER_WRITE=y +# CONFIG_S390_PTDUMP is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set +CONFIG_PCI_NR_FUNCTIONS=64 +CONFIG_HOTPLUG_PCI=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set +CONFIG_HOTPLUG_PCI_S390=m +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_MCP23S08 is not set + +# CONFIG_MEDIA_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_DRM is not set +# CONFIG_SOUND is not set +# CONFIG_DW_DMAC is not set +# CONFIG_I2C_SMBUS is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_HELPER_AUTO is not set +# CONFIG_I2C_PARPORT is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_NFORCE2 is not set + diff --git a/config-sparc64-generic b/config-sparc64-generic deleted file mode 100644 index 2b29f9b7e..000000000 --- a/config-sparc64-generic +++ /dev/null @@ -1,198 +0,0 @@ -CONFIG_SMP=y -CONFIG_SPARC=y -CONFIG_SPARC64=y -CONFIG_SECCOMP=y -CONFIG_HZ_100=y -# CONFIG_HZ_1000 is not set -CONFIG_HZ=100 - -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y - -CONFIG_US3_FREQ=m -CONFIG_US2E_FREQ=m - -CONFIG_SUN_LDOMS=y -CONFIG_SCHED_SMT=y -CONFIG_SCHED_MC=y -CONFIG_64BIT=y -# CONFIG_BBC_I2C is not set -CONFIG_HUGETLB_PAGE_SIZE_4MB=y -# CONFIG_HUGETLB_PAGE_SIZE_512K is not set -# CONFIG_HUGETLB_PAGE_SIZE_64K is not set -CONFIG_NR_CPUS=256 -CONFIG_US3_FREQ=m -CONFIG_US2E_FREQ=m -CONFIG_SUN_OPENPROMFS=m -CONFIG_COMPAT=y -CONFIG_UID16=y -CONFIG_BINFMT_ELF32=y -CONFIG_ENVCTRL=m -CONFIG_DISPLAY7SEG=m -CONFIG_WATCHDOG_CP1XXX=m -CONFIG_WATCHDOG_RIO=m -# CONFIG_CMDLINE_BOOL is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_PARPORT is not set -# CONFIG_BLK_DEV_FD is not set -# CONFIG_LIRC_PARALLEL is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_SIMTEC is not set -CONFIG_I2C_ALI1535=m -# CONFIG_VGASTATE is not set -# CONFIG_FB_DDC is not set -# CONFIG_FB_BW2 is not set -# CONFIG_FB_GRVGA is not set -CONFIG_FB_CG3=y -CONFIG_FB_CG6=y -# CONFIG_FB_RIVA is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -CONFIG_FB_ATY=y -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_TRIDENT is not set -CONFIG_FB_SBUS=y -CONFIG_FB_FFB=y -# CONFIG_FB_TCX is not set -# CONFIG_FB_CG14 is not set -CONFIG_FB_PM2=y -CONFIG_FB_P9100=y -# CONFIG_FB_LEO is not set -CONFIG_FB_XVR500=y -CONFIG_FB_XVR2500=y -# CONFIG_VGASTATE is not set -# CONFIG_FB_DDC is not set -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_KYRO is not set -# CONFIG_AGP is not set -# CONFIG_DRM_NOUVEAU is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_FONTS=y -# CONFIG_FONT_8x8 is not set -# CONFIG_FONT_8x16 is not set -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_10x18 is not set -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -CONFIG_FONT_SUN8x16=y -CONFIG_FONT_SUN12x22=y -# CONFIG_LOGO_LINUX_CLUT224 is not set -# CONFIG_SERIAL_8250 is not set -CONFIG_SERIAL_SUNZILOG=y -CONFIG_SERIAL_SUNZILOG_CONSOLE=y -CONFIG_SERIAL_SUNSU=y -CONFIG_SERIAL_SUNSU_CONSOLE=y -CONFIG_SERIAL_SUNSAB=y -CONFIG_SERIAL_SUNSAB_CONSOLE=y -CONFIG_SERIAL_SUNHV=y -CONFIG_SUN_OPENPROMIO=y -CONFIG_OBP_FLASH=m -# CONFIG_SERIO_SERPORT is not set -CONFIG_BLK_DEV_FD=y -CONFIG_SUNVDC=m -CONFIG_SUNVNET=m -# CONFIG_BLK_DEV_AEC62XX is not set -# CONFIG_BLK_DEV_HPT366 is not set -# CONFIG_BLK_DEV_PDC202XX_OLD is not set -# CONFIG_BLK_DEV_PDC202XX_NEW is not set -# CONFIG_BLK_DEV_SIIMAGE is not set -# CONFIG_BLK_DEV_SLC90E66 is not set -# CONFIG_BLK_DEV_VIA82CXXX is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_GDTH is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -CONFIG_SCSI_QLOGICPTI=m -CONFIG_SCSI_SUNESP=m -CONFIG_SUNLANCE=m -CONFIG_SUNBMAC=m -CONFIG_SUNQE=m -# CONFIG_DM9102 is not set -# CONFIG_HAMACHI is not set -# CONFIG_R8169 is not set -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_FORE200E_TX_RETRY=16 -# CONFIG_DRM_TDFX is not set -CONFIG_KEYBOARD_ATKBD=y -CONFIG_KEYBOARD_SUNKBD=y -# CONFIG_INPUT_PCSPKR is not set -CONFIG_INPUT_SPARCSPKR=m -# CONFIG_SOUND_PRIME is not set -# CONFIG_SND_SUN_AMD7930 is not set -CONFIG_SND_SUN_CS4231=m -# CONFIG_SND_SUN_DBRI is not set -CONFIG_PARPORT_SUNBPP=m -CONFIG_LOGO_SUN_CLUT224=y -CONFIG_MTD_SUN_UFLASH=m -CONFIG_MYRI_SBUS=m -# CONFIG_SGI_IOC4 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_STRADIS is not set -# CONFIG_IEEE1394_SBP2 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_DCFLUSH is not set -# CONFIG_DEBUG_BOOTMEM is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_LOCKDEP is not set -# CONFIG_STACK_DEBUG is not set - -CONFIG_SPARSEMEM_VMEMMAP=y - -# CONFIG_THERMAL is not set - -CONFIG_FRAME_WARN=2048 - -CONFIG_NUMA=y - -CONFIG_SND_SPARC=y - -CONFIG_HW_RANDOM_N2RNG=m - -# drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now" -# CONFIG_MISDN_HFCMULTI is not set - -CONFIG_US3_MC=y -CONFIG_SENSORS_ULTRA45=m -CONFIG_LEDS_SUNFIRE=m -CONFIG_TADPOLE_TS102_UCTRL=m - -CONFIG_RCU_FANOUT=64 - -CONFIG_LIRC_ENE0100=m -# CONFIG_BATTERY_DS2782 is not set -CONFIG_USB_GSPCA_SN9C20X=m -CONFIG_USB_GSPCA_SN9C20X_EVDEV=y -CONFIG_LSM_MMAP_MIN_ADDR=65536 - -CONFIG_PERF_COUNTERS=y -CONFIG_PERF_EVENTS=y -CONFIG_EVENT_PROFILE=y - -CONFIG_EARLYFB=y -CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m - -CONFIG_GRETH=m -CONFIG_FB_XVR1000=y - -CONFIG_CRYPTO_DEV_NIAGARA2=y - -# CONFIG_MTD_OF_PARTS is not set -# CONFIG_MTD_PHYSMAP_OF is not set -# CONFIG_MMC_SDHCI_OF is not set -# CONFIG_OF_SELFTEST is not set diff --git a/config-x86-32-generic b/config-x86-32-generic index 3fd696c64..3690a983e 100644 --- a/config-x86-32-generic +++ b/config-x86-32-generic @@ -3,6 +3,7 @@ CONFIG_X86_32_NON_STANDARD=y # CONFIG_X86_ELAN is not set +# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set CONFIG_X86_BIGSMP=y @@ -27,6 +28,7 @@ CONFIG_M686=y # CONFIG_MWINCHIP3D is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set +# CONFIG_STA2X11 is not set CONFIG_NR_CPUS=32 CONFIG_X86_GENERIC=y @@ -52,6 +54,8 @@ CONFIG_FB_GEODE_LX=y CONFIG_FB_GEODE_GX=y # CONFIG_FB_GEODE_GX1 is not set +CONFIG_FB_SSD1307=m + # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GODIRECT is not set # CONFIG_PCI_GOMMCONFIG is not set @@ -93,6 +97,8 @@ CONFIG_X86_TRAMPOLINE=y CONFIG_PCI_DIRECT=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set + # SHPC has half-arsed PCI probing, which makes it load on too many systems # CONFIG_HOTPLUG_PCI_SHPC is not set @@ -137,6 +143,8 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=8 CONFIG_MTD_NAND_CAFE=m +CONFIG_LBDAF=y + # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set @@ -176,6 +184,7 @@ CONFIG_XO1_RFKILL=m CONFIG_X86_32_IRIS=m +CONFIG_POWER_RESET_GPIO=y CONFIG_MTD_OF_PARTS=y CONFIG_MTD_PHYSMAP_OF=m @@ -187,6 +196,7 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m # CONFIG_X86_INTEL_MID is not set CONFIG_MFD_CS5535=m +# CONFIG_MFD_SYSCON is not set # I2O enabled only for 32-bit x86, disabled for PAE kernel CONFIG_I2O=m @@ -197,6 +207,8 @@ CONFIG_I2O_CONFIG=y CONFIG_I2O_EXT_ADAPTEC=y CONFIG_I2O_CONFIG_OLD_IOCTL=y CONFIG_I2O_BUS=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_BACKLIGHT_PWM=m # CONFIG_EDAC_SBRIDGE is not set @@ -205,3 +217,13 @@ CONFIG_I2O_BUS=m # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_GEOS is not set +# CONFIG_NET5501 is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_GPIO_SODAVILLE is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_BACKLIGHT_OT200 is not set +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_OF_DISPLAY_TIMING is not set +# CONFIG_OF_VIDEOMODE is not set diff --git a/config-x86-generic b/config-x86-generic index 6a7d1f767..7dd9b5ba9 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -14,6 +14,7 @@ CONFIG_I8K=m CONFIG_SONYPI_COMPAT=y CONFIG_MICROCODE=m CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_INTEL_EARLY=y CONFIG_MICROCODE_AMD=y CONFIG_X86_MSR=y @@ -28,7 +29,7 @@ CONFIG_PNP=y CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y -CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_X86_PM_TIMER=y @@ -36,6 +37,8 @@ CONFIG_X86_PM_TIMER=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=y +CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y CONFIG_EFI_PCDP=y CONFIG_FB_EFI=y @@ -67,7 +70,7 @@ CONFIG_ACPI_AC=y # CONFIG_ACPI_ASUS is not set CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y -CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_DOCK=y CONFIG_ACPI_FAN=y CONFIG_ACPI_NUMA=y @@ -78,6 +81,7 @@ CONFIG_ACPI_SLEEP=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_TOSHIBA=m CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y # FIXME: Next two are deprecated. Remove them when they disappear upstream # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_PROC_EVENT is not set @@ -91,11 +95,14 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y # CONFIG_ACPI_APEI_EINJ is not set CONFIG_ACPI_IPMI=m CONFIG_ACPI_CUSTOM_METHOD=m +CONFIG_ACPI_BGRT=y -CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_X86_PCC_CPUFREQ=y -CONFIG_X86_POWERNOW_K8=y -CONFIG_X86_P4_CLOCKMOD=y +# CONFIG_X86_INTEL_PSTATE is not set +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_P4_CLOCKMOD=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # @@ -139,6 +146,7 @@ CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m CONFIG_I2C_PIIX4=m @@ -150,7 +158,6 @@ CONFIG_DELL_RBU=m CONFIG_DCDBAS=m CONFIG_EDAC=y -# CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_MM_EDAC=m CONFIG_EDAC_AMD76X=m CONFIG_EDAC_AMD8111=m @@ -171,6 +178,7 @@ CONFIG_EDAC_R82600=m CONFIG_EDAC_X38=m CONFIG_EDAC_MCE_INJ=m CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_SCHED_MC=y @@ -187,10 +195,13 @@ CONFIG_HW_RANDOM_VIA=m CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_AMILO_RFKILL=m CONFIG_ASUS_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_DELL_LAPTOP=m +CONFIG_CHROMEOS_LAPTOP=m CONFIG_EEEPC_LAPTOP=m +CONFIG_FUJITSU_TABLET=m CONFIG_FUJITSU_LAPTOP=m # CONFIG_FUJITSU_LAPTOP_DEBUG is not set CONFIG_IDEAPAD_LAPTOP=m @@ -200,6 +211,7 @@ CONFIG_SAMSUNG_LAPTOP=m CONFIG_SONY_LAPTOP=m CONFIG_TOPSTAR_LAPTOP=m + CONFIG_ACPI_WMI=m CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -212,6 +224,7 @@ CONFIG_DELL_WMI_AIO=m CONFIG_EEEPC_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m +CONFIG_APPLE_GMUX=m CONFIG_XO15_EBOOK=m # CONFIG_TOUCHSCREEN_INTEL_MID is not set @@ -219,6 +232,7 @@ CONFIG_XO15_EBOOK=m # CONFIG_SMSC37B787_WDT is not set CONFIG_W83697HF_WDT=m CONFIG_VIA_WDT=m +CONFIG_IE6XX_WDT=m CONFIG_CRASH_DUMP=y CONFIG_PROC_VMCORE=y @@ -249,6 +263,7 @@ CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_SAVE_RESTORE=y CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_XEN_NETDEV_FRONTEND=m @@ -266,6 +281,7 @@ CONFIG_XEN_GNTDEV=m CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m CONFIG_XEN_SELFBALLOONING=y CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_ACPI_PROCESSOR=m CONFIG_MTD_ESB2ROM=m CONFIG_MTD_CK804XROM=m @@ -273,6 +289,7 @@ CONFIG_MTD_CK804XROM=m CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y @@ -310,7 +327,8 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_NO_BOOTMEM is not set # CONFIG_MEMTEST is not set -CONFIG_MAXSMP=y +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_MAXSMP is not set CONFIG_HP_ILO=m @@ -334,7 +352,7 @@ CONFIG_PERF_EVENTS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y -# CONFIG_X86_MCE_INJECT is not set +CONFIG_X86_MCE_INJECT=m CONFIG_SFI=y @@ -349,6 +367,10 @@ CONFIG_TOSHIBA_BT_RFKILL=m CONFIG_VGA_SWITCHEROO=y CONFIG_LPC_SCH=m +CONFIG_LPC_ICH=m + +CONFIG_GPIO_ICH=m +# CONFIG_GPIO_LYNXPOINT is not set CONFIG_PCI_CNB20LE_QUIRK=y @@ -372,13 +394,14 @@ CONFIG_VIDEO_VIA_CAMERA=m CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_X86_RESERVE_LOW=64 +# CONFIG_IRQ_DOMAIN_DEBUG is not set + CONFIG_PCH_GBE=m CONFIG_PCH_PHUB=m -CONFIG_TRANSPARENT_HUGEPAGE=y - CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_SERPENT_SSE2_586=m +CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_HP_ACCEL=m @@ -391,15 +414,34 @@ CONFIG_SCHED_SMT=y CONFIG_CC_STACKPROTECTOR=y CONFIG_RELOCATABLE=y -# CONFIG_HYPERV is not set +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HID_HYPERV_MOUSE=m +CONFIG_HYPERV_NET=m +CONFIG_HYPERV_STORAGE=m +CONFIG_HYPERV_BALLOON=m # Depends on HOTPLUG_PCI_PCIE CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_DRM_GMA500=m # CONFIG_DRM_GMA600 is not set -# CONFIG_DRM_GMA3600 is not set +CONFIG_DRM_GMA3600=y + +CONFIG_RCU_FANOUT_LEAF=16 + +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=y # Maybe enable in debug kernels? # CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_X86_INTEL_LPSS is not set + +# CONFIG_INTEL_POWERCLAMP is not set + +CONFIG_VMWARE_VMCI=m +CONFIG_VMWARE_VMCI_VSOCKETS=m + +CONFIG_VMXNET3=m +CONFIG_VFIO_PCI_VGA=y diff --git a/config-x86_64-generic b/config-x86_64-generic index 945ad0c0a..67ac161f3 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -1,5 +1,6 @@ CONFIG_64BIT=y +# CONFIG_X86_X32 is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set CONFIG_GENERIC_CPU=y @@ -12,8 +13,10 @@ CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y # CONFIG_NUMA_EMU is not set # CONFIG_X86_NUMACHIP is not set +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NUMA_BALANCING=y -CONFIG_NR_CPUS=64 +CONFIG_NR_CPUS=128 CONFIG_PHYSICAL_START=0x1000000 CONFIG_IA32_EMULATION=y @@ -26,6 +29,8 @@ CONFIG_AMD_IOMMU_V2=m CONFIG_SWIOTLB=y # CONFIG_CALGARY_IOMMU is not set +CONFIG_TRANSPARENT_HUGEPAGE=y + CONFIG_KEXEC_JUMP=y CONFIG_ACPI_BLACKLIST_YEAR=0 @@ -44,6 +49,12 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_BLOWFISH_X86_64=m CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m +CONFIG_CRYPTO_CAMELLIA_X86_64=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX_X86_64=m +CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set @@ -63,6 +74,7 @@ CONFIG_SPARSEMEM=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP=y +# CONFIG_MOVABLE_NODE is not set # CONFIG_MEMORY_HOTPLUG is not set # CONFIG_MEMORY_HOTREMOVE is not set @@ -84,6 +96,7 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=128 # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_SYS_HYPERVISOR=y +# CONFIG_XEN_MCE_LOG is not set CONFIG_PROVIDE_OHCI1394_DMA_INIT=y @@ -102,6 +115,7 @@ CONFIG_X86_X2APIC=y CONFIG_SPARSE_IRQ=y CONFIG_RCU_FANOUT=64 +# CONFIG_RCU_USER_QS is not set CONFIG_INTEL_TXT=y @@ -116,3 +130,21 @@ CONFIG_BPF_JIT=y # Should be 32bit only, but lacks KConfig depends # CONFIG_XO15_EBOOK is not set +CONFIG_NTB=m +CONFIG_NTB_NETDEV=m + +# 10GigE +# +CONFIG_IP1000=m +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +# CONFIG_MLX4_DEBUG is not set +CONFIG_SFC=m +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_SRIOV=y +CONFIG_SFC_PTP=y +CONFIG_SFC_MTD=y +# Override MTD stuff because SFC_MTD needs it +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLOCK=m + diff --git a/linux-2.6-crash-driver.patch b/crash-driver.patch similarity index 100% rename from linux-2.6-crash-driver.patch rename to crash-driver.patch diff --git a/cve-2013-2147-ciss-info-leak.patch b/cve-2013-2147-ciss-info-leak.patch new file mode 100644 index 000000000..ee49d3bfb --- /dev/null +++ b/cve-2013-2147-ciss-info-leak.patch @@ -0,0 +1,27 @@ +diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c +index 639d26b..2b94403 100644 +--- a/drivers/block/cpqarray.c ++++ b/drivers/block/cpqarray.c +@@ -1193,6 +1193,7 @@ out_passthru: + ida_pci_info_struct pciinfo; + + if (!arg) return -EINVAL; ++ memset(&pciinfo, 0, sizeof(pciinfo)); + pciinfo.bus = host->pci_dev->bus->number; + pciinfo.dev_fn = host->pci_dev->devfn; + pciinfo.board_id = host->board_id; + + diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c +index 6374dc1..34971aa 100644 +--- a/drivers/block/cciss.c ++++ b/drivers/block/cciss.c +@@ -1201,6 +1201,7 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, + int err; + u32 cp; + ++ memset(&arg64, 0, sizeof(arg64)); + err = 0; + err |= + copy_from_user(&arg64.LUN_info, &arg32->LUN_info, + + \ No newline at end of file diff --git a/debug-bad-pte-dmi.patch b/debug-bad-pte-dmi.patch new file mode 100644 index 000000000..eddd595b0 --- /dev/null +++ b/debug-bad-pte-dmi.patch @@ -0,0 +1,66 @@ +--- linux.orig/include/asm-generic/bug.h ++++ linux/include/asm-generic/bug.h +@@ -55,6 +55,8 @@ struct bug_entry { + #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) + #endif + ++void print_hardware_dmi_name(void); ++ + /* + * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report + * significant issues that need prompt attention if they should ever +--- linux.orig/kernel/panic.c ++++ linux/kernel/panic.c +@@ -391,6 +391,15 @@ void oops_exit(void) + kmsg_dump(KMSG_DUMP_OOPS); + } + ++void print_hardware_dmi_name(void) ++{ ++ const char *board; ++ ++ board = dmi_get_system_info(DMI_PRODUCT_NAME); ++ if (board) ++ printk(KERN_WARNING "Hardware name: %s\n", board); ++} ++ + #ifdef WANT_WARN_ON_SLOWPATH + struct slowpath_args { + const char *fmt; +@@ -400,13 +409,10 @@ struct slowpath_args { + static void warn_slowpath_common(const char *file, int line, void *caller, + unsigned taint, struct slowpath_args *args) + { +- const char *board; +- + printk(KERN_WARNING "------------[ cut here ]------------\n"); + printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller); +- board = dmi_get_system_info(DMI_PRODUCT_NAME); +- if (board) +- printk(KERN_WARNING "Hardware name: %s\n", board); ++ ++ print_hardware_dmi_name(); + + if (args) + vprintk(args->fmt, args->args); +--- linux.orig/mm/memory.c ++++ linux/mm/memory.c +@@ -706,6 +706,8 @@ static void print_bad_pte(struct vm_area + "BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n", + current->comm, + (long long)pte_val(pte), (long long)pmd_val(*pmd)); ++ print_hardware_dmi_name(); ++ + if (page) + dump_page(page); + printk(KERN_ALERT +--- linux.orig/mm/page_alloc.c ++++ linux/mm/page_alloc.c +@@ -321,6 +321,7 @@ static void bad_page(struct page *page) + current->comm, page_to_pfn(page)); + dump_page(page); + ++ print_hardware_dmi_name(); + print_modules(); + dump_stack(); + out: diff --git a/debug-bad-pte-modules.patch b/debug-bad-pte-modules.patch new file mode 100644 index 000000000..0cc7d550e --- /dev/null +++ b/debug-bad-pte-modules.patch @@ -0,0 +1,21 @@ +diff -durpN '--exclude-from=/home/davej/.exclude' /home/davej/src/kernel/git-trees/linux/mm/memory.c linux-dj/mm/memory.c +--- /home/davej/src/kernel/git-trees/linux/mm/memory.c 2013-02-26 14:41:18.591116577 -0500 ++++ linux-dj/mm/memory.c 2013-02-28 20:04:37.678304092 -0500 +@@ -57,6 +57,7 @@ + #include + #include + #include ++#include + #include + #include + +--- linux-3.9.0-200.fc18.x86_64/mm/memory.c~ 2013-05-06 15:04:30.324416922 -0400 ++++ linux-3.9.0-200.fc18.x86_64/mm/memory.c 2013-05-06 15:04:43.933398227 -0400 +@@ -723,6 +723,7 @@ static void print_bad_pte(struct vm_area + if (vma->vm_file && vma->vm_file->f_op) + print_symbol(KERN_ALERT "vma->vm_file->f_op->mmap: %s\n", + (unsigned long)vma->vm_file->f_op->mmap); ++ print_modules(); + dump_stack(); + add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE); + } diff --git a/linux-2.6-defaults-acpi-video.patch b/defaults-acpi-video.patch similarity index 100% rename from linux-2.6-defaults-acpi-video.patch rename to defaults-acpi-video.patch diff --git a/dmar-disable-when-ricoh-multifunction.patch b/dmar-disable-when-ricoh-multifunction.patch index a4528617e..839db5940 100644 --- a/dmar-disable-when-ricoh-multifunction.patch +++ b/dmar-disable-when-ricoh-multifunction.patch @@ -16,7 +16,7 @@ index 4789f8e..5923914 100644 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x006a, quirk_calpella_no_shadow_gtt); +/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */ -+static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev) ++static void quirk_ricoh_multifunction(struct pci_dev *dev) +{ + dmar_disabled = 1; +} diff --git a/linux-2.6-v4l-dvb-experimental.patch b/drivers-media-update.patch similarity index 100% rename from linux-2.6-v4l-dvb-experimental.patch rename to drivers-media-update.patch diff --git a/drm-i915-dp-stfu.patch b/drm-i915-dp-stfu.patch new file mode 100644 index 000000000..0f28ed240 --- /dev/null +++ b/drm-i915-dp-stfu.patch @@ -0,0 +1,53 @@ +diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c +index 296cfc2..516e1e2 100644 +--- a/drivers/gpu/drm/i915/intel_dp.c ++++ b/drivers/gpu/drm/i915/intel_dp.c +@@ -350,7 +350,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)); +@@ -447,7 +447,7 @@ intel_dp_aux_ch(struct intel_dp *intel_d + } + + 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)); + ret = -EBUSY; + goto out; +@@ -1024,8 +1024,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; + +@@ -1090,7 +1090,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; + +@@ -1160,7 +1161,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, "Need VDD to turn off panel\n"); ++ if (!intel_dp->want_panel_vdd) ++ DRM_ERROR("Need VDD to turn off panel\n"); + + pp = ironlake_get_pp_control(dev_priv); + pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE); diff --git a/drm-i915-tv-detect-hush.patch b/drm-i915-tv-detect-hush.patch new file mode 100644 index 000000000..e774db071 --- /dev/null +++ b/drm-i915-tv-detect-hush.patch @@ -0,0 +1,46 @@ +Obviously this is not upstreamable... + +diff -up linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c.jx linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c +--- linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c.jx 2013-01-30 12:03:28.000000000 -0500 ++++ linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_display.c 2013-01-30 12:40:53.177449368 -0500 +@@ -6925,6 +6925,11 @@ intel_modeset_check_state(struct drm_dev + struct intel_encoder *encoder; + struct intel_connector *connector; + ++ /* oh hush */ ++ extern int i915_in_tv_detect; ++ if (i915_in_tv_detect) ++ return; ++ + list_for_each_entry(connector, &dev->mode_config.connector_list, + base.head) { + /* This also checks the encoder/connector hw state with the +diff -up linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c.jx linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c +--- linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c.jx 2012-12-10 22:30:57.000000000 -0500 ++++ linux-3.7.5-202.fc18.x86_64/drivers/gpu/drm/i915/intel_tv.c 2013-01-30 12:39:34.318593585 -0500 +@@ -1296,6 +1296,8 @@ static void intel_tv_find_better_format( + connector->dev->mode_config.tv_mode_property, i); + } + ++int i915_in_tv_detect = 0; ++ + /** + * Detect the TV connection. + * +@@ -1314,11 +1316,15 @@ intel_tv_detect(struct drm_connector *co + if (force) { + struct intel_load_detect_pipe tmp; + ++ i915_in_tv_detect = 1; + if (intel_get_load_detect_pipe(connector, &mode, &tmp)) { + type = intel_tv_detect_type(intel_tv, connector); + intel_release_load_detect_pipe(connector, &tmp); +- } else ++ i915_in_tv_detect = 0; ++ } else { ++ i915_in_tv_detect = 0; + return connector_status_unknown; ++ } + } else + return connector->status; + 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/efifb-skip-DMI-checks-if-bootloader-knows.patch b/efifb-skip-DMI-checks-if-bootloader-knows.patch new file mode 100644 index 000000000..1936d1ced --- /dev/null +++ b/efifb-skip-DMI-checks-if-bootloader-knows.patch @@ -0,0 +1,45 @@ +commit 9b989ae8a30f5a430fabbf911e0643bca96c3fd1 +Author: Matthew Garrett +Date: Thu Apr 26 17:35:58 2012 -0400 + + efifb: Skip DMI checks if the bootloader knows what it's doing + + The majority of the DMI checks in efifb are for cases where the bootloader + has provided invalid information. However, on some machines the overrides + may do more harm than good due to configuration differences between machines + with the same machine identifier. It turns out that it's possible for the + bootloader to get the correct information on GOP-based systems, but we + can't guarantee that the kernel's being booted with one that's been updated + to do so. Add support for a capabilities flag that can be set by the + bootloader, and skip the DMI checks in that case. + + Signed-off-by: Matthew Garrett + +diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c +index b4a632a..932abaa 100644 +--- a/drivers/video/efifb.c ++++ b/drivers/video/efifb.c +@@ -553,7 +553,9 @@ static int __init efifb_init(void) + int ret; + char *option = NULL; + +- dmi_check_system(dmi_system_table); ++ if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || ++ !(screen_info.capabilities & VIDEO_CAPABILITY_SKIP_QUIRKS)) ++ dmi_check_system(dmi_system_table); + + if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) + return -ENODEV; +diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h +index 899fbb4..fb3c5a8 100644 +--- a/include/linux/screen_info.h ++++ b/include/linux/screen_info.h +@@ -68,6 +68,8 @@ struct screen_info { + + #define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ + ++#define VIDEO_CAPABILITY_SKIP_QUIRKS (1 << 0) ++ + #ifdef __KERNEL__ + extern struct screen_info screen_info; + diff --git a/exec-do-not-leave-bprm-interp-on-stack.patch b/exec-do-not-leave-bprm-interp-on-stack.patch new file mode 100644 index 000000000..2a4b2dd28 --- /dev/null +++ b/exec-do-not-leave-bprm-interp-on-stack.patch @@ -0,0 +1,118 @@ +From 20ae2081584450e552735a3df968ce5b5946a607 Mon Sep 17 00:00:00 2001 +From: Kees Cook +Date: Mon, 26 Nov 2012 08:56:37 -0500 +Subject: [PATCH 1/2] exec: do not leave bprm->interp on stack + +If a series of scripts are executed, each triggering module loading via +unprintable bytes in the script header, kernel stack contents can leak +into the command line. + +Normally execution of binfmt_script and binfmt_misc happens recursively. +However, when modules are enabled, and unprintable bytes exist in the +bprm->buf, execution will restart after attempting to load matching binfmt +modules. Unfortunately, the logic in binfmt_script and binfmt_misc does +not expect to get restarted. They leave bprm->interp pointing to their +local stack. This means on restart bprm->interp is left pointing into +unused stack memory which can then be copied into the userspace argv +areas. + +After additional study, it seems that both recursion and restart remains +the desirable way to handle exec with scripts, misc, and modules. As +such, we need to protect the changes to interp. + +This changes the logic to require allocation for any changes to the +bprm->interp. To avoid adding a new kmalloc to every exec, the default +value is left as-is. Only when passing through binfmt_script or +binfmt_misc does an allocation take place. + +For a proof of concept, see DoTest.sh from: +http://www.halfdog.net/Security/2012/LinuxKernelBinfmtScriptStackDataDisclosure/ + +Signed-off-by: Kees Cook +Cc: halfdog +Cc: P J P +Cc: Alexander Viro +Cc: +Signed-off-by: Andrew Morton +--- + fs/binfmt_misc.c | 5 ++++- + fs/binfmt_script.c | 4 +++- + fs/exec.c | 15 +++++++++++++++ + include/linux/binfmts.h | 1 + + 4 files changed, 23 insertions(+), 2 deletions(-) + +diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c +index 790b3cd..772428d 100644 +--- a/fs/binfmt_misc.c ++++ b/fs/binfmt_misc.c +@@ -176,7 +176,10 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs) + goto _error; + bprm->argc ++; + +- bprm->interp = iname; /* for binfmt_script */ ++ /* Update interp in case binfmt_script needs it. */ ++ retval = bprm_change_interp(iname, bprm); ++ if (retval < 0) ++ goto _error; + + interp_file = open_exec (iname); + retval = PTR_ERR (interp_file); +diff --git a/fs/binfmt_script.c b/fs/binfmt_script.c +index d3b8c1f..df49d48 100644 +--- a/fs/binfmt_script.c ++++ b/fs/binfmt_script.c +@@ -82,7 +82,9 @@ static int load_script(struct linux_binprm *bprm,struct pt_regs *regs) + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval) return retval; + bprm->argc++; +- bprm->interp = interp; ++ retval = bprm_change_interp(interp, bprm); ++ if (retval < 0) ++ return retval; + + /* + * OK, now restart the process with the interpreter's dentry. +diff --git a/fs/exec.c b/fs/exec.c +index fab2c6d..59896ae 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -1202,9 +1202,24 @@ void free_bprm(struct linux_binprm *bprm) + mutex_unlock(¤t->signal->cred_guard_mutex); + abort_creds(bprm->cred); + } ++ /* If a binfmt changed the interp, free it. */ ++ if (bprm->interp != bprm->filename) ++ kfree(bprm->interp); + kfree(bprm); + } + ++int bprm_change_interp(char *interp, struct linux_binprm *bprm) ++{ ++ /* If a binfmt changed the interp, free it first. */ ++ if (bprm->interp != bprm->filename) ++ kfree(bprm->interp); ++ bprm->interp = kstrdup(interp, GFP_KERNEL); ++ if (!bprm->interp) ++ return -ENOMEM; ++ return 0; ++} ++EXPORT_SYMBOL(bprm_change_interp); ++ + /* + * install the new credentials for this executable + */ +diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h +index 366422b..eb53e15 100644 +--- a/include/linux/binfmts.h ++++ b/include/linux/binfmts.h +@@ -128,6 +128,7 @@ extern int setup_arg_pages(struct linux_binprm * bprm, + unsigned long stack_top, + int executable_stack); + extern int bprm_mm_init(struct linux_binprm *bprm); ++extern int bprm_change_interp(char *interp, struct linux_binprm *bprm); + extern int copy_strings_kernel(int argc, const char *const *argv, + struct linux_binprm *bprm); + extern int prepare_bprm_creds(struct linux_binprm *bprm); +-- +1.8.0 + diff --git a/ext4-Support-check-none-nocheck-mount-options.patch b/ext4-Support-check-none-nocheck-mount-options.patch deleted file mode 100644 index 281e4237a..000000000 --- a/ext4-Support-check-none-nocheck-mount-options.patch +++ /dev/null @@ -1,51 +0,0 @@ -From ea75f7357e3a881bd1bd0db5e483fc6a8681567b Mon Sep 17 00:00:00 2001 -From: Josh Boyer -Date: Tue, 10 Jan 2012 09:39:02 -0500 -Subject: [PATCH] ext4: Support "check=none" "nocheck" mount options - -The ext2/ext3 filesystems supported "check=none" and "nocheck" as mount options -even though that was already the default behavior and it essentially did -nothing. When using ext4 to mount ext2/ext3 filesystems, that mount option -causes the mount to fail. That isn't as backward compatible as it could be, -so add support to ext4 to accept the option. - -Signed-off-by: Josh Boyer ---- - fs/ext4/super.c | 7 ++++++- - 1 files changed, 6 insertions(+), 1 deletions(-) - -diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index 3e1329e..5ff09e7 100644 ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -1333,7 +1333,7 @@ enum { - Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity, - Opt_inode_readahead_blks, Opt_journal_ioprio, - Opt_dioread_nolock, Opt_dioread_lock, -- Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, -+ Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, Opt_nocheck, - }; - - static const match_table_t tokens = { -@@ -1409,6 +1409,8 @@ static const match_table_t tokens = { - {Opt_init_itable, "init_itable=%u"}, - {Opt_init_itable, "init_itable"}, - {Opt_noinit_itable, "noinit_itable"}, -+ {Opt_nocheck, "check=none"}, -+ {Opt_nocheck, "nocheck"}, - {Opt_err, NULL}, - }; - -@@ -1905,6 +1907,9 @@ set_qf_format: - case Opt_noinit_itable: - clear_opt(sb, INIT_INODE_TABLE); - break; -+ case Opt_nocheck: -+ /* ext2/ext3 used to "support" this option. Silently eat it */ -+ break; - default: - ext4_msg(sb, KERN_ERR, - "Unrecognized mount option \"%s\" " --- -1.7.7.5 - diff --git a/fanotify-info-leak-in-copy_event_to_user.patch b/fanotify-info-leak-in-copy_event_to_user.patch new file mode 100644 index 000000000..92b218b1c --- /dev/null +++ b/fanotify-info-leak-in-copy_event_to_user.patch @@ -0,0 +1,14 @@ +diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c +index 6c80083..77cc85d 100644 +--- a/fs/notify/fanotify/fanotify_user.c ++++ b/fs/notify/fanotify/fanotify_user.c +@@ -122,6 +122,7 @@ static int fill_event_metadata(struct fsnotify_group *group, + metadata->event_len = FAN_EVENT_METADATA_LEN; + metadata->metadata_len = FAN_EVENT_METADATA_LEN; + metadata->vers = FANOTIFY_METADATA_VERSION; ++ metadata->reserved = 0; + metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS; + metadata->pid = pid_vnr(event->tgid); + if (unlikely(event->mask & FAN_Q_OVERFLOW)) + + \ No newline at end of file diff --git a/fix-child-thread-introspection.patch b/fix-child-thread-introspection.patch new file mode 100644 index 000000000..4c0bad1a6 --- /dev/null +++ b/fix-child-thread-introspection.patch @@ -0,0 +1,76 @@ +Allow threads other than the main thread to do introspection of files in +proc without relying on read permissions. proc_pid_follow_link() calls +proc_fd_access_allowed() which ultimately calls __ptrace_may_access(). + +Though this allows additional access to some proc files, we do not +believe that this has any unintended security implications. However it +probably needs to be looked at carefully. + +The original problem was a thread of a process whose permissions were +111 couldn't open its own /proc/self/exe This was interfering with a +special purpose debugging tool. A simple reproducer is below.: + +#include +#include +#include +#include +#include +#include + +#define BUFSIZE 2048 + +void *thread_main(void *arg){ + char *str=(char*)arg; + char buf[BUFSIZE]; + ssize_t len=readlink("/proc/self/exe", buf, BUFSIZE); + if(len==-1) + printf("/proc/self/exe in %s: %s\n", str,sys_errlist[errno]); + else + printf("/proc/self/exe in %s: OK\n", str); + + return 0; +} + +int main(){ + pthread_t thread; + + int retval=pthread_create( &thread, NULL, thread_main, "thread"); + if(retval!=0) + exit(1); + + thread_main("main"); + pthread_join(thread, NULL); + + exit(0); +} + +Signed-off-by: Ben Woodard +Signed-off-by: Mark Grondona +--- + kernel/ptrace.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/ptrace.c b/kernel/ptrace.c +index acbd284..347c4c7 100644 +--- a/kernel/ptrace.c ++++ b/kernel/ptrace.c +diff -ruNp linux-3.8.4-103.fc17.noarch/kernel/ptrace.c linux-3.8.4-103.fc17.ptrace/kernel/ptrace.c +--- linux-3.8.4-103.fc17.noarch/kernel/ptrace.c 2013-02-18 17:58:34.000000000 -0600 ++++ linux-3.8.4-103.fc17.ptrace/kernel/ptrace.c 2013-03-26 14:59:01.939396346 -0500 +@@ -234,7 +234,7 @@ static int __ptrace_may_access(struct ta + */ + int dumpable = 0; + /* Don't let security modules deny introspection */ +- if (task == current) ++ if (same_thread_group(task, current)) + return 0; + rcu_read_lock(); + tcred = __task_cred(task); +-- +1.8.1.4 + +-- +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/ diff --git a/fix-ext4-overflows.patch b/fix-ext4-overflows.patch new file mode 100644 index 000000000..f2a08ebc8 --- /dev/null +++ b/fix-ext4-overflows.patch @@ -0,0 +1,207 @@ +From 93f6b57df5d9dd8c0327cebc01f6c00dbcd6d2ff Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 31 May 2013 19:33:42 -0400 +Subject: [PATCH 1/4] ext4: fix data offset overflow on 32-bit archs in + ext4_inline_data_fiemap() + +On 32-bit archs when sector_t is defined as 32-bit the logic computing +data offset in ext4_inline_data_fiemap(). Fix that by properly typing +the shifted value. + +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +--- + fs/ext4/inline.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c +index c0fd1a1..c46a01e 100644 +--- a/fs/ext4/inline.c ++++ b/fs/ext4/inline.c +@@ -1702,7 +1702,7 @@ int ext4_inline_data_fiemap(struct inode *inode, + if (error) + goto out; + +- physical = iloc.bh->b_blocknr << inode->i_sb->s_blocksize_bits; ++ physical = (__u64)iloc.bh->b_blocknr << inode->i_sb->s_blocksize_bits; + physical += (char *)ext4_raw_inode(&iloc) - iloc.bh->b_data; + physical += offsetof(struct ext4_inode, i_block); + length = i_size_read(inode); +-- +1.8.3.1 + + +From 4d2cedb535bae3ada76a335540657e948f99d9c0 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 31 May 2013 19:37:56 -0400 +Subject: [PATCH 2/4] ext4: fix overflows in SEEK_HOLE, SEEK_DATA + implementations + +ext4_lblk_t is just u32 so multiplying it by blocksize can easily +overflow for files larger than 4 GB. Fix that by properly typing the +block offsets before shifting. + +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +Reviewed-by: Zheng Liu +--- + fs/ext4/file.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/fs/ext4/file.c b/fs/ext4/file.c +index 64848b5..b47ccf9 100644 +--- a/fs/ext4/file.c ++++ b/fs/ext4/file.c +@@ -311,7 +311,7 @@ static int ext4_find_unwritten_pgoff(struct inode *inode, + blkbits = inode->i_sb->s_blocksize_bits; + startoff = *offset; + lastoff = startoff; +- endoff = (map->m_lblk + map->m_len) << blkbits; ++ endoff = (loff_t)(map->m_lblk + map->m_len) << blkbits; + + index = startoff >> PAGE_CACHE_SHIFT; + end = endoff >> PAGE_CACHE_SHIFT; +@@ -456,7 +456,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) + ret = ext4_map_blocks(NULL, inode, &map, 0); + if (ret > 0 && !(map.m_flags & EXT4_MAP_UNWRITTEN)) { + if (last != start) +- dataoff = last << blkbits; ++ dataoff = (loff_t)last << blkbits; + break; + } + +@@ -467,7 +467,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) + ext4_es_find_delayed_extent(inode, last, &es); + if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) { + if (last != start) +- dataoff = last << blkbits; ++ dataoff = (loff_t)last << blkbits; + break; + } + +@@ -485,7 +485,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize) + } + + last++; +- dataoff = last << blkbits; ++ dataoff = (loff_t)last << blkbits; + } while (last <= end); + + mutex_unlock(&inode->i_mutex); +@@ -539,7 +539,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) + ret = ext4_map_blocks(NULL, inode, &map, 0); + if (ret > 0 && !(map.m_flags & EXT4_MAP_UNWRITTEN)) { + last += ret; +- holeoff = last << blkbits; ++ holeoff = (loff_t)last << blkbits; + continue; + } + +@@ -550,7 +550,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) + ext4_es_find_delayed_extent(inode, last, &es); + if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) { + last = es.es_lblk + es.es_len; +- holeoff = last << blkbits; ++ holeoff = (loff_t)last << blkbits; + continue; + } + +@@ -565,7 +565,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize) + &map, &holeoff); + if (!unwritten) { + last += ret; +- holeoff = last << blkbits; ++ holeoff = (loff_t)last << blkbits; + continue; + } + } +-- +1.8.3.1 + + +From 114fe3b7fc9ca3ca00f774dd8705e8c802f39f14 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 31 May 2013 19:38:56 -0400 +Subject: [PATCH 3/4] ext4: fix data offset overflow in ext4_xattr_fiemap() on + 32-bit archs + +On 32-bit architectures with 32-bit sector_t computation of data offset +in ext4_xattr_fiemap() can overflow resulting in reporting bogus data +location. Fix the problem by typing block number to proper type before +shifting. + +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +--- + fs/ext4/extents.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c +index 9c6d06d..6bb303c 100644 +--- a/fs/ext4/extents.c ++++ b/fs/ext4/extents.c +@@ -4605,7 +4605,7 @@ static int ext4_xattr_fiemap(struct inode *inode, + error = ext4_get_inode_loc(inode, &iloc); + if (error) + return error; +- physical = iloc.bh->b_blocknr << blockbits; ++ physical = (__u64)iloc.bh->b_blocknr << blockbits; + offset = EXT4_GOOD_OLD_INODE_SIZE + + EXT4_I(inode)->i_extra_isize; + physical += offset; +@@ -4613,7 +4613,7 @@ static int ext4_xattr_fiemap(struct inode *inode, + flags |= FIEMAP_EXTENT_DATA_INLINE; + brelse(iloc.bh); + } else { /* external block */ +- physical = EXT4_I(inode)->i_file_acl << blockbits; ++ physical = (__u64)EXT4_I(inode)->i_file_acl << blockbits; + length = inode->i_sb->s_blocksize; + } + +-- +1.8.3.1 + + +From aeb72ff4b7fe084b4373d4a91d77d3bea8089627 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Fri, 31 May 2013 19:39:56 -0400 +Subject: [PATCH 4/4] ext4: fix overflow when counting used blocks on 32-bit + architectures + +The arithmetics adding delalloc blocks to the number of used blocks in +ext4_getattr() can easily overflow on 32-bit archs as we first multiply +number of blocks by blocksize and then divide back by 512. Make the +arithmetics more clever and also use proper type (unsigned long long +instead of unsigned long). + +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +--- + fs/ext4/inode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c +index d69e954..e33e2d2 100644 +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -4616,7 +4616,7 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) + { + struct inode *inode; +- unsigned long delalloc_blocks; ++ unsigned long long delalloc_blocks; + + inode = dentry->d_inode; + generic_fillattr(inode, stat); +@@ -4634,7 +4634,7 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, + delalloc_blocks = EXT4_C2B(EXT4_SB(inode->i_sb), + EXT4_I(inode)->i_reserved_data_blocks); + +- stat->blocks += (delalloc_blocks << inode->i_sb->s_blocksize_bits)>>9; ++ stat->blocks += delalloc_blocks << (inode->i_sb->s_blocksize_bits-9); + return 0; + } + +-- +1.8.3.1 + diff --git a/fix_xen_guest_on_old_EC2.patch b/fix_xen_guest_on_old_EC2.patch deleted file mode 100644 index e86200295..000000000 --- a/fix_xen_guest_on_old_EC2.patch +++ /dev/null @@ -1,34 +0,0 @@ - -Legacy hypervisors (RHEL 5.0 and RHEL 5.1) do not handle guest writes to -cr4 gracefully. If a guest attempts to write a bit of cr4 that is -unsupported, then the HV is so offended it crashes the domain. While -later guest kernels (such as RHEL6) don't assume the HV supports all -features, they do expect nicer responses. That assumption introduced -code that probes whether or not xsave is supported early in the boot. So -now when attempting to boot a RHEL6 guest on RHEL5.0 or RHEL5.1 an early -crash will occur. - -This patch is quite obviously an undesirable hack. The real fix for this -problem should be in the HV, and is, in later HVs. However, to support -running on old HVs, RHEL6 can take this small change. No impact will -occur for running on any RHEL HV (not even RHEL 5.5 supports xsave). -There is only potential for guest performance loss on upstream Xen. - ---- - arch/x86/xen/enlighten.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c -index 52f8e19..6db3d67 100644 ---- a/arch/x86/xen/enlighten.c -+++ b/arch/x86/xen/enlighten.c -@@ -802,6 +802,7 @@ static void xen_write_cr4(unsigned long cr4) - { - cr4 &= ~X86_CR4_PGE; - cr4 &= ~X86_CR4_PSE; -+ cr4 &= ~X86_CR4_OSXSAVE; - - native_write_cr4(cr4); - } --- -1.6.6.1 diff --git a/floppy-Remove-_hlt-related-functions.patch b/floppy-Remove-_hlt-related-functions.patch deleted file mode 100644 index 75609ddae..000000000 --- a/floppy-Remove-_hlt-related-functions.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 5c21b39ab123ada8ce248efc733420bd8c9ea255 Mon Sep 17 00:00:00 2001 -From: Josh Boyer -Date: Fri, 28 Oct 2011 15:38:06 -0400 -Subject: [PATCH] floppy: Remove _hlt related functions - -It's close enough to 2012 and the WARN_ONCE is causing things like abrt to -auto-file bugs that aren't really bugs. - -Signed-off-by: Josh Boyer - -diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt -index d5ac362..df1e87c 100644 ---- a/Documentation/feature-removal-schedule.txt -+++ b/Documentation/feature-removal-schedule.txt -@@ -6,14 +6,6 @@ be removed from this file. - - --------------------------- - --What: x86 floppy disable_hlt --When: 2012 --Why: ancient workaround of dubious utility clutters the -- code used by everybody else. --Who: Len Brown -- ----------------------------- -- - What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle - When: 2012 - Why: This optional sub-feature of APM is of dubious reliability, -diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c -index 9955a53..40bf4c2 100644 ---- a/drivers/block/floppy.c -+++ b/drivers/block/floppy.c -@@ -1032,37 +1032,6 @@ static int fd_wait_for_completion(unsigned long delay, timeout_fn function) - return 0; - } - --static DEFINE_SPINLOCK(floppy_hlt_lock); --static int hlt_disabled; --static void floppy_disable_hlt(void) --{ -- unsigned long flags; -- -- WARN_ONCE(1, "floppy_disable_hlt() scheduled for removal in 2012"); -- spin_lock_irqsave(&floppy_hlt_lock, flags); -- if (!hlt_disabled) { -- hlt_disabled = 1; --#ifdef HAVE_DISABLE_HLT -- disable_hlt(); --#endif -- } -- spin_unlock_irqrestore(&floppy_hlt_lock, flags); --} -- --static void floppy_enable_hlt(void) --{ -- unsigned long flags; -- -- spin_lock_irqsave(&floppy_hlt_lock, flags); -- if (hlt_disabled) { -- hlt_disabled = 0; --#ifdef HAVE_DISABLE_HLT -- enable_hlt(); --#endif -- } -- spin_unlock_irqrestore(&floppy_hlt_lock, flags); --} -- - static void setup_DMA(void) - { - unsigned long f; -@@ -1107,7 +1076,6 @@ static void setup_DMA(void) - fd_enable_dma(); - release_dma_lock(f); - #endif -- floppy_disable_hlt(); - } - - static void show_floppy(void); -@@ -1709,7 +1677,6 @@ irqreturn_t floppy_interrupt(int irq, void *dev_id) - fd_disable_dma(); - release_dma_lock(f); - -- floppy_enable_hlt(); - do_floppy = NULL; - if (fdc >= N_FDC || FDCS->address == -1) { - /* we don't even know which FDC is the culprit */ -@@ -1858,8 +1825,6 @@ static void floppy_shutdown(unsigned long data) - show_floppy(); - cancel_activity(); - -- floppy_enable_hlt(); -- - flags = claim_dma_lock(); - fd_disable_dma(); - release_dma_lock(flags); -@@ -4504,7 +4469,6 @@ static void floppy_release_irq_and_dma(void) - #if N_FDC > 1 - set_dor(1, ~8, 0); - #endif -- floppy_enable_hlt(); - - if (floppy_track_buffer && max_buffer_sectors) { - tmpsize = max_buffer_sectors * 1024; --- -1.7.6.4 - diff --git a/fs-proc-devtree-remove_proc_entry.patch b/fs-proc-devtree-remove_proc_entry.patch new file mode 100644 index 000000000..c32e79e6e --- /dev/null +++ b/fs-proc-devtree-remove_proc_entry.patch @@ -0,0 +1,12 @@ +diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c +index 927cbd1..f060f28 100644 +--- a/fs/proc/proc_devtree.c ++++ b/fs/proc/proc_devtree.c +@@ -233,6 +233,7 @@ void __init proc_device_tree_init(void) + return; + root = of_find_node_by_path("/"); + if (root == NULL) { ++ remove_proc_entry("device-tree", NULL); + pr_debug("/proc/device-tree: can't find root\n"); + return; + } diff --git a/hfsplus-Change-finder_info-to-u32.patch b/hfsplus-Change-finder_info-to-u32.patch deleted file mode 100644 index 15e3e67d8..000000000 --- a/hfsplus-Change-finder_info-to-u32.patch +++ /dev/null @@ -1,26 +0,0 @@ -The finder_info block in the hfsplus volume header is currently defined as -an array of 8 bit values, but TN1150 defines it as being an array of 32 bit -values. Fix for convenience. - -Signed-off-by: Matthew Garrett ---- - fs/hfsplus/hfsplus_raw.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/fs/hfsplus/hfsplus_raw.h b/fs/hfsplus/hfsplus_raw.h -index 927cdd6..921967e 100644 ---- a/fs/hfsplus/hfsplus_raw.h -+++ b/fs/hfsplus/hfsplus_raw.h -@@ -117,7 +117,7 @@ struct hfsplus_vh { - __be32 write_count; - __be64 encodings_bmp; - -- u8 finder_info[32]; -+ u32 finder_info[8]; - - struct hfsplus_fork_raw alloc_file; - struct hfsplus_fork_raw ext_file; --- -1.7.7.1 - - diff --git a/hfsplus-initialise-userflags.patch b/hfsplus-initialise-userflags.patch new file mode 100644 index 000000000..7f0be15b3 --- /dev/null +++ b/hfsplus-initialise-userflags.patch @@ -0,0 +1,39 @@ +From f3922382ce930e76773fb06416a7a6081a8702ad Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 13 Mar 2012 12:10:34 -0400 +Subject: [PATCH] hfsplus: initialise userflags + +The userflags field was being written to the filesystem without being +initialised. Make sure it's clear, since otherwise files end up with +garbage attributes. + +Signed-off-by: Matthew Garrett +Signed-off-by: Christoph Hellwig +Signed-off-by: Al Viro +--- + fs/hfsplus/inode.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c +index 6643b24..82b69ee 100644 +--- a/fs/hfsplus/inode.c ++++ b/fs/hfsplus/inode.c +@@ -193,6 +193,7 @@ static struct dentry *hfsplus_file_lookup(struct inode *dir, + mutex_init(&hip->extents_lock); + hip->extent_state = 0; + hip->flags = 0; ++ hip->userflags = 0; + set_bit(HFSPLUS_I_RSRC, &hip->flags); + + err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &fd); +@@ -400,6 +401,7 @@ struct inode *hfsplus_new_inode(struct super_block *sb, umode_t mode) + atomic_set(&hip->opencnt, 0); + hip->extent_state = 0; + hip->flags = 0; ++ hip->userflags = 0; + memset(hip->first_extents, 0, sizeof(hfsplus_extent_rec)); + memset(hip->cached_extents, 0, sizeof(hfsplus_extent_rec)); + hip->alloc_blocks = 0; +-- +1.7.7.6 + 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/i7300_edac_single_mode_fixup.patch b/i7300_edac_single_mode_fixup.patch new file mode 100644 index 000000000..ed08ab961 --- /dev/null +++ b/i7300_edac_single_mode_fixup.patch @@ -0,0 +1,108 @@ +commit 8ed5b5d41168a98cffa63e2f6c51c3243e159706 +Author: Mauro Carvalho Chehab +Date: Wed Mar 13 22:56:33 2013 -0300 + + i7300_edac: Fix memory detection in single mode + + When the machine is on single mode, only branch 0 channel 0 + is valid. However, the code is not honouring it: + + [ 1952.639341] EDAC DEBUG: i7300_get_mc_regs: Memory controller operating on single mode + ... + [ 1952.639351] EDAC DEBUG: i7300_init_csrows: AMB-present CH0 = 0x1: + [ 1952.639353] EDAC DEBUG: i7300_init_csrows: AMB-present CH1 = 0x0: + [ 1952.639355] EDAC DEBUG: i7300_init_csrows: AMB-present CH2 = 0x0: + [ 1952.639358] EDAC DEBUG: i7300_init_csrows: AMB-present CH3 = 0x0: + ... + [ 1952.639360] EDAC DEBUG: decode_mtr: MTR0 CH0: DIMMs are Present (mtr) + [ 1952.639362] EDAC DEBUG: decode_mtr: WIDTH: x8 + [ 1952.639363] EDAC DEBUG: decode_mtr: ELECTRICAL THROTTLING is enabled + [ 1952.639364] EDAC DEBUG: decode_mtr: NUMBANK: 4 bank(s) + [ 1952.639366] EDAC DEBUG: decode_mtr: NUMRANK: single + [ 1952.639367] EDAC DEBUG: decode_mtr: NUMROW: 16,384 - 14 rows + [ 1952.639368] EDAC DEBUG: decode_mtr: NUMCOL: 1,024 - 10 columns + [ 1952.639370] EDAC DEBUG: decode_mtr: SIZE: 512 MB + [ 1952.639371] EDAC DEBUG: decode_mtr: ECC code is 8-byte-over-32-byte SECDED+ code + [ 1952.639373] EDAC DEBUG: decode_mtr: Scrub algorithm for x8 is on enhanced mode + [ 1952.639374] EDAC DEBUG: decode_mtr: MTR0 CH1: DIMMs are Present (mtr) + [ 1952.639376] EDAC DEBUG: decode_mtr: WIDTH: x8 + [ 1952.639377] EDAC DEBUG: decode_mtr: ELECTRICAL THROTTLING is enabled + [ 1952.639379] EDAC DEBUG: decode_mtr: NUMBANK: 4 bank(s) + [ 1952.639380] EDAC DEBUG: decode_mtr: NUMRANK: single + [ 1952.639381] EDAC DEBUG: decode_mtr: NUMROW: 16,384 - 14 rows + [ 1952.639383] EDAC DEBUG: decode_mtr: NUMCOL: 1,024 - 10 columns + [ 1952.639384] EDAC DEBUG: decode_mtr: SIZE: 512 MB + [ 1952.639385] EDAC DEBUG: decode_mtr: ECC code is 8-byte-over-32-byte SECDED+ code + [ 1952.639387] EDAC DEBUG: decode_mtr: Scrub algorithm for x8 is on enhanced mode + ... + [ 1952.639449] EDAC DEBUG: print_dimm_size: channel 0 | channel 1 | channel 2 | channel 3 | + [ 1952.639451] EDAC DEBUG: print_dimm_size: ------------------------------------------------------------- + [ 1952.639453] EDAC DEBUG: print_dimm_size: csrow/SLOT 0 512 MB | 512 MB | 0 MB | 0 MB | + [ 1952.639456] EDAC DEBUG: print_dimm_size: csrow/SLOT 1 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639458] EDAC DEBUG: print_dimm_size: csrow/SLOT 2 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639460] EDAC DEBUG: print_dimm_size: csrow/SLOT 3 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639462] EDAC DEBUG: print_dimm_size: csrow/SLOT 4 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639464] EDAC DEBUG: print_dimm_size: csrow/SLOT 5 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639466] EDAC DEBUG: print_dimm_size: csrow/SLOT 6 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639468] EDAC DEBUG: print_dimm_size: csrow/SLOT 7 0 MB | 0 MB | 0 MB | 0 MB | + [ 1952.639470] EDAC DEBUG: print_dimm_size: ------------------------------------------------------------- + + Instead of detecting a single memory at channel 0, it is showing + twice the memory. + + Signed-off-by: Mauro Carvalho Chehab + +diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c +index 087c27b..9004c64 100644 +--- a/drivers/edac/i7300_edac.c ++++ b/drivers/edac/i7300_edac.c +@@ -750,15 +750,23 @@ static int i7300_init_csrows(struct mem_ctl_info *mci) + struct i7300_dimm_info *dinfo; + int rc = -ENODEV; + int mtr; +- int ch, branch, slot, channel; ++ int ch, branch, slot, channel, max_channel, max_branch; + struct dimm_info *dimm; + + pvt = mci->pvt_info; + + edac_dbg(2, "Memory Technology Registers:\n"); + ++ if (IS_SINGLE_MODE(pvt->mc_settings_a)) { ++ max_branch = 1; ++ max_channel = 1; ++ } else { ++ max_branch = MAX_BRANCHES; ++ max_channel = MAX_CH_PER_BRANCH; ++ } ++ + /* Get the AMB present registers for the four channels */ +- for (branch = 0; branch < MAX_BRANCHES; branch++) { ++ for (branch = 0; branch < max_branch; branch++) { + /* Read and dump branch 0's MTRs */ + channel = to_channel(0, branch); + pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch], +@@ -767,6 +775,9 @@ static int i7300_init_csrows(struct mem_ctl_info *mci) + edac_dbg(2, "\t\tAMB-present CH%d = 0x%x:\n", + channel, pvt->ambpresent[channel]); + ++ if (max_channel == 1) ++ continue; ++ + channel = to_channel(1, branch); + pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch], + AMBPRESENT_1, +@@ -778,11 +789,11 @@ static int i7300_init_csrows(struct mem_ctl_info *mci) + /* Get the set of MTR[0-7] regs by each branch */ + for (slot = 0; slot < MAX_SLOTS; slot++) { + int where = mtr_regs[slot]; +- for (branch = 0; branch < MAX_BRANCHES; branch++) { ++ for (branch = 0; branch < max_branch; branch++) { + pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch], + where, + &pvt->mtr[slot][branch]); +- for (ch = 0; ch < MAX_CH_PER_BRANCH; ch++) { ++ for (ch = 0; ch < max_channel; ch++) { + int channel = to_channel(ch, branch); + + dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, diff --git a/linux-2.6-input-kill-stupid-messages.patch b/input-kill-stupid-messages.patch similarity index 54% rename from linux-2.6-input-kill-stupid-messages.patch rename to input-kill-stupid-messages.patch index cc1dd7470..ff7023f51 100644 --- a/linux-2.6-input-kill-stupid-messages.patch +++ b/input-kill-stupid-messages.patch @@ -1,32 +1,20 @@ -From b2c6d55b2351152696aafb8c9bf3ec8968acf77c Mon Sep 17 00:00:00 2001 -From: Kyle McMartin -Date: Mon, 29 Mar 2010 23:59:58 -0400 -Subject: linux-2.6-input-kill-stupid-messages - ---- - drivers/input/keyboard/atkbd.c | 5 +++++ - 1 files changed, 5 insertions(+), 0 deletions(-) - diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c -index d358ef8..38db098 100644 +index add5ffd..5eb2f03 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c -@@ -425,11 +426,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, +@@ -430,11 +430,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, goto out; case ATKBD_RET_ACK: case ATKBD_RET_NAK: -+#if 0 ++# if 0 + /* Quite a few key switchers and other tools trigger this + * and it confuses people who can do nothing about it */ if (printk_ratelimit()) dev_warn(&serio->dev, "Spurious %s on %s. " - "Some program might be trying access hardware directly.\n", + "Some program might be trying to access hardware directly.\n", data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys); +#endif goto out; case ATKBD_RET_ERR: atkbd->err_count++; --- -1.7.0.1 - diff --git a/intel_iommu-Downgrade-the-warning-if-enabling-irq-remapping-fails.patch b/intel_iommu-Downgrade-the-warning-if-enabling-irq-remapping-fails.patch new file mode 100644 index 000000000..424d60350 --- /dev/null +++ b/intel_iommu-Downgrade-the-warning-if-enabling-irq-remapping-fails.patch @@ -0,0 +1,25 @@ +This triggers on a MacBook Pro. + +Signed-off-by: Andy Lutomirski +https://bugzilla.redhat.com/show_bug.cgi?id=948262 +--- + drivers/iommu/intel_irq_remapping.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c +index f3b8f23..a7e0ad1 100644 +--- a/drivers/iommu/intel_irq_remapping.c ++++ b/drivers/iommu/intel_irq_remapping.c +@@ -654,8 +654,7 @@ error: + */ + + if (x2apic_present) +- WARN(1, KERN_WARNING +- "Failed to enable irq remapping. You are vulnerable to irq-injection attacks.\n"); ++ pr_warn("Failed to enable irq remapping. You are vulnerable to irq-injection attacks.\n"); + + return -1; + } +-- +1.8.1.4 + 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/ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch b/ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch new file mode 100644 index 000000000..8f6c41d28 --- /dev/null +++ b/ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch @@ -0,0 +1,52 @@ +From a963a37d384d71ad43b3e9e79d68d42fbe0901f3 Mon Sep 17 00:00:00 2001 +From: Eric Dumazet +Date: Wed, 26 Jun 2013 04:15:07 -0700 +Subject: [PATCH] ipv6: ip6_sk_dst_check() must not assume ipv6 dst + +It's possible to use AF_INET6 sockets and to connect to an IPv4 +destination. After this, socket dst cache is a pointer to a rtable, +not rt6_info. + +ip6_sk_dst_check() should check the socket dst cache is IPv6, or else +various corruptions/crashes can happen. + +Dave Jones can reproduce immediate crash with +trinity -q -l off -n -c sendmsg -c connect + +With help from Hannes Frederic Sowa + +Reported-by: Dave Jones +Reported-by: Hannes Frederic Sowa +Signed-off-by: Eric Dumazet +Acked-by: Hannes Frederic Sowa +Signed-off-by: David S. Miller +--- + net/ipv6/ip6_output.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c +index 95703ba..d5d20cd 100644 +--- a/net/ipv6/ip6_output.c ++++ b/net/ipv6/ip6_output.c +@@ -821,11 +821,17 @@ static struct dst_entry *ip6_sk_dst_check(struct sock *sk, + const struct flowi6 *fl6) + { + struct ipv6_pinfo *np = inet6_sk(sk); +- struct rt6_info *rt = (struct rt6_info *)dst; ++ struct rt6_info *rt; + + if (!dst) + goto out; + ++ if (dst->ops->family != AF_INET6) { ++ dst_release(dst); ++ return NULL; ++ } ++ ++ rt = (struct rt6_info *)dst; + /* Yes, checking route validity in not connected + * case is not very simple. Take into account, + * that we do not support routing by source, TOS, +-- +1.8.2.1 + diff --git a/iwl3945-better-skb-management-in-rx-path.patch b/iwl3945-better-skb-management-in-rx-path.patch new file mode 100644 index 000000000..5d85af7d4 --- /dev/null +++ b/iwl3945-better-skb-management-in-rx-path.patch @@ -0,0 +1,97 @@ +From: Eric Dumazet + +Steinar reported reallocations of skb->head with IPv6, leading to +a warning in skb_try_coalesce() + +It turns out iwl3945 has several problems : + +1) skb->truesize is underestimated. + We really consume PAGE_SIZE bytes for a fragment, + not the frame length. +2) 128 bytes of initial headroom is a bit low and forces reallocations. +3) We can avoid consuming a full page for small enough frames. + +Reported-by: Steinar H. Gunderson +Signed-off-by: Eric Dumazet +Cc: Paul Stewart +--- +v3: use regular memcpy(skb_put(...),...) +v2: SMALL_PACKET_SIZE define + + drivers/net/wireless/iwlegacy/3945.c | 31 +++++++++++++++---------- + 1 file changed, 19 insertions(+), 12 deletions(-) + +diff --git a/drivers/net/wireless/iwlegacy/3945.c b/drivers/net/wireless/iwlegacy/3945.c +index c092033..f09e257 100644 +--- a/drivers/net/wireless/iwlegacy/3945.c ++++ b/drivers/net/wireless/iwlegacy/3945.c +@@ -475,6 +475,8 @@ il3945_is_network_packet(struct il_priv *il, struct ieee80211_hdr *header) + } + } + ++#define SMALL_PACKET_SIZE 256 ++ + static void + il3945_pass_packet_to_mac80211(struct il_priv *il, struct il_rx_buf *rxb, + struct ieee80211_rx_status *stats) +@@ -483,14 +485,13 @@ il3945_pass_packet_to_mac80211(struct il_priv *il, struct il_rx_buf *rxb, + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)IL_RX_DATA(pkt); + struct il3945_rx_frame_hdr *rx_hdr = IL_RX_HDR(pkt); + struct il3945_rx_frame_end *rx_end = IL_RX_END(pkt); +- u16 len = le16_to_cpu(rx_hdr->len); ++ u32 len = le16_to_cpu(rx_hdr->len); + struct sk_buff *skb; + __le16 fc = hdr->frame_control; ++ u32 fraglen = PAGE_SIZE << il->hw_params.rx_page_order; + + /* We received data from the HW, so stop the watchdog */ +- if (unlikely +- (len + IL39_RX_FRAME_SIZE > +- PAGE_SIZE << il->hw_params.rx_page_order)) { ++ if (unlikely(len + IL39_RX_FRAME_SIZE > fraglen)) { + D_DROP("Corruption detected!\n"); + return; + } +@@ -506,26 +507,32 @@ il3945_pass_packet_to_mac80211(struct il_priv *il, struct il_rx_buf *rxb, + D_INFO("Woke queues - frame received on passive channel\n"); + } + +- skb = dev_alloc_skb(128); ++ skb = dev_alloc_skb(SMALL_PACKET_SIZE); + if (!skb) { + IL_ERR("dev_alloc_skb failed\n"); + return; + } + + if (!il3945_mod_params.sw_crypto) +- il_set_decrypted_flag(il, (struct ieee80211_hdr *)rxb_addr(rxb), ++ il_set_decrypted_flag(il, (struct ieee80211_hdr *)pkt, + le32_to_cpu(rx_end->status), stats); + +- skb_add_rx_frag(skb, 0, rxb->page, +- (void *)rx_hdr->payload - (void *)pkt, len, +- len); +- ++ /* If frame is small enough to fit into skb->head, copy it ++ * and do not consume a full page ++ */ ++ if (len <= SMALL_PACKET_SIZE) { ++ memcpy(skb_put(skb, len), rx_hdr->payload, len); ++ } else { ++ skb_add_rx_frag(skb, 0, rxb->page, ++ (void *)rx_hdr->payload - (void *)pkt, len, ++ fraglen); ++ il->alloc_rxb_page--; ++ rxb->page = NULL; ++ } + il_update_stats(il, false, fc, len); + memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats)); + + ieee80211_rx(il->hw, skb); +- il->alloc_rxb_page--; +- rxb->page = NULL; + } + + #define IL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6) + + diff --git a/iwl4965-better-skb-management-in-rx-path.patch b/iwl4965-better-skb-management-in-rx-path.patch new file mode 100644 index 000000000..904ff04f6 --- /dev/null +++ b/iwl4965-better-skb-management-in-rx-path.patch @@ -0,0 +1,65 @@ +4965 version of Eric patch "iwl3945: better skb management in rx path". +It fixes several problems : + +1) skb->truesize is underestimated. + We really consume PAGE_SIZE bytes for a fragment, + not the frame length. +2) 128 bytes of initial headroom is a bit low and forces reallocations. +3) We can avoid consuming a full page for small enough frames. + +Signed-off-by: Stanislaw Gruszka +--- + drivers/net/wireless/iwlegacy/4965-mac.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c +index d287fd2..4e5d408 100644 +--- a/drivers/net/wireless/iwlegacy/4965-mac.c ++++ b/drivers/net/wireless/iwlegacy/4965-mac.c +@@ -574,9 +574,11 @@ il4965_translate_rx_status(struct il_priv *il, u32 decrypt_in) + return decrypt_out; + } + ++#define SMALL_PACKET_SIZE 256 ++ + static void + il4965_pass_packet_to_mac80211(struct il_priv *il, struct ieee80211_hdr *hdr, +- u16 len, u32 ampdu_status, struct il_rx_buf *rxb, ++ u32 len, u32 ampdu_status, struct il_rx_buf *rxb, + struct ieee80211_rx_status *stats) + { + struct sk_buff *skb; +@@ -598,21 +600,25 @@ il4965_pass_packet_to_mac80211(struct il_priv *il, struct ieee80211_hdr *hdr, + il_set_decrypted_flag(il, hdr, ampdu_status, stats)) + return; + +- skb = dev_alloc_skb(128); ++ skb = dev_alloc_skb(SMALL_PACKET_SIZE); + if (!skb) { + IL_ERR("dev_alloc_skb failed\n"); + return; + } + +- skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb), len, +- len); ++ if (len <= SMALL_PACKET_SIZE) { ++ memcpy(skb_put(skb, len), hdr, len); ++ } else { ++ skb_add_rx_frag(skb, 0, rxb->page, (void *)hdr - rxb_addr(rxb), ++ len, PAGE_SIZE << il->hw_params.rx_page_order); ++ il->alloc_rxb_page--; ++ rxb->page = NULL; ++ } + + il_update_stats(il, false, fc, len); + memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats)); + + ieee80211_rx(il->hw, skb); +- il->alloc_rxb_page--; +- rxb->page = NULL; + } + + /* Called for N_RX (legacy ABG frames), or +-- +1.7.11.7 + diff --git a/iwlwifi-dvm-dont-send-BT_CONFIG-on-devices-wo-Bluetooth.patch b/iwlwifi-dvm-dont-send-BT_CONFIG-on-devices-wo-Bluetooth.patch new file mode 100644 index 000000000..aa2ca7035 --- /dev/null +++ b/iwlwifi-dvm-dont-send-BT_CONFIG-on-devices-wo-Bluetooth.patch @@ -0,0 +1,32 @@ +From 7b29fdb8cd8f92e31f550611a8c031986dba2e8f Mon Sep 17 00:00:00 2001 +From: Johannes Berg +Date: Fri, 03 May 2013 16:58:16 +0000 +Subject: iwlwifi: dvm: don't send BT_CONFIG on devices w/o Bluetooth + +The BT_CONFIG command that is sent to the device during +startup will enable BT coex unless the module parameter +turns it off, but on devices without Bluetooth this may +cause problems, as reported in Redhat BZ 885407. + +Fix this by sending the BT_CONFIG command only when the +device has Bluetooth. + +Cc: stable@vger.kernel.org +Reviewed-by: Emmanuel Grumbach +Signed-off-by: Johannes Berg +--- +diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c +index 3952ddf..1531a4f 100644 +--- a/drivers/net/wireless/iwlwifi/dvm/main.c ++++ b/drivers/net/wireless/iwlwifi/dvm/main.c +@@ -758,7 +758,7 @@ int iwl_alive_start(struct iwl_priv *priv) + BT_COEX_PRIO_TBL_EVT_INIT_CALIB2); + if (ret) + return ret; +- } else { ++ } else if (priv->cfg->bt_params) { + /* + * default is 2-wire BT coexexistence support + */ +-- +cgit v0.9.2 diff --git a/iwlwifi-pcie-fix-race-in-queue-unmapping.patch b/iwlwifi-pcie-fix-race-in-queue-unmapping.patch new file mode 100644 index 000000000..ad9194af3 --- /dev/null +++ b/iwlwifi-pcie-fix-race-in-queue-unmapping.patch @@ -0,0 +1,56 @@ +From: Emmanuel Grumbach + +When a queue is disabled, it frees all its entries. Later, +the op_mode might still get notifications from the firmware +that triggers to free entries in the tx queue. The transport +should be prepared for these races and know to ignore +reclaim calls on queues that have been disabled and whose +entries have been freed. + +Cc: stable@vger.kernel.org +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Johannes Berg +--- + drivers/net/wireless/iwlwifi/pcie/tx.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c +index cb5c679..faaf77c 100644 +--- a/drivers/net/wireless/iwlwifi/pcie/tx.c ++++ b/drivers/net/wireless/iwlwifi/pcie/tx.c +@@ -578,9 +578,12 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id) + + spin_lock_bh(&txq->lock); + while (q->write_ptr != q->read_ptr) { ++ IWL_DEBUG_TX_REPLY(trans, "Q %d Free %d\n", ++ txq_id, q->read_ptr); + iwl_pcie_txq_free_tfd(trans, txq); + q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd); + } ++ txq->active = false; + spin_unlock_bh(&txq->lock); + } + +@@ -929,6 +932,12 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn, + + spin_lock_bh(&txq->lock); + ++ if (!txq->active) { ++ IWL_DEBUG_TX_QUEUES(trans, "Q %d inactive - ignoring idx %d\n", ++ txq_id, ssn); ++ goto out; ++ } ++ + if (txq->q.read_ptr == tfd_num) + goto out; + +@@ -1105,6 +1114,7 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, int fifo, + (fifo << SCD_QUEUE_STTS_REG_POS_TXF) | + (1 << SCD_QUEUE_STTS_REG_POS_WSL) | + SCD_QUEUE_STTS_REG_MSK); ++ trans_pcie->txq[txq_id].active = true; + IWL_DEBUG_TX_QUEUES(trans, "Activate queue %d on FIFO %d WrPtr: %d\n", + txq_id, fifo, ssn & 0xff); + } +-- +1.7.11.7 diff --git a/iwlwifi-pcie-wake-the-queue-if-stopped-when-being-unmapped.patch b/iwlwifi-pcie-wake-the-queue-if-stopped-when-being-unmapped.patch new file mode 100644 index 000000000..661fc5035 --- /dev/null +++ b/iwlwifi-pcie-wake-the-queue-if-stopped-when-being-unmapped.patch @@ -0,0 +1,35 @@ +From: Emmanuel Grumbach + +When the queue is unmapped while it was so loaded that +mac80211's was stopped, we need to wake the queue after +having freed all the packets in the queue. +Not doing so can result in weird stuff like: + +* run lots of traffic (mac80211's queue gets stopped) +* RFKILL +* de-assert RFKILL +* no traffic + +Cc: stable@vger.kernel.org +Signed-off-by: Emmanuel Grumbach +Signed-off-by: Johannes Berg +--- + drivers/net/wireless/iwlwifi/pcie/tx.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c +index faaf77c..4e7b8d4 100644 +--- a/drivers/net/wireless/iwlwifi/pcie/tx.c ++++ b/drivers/net/wireless/iwlwifi/pcie/tx.c +@@ -585,6 +585,9 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id) + } + txq->active = false; + spin_unlock_bh(&txq->lock); ++ ++ /* just in case - this queue may have been stopped */ ++ iwl_wake_queue(trans, txq); + } + + /* +-- +1.7.11.7 diff --git a/kernel.spec b/kernel.spec index bad93251f..3e7672a82 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,19 +54,19 @@ 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 100 %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 9 ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 0 +%define stable_update 10 # Is it a -stable RC? %define stable_rc 0 # Set rpm version accordingly @@ -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 0 # The git snapshot level -%define gitrev 5 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 3.%{upstream_sublevel}.0 %endif @@ -124,16 +124,10 @@ Summary: The Linux kernel %define with_bootwrapper %{?_without_bootwrapper: 0} %{?!_without_bootwrapper: 1} # Want to build a the vsdo directories installed %define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1} -# ARM OMAP (Beagle/Panda Board) -%define with_omap %{?_without_omap: 0} %{?!_without_omap: 1} # kernel-tegra (only valid for arm) %define with_tegra %{?_without_tegra: 0} %{?!_without_tegra: 1} # kernel-kirkwood (only valid for arm) %define with_kirkwood %{?_without_kirkwood: 0} %{?!_without_kirkwood: 1} -# kernel-imx (only valid for arm) -%define with_imx %{?_without_imx: 0} %{?!_without_imx: 1} -# kernel-highbank (only valid for arm) -%define with_highbank %{?_without_highbank: 0} %{?!_without_highbank: 1} # # Additional options for user-friendly one-off kernel building: # @@ -152,13 +146,10 @@ 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'. -%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 +162,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 @@ -207,20 +198,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} @@ -264,12 +241,9 @@ Summary: The Linux kernel %define with_pae 0 %endif -# kernel-tegra, omap, imx and highbank are only built on armv7 hard and softfp +# kernel up (versatile express) and tegra are only built on armv7 hfp/sfp %ifnarch armv7hl armv7l %define with_tegra 0 -%define with_omap 0 -%define with_imx 0 -%define with_highbank 0 %endif # kernel-kirkwood is only built for armv5 @@ -348,8 +322,8 @@ Summary: The Linux kernel %define with_bootwrapper 0 %endif -# sparse blows up on ppc64 and sparc64 -%ifarch ppc64 ppc sparc64 +# sparse blows up on ppc64 +%ifarch ppc64 ppc %define with_sparse 0 %endif @@ -388,20 +362,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 -%define asmarch sparc -%define all_arch_configs kernel-%{version}-sparc64*.config -%define make_target vmlinux -%define kernel_image vmlinux -%define image_install_path boot -%define with_tools 0 -%endif - -%ifarch sparcv9 -%define hdrarch sparc %endif %ifarch ppc @@ -421,13 +381,11 @@ 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 -%endif # we only build headers/perf/tools on the base arm arches # just like we used to only build them on i386 for x86 +%ifarch armv5tel +%define with_up 0 +%endif %ifnarch armv5tel armv7hl %define with_headers 0 %define with_perf 0 @@ -450,7 +408,7 @@ Summary: The Linux kernel # Which is a BadThing(tm). # We only build kernel-headers on the following... -%define nobuildarches i386 s390 sparc sparcv9 +%define nobuildarches i386 s390 %ifarch %nobuildarches %define with_up 0 @@ -459,7 +417,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 @@ -514,9 +471,13 @@ Provides: kernel-drm = 4.3.0\ Provides: kernel-drm-nouveau = 16\ Provides: kernel-modeset = 1\ Provides: kernel-uname-r = %{KVERREL}%{?1:.%{1}}\ +Provides: kernel-highbank\ +Provides: kernel-highbank-uname-r = %{KVERREL}%{?1:.%{1}}\ +Provides: kernel-omap\ +Provides: kernel-omap-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}\ @@ -539,7 +500,7 @@ Version: %{rpmversion} Release: %{pkg_release} # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %%nobuildarches (ABOVE) INSTEAD -ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 %{sparc} s390 s390x %{arm} +ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 s390 s390x %{arm} ExclusiveOS: Linux %kernel_reqprovconf @@ -549,14 +510,14 @@ 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: net-tools +BuildRequires: gcc >= 3.4.2, binutils >= 2.12, redhat-rpm-config, hmaccalc +BuildRequires: net-tools, hostname, bc BuildRequires: xmlto, asciidoc %if %{with_sparse} BuildRequires: sparse >= 0.4.1 %endif %if %{with_perf} -BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python-devel perl(ExtUtils::Embed) +BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python-devel perl(ExtUtils::Embed) bison audit-libs-devel %endif %if %{with_tools} BuildRequires: pciutils-devel gettext @@ -564,12 +525,14 @@ 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 -Source1: compat-wireless-%{cwversion}.tar.bz2 Source15: merge.pl Source16: mod-extra.list @@ -593,16 +556,14 @@ Source53: config-powerpc64 Source70: config-s390x -Source90: config-sparc64-generic +# Unified ARM kernels +Source100: config-armv7 +Source101: config-armv7-generic +Source102: config-armv7-tegra -Source100: config-arm-generic -Source110: config-arm-omap-generic -Source111: config-arm-tegra -Source112: config-arm-kirkwood -Source113: config-arm-imx -Source114: config-arm-highbank - -Source200: config-backports +# Legacy ARM kernels +Source104: config-arm-generic +Source105: config-arm-kirkwood # 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. @@ -647,110 +608,182 @@ Patch00: patch-3.%{base_sublevel}-git%{gitrev}.bz2 %endif # we also need compile fixes for -vanilla -Patch04: linux-2.6-compile-fixes.patch +Patch04: compile-fixes.patch # build tweak for build ID magic, even for -vanilla -Patch05: linux-2.6-makefile-after_link.patch +Patch05: makefile-after_link.patch %if !%{nopatches} # revert upstream patches we get via other methods -Patch09: linux-2.6-upstream-reverts.patch +Patch09: upstream-reverts.patch # Git trees. # Standalone patches Patch100: taint-vbox.patch -Patch160: linux-2.6-32bit-mmap-exec-randomization.patch -Patch161: linux-2.6-i386-nx-emulation.patch +Patch101: taint-rss.patch -Patch383: linux-2.6-defaults-aspm.patch +Patch110: vmbugon-warnon.patch -Patch390: linux-2.6-defaults-acpi-video.patch -Patch391: linux-2.6-acpi-video-dos.patch -Patch394: linux-2.6-acpi-debug-infinite-loop.patch -Patch395: acpi-ensure-thermal-limits-match-cpu-freq.patch +Patch200: debug-bad-pte-dmi.patch +Patch201: debug-bad-pte-modules.patch + +Patch390: defaults-acpi-video.patch +Patch391: acpi-video-dos.patch +Patch394: acpi-debug-infinite-loop.patch Patch396: acpi-sony-nonvs-blacklist.patch -Patch450: linux-2.6-input-kill-stupid-messages.patch -Patch452: linux-2.6.30-no-pcspkr-modalias.patch +Patch450: input-kill-stupid-messages.patch +Patch452: no-pcspkr-modalias.patch -Patch460: linux-2.6-serial-460800.patch +Patch460: serial-460800.patch Patch470: die-floppy-die.patch -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 +Patch510: silence-noise.patch -Patch700: linux-2.6-e1000-ich9-montevina.patch +Patch530: silence-fbcon-logo.patch -Patch800: linux-2.6-crash-driver.patch +Patch800: crash-driver.patch # crypto/ # virt + ksm patches -Patch1555: fix_xen_guest_on_old_EC2.patch -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 Patch1824: drm-intel-next.patch +Patch1825: drm-i915-dp-stfu.patch +# mustard patch to shut abrt up. please drop (and notify ajax) whenever it +# fails to apply +Patch1826: drm-i915-tv-detect-hush.patch Patch1900: linux-2.6-intel-iommu-igfx.patch # Quiet boot fixes # silence the ACPI blacklist code -Patch2802: linux-2.6-silence-acpi-blacklist.patch +Patch2802: silence-acpi-blacklist.patch # media patches -Patch2899: linux-2.6-v4l-dvb-fixes.patch -Patch2900: linux-2.6-v4l-dvb-update.patch -Patch2901: linux-2.6-v4l-dvb-experimental.patch +Patch2901: drivers-media-update.patch # fs fixes # NFSv4 -Patch1101: linux-3.1-keys-remove-special-keyring.patch # patches headed upstream -Patch12016: disable-i8042-check-on-apple-mac.patch +Patch10000: fs-proc-devtree-remove_proc_entry.patch -Patch12303: dmar-disable-when-ricoh-multifunction.patch +Patch12016: disable-i8042-check-on-apple-mac.patch Patch13003: efi-dont-map-boot-services-on-32bit.patch -Patch20000: utrace.patch +Patch14010: lis3-improve-handling-of-null-rate.patch -# Flattened devicetree support -Patch21000: arm-omap-dt-compat.patch -Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch +Patch19000: ips-noirq.patch -Patch21070: ext4-Support-check-none-nocheck-mount-options.patch +# ARM +Patch21000: arm-export-read_current_timer.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 +# ARM omap +Patch21003: arm-omap-ehci-fix.patch -Patch21092: udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch +# ARM tegra +Patch21005: arm-tegra-usb-no-reset-linux33.patch +Patch21006: arm-tegra-fixclk.patch -Patch21093: rt2x00_fix_MCU_request_failures.patch +#rhbz 754518 +Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch -Patch21094: power-x86-destdir.patch +Patch21270: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch -Patch21095: hfsplus-Change-finder_info-to-u32.patch -Patch21096: hfsplus-Add-an-ioctl-to-bless-files.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 +#selinux ptrace child permissions +Patch22001: selinux-apply-different-permission-to-ptrace-child.patch + +Patch22014: efifb-skip-DMI-checks-if-bootloader-knows.patch + +#rhbz 857324 +Patch22070: net-tcp-bz857324.patch + +#rhbz 892811 +Patch22247: ath9k_rx_dma_stop_check.patch + +#rhbz 916544 +Patch22263: 0001-drivers-crypto-nx-fix-init-race-alignmasks-and-GCM-b.patch + +Patch24103: turbostat-makefile.diff + +#rhbz 859282 +Patch24113: VMX-x86-handle-host-TSC-calibration-failure.patch + +#rhbz 921500 +Patch25001: i7300_edac_single_mode_fixup.patch + +#rhbz 927469 +Patch25007: fix-child-thread-introspection.patch + +#rhbz 948262 +Patch25024: intel_iommu-Downgrade-the-warning-if-enabling-irq-remapping-fails.patch + +#CVE-2013-2140 rhbz 971146 971148 +Patch25031: xen-blkback-Check-device-permissions-before-allowing.patch + +#CVE-2013-2147 rhbz 971242 971249 +Patch25032: cve-2013-2147-ciss-info-leak.patch + +#CVE-2013-2148 rhbz 971258 971261 +Patch25033: fanotify-info-leak-in-copy_event_to_user.patch + +#rhbz 969644 +Patch25046: KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch + +Patch25050: iwlwifi-pcie-fix-race-in-queue-unmapping.patch +Patch25051: iwlwifi-pcie-wake-the-queue-if-stopped-when-being-unmapped.patch + +#rhbz 903741 +Patch25052: HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch + +#rhbz 880035 +Patch25053: bridge-only-expire-the-mdb-entry-when-query-is-received.patch +Patch25054: bridge-send-query-as-soon-as-leave-is-received.patch +#rhbz 980254 +Patch25061: bridge-timer-fix.patch + +#rhbz 977558 +Patch25055: ath3k-dont-use-stack-memory-for-DMA.patch + +#rhbz 977040 +Patch25056: iwl3945-better-skb-management-in-rx-path.patch +Patch25057: iwl4965-better-skb-management-in-rx-path.patch + +#CVE-2013-2234 rhbz 980995 981007 +Patch25058: af_key-fix-info-leaks-in-notify-messages.patch + +#CVE-2013-2232 rhbz 981552 981564 +Patch25060: ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch + +#rhbz 976789 980643 +Patch25062: vhost-net-fix-use-after-free-in-vhost_net_flush.patch + +#rhbz 959721 +Patch25063: HID-kye-Add-report-fixup-for-Genius-Gila-Gaming-mouse.patch + +#rhbz 885407 +Patch25064: iwlwifi-dvm-dont-send-BT_CONFIG-on-devices-wo-Bluetooth.patch + +#rhbz 976837 +Patch25065: fix-ext4-overflows.patch + +# END OF PATCH DEFINITIONS %endif @@ -861,18 +894,29 @@ Provides: cpufrequtils = 1:009-0.6.p1 Obsoletes: cpufreq-utils < 1:009-0.6.p1 Obsoletes: cpufrequtils < 1:009-0.6.p1 Obsoletes: cpuspeed < 1:1.5-16 +Requires: kernel-tools-libs = %{version}-%{release} %description -n kernel-tools This package contains the tools/ directory from the kernel source and the supporting documentation. -%package -n kernel-tools-devel +%package -n kernel-tools-libs +Summary: Libraries for the kernels-tools +Group: Development/System +License: GPLv2 +%description -n kernel-tools-libs +This package contains the libraries built from the tools/ directory +from the kernel source. + +%package -n kernel-tools-libs-devel Summary: Assortment of tools for the Linux kernel Group: Development/System License: GPLv2 Requires: kernel-tools = %{version}-%{release} Provides: cpupowerutils-devel = 1:009-0.6.p1 Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 -%description -n kernel-tools-devel +Requires: kernel-tools-libs = %{version}-%{release} +Provides: kernel-tools-devel +%description -n kernel-tools-libs-devel This package contains the development files for the tools/ directory from the kernel source. @@ -888,7 +932,7 @@ This package provides debug information for package kernel-tools. # symlinks because of the trailing nonmatching alternation and # the leading .*, because of find-debuginfo.sh's buggy handling # of matching the pattern against the symlinks file. -%{expand:%%global debuginfo_args %{?debuginfo_args} -p '.*%%{_bindir}/centrino-decode(\.debug)?|.*%%{_bindir}/powernow-k8-decode(\.debug)?|.*%%{_bindir}/cpupower(\.debug)?|.*%%{_libdir}/libcpupower.*|XXX' -o kernel-tools-debuginfo.list} +%{expand:%%global debuginfo_args %{?debuginfo_args} -p '.*%%{_bindir}/centrino-decode(\.debug)?|.*%%{_bindir}/powernow-k8-decode(\.debug)?|.*%%{_bindir}/cpupower(\.debug)?|.*%%{_libdir}/libcpupower.*|.*%%{_bindir}/turbostat(\.debug)?|.*%%{_bindir}/x86_energy_perf_policy(\.debug)?|XXX' -o kernel-tools-debuginfo.list} %endif # with_tools @@ -941,6 +985,7 @@ Group: System Environment/Kernel\ Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\ Provides: kernel-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:.%{1}}\ Provides: kernel-modules-extra = %{version}-%{release}%{?1:.%{1}}\ +Provides: installonlypkg(kernel-module)\ Provides: kernel-modules-extra-uname-r = %{KVERREL}%{?1:.%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?1:.%{1}}\ AutoReqProv: no\ @@ -1023,24 +1068,6 @@ on kernel bugs, as some of these options impact performance noticably. This package includes a version of the Linux kernel with support for marvell kirkwood based systems, i.e., guruplug, sheevaplug -%define variant_summary The Linux kernel compiled for freescale boards -%kernel_variant_package imx -%description imx -This package includes a version of the Linux kernel with support for -freescale based systems, i.e., efika smartbook. - -%define variant_summary The Linux kernel compiled for Calxeda boards -%kernel_variant_package highbank -%description highbank -This package includes a version of the Linux kernel with support for -Calxeda based systems, i.e., HP arm servers. - -%define variant_summary The Linux kernel compiled for TI-OMAP boards -%kernel_variant_package omap -%description omap -This package includes a version of the Linux kernel with support for -TI-OMAP based systems, i.e., BeagleBoard-xM. - %define variant_summary The Linux kernel compiled for tegra boards %kernel_variant_package tegra %description tegra @@ -1228,17 +1255,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} @@ -1267,51 +1294,45 @@ 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} +for i in kernel-%{version}-*.config do mv $i $i.tmp ./merge.pl %{SOURCE1000} $i.tmp > $i rm $i.tmp done -%endif -ApplyPatch linux-2.6-makefile-after_link.patch +ApplyPatch makefile-after_link.patch # # misc small stuff to make things compile # -ApplyOptionalPatch linux-2.6-compile-fixes.patch +ApplyOptionalPatch compile-fixes.patch %if !%{nopatches} # revert patches from upstream that conflict or that we get via other means -ApplyOptionalPatch linux-2.6-upstream-reverts.patch -R - +ApplyOptionalPatch upstream-reverts.patch -R ApplyPatch taint-vbox.patch +ApplyPatch taint-rss.patch + +ApplyPatch vmbugon-warnon.patch + +ApplyPatch debug-bad-pte-dmi.patch +ApplyPatch debug-bad-pte-modules.patch + # Architecture patches # x86(-64) -ApplyPatch linux-2.6-32bit-mmap-exec-randomization.patch -ApplyPatch linux-2.6-i386-nx-emulation.patch # # ARM # -#pplyPatch arm-omap-dt-compat.patch -ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch +ApplyPatch arm-export-read_current_timer.patch +ApplyPatch arm-omap-ehci-fix.patch +ApplyPatch arm-tegra-usb-no-reset-linux33.patch +ApplyPatch arm-tegra-fixclk.patch # # bugfixes to drivers and filesystems @@ -1327,24 +1348,20 @@ ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch # eCryptfs # NFSv4 -ApplyPatch linux-3.1-keys-remove-special-keyring.patch # USB # WMI # ACPI -ApplyPatch linux-2.6-defaults-acpi-video.patch -ApplyPatch linux-2.6-acpi-video-dos.patch -ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch -ApplyPatch acpi-ensure-thermal-limits-match-cpu-freq.patch +ApplyPatch defaults-acpi-video.patch +ApplyPatch acpi-video-dos.patch +ApplyPatch acpi-debug-infinite-loop.patch ApplyPatch acpi-sony-nonvs-blacklist.patch # # PCI # -# enable ASPM by default on hardware we expect to work -ApplyPatch linux-2.6-defaults-aspm.patch # # SCSI Bits. @@ -1358,89 +1375,146 @@ ApplyPatch linux-2.6-defaults-aspm.patch # Misc fixes # The input layer spews crap no-one cares about. -ApplyPatch linux-2.6-input-kill-stupid-messages.patch +ApplyPatch input-kill-stupid-messages.patch # stop floppy.ko from autoloading during udev... ApplyPatch die-floppy-die.patch -ApplyPatch floppy-Remove-_hlt-related-functions.patch -ApplyPatch linux-2.6.30-no-pcspkr-modalias.patch +ApplyPatch no-pcspkr-modalias.patch # Allow to use 480600 baud on 16C950 UARTs -ApplyPatch linux-2.6-serial-460800.patch +ApplyPatch serial-460800.patch # Silence some useless messages that still get printed with 'quiet' -ApplyPatch linux-2.6-silence-noise.patch +ApplyPatch 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 +ApplyPatch silence-fbcon-logo.patch # Changes to upstream defaults. # /dev/crash driver. -ApplyPatch linux-2.6-crash-driver.patch - -# Hack e1000e to work on Montevina SDV -ApplyPatch linux-2.6-e1000-ich9-montevina.patch +ApplyPatch crash-driver.patch # crypto/ # Assorted Virt Fixes -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 # Intel DRM ApplyOptionalPatch drm-intel-next.patch +ApplyPatch drm-i915-dp-stfu.patch +ApplyPatch drm-i915-tv-detect-hush.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch # silence the ACPI blacklist code -ApplyPatch linux-2.6-silence-acpi-blacklist.patch -ApplyPatch quite-apm.patch +ApplyPatch silence-acpi-blacklist.patch -# V4L/DVB updates/fixes/experimental drivers +# Media (V4L/DVB/IR) updates/fixes/experimental drivers # apply if non-empty -ApplyOptionalPatch linux-2.6-v4l-dvb-fixes.patch -ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch -ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch +ApplyOptionalPatch drivers-media-update.patch # Patches headed upstream -ApplyPatch disable-i8042-check-on-apple-mac.patch -ApplyPatch linux-3.3-virtio-scsi.patch +ApplyPatch fs-proc-devtree-remove_proc_entry.patch -# rhbz#605888 -ApplyPatch dmar-disable-when-ricoh-multifunction.patch +ApplyPatch disable-i8042-check-on-apple-mac.patch ApplyPatch efi-dont-map-boot-services-on-32bit.patch -# utrace. -ApplyPatch utrace.patch +ApplyPatch lis3-improve-handling-of-null-rate.patch -ApplyPatch ext4-Support-check-none-nocheck-mount-options.patch +ApplyPatch ips-noirq.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 +#rhbz 754518 +ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch -ApplyPatch udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch +ApplyPatch weird-root-dentry-name-debug.patch -#rhbz 772772 -ApplyPatch rt2x00_fix_MCU_request_failures.patch +#Highbank clock functions +# pplyPatch highbank-export-clock-functions.patch -ApplyPatch power-x86-destdir.patch +#selinux ptrace child permissions +ApplyPatch selinux-apply-different-permission-to-ptrace-child.patch -ApplyPatch hfsplus-Change-finder_info-to-u32.patch -ApplyPatch hfsplus-Add-an-ioctl-to-bless-files.patch +# ApplyPatch efifb-skip-DMI-checks-if-bootloader-knows.patch + +#rhbz 857324 +ApplyPatch net-tcp-bz857324.patch + +#rhbz 892811 +ApplyPatch ath9k_rx_dma_stop_check.patch + +#rhbz 916544 +ApplyPatch 0001-drivers-crypto-nx-fix-init-race-alignmasks-and-GCM-b.patch + +ApplyPatch turbostat-makefile.diff + +#rhbz 921500 +ApplyPatch i7300_edac_single_mode_fixup.patch + +#rhbz 859282 +ApplyPatch VMX-x86-handle-host-TSC-calibration-failure.patch + +#rhbz 927469 +ApplyPatch fix-child-thread-introspection.patch + +#rhbz 948262 +ApplyPatch intel_iommu-Downgrade-the-warning-if-enabling-irq-remapping-fails.patch + +#CVE-2013-2140 rhbz 971146 971148 +ApplyPatch xen-blkback-Check-device-permissions-before-allowing.patch + +#CVE-2013-2147 rhbz 971242 971249 +ApplyPatch cve-2013-2147-ciss-info-leak.patch + +#CVE-2013-2148 rhbz 971258 971261 +ApplyPatch fanotify-info-leak-in-copy_event_to_user.patch + +#rhbz 969644 +ApplyPatch KVM-x86-handle-idiv-overflow-at-kvm_write_tsc.patch + +ApplyPatch iwlwifi-pcie-fix-race-in-queue-unmapping.patch +ApplyPatch iwlwifi-pcie-wake-the-queue-if-stopped-when-being-unmapped.patch + +#rhbz 903741 +ApplyPatch HID-input-return-ENODATA-if-reading-battery-attrs-fails.patch + +#rhbz 880035 +ApplyPatch bridge-only-expire-the-mdb-entry-when-query-is-received.patch +ApplyPatch bridge-send-query-as-soon-as-leave-is-received.patch +ApplyPatch bridge-timer-fix.patch + +#rhbz 977558 +ApplyPatch ath3k-dont-use-stack-memory-for-DMA.patch + +#rhbz 977040 +ApplyPatch iwl3945-better-skb-management-in-rx-path.patch +ApplyPatch iwl4965-better-skb-management-in-rx-path.patch + +#CVE-2013-2234 rhbz 980995 981007 +ApplyPatch af_key-fix-info-leaks-in-notify-messages.patch + +#CVE-2013-2232 rhbz 981552 981564 +ApplyPatch ipv6-ip6_sk_dst_check-must-not-assume-ipv6-dst.patch + +#rhbz 976789 980643 +ApplyPatch vhost-net-fix-use-after-free-in-vhost_net_flush.patch + +#rhbz 959721 +ApplyPatch HID-kye-Add-report-fixup-for-Genius-Gila-Gaming-mouse.patch + +#rhbz 885407 +ApplyPatch iwlwifi-dvm-dont-send-BT_CONFIG-on-devices-wo-Bluetooth.patch + +#rhbz 976837 +ApplyPatch fix-ext4-overflows.patch # END OF PATCH APPLICATIONS @@ -1489,34 +1563,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 ### @@ -1588,7 +1642,17 @@ BuildKernel() { echo USING ARCH=$Arch make -s ARCH=$Arch oldnoconfig >/dev/null +%ifarch %{arm} + # http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html + make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags} KALLSYMS_EXTRA_PASS=1 + + make -s ARCH=$Arch V=1 dtbs + mkdir -p $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer + install -m 644 arch/arm/boot/dts/*.dtb $RPM_BUILD_ROOT/boot/dtb-$KernelVer/ + rm -f arch/arm/boot/dts/*.dtb +%else make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags} +%endif make -s ARCH=$Arch V=1 %{?_smp_mflags} modules %{?sparse_mflags} || exit 1 # Start installing the results @@ -1611,6 +1675,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 @@ -1639,9 +1708,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 @@ -1669,12 +1735,18 @@ BuildKernel() { if [ -d arch/%{asmarch}/include ]; then cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ fi + # include the machine specific headers for ARM variants, if available. +%ifarch %{arm} + if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then + cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ + fi +%endif cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include # Make sure the Makefile and version.h have a matching timestamp so that # external modules can be built - touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h - touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/autoconf.h + touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h + # Copy .config to include/config/auto.conf so "make prepare" is unnecessary. cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf @@ -1739,6 +1811,7 @@ BuildKernel() { # our list into the list as well. rm -rf dep.list dep2.list rm -rf req.list req2.list + touch dep.list req.list cp %{SOURCE16} . for dep in `cat modnames` do @@ -1751,7 +1824,17 @@ BuildKernel() { then continue else - echo $mod.ko >> req.list + # check if the module we're looking at is in mod-extra too. if so + # we don't need to mark the dep as required + mod2=`basename $dep` + match2=`grep "^$mod2" mod-extra.list` ||: + if [ -n "$match2" ] + then + continue + #echo $mod2 >> notreq.list + else + echo $mod.ko >> req.list + fi fi done done @@ -1782,6 +1865,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 @@ -1794,33 +1883,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-%{kversion}.%{_target_cpu} \ - 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 - } ### @@ -1832,7 +1894,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 @@ -1850,18 +1912,6 @@ BuildKernel %make_target %kernel_image PAE BuildKernel %make_target %kernel_image kirkwood %endif -%if %{with_imx} -BuildKernel %make_target %kernel_image imx -%endif - -%if %{with_highbank} -BuildKernel %make_target %kernel_image highbank -%endif - -%if %{with_omap} -BuildKernel %make_target %kernel_image omap -%endif - %if %{with_tegra} BuildKernel %make_target %kernel_image tegra %endif @@ -1875,7 +1925,7 @@ BuildKernel %make_target %kernel_image smp %endif %global perf_make \ - make %{?_smp_mflags} -C tools/perf -s V=1 EXTRA_CFLAGS="-Wno-error=array-bounds" HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} + make %{?_smp_mflags} -C tools/perf -s V=1 WERROR=0 EXTRA_CFLAGS="-Wno-error=array-bounds" HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} %if %{with_perf} # perf %{perf_make} all @@ -1943,7 +1993,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} @@ -1981,11 +2031,6 @@ find $RPM_BUILD_ROOT/usr/include \ \( -name .install -o -name .check -o \ -name ..install.cmd -o -name ..check.cmd \) | xargs rm -f -# glibc provides scsi headers for itself, for now -rm -rf $RPM_BUILD_ROOT/usr/include/scsi -rm -f $RPM_BUILD_ROOT/usr/include/asm*/atomic.h -rm -f $RPM_BUILD_ROOT/usr/include/asm*/io.h -rm -f $RPM_BUILD_ROOT/usr/include/asm*/irq.h %endif %if %{with_perf} @@ -2142,15 +2187,6 @@ fi}\ %kernel_variant_preun kirkwood %kernel_variant_post -v kirkwood -%kernel_variant_preun imx -%kernel_variant_post -v imx - -%kernel_variant_preun highbank -%kernel_variant_post -v highbank - -%kernel_variant_preun omap -%kernel_variant_post -v omap - %kernel_variant_preun tegra %kernel_variant_post -v tegra @@ -2193,6 +2229,8 @@ fi %dir %{_libexecdir}/perf-core %{_libexecdir}/perf-core/* %{_mandir}/man[1-8]/perf* +%{_sysconfdir}/bash_completion.d/perf +%doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt %files -n python-perf %defattr(-,root,root) @@ -2216,8 +2254,6 @@ fi %{_bindir}/centrino-decode %{_bindir}/powernow-k8-decode %endif -%{_libdir}/libcpupower.so.0 -%{_libdir}/libcpupower.so.0.0.0 %{_unitdir}/cpupower.service %{_mandir}/man[1-8]/cpupower* %config(noreplace) %{_sysconfdir}/sysconfig/cpupower @@ -2235,7 +2271,11 @@ fi %endif %ifarch %{cpupowerarchs} -%files -n kernel-tools-devel +%files -n kernel-tools-libs +%{_libdir}/libcpupower.so.0 +%{_libdir}/libcpupower.so.0.0.0 + +%files -n kernel-tools-libs-devel %{_libdir}/libcpupower.so %{_includedir}/cpufreq.h %endif @@ -2255,6 +2295,10 @@ 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 \ +%ifarch %{arm}\ +/%{image_install_path}/dtb-%{KVERREL}%{?2:.%{2}} \ +%endif\ %attr(600,root,root) /boot/System.map-%{KVERREL}%{?2:.%{2}}\ /boot/config-%{KVERREL}%{?2:.%{2}}\ %dir /lib/modules/%{KVERREL}%{?2:.%{2}}\ @@ -2262,10 +2306,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\ @@ -2294,24 +2334,1271 @@ fi %kernel_variant_files %{with_pae} PAE %kernel_variant_files %{with_pae_debug} PAEdebug %kernel_variant_files %{with_kirkwood} kirkwood -%kernel_variant_files %{with_imx} imx -%kernel_variant_files %{with_highbank} highbank -%kernel_variant_files %{with_omap} omap %kernel_variant_files %{with_tegra} tegra # 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 | -# || || +# +# .---. __ +# , / \ \ |||| +# \\\\ |O___O | | \\|||| +# \ // | \_/ | | \ / +# '--/----/| / | |-' +# // // / -----' +# // \\ / / +# // // / / +# // \\ / / +# // // / / +# /| ' / / +# //\___/ / +# // ||\ / +# \\_ || '---' +# /' / \\_.- +# / / --| | +# '-' | | +# '-' %changelog +* Sat Jul 13 2013 Josh Boyer - 3.9.10-100 +- Linux v3.9.10 + +* Fri Jul 12 2013 Dave Jones - 3.9.9-103 +- Disable LATENCYTOP/SCHEDSTATS in non-debug builds. + +* Fri Jul 12 2013 Josh Boyer +- Fix various overflow issues in ext4 (rhbz 976837) +- Add iwlwifi fix for connection issue (rhbz 885407) + +* Sun Jul 7 2013 Peter Robinson +- Fix building ARM kernel by dropping OMAP subpackage + +* Fri Jul 05 2013 Josh Boyer +- Add report fixup for Genius Gila mouse from Benjamin Tissoires (rhbz 959721) +- Add vhost-net use-after-free fix (rhbz 976789 980643) +- Add fix for timer issue in bridge code (rhbz 980254) +- CVE-2013-2232 ipv6: using ipv4 vs ipv6 structure during routing lookup in sendmsg (rhbz 981552 981564) + +* Wed Jul 03 2013 Josh Boyer - 3.9.9-100 +- CVE-2013-1059 libceph: Fix NULL pointer dereference in auth client code (rhbz 977356 980341) +- CVE-2013-2234 net: information leak in AF_KEY notify (rhbz 980995 981007) +- Linux v3.9.9 + +* Wed Jul 03 2013 Josh Boyer +- Add patches to fix iwl skb managment (rhbz 977040) + +* Thu Jun 27 2013 Josh Boyer - 3.9.8-100 +- Linux v3.9.8 + +* Thu Jun 27 2013 Josh Boyer +- Fix stack memory usage for DMA in ath3k (rhbz 977558) + +* Wed Jun 26 2013 Josh Boyer +- Add two patches to fix bridge networking issues (rhbz 880035) + +* Mon Jun 24 2013 Josh Boyer +- Fix battery issue with bluetooth keyboards (rhbz 903741) + +* Fri Jun 21 2013 Josh Boyer - 3.9.7-100 +- Add two patches to fix iwlwifi issues in unmapping +- Add patch to fix carl9170 oops (rhbz 967271) + +* Thu Jun 20 2013 Justin M. Forbes +- Linux v3.9.7 + +* Tue Jun 18 2013 Dave Jones +- Disable MTRR sanitizer by default. + +* Fri Jun 14 2013 Josh Boyer - 3.9.6-100 +- Linux v3.9.6 + +* Wed Jun 12 2013 Josh Boyer +- Fix KVM divide by zero error (rhbz 969644) +- Add fix for rt5390/rt3290 regression (rhbz 950735) + +* Tue Jun 11 2013 Josh Boyer - 3.9.5-101 +- Add patches to fix MTRR issues in 3.9.5 (rhbz 973185) +- Add two patches to fix issues with vhost_net and macvlan (rhbz 954181) +- CVE-2013-2164 information leak in cdrom driver (rhbz 973100 973109) + +* Mon Jun 10 2013 Josh Boyer - 3.9.5-100 +- Linux v3.9.5 + +* Fri Jun 07 2013 Josh Boyer +- CVE-2013-2851 block: passing disk names as format strings (rhbz 969515 971662) +- CVE-2013-2852 b43: format string leaking into error msgs (rhbz 969518 971665) + +* Thu Jun 06 2013 Josh Boyer +- CVE-2013-2148 fanotify: info leak in copy_event_to_user (rhbz 971258 971261) +- CVE-2013-2147 cpqarray/cciss: information leak via ioctl (rhbz 971242 971249) + +* Wed Jun 05 2013 Josh Boyer +- CVE-2013-2140 xen: blkback: insufficient permission checks for BLKIF_OP_DISCARD (rhbz 971146 971148) + +* Mon Jun 03 2013 Josh Boyer - 3.9.4-101 +- Fix UEFI anti-bricking code (rhbz 964335) + +* Fri May 31 2013 Josh Boyer +- CVE-2013-2850 iscsi-target: heap buffer overflow on large key error (rhbz 968036 969272) + +* Fri May 24 2013 Justin M. Forbes - 3.9.4-100 +- Linux v3.9.4 + +* Fri May 24 2013 Josh Boyer +- Add patch to quiet irq remapping failures (rhbz 948262) + +* Thu May 23 2013 Josh Boyer +- Fix oops from incorrect rfkill set in hp-wmi (rhbz 964367) + +* Wed May 22 2013 Peter Robinson +- Update ARM configs for 3.9 + +* Wed May 22 2013 Justin M. Forbes +- Initial 3.9.3 rebase +- Don't remove headers explicitly exported via UAPI (rhbz 959467) +- Fix config-local usage (rhbz 950841) + +* Wed May 22 2013 Josh Boyer +- Fix memcmp error in iwlwifi + +* Mon May 13 2013 Justin M. Forbes - 3.8.13-100 +- Linux v3.8.13 + +* Wed May 08 2013 Justin M. Forbes - 3.8.12-100 +- Linux v3.8.12 + +* Tue May 07 2013 Josh Boyer +- Fix dmesg_restrict patch to avoid regression (rhbz 952655) + +* Wed May 01 2013 Justin M. Forbes - 3.8.11-100 +- Linux v3.8.11 + +* Mon Apr 29 2013 Justin M. Forbes - 3.8.10-100 +- Linux v3.8.10 + +* Wed Apr 24 2013 Josh Boyer - 3.8.8-102 +- CVE-2013-3228 irda: missing msg_namelen update in irda_recvmsg_dgram (rhbz 956069 956071) +- CVE-2013-3230 l2tp: info leak in l2tp_ip6_recvmsg (rhbz 956088 956089) +- CVE-2013-3231 llc: Fix missing msg_namelen update in llc_ui_recvmsg (rhbz 956094 956104) +- CVE-2013-3232 netrom: information leak via msg_name in nr_recvmsg (rhbz 956110 956113) +- CVE-2013-3233 NFC: llcp: info leaks via msg_name in llcp_sock_recvmsg (rhbz 956125 956129) +- CVE-2013-3234 rose: info leak via msg_name in rose_recvmsg (rhbz 956135 956139) +- CVE-2013-3076 crypto: algif suppress sending src addr info in recvmsg (rhbz 956162 956168) + +* Tue Apr 23 2013 Josh Boyer +- CVE-2013-3223 ax25: information leak via msg_name in ax25_recvmsg (rhbz 955662 955666) +- CVE-2013-3225 Bluetooth: RFCOMM missing msg_namelen update in rfcomm_sock_recvmsg (rhbz 955649 955658) +- CVE-2013-1979 net: incorrect SCM_CREDENTIALS passing (rhbz 955629 955647) +- CVE-2013-3224 Bluetooth: possible info leak in bt_sock_recvmsg (rhbz 955599 955607) + +* Mon Apr 22 2013 Josh Boyer +- CVE-2013-3222 atm: update msg_namelen in vcc_recvmsg (rhbz 955216 955228) + +* Wed Apr 17 2013 Josh Boyer +- Fix missing raid REQ_WRITE_SAME flag commit (rhbz 947539) + +* Wed Apr 17 2013 Dave Jones - 3.8.8-100 +- Linux 3.8.8 + Dropped: x86-mm-Fix-vmalloc_fault-oops-during-lazy-MMU-updates.patch + Dropped: tracing-Fix-possible-NULL-pointer-dereferences.patch + +* Tue Apr 16 2013 Josh Boyer +- Fix uninitialized variable free in iwlwifi (rhbz 951241) +- Fix race in regulatory code (rhbz 919176) + +* Mon Apr 15 2013 Josh Boyer +- tracing: NULL pointer dereference (rhbz 952197 952217) +- Fix debug patches to build on s390x/ppc + +* Fri Apr 12 2013 Dave Jones - 3.8.7-100 +- 3.8.7 + dropped: HID-magicmouse-fix-race-between-input_register-and-probe.patch + dropped: 0001-drm-i915-add-quirk-to-invert-brightness-on-eMachines.patch + +* Fri Apr 12 2013 Josh Boyer +- Enable CONFIG_LDM_PARTITION (rhbz 948636) + +* Thu Apr 11 2013 Dave Jones +- Print out some extra debug information when we hit bad page tables. + +* Thu Apr 11 2013 Josh Boyer +- Fix ALPS backport patch (rhbz 812111) + +* Tue Apr 09 2013 Josh Boyer +- CVE-2013-1929 tg3: len overflow in VPD firmware parsing (rhbz 949932 949946) +- Backport intel brightness quirk for emachines (rhbz 871932) + +* Mon Apr 8 2013 Peter Robinson +- Enable CMA on ARM tegra +- Minor tweeks to ARM OMAP + +* Mon Apr 08 2013 Josh Boyer +- Add patch from Benjamin Tissoires to fix race in HID magicmouse (rhbz 908604) + +* Fri Apr 05 2013 Justin M. Forbes +- Linux v3.8.6 + +* Wed Apr 03 2013 Dave Jones +- Enable MTD_CHAR/MTD_BLOCK (Needed for SFC) + Enable 10gigE on 64-bit only. + +* Tue Apr 02 2013 Josh Boyer +- Add support for Atheros 04ca:3004 bluetooth devices (again) (rhbz 844750) +- Enable CONFIG_SCSI_DMX3191D (rhbz 919874) + +* Mon Apr 01 2013 Josh Boyer +- Enable CONFIG_MCE_INJECT (rhbz 927353) + +* Thu Mar 28 2013 Josh Boyer - 3.8.5-101 +- Linux v3.8.5 + +* Tue Mar 26 2013 Justin M. Forbes +- Fix child thread introspection of of /proc/self/exe (rhbz 927469) + +* Tue Mar 26 2013 Josh Boyer +- Add quirk for Realtek card reader to avoid 10 sec boot delay (rhbz 806587) +- Add quirk for MSI keyboard backlight to avoid 10 sec boot delay (rhbz 907221) + +* Mon Mar 25 2013 Justin M. Forbes +- disable whci-hcd since it doesnt seem to have users (rhbz 919289) + +* Sat Mar 23 2013 Peter Robinson - 3.8.4-102 +- Disable Marvell Dove support for the moment as it breaks other SoCs + +* Thu Mar 21 2013 Peter Robinson +- Minor ARM config updates + +* Thu Mar 21 2013 Josh Boyer +- Fix workqueue crash in mac80211 (rhbz 920218) + +* Wed Mar 20 2013 Josh Boyer - 3.8.4-101 +- Linux v3.8.4 +- CVE-2013-1873 information leaks via netlink interface (rhbz 923652 923662) + +* Wed Mar 20 2013 Josh Boyer +- CVE-2013-1796 kvm: buffer overflow in handling of MSR_KVM_SYSTEM_TIME + (rhbz 917012 923966) +- CVE-2013-1797 kvm: after free issue with the handling of MSR_KVM_SYSTEM_TIME + (rhbz 917013 923967) +- CVE-2013-1798 kvm: out-of-bounds access in ioapic indirect register reads + (rhbz 917017 923968) + +* Mon Mar 18 2013 Justin M. Forbes - 3.8.3-103 +- Revert rc6 ilk changes from 3.8.3 stable (rhbz 922304) + +* Mon Mar 18 2013 Peter Robinson +- Enable OMAP RNG and mvebu dove configs + +* Fri Mar 15 2013 Josh Boyer +- CVE-2013-1860 usb: cdc-wdm buf overflow triggered by dev (rhbz 921970 922004) + +* Thu Mar 14 2013 Josh Boyer +- Linux v3.8.3 +- Fix divide by zero on host TSC calibration failure (rhbz 859282) + +* Thu Mar 14 2013 Mauro Carvalho Chehab +- fix i7300_edac twice-mem-size-report via EDAC API (rhbz 921500) + +* Tue Mar 12 2013 Josh Boyer +- Add patch to fix ieee80211_do_stop (rhbz 892599) +- Add patches to fix cfg80211 issues with suspend (rhbz 856863) +- Add patch to fix Cypress trackpad on XPS 12 machines (rhbz 912166) +- CVE-2013-0913 drm/i915: head writing overflow (rhbz 920471 920529) +- CVE-2013-0914 sa_restorer information leak (rhbz 920499 920510) + +* Mon Mar 11 2013 Mauro Carvalho Chehab +- fix amd64_edac twice-mem-size-report via EDAC API (rhbz 920586) + +* Mon Mar 11 2013 Josh Boyer +- Add patch to fix usb_submit_urb error in uvcvideo (rhbz 879462) +- Add patch to allow "8250." prefix to keep working (rhbz 911771) +- Add patch to fix w1_search oops (rhbz 857954) +- Add patch to fix broken tty handling (rhbz 904182) + +* Fri Mar 08 2013 Josh Boyer +- Add turbostat and x86_engery_perf_policy debuginfo to kernel-tools-debuginfo + +* Fri Mar 08 2013 Josh Boyer - 3.8.2-105 +- Add patch to fix 32-bit turbostat build with older glibc-headers + +* Fri Mar 08 2013 Justin M. Forbes +- Revert "write backlight harder" until better solution is found (rhbz 917353) + +* Fri Mar 08 2013 Josh Boyer +- CVE-2013-1828 sctp: SCTP_GET_ASSOC_STATS stack buffer overflow (rhbz 919315 919316) + +* Fri Mar 8 2013 Peter Robinson +- Have kernel provide kernel-highbank for upgrade to unified +- Update mvebu configs +- Drop unused ARM patches + +* Thu Mar 07 2013 Josh Boyer +- Fix DMI regression (rhbz 916444) +- Fix logitech-dj HID bug from Benjamin Tissoires (rhbz 840391) +- CVE-2013-1792 keys: race condition in install_user_keyrings (rhbz 916646 919021) + +* Wed Mar 06 2013 Justin M. Forbes +- Remove Ricoh multifunction DMAR patch as it's no longer needed (rhbz 880051) +- Fix destroy_conntrack GPF (rhbz 859346) + +* Wed Mar 06 2013 Josh Boyer +- crypto: info leaks in report API (rhbz 918512 918521) + +* Tue Mar 5 2013 Peter Robinson +- Update ARM configs for 3.8. Fix beagle (OMAP), update vexpress + +* Tue Mar 05 2013 Josh Boyer +- CVE-2013-1819 xfs: _xfs_buf_find oops on blocks beyond the filesystem end + (rhbz 918009,918070) +- Backport 4 fixes for efivarfs (rhbz 917984) + +* Mon Mar 04 2013 Josh Boyer +- Fix issues in nx crypto driver from Kent Yoder (rhbz 916544) + +* Mon Mar 04 2013 Justin M. Forbes +- Add audit-libs-devel to perf build-deps to enable trace command. (rhbz 892893) + +* Mon Mar 04 2013 Josh Boyer +- Linux v3.8.2 + +* Fri Mar 01 2013 Justin M. Forbes - 3.8.1-101 +- Linux v3.8.1 +- Drop SPARC64 support +- Silence "tty is NULL" trace. + +* Fri Mar 01 2013 Josh Boyer +- Add patches to fix sunrpc panic (rhbz 904870) + +* Wed Feb 27 2013 Peter Robinson +- Update ARM config to enable SPI and a few other cleanups + +* Wed Feb 27 2013 Justin M. Forbes - 3.7.10-101 +- Linux v3.7.10 + +* Tue Feb 26 2013 Justin M. Forbes +- Avoid recursion in put_user_ns, potential overflow + +* Tue Feb 26 2013 Josh Boyer +- CVE-2013-1767 tmpfs: fix use-after-free of mempolicy obj (rhbz 915592,915716) +- Fix vmalloc_fault oops during lazy MMU (rhbz 914737) + +* Mon Feb 25 2013 Josh Boyer +- Honor dmesg_restrict for /dev/kmsg (rhbz 903192) + +* Sun Feb 24 2013 Josh Boyer - 3.7.9-104 +- CVE-2013-1763 sock_diag: out-of-bounds access to sock_diag_handlers (rhbz 915052,915057) + +* Wed Feb 20 2013 Josh Boyer +- Fix perf report field separator issue (rhbz 906055) + +* Tue Feb 19 2013 Josh Boyer +- Add support for Atheros 04ca:3004 bluetooth devices (rhbz 844750) +- Backport support for newer ALPS touchpads (rhbz 812111) + +* Mon Feb 18 2013 Justin M. Forbes - 3.7.9-101 +- Linux v3.7.9 + +* Mon Feb 18 2013 Adam Jackson +- i915: Fix a mismerge in 3.7.y that leads to divide-by-zero in i9xx_update_wm + +* Fri Feb 15 2013 Josh Boyer +- CVE-2013-0290 net: infinite loop in __skb_recv_datagram (rhbz 911479 911473) + +* Thu Feb 14 2013 Justin M. Forbes - 3.7.8-101 +- Linux v3.7.8 + +* Thu Feb 14 2013 Adam Jackson +- i915: Hush asserts during TV detection, just useless noise +- i915: Fix LVDS downclock to not cripple performance (#901951) + +* Thu Feb 14 2013 Justin M. Forbes - 3.7.7-102 +- Fix patch numbering + +* Thu Feb 14 2013 Josh Boyer +- Add patch to fix corruption on newer M6116 SATA bridges (rhbz 909591) +- CVE-2013-0228 xen: xen_iret() invalid %ds local DoS (rhbz 910848 906309) +- CVE-2013-0216/0127 xen: netback DoS via malicious guest ring (rhbz 910886) + +* Tue Feb 12 2013 Dave Jones +- mm: Check if PUD is large when validating a kernel address + +* Tue Feb 12 2013 Dave Jones +- Silence brcmsmac warnings. (Fixed in 3.8, but not backporting to 3.7) + +* Mon Feb 11 2013 Justin M. Forbes - 3.7.7-101 +- Linux v3.7.7 + +* Thu Feb 7 2013 Peter Robinson +- Minor ARM build fixes + +* Wed Feb 06 2013 Josh Boyer +- Add patch to fix ath9k dma stop checks (rhbz 892811) + +* Mon Feb 04 2013 Josh Boyer - 3.7.6-102 +- Fix rtlwifi scheduling while atomic from Larry Finger (rhbz 903881) + +* Mon Feb 04 2013 Justin M. Forbes - 3.7.6-101 +- Linux v3.7.6 + +* Tue Jan 29 2013 Josh Boyer +- Backport driver for Cypress PS/2 trackpad (rhbz 799564) + +* Mon Jan 28 2013 Justin M. Forbes - 3.7.5-101 +- Linux v3.7.5 + +* Mon Jan 28 2013 Josh Boyer +- Add patch to fix iwlwifi issues (rhbz 863424) + +* Sun Jan 27 2013 Peter Robinson +- Build and package dtbs on ARM +- Enable FB options for qemu vexpress on unified + +* Fri Jan 25 2013 Justin M. Forbes +- Turn off THP for 32bit + +* Wed Jan 23 2013 Justin M. Forbes - 3.7.4-104 +- brcmsmac fixes from upstream (rhbz 892428) + +* Wed Jan 23 2013 Dave Jones +- Remove empty IPI mask warnings. + +* Tue Jan 22 2013 Justin M. Forbes +- Add i915 bugfix from airlied + +* Tue Jan 22 2013 Josh Boyer +- Fix libata settings bug (rhbz 902523) + +* Mon Jan 21 2013 Josh Boyer - 3.7.4-101 +- Linux v3.7.4 + +* Sun Jan 20 2013 Peter Robinson +- Merge ARM changes back to fix ARMv5 kernel build and update for 3.7 +- Drop highbank, versatile kernel as it's now unified +- Drop imx as the previously supported HW platforms don't work with 3.7 + +* Fri Jan 18 2013 Josh Boyer - 3.7.3-101 +- Linux v3.7.3 + +* Wed Jan 16 2013 Justin M. Forbes - 3.6.11-8 +- Fix for CVE-2013-0190 xen corruption with 32bit pvops (rhbz 896051 896038) +- Fix resize2fs issue with ext4 (rhbz 852833) + +* Wed Jan 16 2013 Josh Boyer +- Add patch from Stanislaw Gruszka to fix iwlegacy IBSS cleanup (rhbz 886946) + +* Mon Jan 14 2013 Josh Boyer +- Enable Orinoco drivers in kernel-modules-extra (rhbz 894069) + +* Tue Jan 08 2013 Josh Boyer - 3.6.11-5 +- Add patch to fix shutdown on some machines (rhbz 890547) + +* Fri Jan 04 2013 Josh Boyer +- Fix oops on aoe module removal (rhbz 853064) + +* Wed Jan 02 2013 Josh Boyer +- Fix autofs issue in 3.6 (rhbz 874372) +- BR the hostname package (rhbz 886113) + +* Mon Dec 17 2012 Justin M. Forbes +- Linux 3.6.11 + +* Mon Dec 17 2012 Josh Boyer +- Fix oops in sony-laptop setup (rhbz 873107) + +* Tue Dec 11 2012 Josh Boyer +- Fix IBSS scanning in mac80211 (rhbz 883414) + +* Tue Dec 11 2012 Justin M. Forbes 3.6.10-1 +- Linux 3.6.10 + +* Mon Dec 03 2012 Josh Boyer - 3.6.9-2 +- Backport 3 upstream fixes to resolve radeon schedule IB errors (rhbz 855275) + +* Mon Dec 03 2012 Justin M. Forbes 3.6.9-1 +- Linux 3.6.9 + +* Tue Nov 27 2012 Josh Boyer +- Update patches for 8139cp issues from David Woodhouse (rhbz 851278) + +* Mon Nov 26 2012 Justin M. Forbes 3.6.8-1 +- Linux 3.6.8 + +* Mon Nov 26 2012 Josh Boyer +- Fix regression in 8139cp driver, debugged by William J. Eaton (rhbz 851278) +- Fix ACPI video after _DOD errors (rhbz 869383) +- Fix ata command timeout oops in mvsas (rhbz 869629) +- Enable CONFIG_UIO_PDRV on ppc64 (rhbz 878180) +- CVE-2012-4530: stack disclosure binfmt_script load_script (rhbz 868285 880147) + +* Sun Nov 25 2012 Peter Robinson +- Update ARM kernel config and patches to fix F-17 build + +* Tue Nov 20 2012 Josh Boyer +- CVE-2012-4461: kvm: invalid opcode oops on SET_SREGS with OSXSAVE bit set (rhbz 878518 862900) +- Add support for BCM20702A0 (rhbz 874791) + +* Mon Nov 19 2012 Josh Boyer +- Apply patches from Jeff Moyer to fix direct-io oops (rhbz 812129) + +* Sat Nov 17 2012 Justin M. Forbes - 3.6.7-1 +- linux 3.6.7 + +* Fri Nov 16 2012 Josh Boyer +- Fix oops causing typo in keyspan driver (rhbz 870562) +- Don't WARN_ON empty queues in iwlwifi (rhbz 873001) + +* Thu Nov 15 2012 Justin M. Forbes +- Fix panic in panic in smp_irq_move_cleanup_interrupt (rhbz 869341) + +* Mon Nov 12 2012 Justin M. Forbes +- fix list_del corruption warning on USB audio with twinkle (rhbz 871078) + +* Mon Nov 05 2012 Justin M. Forbes 3.6.6-1 +- Linux 3.6.6 + +* Wed Oct 31 2012 Dave Jones 3.6.5-1 +- Linux 3.6.5 + Merged upstream: + - iwlwifi-fix-6000-ch-switch.patch + - mac80211_local_deauth_v3.6.patch + - mac80211-connect-with-HT20-if-HT40-is-not-permitted.patch + +* Wed Oct 31 2012 Josh Boyer +- CVE-2012-4565 net: divide by zero in tcp algorithm illinois (rhbz 871848 871923) + +* Tue Oct 30 2012 Mauro Carvalho Chehab +- Fix EDAC memory filling for csrow-based memory controllers + +* Tue Oct 30 2012 Josh Boyer +- Move power-x86-destdir.patch to apply on vanilla kernels (thanks knurd) + +* Mon Oct 29 2012 Justin M. Forbes +- Uprobes backports from upstream + +* Mon Oct 29 2012 Justin M. Forbes 3.6.4-1 +- Linux 3.6.4 + +* Thu Oct 25 2012 Justin M. Forbes +- CVE-2012-4508: ext4: AIO vs fallocate stale data exposure (rhbz 869904 869909) + +* Wed Oct 24 2012 Josh Boyer +- Remove patch added for rhbz 856863 +- Add patch to fix corrupted text with i915 (rhbz 852210) + +* Mon Oct 22 2012 Peter Robinson +- VIFO fails on ARM at the moment so disable it for the time being + +* Mon Oct 22 2012 Josh Boyer +- Add patch to fix CIFS oops from Jeff Layton (rhbz 867344) + +* Mon Oct 22 2012 Josh Boyer - 3.6.3-1 +- CVE-2012-0957: uts: stack memory leak in UNAME26 (rhbz 862877 864824) +- Fix rt2x00 usb reset resume (rhbz 856863) +- Linux v3.6.3 + +* Mon Oct 22 2012 Peter Robinson +- Cleanup ARM patches +- Add highbank sata patch +- add patch to revert ARM misaligned access check to stop kernel OOPS + +* Sun Oct 21 2012 Josh Boyer +- Don't enable UDL per Dave Airlie + +* Thu Oct 18 2012 Josh Boyer +- Patch to have mac80211 connect with HT20 if HT40 is not allowed (rhbz 866013) +- Enable VFIO (rhbz 867152) +- Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168) +- Apply patch to fix iwlwifi crash (rhbz 770484) + +* Wed Oct 17 2012 Josh Boyer +- Enable TCM_VHOST module (rhbz 866984) + +* Mon Oct 15 2012 Mauro Carvalho Chehab - 3.6.2-4 +- Fix i82975x_edac driver by rewriting most of the logic there + +* Mon Oct 15 2012 Mauro Carvalho Chehab - 3.6.2-3 +- Fix i82975x_edac OOPS + +* Sat Oct 13 2012 Josh Boyer - 3.6.2-2 +- Linux v3.6.2 +- Fix whitespace corruption in linux-3.6-arm-build-fixup.patch + +* Tue Oct 9 2012 Peter Robinson +- Update ARM configurations + +* Tue Oct 09 2012 Josh Boyer - 3.6.1-1 +- Linux v3.6.1 +- Include patches from 3.6.2 stable queue +- Drop unhandled irq patch. Proving to be not worthwhile + +* Sun Oct 07 2012 Josh Boyer - 3.5.6-1 +- Linux v3.5.6 + +* Wed Oct 03 2012 Josh Boyer +- Make sure kernel-tools-libs-devel provides kernel-tools-devel + +* Tue Oct 02 2012 Josh Boyer - 3.5.5-1 +- Linux v3.5.5 + +* Fri Sep 28 2012 Dave Jones +- Apply potential fix for bogus WARN_ON in tcp. (rhbz 857324) + +* Fri Sep 28 2012 Josh Boyer - 3.5.4-3 +- Split out kernel-tools-libs (rhbz 859943) + +* Wed Sep 26 2012 Justin M. Forbes 3.5.4-2 +- xen Restore the PCI config space after an FLR (rhbz 850350) +- drm/radeon make 64bit fences more robust (rhbz 846505 845639) +- Apply current 3.5.5 stable queue + +* Fri Sep 21 2012 Josh Boyer +- Add patch to fix radeon regression from Jerome Glisse (rhbz 785375) + +* Tue Sep 18 2012 Justin M. Forbes +- Enable POWER7+ crypto modules (rhbz 857971) + +* Mon Sep 17 2012 Justin M. Forbes 3.5.4-1 +- Linux 3.5.4 + +* Tue Sep 11 2012 Justin M. Forbes +- Drop xen EC2 work around, it is no longer needed. + +* Mon Aug 27 2012 Justin M. Forbes 3.5.3-1 +- Linux 3.5.3 + +* Tue Aug 21 2012 Dave Jones 3.5.2-3 +- af_netlink: force credentials passing [CVE-2012-3520] + +* Tue Aug 21 2012 Dave Jones 3.5.2-2 +- Add patch from Dave Airlie to fix fb cursor vs grub2 gfxterm hang + +* Mon Aug 20 2012 Dave Jones +- Reenable W1 drivers. (rhbz 849430) + +* Wed Aug 15 2012 Dave Jones 3.5.2-1 +- Linux 3.5.2 + +* Thu Aug 09 2012 Dave Jones 3.5.1-1 +- Linux 3.5.1 + +* Tue Aug 07 2012 Dave Jones 3.5.0-4 +- Update to 3.5.1-rc1 + +* Tue Aug 07 2012 Dave Jones +- Update the uprobes backport. (Anton Arapov) + +* Mon Aug 06 2012 Dave Jones +- Don't treat warnings as errors when building perf. (rhbz 845758) + +* Fri Aug 03 2012 Josh Boyer +- CVE-2012-3412 sfc: potential rDOS through TCP MSS option (rhbz 844714 845558) + +* Tue Jul 31 2012 Dave Jones +- Change VM_BUG_ON's to be WARN_ONs instead. + +* Tue Jul 31 2012 Josh Boyer +- Move modules needed by Shorewall back to main kernel package (rhbz 844436) + +* Thu Jul 26 2012 Josh Boyer - 3.5.0-2 +- Add patch series queued for 3.5.1 + +* Thu Jul 26 2012 Josh Boyer - 3.5.0-1 +- Rebase to Linux v3.5 + +* Thu Jul 26 2012 Josh Boyer - 3.4.6-4 +- kernel: recv{from,msg}() on an rds socket can leak kernel + memory (rhbz 820039 843554) +- Apply patch to fix uvcvideo crash (rhbz 836742) + +* Wed Jul 25 2012 Josh Boyer +- Add patch to fix cpu pinning after suspend/resume (rhbz 714271) + +* Fri Jul 20 2012 Josh Boyer +- Update vga_default_device.patch to fix build failures (rhbz 830446) + +* Thu Jul 19 2012 Josh Boyer - 3.4.6-2 +- Linux v3.4.6 + +* Wed Jul 18 2012 Josh Boyer +- check return value of power_supply_register from Lan Tianyu (rhbz 772730) + +* Mon Jul 16 2012 Josh Boyer - 3.4.5-2 +- Linux v3.4.5 + +* Thu Jul 12 2012 Josh Boyer +- Add patch to fix ACPICA null pointer exception regression (rhbz 834318) + +* Wed Jul 11 2012 Justin M. Forbes +- Fix FIPS for aesni hardware (rhbz 839239) + +* Tue Jul 10 2012 Josh Boyer +- Add patch to fix xen dom0 crash when using BLKDISCARD (rhbz 824641) + +* Fri Jul 06 2012 Justin M. Forbes +- ACPI, APEI, Avoid too much error reporting in runtime + +* Fri Jul 6 2012 Peter Robinson +- disable TI_CPSW + +* Thu Jul 05 2012 Josh Boyer +- Fix device misprobe for Gobi devices (rhbz 829880) +- Fix breakage in nouveau with nv_two_heads (rhbz 830359) +- Apply patch to fix tg3 watchdog hangs on BCM5906 devices (rhbz 825123) +- Move sch_htb module into main kernel package (rhbz 836185) + +* Thu Jul 5 2012 Peter Robinson +- Enable OMAP freq scaling driver +- Initial support for Beaglebone in OMAP kernel + +* Wed Jul 4 2012 Josh Boyer +- Patch from Stanislaw Gruszka to fix rt2x00 USB access point (rhbz 828824) + +* Tue Jul 3 2012 Josh Boyer +- Allow ACPI backlight to still work if _DOS isn't present (rhbz 834910) + +* Fri Jun 29 2012 John W. Linville +- ath9k: fix panic caused by returning a descriptor we have... (rhbz 832927) + +* Thu Jun 28 2012 Dennis Gilmore +- include the mach- headers on arm arches if they are available + +* Thu Jun 28 2012 Justin M. Forbes +- Team driver update + +* Tue Jun 26 2012 Dave Jones 3.4.4-3 +- Add mm-correctly-synchronize-rss-counters-at-exit-exec.patch (rhbz 832867) + +* Tue Jun 26 2012 Josh Boyer +- Add task_work_add backport from Anton Arapov +- Add patch to fix mount hangs (rhbz 835019) + +* Tue Jun 26 2012 John W. Linville +- ath9k_htc: configure bssid on ASSOC/IBSS change (rhbz 828731) + +* Fri Jun 22 2012 Justin M. Forbes 3.4.4-1 +- Linux 3.4.4 + +* Fri Jun 22 2012 Josh Boyer +- Add uprobe backports from Anton Arapov (rhbz 832083) +- Disable UDL DRM driver per Dave Airlie + +* Wed Jun 20 2012 Josh Boyer +- Fix incorrect logic in irqpoll patch + +* Tue Jun 19 2012 Josh Boyer +- Add proposed patch to fix READ_CAPACITY command on usb keys (rhbz 831807) + +* Mon Jun 18 2012 Dave Jones +- Output taint info when the RSS counter check trips up. + +* Mon Jun 18 2012 Justin M. Forbes 3.4.3-1 +- Linux 3.4.3 + +* Mon Jun 18 2012 Josh Boyer +- Add patch to fix CIFS password mount option parsing (rhbz 832741) +- Add patch to fix udl device binding (rhbz 832188) + +* Wed Jun 13 2012 Josh Boyer +- Add patches to fix NFS shutdown panic (rhbz 830862) + +* Tue Jun 12 2012 Dennis Gilmore +- build in RTC modules on arm boards as the module gets loaded after the rtc is read + +* Mon Jun 11 2012 Josh Boyer +- Add virtual provides for kernel-module to kernel-modules-extra (rhbz 770444) +- Add patch to fix xen domU 32bit (rhbz 829016) +- Add two upstream commits to fix flaky iwlwifi (rhbz 825491) + +* Sat Jun 09 2012 Josh Boyer 3.4.2-1 +- Linux v3.4.2 + +* Fri Jun 08 2012 Josh Boyer +- Enable HV assisted KVM on ppc64 + +* Fri Jun 08 2012 Josh Boyer +- Backport edid header fixup threashold patch from Adam Jackson (rhbz 582559) + +* Wed Jun 06 2012 Dennis Gilmore 3.4.1-2 +- add patch from calxeda to enable the highbank kernel to boot +- on real hardware + +* Tue Jun 05 2012 Dennis Gilmore +- add patch to register omapdrm to the platforms so that we get +- working console framebuffer and X on panda and beagle boards + +* Tue Jun 5 2012 Peter Robinson +- Update ARM config options for 3.4 +- Enable MTD/UBI/JFFS2 on ARM platforms + +* Mon Jun 04 2012 Josh Boyer 3.4.1-1 +- Linux v3.4.1 + +* Mon Jun 04 2012 Dave Jones +- Disable 32bit NX emulation. + +* Sat Jun 02 2012 Justin M. Forbes 3.4.0-1 +- Linux 3.4 +- Stable queue updates + +* Wed May 30 2012 Josh Boyer +- CVE-2012-2390 huge pages: memory leak on mmap failure (rhbz 824352 824345) + +* Fri May 25 2012 Mauro Carvalho Chehab +- Don't manually customise tuners/frontends (rhbz 825203) + +* Thu May 24 2012 Josh Boyer +- CVE-2012-2372 mm: 32bit PAE pmd walk vs populate SMP race (rhbz 822821 822825) + +* Wed May 23 2012 Adam Jackson +- drm-i915-lvds-dual-channel.patch: Scrape dual-channel-ness for LVDS out + of the VBT, rather than just making things up. (#819343) + +* Mon May 21 2012 Justin M. Forbes 3.3.7-1 +- Linux 3.3.7 +- Disable CONFIG_RELOCATABLE for 32bit builds. Turn back on for 3.4 + +* Fri May 18 2012 Josh Boyer +- Additional fixes for CVE-2011-4131 (rhbz 822874 822869) + +* Thu May 17 2012 Josh Boyer +- Fix rtlwifi async firmware load race condition (rhbz 822120) +- Enable cpu_idle drivers for ppc64/pseries (requested by Ben Herrenschmidt) + +* Wed May 16 2012 Dennis Gilmore +- set arch for arm kernel to VEXPRESS allows v7 emulation +- enable SMP everywhere but disable on kirkwood as its up only + +* Wed May 16 2012 Justin M. Forbes 3.3.6-3 +- fix rtl8187: ->brightness_set can not sleep (rhbz 795176) + +* Wed May 16 2012 Josh Boyer +- Update the vgaarb patches to pick up a small switcheroo fix from airlied + +* Tue May 15 2012 Dennis Gilmore +- add patch to setup usb correctly on beagleboards +- allows networking to work + +* Tue May 15 2012 Josh Boyer +- Fixup atl1c register programming (rhbz 749276) + +* Mon May 14 2012 Justin M. Forbes 3.3.6-1 +- Linux 3.3.6 + +* Mon May 14 2012 Josh Boyer +- Enable DRM_VIA again per Adam Jackson + +* Mon May 07 2012 Mauro Carvalho Chehab 3.3.5-2 +- Add patch to fix DVB-S zigzag (rhbz 814404) + +* Mon May 07 2012 Josh Boyer 3.3.5-1 +- Linux 3.3.5 +- Add patch to rate limit NFSv4 message (rhbz 732748) + +* Mon May 07 2012 Dave Jones 3.3.4-5 +- Remove /proc/device-tree when openfirmware init fails. (rhbz 818378) + +* Fri May 04 2012 Justin M. Forbes +- drm/radeon: don't mess with hot plug detect for eDP or LVDS (rhbz 726143) + +* Fri May 04 2012 Josh Boyer +- unfiltered netdev rio_ioctl access by users (rhbz 818820) + +* Thu May 03 2012 Dennis Gilmore +- enable the kms omap driver + +* Thu May 3 2012 Peter Robinson +- Patch for disconnect issues with storage attached to a tegra-ehci controller + +* Thu May 03 2012 Justin M. Forbes +- Reenable slip and add to module-extras (rhbz 818308) + +* Wed May 02 2012 Josh Boyer +- Disable PCIEPORTBUS on ppc64 per IBM request + +* Wed May 02 2012 Justin M. Forbes 3.3.4-3 +- Many patches from 3.3.5 stable queue + +* Tue May 01 2012 Justin M. Forbes +- NFS Bugfixes from upstream + +* Mon Apr 30 2012 Josh Boyer +- Backport ipw2x00 nl80211 cipher suite reporting (rhbz 817298) + +* Mon Apr 30 2012 Dave Jones +- Disable CONFIG_RCU_FAST_NO_HZ for now. (rhbz 806548) + +* Fri Apr 27 2012 Justin M. Forbes 3.3.4-1 +- Linux 3.3.4 + +* Fri Apr 27 2012 Justin M. Forbes 3.3.3-3 +- Skip DMI checks if the bootloader knows what it's doing + +* Tue Apr 24 2012 Josh Boyer +- Add patch to fix perf build due to incorrect cherry-pick in 3.3.3 +- Add patch to fix ipw2200 (rhbz 802106) + +* Mon Apr 23 2012 Josh Boyer +- Add GMA3600 (Cedarview) support (rhbz 810686) +- Linux 3.3.3 + +* Mon Apr 23 2012 Peter Hutterer +- Fix regression on clickpads + +* Sat Apr 21 2012 Josh Boyer - 3.3.2-8 +- Fix error check in memblock that prevented boot on various Dells (rhbz 811225) + +* Fri Apr 20 2012 Josh Boyer +- Move the dlm module to modules-extra and do additional cleanup (rhbz 811547) +- CVE-2012-2123 fcaps: clear the same personality flags as suid when fcaps + are used (rhbz 814523 806722) + +* Thu Apr 19 2012 Justin M. Forbes +- CVE-2012-2119 macvtap: zerocopy: vector length is not validated before + pinning user pages (rhbz 814278 814289) +- Back out dlm module move (rhbz 811547) + +* Thu Apr 19 2012 Justin M. Forbes +- Fix KVM device assignment page leak (rhbz 814149 814155) + +* Wed Apr 18 2012 Josh Boyer +- Fix hfsplus bless ioctl with hardlinks (from Matthew Garrett) +- Make sure userflags is initialized in hfsplus files (from Matthew Garrett) +- Change patch to resolve libata hotplug (rhbz 807632) + +* Tue Apr 17 2012 Josh Boyer +- Move the dlm module to modules-extra (rhbz 811547) +- Fix oops in nfs_have_delegation (rhbz 811138) +- Fix oops on invalid AMD microcode load (rhbz 797559) + +* Mon Apr 16 2012 Josh Boyer +- Add and use vga_default_device patches (requested by Matthew Garrett) +- Add platform driver for Apple GMUX device (requested by Matthew Garrett) + +* Sat Apr 14 2012 Josh Boyer +- Add ALSA quirk for MacPro 5,1 machines (rhbz 808559) + +* Fri Apr 13 2012 Josh Boyer - 3.3.2-1 +- Linux 3.3.2 + +* Thu Apr 12 2012 Dennis Gilmore +- KALLSYMS_EXTRA_PASS=1 has to be passed in on the command line so do so only for arm + +* Wed Apr 11 2012 Peter Robinson +- update ARM configs, rename arm-omap + +* Wed Apr 11 2012 Dennis Gilmore +- set KALLSYMS_EXTRA_PASS=1 on arm arches + +* Wed Apr 11 2012 Josh Boyer +- SELinux apply a different permission to ptrace a child vs non-child + (rhbz 802072) + +* Tue Apr 10 2012 Mauro Carvalho Chehab 3.3.1-5 +- Backport dvb-core and a few driver fixes from media tree (rhbz808871) + +* Tue Apr 10 2012 Josh Boyer +- Apply upstream patch to add USB device 13d3:3375 (rhbz 811087) +- Disable the PMAC ide driver. PATA_MACIO seems to work (rhbz 810579) +- Backport fixes for correct register constraints in cmpxchg.h (rhbz 809014) + +* Thu Apr 05 2012 Dave Jones +- Better watermark the number of pages used by hibernation I/O (Bojan Smojver) (rhbz 785384) + +* Wed Apr 04 2012 Josh Boyer - 3.3.1-3 +- Backport upstream patches to enable i915 RC6 by default on SNB + +* Wed Apr 04 2012 Josh Boyer +- Disable runtime PM for hotpluggable ATA ports (rhbz 806676 807632) +- Disable MID_PTI driver (rhbz 783561) +- Fix NULL pointer dereference in i2400m (rhbz 808603) + +* Tue Apr 03 2012 Josh Boyer +- Fix crash in uvc_video_clock_update from Laurent Pinchart (rhbz 806433) + +* Mon Apr 02 2012 Dave Jones 3.3.1-1 +- Linux 3.3.1 + +* Fri Mar 30 2012 Dave Jones +- Silence the timekeeping "Adjusting tsc more then 11%" spew. (rhbz 798600) + +* Fri Mar 30 2012 Josh Boyer +- Fix i915 fbdev cursor blink around suspend/hibernate from Dave Airlied +- CVE-2012-1601: kvm: NULL dereference from irqchip_in_kernel and + vcpu->arch.apic inconsistency (rhbz 808207) +- Add patch to fix incorrect buffer length in __nfs4_get_acl_uncached + +* Thu Mar 29 2012 Josh Boyer - 3.3.0-8 +- Drop __cpuinitdata on disable_nx for x86_32 (rhbz 808075) +- iwl{wifi,legacy}: Fix warnings on remove interface from Stanislaw Gruszka + (rhbz 770467) + +* Wed Mar 28 2012 Josh Boyer +- Fix disabled ASPM regression +- Move 9p modules back to main package for KVM (rhbz 807733) + +* Tue Mar 27 2012 Josh Boyer +- Implement xen apic_ops to fix early crash in Xen Dom0 (rhbz 804347) + +* 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 +- 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) + +* 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) + +* 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. + +* 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 + +* 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) + +* 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 + +* 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 +- Linux v3.3-rc7-48-g762ad8a + +* 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 + +* 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. + +* 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 + +* 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 + +* 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. + +* 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 + +* 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 + +* 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. + +* 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) + +* 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) + +* 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) + +* 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 +- 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. + +* 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) + +* Fri Feb 24 2012 Josh Boyer +- Linux 3.3-rc4-git4 (upstream bb4c7e9a9908548b458f34afb2fee74dc0d49f90) + +* 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) + +* 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) + +* 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) + +* 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 +- Disable ARM highbank kernels for the time being + +* 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 + +* 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 +- Reenable debugging options. + +* 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 + +* 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) + +* 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) + +* 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 + +* 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 + +* 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) +- 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) + +* 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) + +* 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) + +* 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) + +* 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) + +* 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. + +* 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 + 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) + +* Tue Feb 07 2012 Chris Wright +- Enable Open vSwitch + * Tue Feb 07 2012 Justin M. Forbes - Add virtio-scsi support diff --git a/linux-2.6-32bit-mmap-exec-randomization.patch b/linux-2.6-32bit-mmap-exec-randomization.patch deleted file mode 100644 index c25323323..000000000 --- a/linux-2.6-32bit-mmap-exec-randomization.patch +++ /dev/null @@ -1,251 +0,0 @@ -Before: -Heap randomisation test (PIE) : 16 bits (guessed) -Main executable randomisation (PIE) : 8 bits (guessed) - -after: -Heap randomisation test (PIE) : 19 bits (guessed) -Main executable randomisation (PIE) : 12 bits (guessed) - - - ---- b/include/linux/sched.h -+++ b/include/linux/sched.h -@@ -397,6 +397,10 @@ - extern unsigned long - arch_get_unmapped_area(struct file *, unsigned long, unsigned long, - unsigned long, unsigned long); -+ -+extern unsigned long -+arch_get_unmapped_exec_area(struct file *, unsigned long, unsigned long, -+ unsigned long, unsigned long); - extern unsigned long - arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, - unsigned long len, unsigned long pgoff, ---- b/mm/mmap.c -+++ b/mm/mmap.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -1000,7 +1001,8 @@ - /* Obtain the address to map to. we verify (or select) it and ensure - * that it represents a valid section of the address space. - */ -- addr = get_unmapped_area(file, addr, len, pgoff, flags); -+ addr = get_unmapped_area_prot(file, addr, len, pgoff, flags, -+ prot & PROT_EXEC); - if (addr & ~PAGE_MASK) - return addr; - -@@ -1552,8 +1554,8 @@ - } - - unsigned long --get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, -- unsigned long pgoff, unsigned long flags) -+get_unmapped_area_prot(struct file *file, unsigned long addr, unsigned long len, -+ unsigned long pgoff, unsigned long flags, int exec) - { - unsigned long (*get_area)(struct file *, unsigned long, - unsigned long, unsigned long, unsigned long); -@@ -1566,7 +1568,11 @@ - if (len > TASK_SIZE) - return -ENOMEM; - -- get_area = current->mm->get_unmapped_area; -+ if (exec && current->mm->get_unmapped_exec_area) -+ get_area = current->mm->get_unmapped_exec_area; -+ else -+ get_area = current->mm->get_unmapped_area; -+ - if (file && file->f_op && file->f_op->get_unmapped_area) - get_area = file->f_op->get_unmapped_area; - addr = get_area(file, addr, len, pgoff, flags); -@@ -1580,8 +1586,83 @@ - - return arch_rebalance_pgtables(addr, len); - } -+EXPORT_SYMBOL(get_unmapped_area_prot); -+ -+static bool should_randomize(void) -+{ -+ return (current->flags & PF_RANDOMIZE) && -+ !(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) -+{ -+ unsigned long addr = addr0, len = len0; -+ struct mm_struct *mm = current->mm; -+ struct vm_area_struct *vma; -+ unsigned long tmp; -+ -+ if (len > TASK_SIZE) -+ return -ENOMEM; -+ -+ if (flags & MAP_FIXED) -+ return addr; -+ -+ if (!addr) -+ addr = !should_randomize() ? SHLIB_BASE : -+ randomize_range(SHLIB_BASE, 0x01000000, len); -+ -+ if (addr) { -+ addr = PAGE_ALIGN(addr); -+ vma = find_vma(mm, addr); -+ if (TASK_SIZE - len >= addr && -+ (!vma || addr + len <= vma->vm_start)) -+ return addr; -+ } -+ -+ addr = 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) -+ return -ENOMEM; -+ -+ if (!vma || addr + len <= vma->vm_start) { -+ /* -+ * Must not let a PROT_EXEC mapping get into the -+ * brk area: -+ */ -+ if (addr + len > mm->brk) -+ goto failed; -+ -+ /* -+ * Up until the brk area we randomize addresses -+ * as much as possible: -+ */ -+ if (addr >= 0x01000000 && should_randomize()) { -+ tmp = randomize_range(0x01000000, -+ PAGE_ALIGN(max(mm->start_brk, -+ (unsigned long)0x08000000)), len); -+ vma = find_vma(mm, tmp); -+ if (TASK_SIZE - len >= tmp && -+ (!vma || tmp + len <= vma->vm_start)) -+ return tmp; -+ } -+ /* -+ * Ok, randomization didnt work out - return -+ * the result of the linear search: -+ */ -+ return addr; -+ } -+ addr = vma->vm_end; -+ } -+ -+failed: -+ return current->mm->get_unmapped_area(filp, addr0, len0, pgoff, flags); -+} - --EXPORT_SYMBOL(get_unmapped_area); - - /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ - struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) ---- a/arch/x86/mm/mmap.c -+++ b/arch/x86/mm/mmap.c -@@ -124,13 +124,19 @@ static unsigned long mmap_legacy_base(void) - */ - void arch_pick_mmap_layout(struct mm_struct *mm) - { - if (mmap_is_legacy()) { - mm->mmap_base = mmap_legacy_base(); - mm->get_unmapped_area = arch_get_unmapped_area; - mm->unmap_area = arch_unmap_area; - } else { - mm->mmap_base = mmap_base(); - mm->get_unmapped_area = arch_get_unmapped_area_topdown; -+#ifdef CONFIG_X86_32 -+ if (!(current->personality & READ_IMPLIES_EXEC) -+ && !(__supported_pte_mask & _PAGE_NX) -+ && mmap_is_ia32()) -+ mm->get_unmapped_exec_area = arch_get_unmapped_exec_area; -+#endif - mm->unmap_area = arch_unmap_area_topdown; - } - } ---- a/arch/x86/vdso/vdso32-setup.c -+++ b/arch/x86/vdso/vdso32-setup.c -@@ -331,7 +331,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) - if (compat) - addr = VDSO_HIGH_BASE; - else { -- addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); -+ addr = get_unmapped_area_prot(NULL, 0, PAGE_SIZE, 0, 0, 1); - if (IS_ERR_VALUE(addr)) { - ret = addr; - goto up_fail; ---- a/include/linux/mm.h -+++ b/include/linux/mm.h -@@ -1263,7 +1263,13 @@ extern int install_special_mapping(struct mm_struct *mm, - unsigned long addr, unsigned long len, - unsigned long flags, struct page **pages); - --extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); -+extern unsigned long get_unmapped_area_prot(struct file *, unsigned long, unsigned long, unsigned long, unsigned long, int); -+ -+static inline unsigned long get_unmapped_area(struct file *file, unsigned long addr, -+ unsigned long len, unsigned long pgoff, unsigned long flags) -+{ -+ return get_unmapped_area_prot(file, addr, len, pgoff, flags, 0); -+} - - extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, - unsigned long len, unsigned long prot, ---- a/include/linux/mm_types.h -+++ b/include/linux/mm_types.h -@@ -227,6 +227,9 @@ struct mm_struct { - unsigned long (*get_unmapped_area) (struct file *filp, - unsigned long addr, unsigned long len, - unsigned long pgoff, unsigned long flags); -+ unsigned long (*get_unmapped_exec_area) (struct file *filp, -+ unsigned long addr, unsigned long len, -+ unsigned long pgoff, unsigned long flags); - void (*unmap_area) (struct mm_struct *mm, unsigned long addr); - #endif - unsigned long mmap_base; /* base of mmap area */ ---- a/mm/mremap.c -+++ b/mm/mremap.c -@@ -487,10 +487,10 @@ unsigned long do_mremap(unsigned long addr, - if (vma->vm_flags & VM_MAYSHARE) - map_flags |= MAP_SHARED; - -- new_addr = get_unmapped_area(vma->vm_file, 0, new_len, -+ new_addr = get_unmapped_area_prot(vma->vm_file, 0, new_len, - vma->vm_pgoff + - ((addr - vma->vm_start) >> PAGE_SHIFT), -- map_flags); -+ map_flags, vma->vm_flags & VM_EXEC); - if (new_addr & ~PAGE_MASK) { - ret = new_addr; - goto out; -diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c -index 57d1868..29c0c35 100644 ---- a/arch/x86/kernel/process.c -+++ b/arch/x86/kernel/process.c -@@ -669,6 +669,16 @@ unsigned long arch_align_stack(unsigned long sp) - unsigned long arch_randomize_brk(struct mm_struct *mm) - { - unsigned long range_end = mm->brk + 0x02000000; -- return randomize_range(mm->brk, range_end, 0) ? : mm->brk; -+ unsigned long bump = 0; -+#ifdef CONFIG_X86_32 -+ /* in the case of NX emulation, shove the brk segment way out of the -+ way of the exec randomization area, since it can collide with -+ future allocations if not. */ -+ if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) && -+ (mm->brk < 0x08000000) ) { -+ bump = (TASK_SIZE/6); -+ } -+#endif -+ return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk); - } - diff --git a/linux-2.6-acpi-debug-infinite-loop.patch b/linux-2.6-acpi-debug-infinite-loop.patch index d20025224..f2cc1a55e 100644 --- a/linux-2.6-acpi-debug-infinite-loop.patch +++ b/linux-2.6-acpi-debug-infinite-loop.patch @@ -1,5 +1,5 @@ ---- linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400 -+++ linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h 2010-07-01 14:49:17.000000000 -0400 +--- linux-2.6.34.noarch/include/acpi/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400 ++++ linux-2.6.34.noarch/include/acpi/acconfig.h 2010-07-01 14:49:17.000000000 -0400 @@ -117,7 +117,7 @@ /* Maximum number of While() loop iterations before forced abort */ diff --git a/linux-2.6-defaults-aspm.patch b/linux-2.6-defaults-aspm.patch deleted file mode 100644 index 49b832d2c..000000000 --- a/linux-2.6-defaults-aspm.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg linux-2.6.30.noarch/drivers/pci/pcie/aspm.c ---- linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg 2009-07-16 22:01:11.000000000 +0100 -+++ linux-2.6.30.noarch/drivers/pci/pcie/aspm.c 2009-07-16 22:01:30.000000000 +0100 -@@ -65,7 +65,7 @@ static LIST_HEAD(link_list); - #define POLICY_DEFAULT 0 /* BIOS default setting */ - #define POLICY_PERFORMANCE 1 /* high performance */ - #define POLICY_POWERSAVE 2 /* high power saving */ --static int aspm_policy; -+static int aspm_policy = POLICY_POWERSAVE; - static const char *policy_str[] = { - [POLICY_DEFAULT] = "default", - [POLICY_PERFORMANCE] = "performance", diff --git a/linux-2.6-e1000-ich9-montevina.patch b/linux-2.6-e1000-ich9-montevina.patch deleted file mode 100644 index ec38a3902..000000000 --- a/linux-2.6-e1000-ich9-montevina.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 802e6d8c8477a553a677b23a247d6d2638e01958 Mon Sep 17 00:00:00 2001 -From: Dave Jones -Date: Wed, 26 Oct 2011 13:31:47 -0400 -Subject: [PATCH] e1000e: ich9 montevina - -This only showed up in one SDV (Montevina). -The PCIE slots don't seem to like network cards, so this is the only hope -to get networking working. It's never going upstream, but it's low impact -enough to carry just to keep those SDVs working. ---- - drivers/net/ethernet/intel/e1000e/ich8lan.c | 6 ++++++ - drivers/net/ethernet/intel/e1000e/netdev.c | 1 + - 2 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c -index 6a17c62..0e40975 100644 ---- a/drivers/net/ethernet/intel/e1000e/ich8lan.c -+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c -@@ -452,6 +452,12 @@ static s32 e1000_init_phy_params_ich8lan(struct e1000_hw *hw) - - /* Verify phy id */ - switch (phy->id) { -+ case 0: -+ if (hw->adapter->pdev->device == 0x10be) -+ e_dbg("got 0 phy id, trying anyway"); -+ /* Fall through to IGP03E1000 case below */ -+ else -+ return -E1000_ERR_PHY; - case IGP03E1000_E_PHY_ID: - phy->type = e1000_phy_igp_3; - phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; -diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c -index a855db1..edac30b 100644 ---- a/drivers/net/ethernet/intel/e1000e/netdev.c -+++ b/drivers/net/ethernet/intel/e1000e/netdev.c -@@ -6359,6 +6359,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = { - { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M), board_ich9lan }, - { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), board_ich9lan }, - { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_V), board_ich9lan }, -+ { PCI_VDEVICE(INTEL, 0x10be), board_ich9lan }, - - { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LM), board_ich9lan }, - { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan }, --- -1.7.6.4 - diff --git a/linux-2.6-i386-nx-emulation.patch b/linux-2.6-i386-nx-emulation.patch deleted file mode 100644 index 07a0faec8..000000000 --- a/linux-2.6-i386-nx-emulation.patch +++ /dev/null @@ -1,594 +0,0 @@ ---- a/arch/x86/include/asm/desc.h -+++ b/arch/x86/include/asm/desc.h -@@ -5,6 +5,7 @@ - #include - #include - -+#include - #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) - - #define load_TLS(t, cpu) native_load_tls(t, cpu) - #define set_ldt native_set_ldt -+#ifdef CONFIG_X86_32 -+#define load_user_cs_desc native_load_user_cs_desc -+#endif /*CONFIG_X86_32*/ - - #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) - _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS); - } - -+#ifdef CONFIG_X86_32 -+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit) -+{ -+ limit = (limit - 1) / PAGE_SIZE; -+ desc->a = limit & 0xffff; -+ desc->b = (limit & 0xf0000) | 0x00c0fb00; -+} -+ -+static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm) -+{ -+ get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs; -+} -+ -+#define arch_add_exec_range arch_add_exec_range -+#define arch_remove_exec_range arch_remove_exec_range -+#define arch_flush_exec_range arch_flush_exec_range -+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit); -+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit); -+extern void arch_flush_exec_range(struct mm_struct *mm); -+#endif /* CONFIG_X86_32 */ -+ - #endif /* _ASM_X86_DESC_H */ ---- a/arch/x86/include/asm/mmu.h -+++ b/arch/x86/include/asm/mmu.h -@@ -7,6 +7,9 @@ - /* - * The x86 doesn't have a mmu context, but - * we put the segment information here. -+ * -+ * exec_limit is used to track the range PROT_EXEC -+ * mappings span. - */ - typedef struct { - void *ldt; -@@ -19,6 +22,11 @@ typedef struct { - - struct mutex lock; - void *vdso; -+ -+#ifdef CONFIG_X86_32 -+ struct desc_struct user_cs; -+ unsigned long exec_limit; -+#endif - } mm_context_t; - - #ifdef CONFIG_SMP ---- 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) - { - PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries); - } -+#ifdef CONFIG_X86_32 -+static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm) -+{ -+ PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm); -+} -+#endif /*CONFIG_X86_32*/ - static inline void store_gdt(struct desc_ptr *dtr) - { - PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr); ---- a/arch/x86/include/asm/paravirt_types.h -+++ b/arch/x86/include/asm/paravirt_types.h -@@ -118,6 +118,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); -+#ifdef CONFIG_X86_32 -+ void (*load_user_cs_desc)(int cpu, struct mm_struct *mm); -+#endif - unsigned long (*store_tr)(void); - void (*load_tls)(struct thread_struct *t, unsigned int cpu); - #ifdef CONFIG_X86_64 ---- 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) - /* Filter out anything that depends on CPUID levels we don't have */ - filter_cpuid_features(c, true); - -+#ifdef CONFIG_X86_32 -+ /* -+ * emulation of NX with segment limits unfortunately means -+ * we have to disable the fast system calls, due to the way that -+ * sysexit clears the segment limits on return. -+ * If we have either disabled exec-shield on the boot command line, -+ * or we have NX, then we don't need to do this. -+ */ -+ if (!disable_nx) { -+#ifdef CONFIG_X86_PAE -+ if (!test_cpu_cap(c, X86_FEATURE_NX)) -+#endif -+ clear_cpu_cap(c, X86_FEATURE_SEP); -+ } -+#endif -+ - /* If the model name is still unset, do table lookup. */ - if (!c->x86_model_id[0]) { - const char *p; ---- a/arch/x86/kernel/paravirt.c -+++ b/arch/x86/kernel/paravirt.c -@@ -345,6 +345,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, -+#ifdef CONFIG_X86_32 -+ .load_user_cs_desc = native_load_user_cs_desc, -+#endif /*CONFIG_X86_32*/ - .load_gdt = native_load_gdt, - .load_idt = native_load_idt, - .store_gdt = native_store_gdt, ---- 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, - void - start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) - { -+ int cpu; -+ - set_user_gs(regs, 0); -+ - 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) - regs->cs = __USER_CS; - regs->ip = new_ip; - regs->sp = new_sp; -+ -+ cpu = get_cpu(); -+ load_user_cs_desc(cpu, current->mm); -+ put_cpu(); -+ - /* - * 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); - -+ if (next_p->mm) -+ load_user_cs_desc(cpu, next_p->mm); -+ - /* - * Reload esp0. - */ -@@ -404,3 +415,40 @@ unsigned long get_wchan(struct task_struct *p) - return 0; - } - -+static void modify_cs(struct mm_struct *mm, unsigned long limit) -+{ -+ mm->context.exec_limit = limit; -+ set_user_cs(&mm->context.user_cs, limit); -+ if (mm == current->mm) { -+ int cpu; -+ -+ cpu = get_cpu(); -+ load_user_cs_desc(cpu, mm); -+ put_cpu(); -+ } -+} -+ -+void arch_add_exec_range(struct mm_struct *mm, unsigned long limit) -+{ -+ if (limit > mm->context.exec_limit) -+ modify_cs(mm, limit); -+} -+ -+void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end) -+{ -+ struct vm_area_struct *vma; -+ unsigned long limit = PAGE_SIZE; -+ -+ if (old_end == mm->context.exec_limit) { -+ for (vma = mm->mmap; vma; vma = vma->vm_next) -+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) -+ limit = vma->vm_end; -+ modify_cs(mm, limit); -+ } -+} -+ -+void arch_flush_exec_range(struct mm_struct *mm) -+{ -+ mm->context.exec_limit = 0; -+ set_user_cs(&mm->context.user_cs, 0); -+} ---- 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) - dec_preempt_count(); - } - -+#ifdef CONFIG_X86_32 -+static inline int -+__compare_user_cs_desc(const struct desc_struct *desc1, -+ const struct desc_struct *desc2) -+{ -+ return ((desc1->limit0 != desc2->limit0) || -+ (desc1->limit != desc2->limit) || -+ (desc1->base0 != desc2->base0) || -+ (desc1->base1 != desc2->base1) || -+ (desc1->base2 != desc2->base2)); -+} -+ -+/* -+ * lazy-check for CS validity on exec-shield binaries: -+ * -+ * the original non-exec stack patch was written by -+ * Solar Designer . Thanks! -+ */ -+static int -+check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code) -+{ -+ struct desc_struct *desc1, *desc2; -+ struct vm_area_struct *vma; -+ unsigned long limit; -+ -+ if (current->mm == NULL) -+ return 0; -+ -+ limit = -1UL; -+ if (current->mm->context.exec_limit != -1UL) { -+ limit = PAGE_SIZE; -+ spin_lock(¤t->mm->page_table_lock); -+ for (vma = current->mm->mmap; vma; vma = vma->vm_next) -+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) -+ limit = vma->vm_end; -+ vma = get_gate_vma(current->mm); -+ if (vma && (vma->vm_flags & VM_EXEC) && (vma->vm_end > limit)) -+ limit = vma->vm_end; -+ spin_unlock(¤t->mm->page_table_lock); -+ if (limit >= TASK_SIZE) -+ limit = -1UL; -+ current->mm->context.exec_limit = limit; -+ } -+ set_user_cs(¤t->mm->context.user_cs, limit); -+ -+ desc1 = ¤t->mm->context.user_cs; -+ desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS; -+ -+ if (__compare_user_cs_desc(desc1, desc2)) { -+ /* -+ * The CS was not in sync - reload it and retry the -+ * instruction. If the instruction still faults then -+ * we won't hit this branch next time around. -+ */ -+ if (print_fatal_signals >= 2) { -+ printk(KERN_ERR "#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n", -+ error_code, error_code/8, regs->ip, -+ smp_processor_id()); -+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x, CPU_cs: %08x/%08x.\n", -+ current->mm->context.exec_limit, -+ desc1->a, desc1->b, desc2->a, desc2->b); -+ } -+ -+ load_user_cs_desc(cpu, current->mm); -+ -+ return 1; -+ } -+ -+ return 0; -+} -+#endif -+ - 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) - if (!user_mode(regs)) - goto gp_in_kernel; - -+#ifdef CONFIG_X86_32 -+{ -+ int cpu; -+ int ok; -+ -+ cpu = get_cpu(); -+ ok = check_lazy_exec_limit(cpu, regs, error_code); -+ put_cpu(); -+ -+ if (ok) -+ return; -+ -+ if (print_fatal_signals) { -+ printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n", -+ error_code, error_code/8, regs->ip, smp_processor_id()); -+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n", -+ current->mm->context.exec_limit, -+ current->mm->context.user_cs.a, -+ current->mm->context.user_cs.b); -+ } -+} -+#endif /*CONFIG_X86_32*/ -+ - 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) - } - - #ifdef CONFIG_X86_32 -+/* -+ * The fixup code for errors in iret jumps to here (iret_exc). It loses -+ * the original trap number and erorr code. The bogus trap 32 and error -+ * code 0 are what the vanilla kernel delivers via: -+ * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1) -+ * -+ * NOTE: Because of the final "1" in the macro we need to enable interrupts. -+ * -+ * In case of a general protection fault in the iret instruction, we -+ * need to check for a lazy CS update for exec-shield. -+ */ - dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code) - { -- siginfo_t info; -+ int ok; -+ int cpu; -+ - local_irq_enable(); - -- info.si_signo = SIGILL; -- info.si_errno = 0; -- info.si_code = ILL_BADSTK; -- info.si_addr = NULL; -- if (notify_die(DIE_TRAP, "iret exception", -- regs, error_code, 32, SIGILL) == NOTIFY_STOP) -- return; -- do_trap(32, SIGILL, "iret exception", regs, error_code, &info); -+ cpu = get_cpu(); -+ ok = check_lazy_exec_limit(cpu, regs, error_code); -+ put_cpu(); -+ -+ if (!ok && notify_die(DIE_TRAP, "iret exception", regs, -+ error_code, 32, SIGSEGV) != NOTIFY_STOP) { -+ siginfo_t info; -+ info.si_signo = SIGSEGV; -+ info.si_errno = 0; -+ info.si_code = ILL_BADSTK; -+ info.si_addr = 0; -+ do_trap(32, SIGSEGV, "iret exception", regs, error_code, &info); -+ } - } - #endif - ---- a/arch/x86/mm/setup_nx.c -+++ b/arch/x86/mm/setup_nx.c -@@ -1,3 +1,4 @@ -+#include - #include - #include - #include -@@ -6,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) - void __init x86_report_nx(void) - { - if (!cpu_has_nx) { -+ if (!disable_nx) -+ printk(KERN_INFO "Using x86 segment limits to approximate NX protection\n"); -+ else -+ - printk(KERN_NOTICE "Notice: NX (Execute Disable) protection " - "missing in CPU!\n"); - } else { ---- a/arch/x86/mm/tlb.c -+++ b/arch/x86/mm/tlb.c -@@ -6,6 +6,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -131,6 +132,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs) - union smp_flush_state *f; - - cpu = smp_processor_id(); -+ -+#ifdef CONFIG_X86_32 -+ if (current->active_mm) -+ load_user_cs_desc(cpu, current->active_mm); -+#endif -+ - /* - * orig_rax contains the negated interrupt vector. - * Use that to determine where the sender put the data. ---- 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) - xen_mc_issue(PARAVIRT_LAZY_CPU); - } - -+#ifdef CONFIG_X86_32 -+static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm) -+{ -+ void *gdt; -+ xmaddr_t mgdt; -+ u64 descriptor; -+ struct desc_struct user_cs; -+ -+ gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]; -+ mgdt = virt_to_machine(gdt); -+ -+ user_cs = mm->context.user_cs; -+ descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32; -+ -+ HYPERVISOR_update_descriptor(mgdt.maddr, descriptor); -+} -+#endif /*CONFIG_X86_32*/ -+ - 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 = { - - .load_tr_desc = paravirt_nop, - .set_ldt = xen_set_ldt, -+#ifdef CONFIG_X86_32 -+ .load_user_cs_desc = xen_load_user_cs_desc, -+#endif /*CONFIG_X86_32*/ - .load_gdt = xen_load_gdt, - .load_idt = xen_load_idt, - .load_tls = xen_load_tls, ---- 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) - if (retval) - goto out_free_dentry; - -+#ifdef CONFIG_X86_32 -+ /* -+ * Turn off the CS limit completely if exec-shield disabled or -+ * NX active: -+ */ -+ if (disable_nx || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX)) -+ arch_add_exec_range(current->mm, -1); -+#endif -+ - /* OK, This is the point of no return */ - current->flags &= ~PF_FORKNOEXEC; - current->mm->def_flags = def_flags; ---- a/include/linux/sched.h -+++ b/include/linux/sched.h -@@ -101,6 +101,9 @@ struct bio_list; - struct perf_event_context; - struct blk_plug; - -+extern int disable_nx; -+extern int print_fatal_signals; -+ - /* - * List of flags we want to share for kernel threads, - * if only because they are not used by them anyway. ---- b/mm/mmap.c -+++ b/mm/mmap.c -@@ -44,6 +45,18 @@ - #define arch_rebalance_pgtables(addr, len) (addr) - #endif - -+/* No sane architecture will #define these to anything else */ -+#ifndef arch_add_exec_range -+#define arch_add_exec_range(mm, limit) do { ; } while (0) -+#endif -+#ifndef arch_flush_exec_range -+#define arch_flush_exec_range(mm) do { ; } while (0) -+#endif -+#ifndef arch_remove_exec_range -+#define arch_remove_exec_range(mm, limit) do { ; } while (0) -+#endif -+ -+ - 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, - struct vm_area_struct *prev, struct rb_node **rb_link, - struct rb_node *rb_parent) - { -+ if (vma->vm_flags & VM_EXEC) -+ arch_add_exec_range(mm, vma->vm_end); - __vma_link_list(mm, vma, prev, rb_parent); - __vma_link_rb(mm, vma, rb_link, rb_parent); - } -@@ -489,6 +504,8 @@ - rb_erase(&vma->vm_rb, &mm->mm_rb); - if (mm->mmap_cache == vma) - mm->mmap_cache = prev; -+ if (vma->vm_flags & VM_EXEC) -+ arch_remove_exec_range(mm, vma->vm_end); - } - - /* -@@ -790,6 +807,8 @@ - } else /* cases 2, 5, 7 */ - err = vma_adjust(prev, prev->vm_start, - end, prev->vm_pgoff, NULL); -+ if (prev->vm_flags & VM_EXEC) -+ arch_add_exec_range(mm, prev->vm_end); - if (err) - return NULL; - return prev; -@@ -1966,10 +2075,14 @@ - if (new->vm_ops && new->vm_ops->open) - new->vm_ops->open(new); - -- if (new_below) -+ if (new_below) { -+ unsigned long old_end = vma->vm_end; -+ - err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff + - ((addr - new->vm_start) >> PAGE_SHIFT), new); -- else -+ if (vma->vm_flags & VM_EXEC) -+ arch_remove_exec_range(mm, old_end); -+ } else - err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); - - /* Success. */ -@@ -2254,6 +2367,7 @@ - - free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0); - tlb_finish_mmu(&tlb, 0, end); -+ arch_flush_exec_range(mm); - - /* - * Walk the list again, actually closing and freeing it, ---- a/mm/mprotect.c -+++ b/mm/mprotect.c -@@ -25,9 +25,14 @@ - #include - #include - #include -+#include - #include - #include - -+#ifndef arch_remove_exec_range -+#define arch_remove_exec_range(mm, limit) do { ; } while (0) -+#endif -+ - #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, - struct mm_struct *mm = vma->vm_mm; - unsigned long oldflags = vma->vm_flags; - long nrpages = (end - start) >> PAGE_SHIFT; -- unsigned long charged = 0; -+ unsigned long charged = 0, old_end = vma->vm_end; - pgoff_t pgoff; - int error; - int dirty_accountable = 0; -@@ -203,6 +208,9 @@ success: - dirty_accountable = 1; - } - -+ if (oldflags & VM_EXEC) -+ arch_remove_exec_range(current->mm, old_end); -+ - mmu_notifier_invalidate_range_start(mm, start, end); - if (is_vm_hugetlb_page(vma)) - hugetlb_change_protection(vma, start, end, vma->vm_page_prot); diff --git a/linux-2.6-v4l-dvb-fixes.patch b/linux-2.6-v4l-dvb-fixes.patch deleted file mode 100644 index e69de29bb..000000000 diff --git a/linux-2.6-v4l-dvb-update.patch b/linux-2.6-v4l-dvb-update.patch deleted file mode 100644 index e69de29bb..000000000 diff --git a/linux-3.1-keys-remove-special-keyring.patch b/linux-3.1-keys-remove-special-keyring.patch deleted file mode 100644 index 4e7f1395b..000000000 --- a/linux-3.1-keys-remove-special-keyring.patch +++ /dev/null @@ -1,110 +0,0 @@ -diff -up linux-3.1.x86_64/Documentation/networking/dns_resolver.txt.orig linux-3.1.x86_64/Documentation/networking/dns_resolver.txt ---- linux-3.1.x86_64/Documentation/networking/dns_resolver.txt.orig 2011-10-24 03:10:05.000000000 -0400 -+++ linux-3.1.x86_64/Documentation/networking/dns_resolver.txt 2011-12-13 15:09:35.705766078 -0500 -@@ -102,6 +102,10 @@ implemented in the module can be called - If _expiry is non-NULL, the expiry time (TTL) of the result will be - returned also. - -+The kernel maintains an internal keyring in which it caches looked up keys. -+This can be cleared by any process that has the CAP_SYS_ADMIN capability by -+the use of KEYCTL_KEYRING_CLEAR on the keyring ID. -+ - - =============================== - READING DNS KEYS FROM USERSPACE -diff -up linux-3.1.x86_64/Documentation/security/keys.txt.orig linux-3.1.x86_64/Documentation/security/keys.txt ---- linux-3.1.x86_64/Documentation/security/keys.txt.orig 2011-10-24 03:10:05.000000000 -0400 -+++ linux-3.1.x86_64/Documentation/security/keys.txt 2011-12-13 15:09:35.706766099 -0500 -@@ -554,6 +554,10 @@ The keyctl syscall functions are: - process must have write permission on the keyring, and it must be a - keyring (or else error ENOTDIR will result). - -+ This function can also be used to clear special kernel keyrings if they -+ are appropriately marked if the user has CAP_SYS_ADMIN capability. The -+ DNS resolver cache keyring is an example of this. -+ - - (*) Link a key into a keyring: - -diff -up linux-3.1.x86_64/fs/cifs/cifsacl.c.orig linux-3.1.x86_64/fs/cifs/cifsacl.c ---- linux-3.1.x86_64/fs/cifs/cifsacl.c.orig 2011-12-13 12:54:12.221145867 -0500 -+++ linux-3.1.x86_64/fs/cifs/cifsacl.c 2011-12-13 15:09:35.707766122 -0500 -@@ -556,6 +556,7 @@ init_cifs_idmap(void) - - /* instruct request_key() to use this special keyring as a cache for - * the results it looks up */ -+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); - cred->thread_keyring = keyring; - cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; - root_cred = cred; -diff -up linux-3.1.x86_64/fs/nfs/idmap.c.orig linux-3.1.x86_64/fs/nfs/idmap.c ---- linux-3.1.x86_64/fs/nfs/idmap.c.orig 2011-12-13 12:54:14.657203507 -0500 -+++ linux-3.1.x86_64/fs/nfs/idmap.c 2011-12-13 15:10:14.731681691 -0500 -@@ -115,6 +115,7 @@ int nfs_idmap_init(void) - if (ret < 0) - goto failed_put_key; - -+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); - cred->thread_keyring = keyring; - cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; - id_resolver_cache = cred; -@@ -185,7 +186,7 @@ static ssize_t nfs_idmap_request_key(con - } - - rcu_read_lock(); -- rkey->perm |= KEY_USR_VIEW; -+ rkey->perm |= KEY_USR_VIEW|KEY_USR_WRITE; - - ret = key_validate(rkey); - if (ret < 0) -diff -up linux-3.1.x86_64/include/linux/key.h.orig linux-3.1.x86_64/include/linux/key.h ---- linux-3.1.x86_64/include/linux/key.h.orig 2011-10-24 03:10:05.000000000 -0400 -+++ linux-3.1.x86_64/include/linux/key.h 2011-12-13 15:09:35.748767078 -0500 -@@ -155,6 +155,7 @@ struct key { - #define KEY_FLAG_IN_QUOTA 3 /* set if key consumes quota */ - #define KEY_FLAG_USER_CONSTRUCT 4 /* set if key is being constructed in userspace */ - #define KEY_FLAG_NEGATIVE 5 /* set if key is negative */ -+#define KEY_FLAG_ROOT_CAN_CLEAR 6 /* set if key can be cleared by root without permission */ - - /* the description string - * - this is used to match a key against search criteria -diff -up linux-3.1.x86_64/net/dns_resolver/dns_key.c.orig linux-3.1.x86_64/net/dns_resolver/dns_key.c ---- linux-3.1.x86_64/net/dns_resolver/dns_key.c.orig 2011-10-24 03:10:05.000000000 -0400 -+++ linux-3.1.x86_64/net/dns_resolver/dns_key.c 2011-12-13 15:09:35.748767078 -0500 -@@ -281,6 +281,7 @@ static int __init init_dns_resolver(void - - /* instruct request_key() to use this special keyring as a cache for - * the results it looks up */ -+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); - cred->thread_keyring = keyring; - cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; - dns_resolver_cache = cred; -diff -up linux-3.1.x86_64/security/keys/keyctl.c.orig linux-3.1.x86_64/security/keys/keyctl.c ---- linux-3.1.x86_64/security/keys/keyctl.c.orig 2011-12-13 12:54:30.322571289 -0500 -+++ linux-3.1.x86_64/security/keys/keyctl.c 2011-12-13 15:09:35.756767271 -0500 -@@ -388,11 +388,24 @@ long keyctl_keyring_clear(key_serial_t r - keyring_ref = lookup_user_key(ringid, KEY_LOOKUP_CREATE, KEY_WRITE); - if (IS_ERR(keyring_ref)) { - ret = PTR_ERR(keyring_ref); -+ -+ /* Root is permitted to invalidate certain special keyrings */ -+ if (capable(CAP_SYS_ADMIN)) { -+ keyring_ref = lookup_user_key(ringid, 0, 0); -+ if (IS_ERR(keyring_ref)) -+ goto error; -+ if (test_bit(KEY_FLAG_ROOT_CAN_CLEAR, -+ &key_ref_to_ptr(keyring_ref)->flags)) -+ goto clear; -+ goto error_put; -+ } -+ - goto error; - } - -+clear: - ret = keyring_clear(key_ref_to_ptr(keyring_ref)); -- -+error_put: - key_ref_put(keyring_ref); - error: - return ret; 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 diff --git a/linux-3.3-virtio-scsi.patch b/linux-3.3-virtio-scsi.patch deleted file mode 100644 index 70b3673a6..000000000 --- a/linux-3.3-virtio-scsi.patch +++ /dev/null @@ -1,993 +0,0 @@ -From 43cf1b6a4ee31e69581042a0c85d1398f83dcedc Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Fri, 20 Jan 2012 17:27:20 +0100 -Cc: -Cc: Rusty Russell -Cc: kvm@vger.kernel.org -Cc: Pekka Enberg -Cc: Michael S. Tsirkin -Cc: Stefan Hajnoczi , Mike Christie -Subject: [PATCH v5 0/3] virtio-scsi driver - -This is the first implementation of the virtio-scsi driver, a virtual -HBA that will be supported by KVM. It implements a subset of the spec, -in particular it does not implement asynchronous notifications for either -LUN reset/removal/addition or CD-ROM media events, but it is already -functional and usable. - -Other matching bits: - -- spec at http://people.redhat.com/pbonzini/virtio-spec.pdf - -- QEMU implementation at git://github.com/bonzini/qemu.git, - branch virtio-scsi - -Please review. Getting this in 3.3 is starting to look like wishful thinking, -but the possibility of regressions is obviously zero so I'm still dreaming. -Otherwise, that would be 3.4. - -Paolo Bonzini (3): - virtio-scsi: first version - virtio-scsi: add error handling - virtio-scsi: add power management support - -v4->v5: change virtio id from 7 to 8 - -v3->v4: renamed VIRTIO_SCSI_S_UNDERRUN to VIRTIO_SCSI_S_OVERRUN; - fixed 32-bit compilation; added power management support; - adjusted calls to virtqueue_add_buf - - drivers/scsi/Kconfig | 8 + - drivers/scsi/Makefile | 1 + - drivers/scsi/virtio_scsi.c | 594 +++++++++++++++++++++++++++++++++++++++++++ - include/linux/virtio_ids.h | 1 + - include/linux/virtio_scsi.h | 114 +++++++++ - 5 files changed, 718 insertions(+), 0 deletions(-) - create mode 100644 drivers/scsi/virtio_scsi.c - create mode 100644 include/linux/virtio_scsi.h - -From 84ad93b7215e18ab1755a625ede0fb00175e79bb Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Tue, 29 Nov 2011 16:31:09 +0100 -Cc: Stefan Hajnoczi , Mike Christie , Pekka Enberg -Subject: [PATCH v5 1/3] virtio-scsi: first version - -The virtio-scsi HBA is the basis of an alternative storage stack -for QEMU-based virtual machines (including KVM). Compared to -virtio-blk it is more scalable, because it supports many LUNs -on a single PCI slot), more powerful (it more easily supports -passthrough of host devices to the guest) and more easily -extensible (new SCSI features implemented by QEMU should not -require updating the driver in the guest). - -Cc: linux-scsi -Cc: Rusty Russell -Cc: Michael S. Tsirkin -Cc: kvm@vger.kernel.org -Acked-by: Pekka Enberg -Signed-off-by: Paolo Bonzini ---- - v4->v5: change virtio id from 7 to 8 - - v3->v4: renamed VIRTIO_SCSI_S_UNDERRUN to VIRTIO_SCSI_S_OVERRUN; - fixed 32-bit compilation; adjust call to virtqueue_add_buf - - v2->v3: added mempool, formatting fixes - - v1->v2: use dbg_dev, sdev_printk, scmd_printk - - renamed lock to vq_lock - - renamed cmd_vq to req_vq (and other similar changes) - - fixed missing break in VIRTIO_SCSI_S_OVERRUN - - added VIRTIO_SCSI_S_BUSY - - removed unused argument from virtscsi_map_cmd - - fixed two tabs that had slipped in - - moved max_sectors and cmd_per_lun from template to config space - - __attribute__((packed)) -> __packed - - drivers/scsi/Kconfig | 8 + - drivers/scsi/Makefile | 1 + - drivers/scsi/virtio_scsi.c | 503 +++++++++++++++++++++++++++++++++++++++++++ - include/linux/virtio_ids.h | 1 + - include/linux/virtio_scsi.h | 114 ++++++++++ - 5 files changed, 627 insertions(+), 0 deletions(-) - create mode 100644 drivers/scsi/virtio_scsi.c - create mode 100644 include/linux/virtio_scsi.h - -diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig -index 16570aa..827ebaf 100644 ---- a/drivers/scsi/Kconfig -+++ b/drivers/scsi/Kconfig -@@ -1897,6 +1897,14 @@ config SCSI_BFA_FC - To compile this driver as a module, choose M here. The module will - be called bfa. - -+config SCSI_VIRTIO -+ tristate "virtio-scsi support (EXPERIMENTAL)" -+ depends on EXPERIMENTAL && VIRTIO -+ help -+ This is the virtual HBA driver for virtio. If the kernel will -+ be used in a virtual machine, say Y or M. -+ -+ - endif # SCSI_LOWLEVEL - - source "drivers/scsi/pcmcia/Kconfig" -diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile -index 2b88749..351b28b 100644 ---- a/drivers/scsi/Makefile -+++ b/drivers/scsi/Makefile -@@ -141,6 +141,7 @@ obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/ - obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/ - obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ - obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o -+obj-$(CONFIG_SCSI_VIRTIO) += virtio_scsi.o - obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o - - obj-$(CONFIG_ARM) += arm/ -diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c -new file mode 100644 -index 0000000..3f87ae0 ---- /dev/null -+++ b/drivers/scsi/virtio_scsi.c -@@ -0,0 +1,503 @@ -+/* -+ * Virtio SCSI HBA driver -+ * -+ * Copyright IBM Corp. 2010 -+ * Copyright Red Hat, Inc. 2011 -+ * -+ * Authors: -+ * Stefan Hajnoczi -+ * Paolo Bonzini -+ * -+ * This work is licensed under the terms of the GNU GPL, version 2 or later. -+ * See the COPYING file in the top-level directory. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define VIRTIO_SCSI_MEMPOOL_SZ 64 -+ -+/* Command queue element */ -+struct virtio_scsi_cmd { -+ struct scsi_cmnd *sc; -+ union { -+ struct virtio_scsi_cmd_req cmd; -+ struct virtio_scsi_ctrl_tmf_req tmf; -+ struct virtio_scsi_ctrl_an_req an; -+ } req; -+ union { -+ struct virtio_scsi_cmd_resp cmd; -+ struct virtio_scsi_ctrl_tmf_resp tmf; -+ struct virtio_scsi_ctrl_an_resp an; -+ struct virtio_scsi_event evt; -+ } resp; -+} ____cacheline_aligned_in_smp; -+ -+/* Driver instance state */ -+struct virtio_scsi { -+ /* Protects ctrl_vq, req_vq and sg[] */ -+ spinlock_t vq_lock; -+ -+ struct virtio_device *vdev; -+ struct virtqueue *ctrl_vq; -+ struct virtqueue *event_vq; -+ struct virtqueue *req_vq; -+ -+ /* For sglist construction when adding commands to the virtqueue. */ -+ struct scatterlist sg[]; -+}; -+ -+static struct kmem_cache *virtscsi_cmd_cache; -+static mempool_t *virtscsi_cmd_pool; -+ -+static inline struct Scsi_Host *virtio_scsi_host(struct virtio_device *vdev) -+{ -+ return vdev->priv; -+} -+ -+static void virtscsi_compute_resid(struct scsi_cmnd *sc, u32 resid) -+{ -+ if (!resid) -+ return; -+ -+ if (!scsi_bidi_cmnd(sc)) { -+ scsi_set_resid(sc, resid); -+ return; -+ } -+ -+ scsi_in(sc)->resid = min(resid, scsi_in(sc)->length); -+ scsi_out(sc)->resid = resid - scsi_in(sc)->resid; -+} -+ -+/** -+ * virtscsi_complete_cmd - finish a scsi_cmd and invoke scsi_done -+ * -+ * Called with vq_lock held. -+ */ -+static void virtscsi_complete_cmd(void *buf) -+{ -+ struct virtio_scsi_cmd *cmd = buf; -+ struct scsi_cmnd *sc = cmd->sc; -+ struct virtio_scsi_cmd_resp *resp = &cmd->resp.cmd; -+ -+ dev_dbg(&sc->device->sdev_gendev, -+ "cmd %p response %u status %#02x sense_len %u\n", -+ sc, resp->response, resp->status, resp->sense_len); -+ -+ sc->result = resp->status; -+ virtscsi_compute_resid(sc, resp->resid); -+ switch (resp->response) { -+ case VIRTIO_SCSI_S_OK: -+ set_host_byte(sc, DID_OK); -+ break; -+ case VIRTIO_SCSI_S_OVERRUN: -+ set_host_byte(sc, DID_ERROR); -+ break; -+ case VIRTIO_SCSI_S_ABORTED: -+ set_host_byte(sc, DID_ABORT); -+ break; -+ case VIRTIO_SCSI_S_BAD_TARGET: -+ set_host_byte(sc, DID_BAD_TARGET); -+ break; -+ case VIRTIO_SCSI_S_RESET: -+ set_host_byte(sc, DID_RESET); -+ break; -+ case VIRTIO_SCSI_S_BUSY: -+ set_host_byte(sc, DID_BUS_BUSY); -+ break; -+ case VIRTIO_SCSI_S_TRANSPORT_FAILURE: -+ set_host_byte(sc, DID_TRANSPORT_DISRUPTED); -+ break; -+ case VIRTIO_SCSI_S_TARGET_FAILURE: -+ set_host_byte(sc, DID_TARGET_FAILURE); -+ break; -+ case VIRTIO_SCSI_S_NEXUS_FAILURE: -+ set_host_byte(sc, DID_NEXUS_FAILURE); -+ break; -+ default: -+ scmd_printk(KERN_WARNING, sc, "Unknown response %d", -+ resp->response); -+ /* fall through */ -+ case VIRTIO_SCSI_S_FAILURE: -+ set_host_byte(sc, DID_ERROR); -+ break; -+ } -+ -+ WARN_ON(resp->sense_len > VIRTIO_SCSI_SENSE_SIZE); -+ if (sc->sense_buffer) { -+ memcpy(sc->sense_buffer, resp->sense, -+ min_t(u32, resp->sense_len, VIRTIO_SCSI_SENSE_SIZE)); -+ if (resp->sense_len) -+ set_driver_byte(sc, DRIVER_SENSE); -+ } -+ -+ mempool_free(cmd, virtscsi_cmd_pool); -+ sc->scsi_done(sc); -+} -+ -+static void virtscsi_vq_done(struct virtqueue *vq, void (*fn)(void *buf)) -+{ -+ struct Scsi_Host *sh = virtio_scsi_host(vq->vdev); -+ struct virtio_scsi *vscsi = shost_priv(sh); -+ void *buf; -+ unsigned long flags; -+ unsigned int len; -+ -+ spin_lock_irqsave(&vscsi->vq_lock, flags); -+ -+ do { -+ virtqueue_disable_cb(vq); -+ while ((buf = virtqueue_get_buf(vq, &len)) != NULL) -+ fn(buf); -+ } while (!virtqueue_enable_cb(vq)); -+ -+ spin_unlock_irqrestore(&vscsi->vq_lock, flags); -+} -+ -+static void virtscsi_req_done(struct virtqueue *vq) -+{ -+ virtscsi_vq_done(vq, virtscsi_complete_cmd); -+}; -+ -+/* These are still stubs. */ -+static void virtscsi_complete_free(void *buf) -+{ -+ struct virtio_scsi_cmd *cmd = buf; -+ -+ mempool_free(cmd, virtscsi_cmd_pool); -+} -+ -+static void virtscsi_ctrl_done(struct virtqueue *vq) -+{ -+ virtscsi_vq_done(vq, virtscsi_complete_free); -+}; -+ -+static void virtscsi_event_done(struct virtqueue *vq) -+{ -+ virtscsi_vq_done(vq, virtscsi_complete_free); -+}; -+ -+static void virtscsi_map_sgl(struct scatterlist *sg, unsigned int *p_idx, -+ struct scsi_data_buffer *sdb) -+{ -+ struct sg_table *table = &sdb->table; -+ struct scatterlist *sg_elem; -+ unsigned int idx = *p_idx; -+ int i; -+ -+ for_each_sg(table->sgl, sg_elem, table->nents, i) -+ sg_set_buf(&sg[idx++], sg_virt(sg_elem), sg_elem->length); -+ -+ *p_idx = idx; -+} -+ -+/** -+ * virtscsi_map_cmd - map a scsi_cmd to a virtqueue scatterlist -+ * @vscsi : virtio_scsi state -+ * @cmd : command structure -+ * @out_num : number of read-only elements -+ * @in_num : number of write-only elements -+ * @req_size : size of the request buffer -+ * @resp_size : size of the response buffer -+ * -+ * Called with vq_lock held. -+ */ -+static void virtscsi_map_cmd(struct virtio_scsi *vscsi, -+ struct virtio_scsi_cmd *cmd, -+ unsigned *out_num, unsigned *in_num, -+ size_t req_size, size_t resp_size) -+{ -+ struct scsi_cmnd *sc = cmd->sc; -+ struct scatterlist *sg = vscsi->sg; -+ unsigned int idx = 0; -+ -+ if (sc) { -+ struct Scsi_Host *shost = virtio_scsi_host(vscsi->vdev); -+ BUG_ON(scsi_sg_count(sc) > shost->sg_tablesize); -+ -+ /* TODO: check feature bit and fail if unsupported? */ -+ BUG_ON(sc->sc_data_direction == DMA_BIDIRECTIONAL); -+ } -+ -+ /* Request header. */ -+ sg_set_buf(&sg[idx++], &cmd->req, req_size); -+ -+ /* Data-out buffer. */ -+ if (sc && sc->sc_data_direction != DMA_FROM_DEVICE) -+ virtscsi_map_sgl(sg, &idx, scsi_out(sc)); -+ -+ *out_num = idx; -+ -+ /* Response header. */ -+ sg_set_buf(&sg[idx++], &cmd->resp, resp_size); -+ -+ /* Data-in buffer */ -+ if (sc && sc->sc_data_direction != DMA_TO_DEVICE) -+ virtscsi_map_sgl(sg, &idx, scsi_in(sc)); -+ -+ *in_num = idx - *out_num; -+} -+ -+static int virtscsi_kick_cmd(struct virtio_scsi *vscsi, struct virtqueue *vq, -+ struct virtio_scsi_cmd *cmd, -+ size_t req_size, size_t resp_size, gfp_t gfp) -+{ -+ unsigned int out_num, in_num; -+ unsigned long flags; -+ int ret; -+ -+ spin_lock_irqsave(&vscsi->vq_lock, flags); -+ -+ virtscsi_map_cmd(vscsi, cmd, &out_num, &in_num, req_size, resp_size); -+ -+ ret = virtqueue_add_buf(vq, vscsi->sg, out_num, in_num, cmd, gfp); -+ if (ret >= 0) -+ virtqueue_kick(vq); -+ -+ spin_unlock_irqrestore(&vscsi->vq_lock, flags); -+ return ret; -+} -+ -+static int virtscsi_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *sc) -+{ -+ struct virtio_scsi *vscsi = shost_priv(sh); -+ struct virtio_scsi_cmd *cmd; -+ int ret; -+ -+ dev_dbg(&sc->device->sdev_gendev, -+ "cmd %p CDB: %#02x\n", sc, sc->cmnd[0]); -+ -+ ret = SCSI_MLQUEUE_HOST_BUSY; -+ cmd = mempool_alloc(virtscsi_cmd_pool, GFP_ATOMIC); -+ if (!cmd) -+ goto out; -+ -+ memset(cmd, 0, sizeof(*cmd)); -+ cmd->sc = sc; -+ cmd->req.cmd = (struct virtio_scsi_cmd_req){ -+ .lun[0] = 1, -+ .lun[1] = sc->device->id, -+ .lun[2] = (sc->device->lun >> 8) | 0x40, -+ .lun[3] = sc->device->lun & 0xff, -+ .tag = (unsigned long)sc, -+ .task_attr = VIRTIO_SCSI_S_SIMPLE, -+ .prio = 0, -+ .crn = 0, -+ }; -+ -+ BUG_ON(sc->cmd_len > VIRTIO_SCSI_CDB_SIZE); -+ memcpy(cmd->req.cmd.cdb, sc->cmnd, sc->cmd_len); -+ -+ if (virtscsi_kick_cmd(vscsi, vscsi->req_vq, cmd, -+ sizeof cmd->req.cmd, sizeof cmd->resp.cmd, -+ GFP_ATOMIC) >= 0) -+ ret = 0; -+ -+out: -+ return ret; -+} -+ -+static struct scsi_host_template virtscsi_host_template = { -+ .module = THIS_MODULE, -+ .name = "Virtio SCSI HBA", -+ .proc_name = "virtio_scsi", -+ .queuecommand = virtscsi_queuecommand, -+ .this_id = -1, -+ -+ .can_queue = 1024, -+ .dma_boundary = UINT_MAX, -+ .use_clustering = ENABLE_CLUSTERING, -+}; -+ -+#define virtscsi_config_get(vdev, fld) \ -+ ({ \ -+ typeof(((struct virtio_scsi_config *)0)->fld) __val; \ -+ vdev->config->get(vdev, \ -+ offsetof(struct virtio_scsi_config, fld), \ -+ &__val, sizeof(__val)); \ -+ __val; \ -+ }) -+ -+#define virtscsi_config_set(vdev, fld, val) \ -+ (void)({ \ -+ typeof(((struct virtio_scsi_config *)0)->fld) __val = (val); \ -+ vdev->config->set(vdev, \ -+ offsetof(struct virtio_scsi_config, fld), \ -+ &__val, sizeof(__val)); \ -+ }) -+ -+static int __devinit virtscsi_init(struct virtio_device *vdev, -+ struct virtio_scsi *vscsi) -+{ -+ int err; -+ struct virtqueue *vqs[3]; -+ vq_callback_t *callbacks[] = { -+ virtscsi_ctrl_done, -+ virtscsi_event_done, -+ virtscsi_req_done -+ }; -+ const char *names[] = { -+ "control", -+ "event", -+ "request" -+ }; -+ -+ /* Discover virtqueues and write information to configuration. */ -+ err = vdev->config->find_vqs(vdev, 3, vqs, callbacks, names); -+ if (err) -+ return err; -+ -+ vscsi->ctrl_vq = vqs[0]; -+ vscsi->event_vq = vqs[1]; -+ vscsi->req_vq = vqs[2]; -+ -+ virtscsi_config_set(vdev, cdb_size, VIRTIO_SCSI_CDB_SIZE); -+ virtscsi_config_set(vdev, sense_size, VIRTIO_SCSI_SENSE_SIZE); -+ return 0; -+} -+ -+static int __devinit virtscsi_probe(struct virtio_device *vdev) -+{ -+ struct Scsi_Host *shost; -+ struct virtio_scsi *vscsi; -+ int err; -+ u32 sg_elems; -+ u32 cmd_per_lun; -+ -+ /* We need to know how many segments before we allocate. -+ * We need an extra sg elements at head and tail. -+ */ -+ sg_elems = virtscsi_config_get(vdev, seg_max) ?: 1; -+ -+ /* Allocate memory and link the structs together. */ -+ shost = scsi_host_alloc(&virtscsi_host_template, -+ sizeof(*vscsi) + sizeof(vscsi->sg[0]) * (sg_elems + 2)); -+ -+ if (!shost) -+ return -ENOMEM; -+ -+ shost->sg_tablesize = sg_elems; -+ vscsi = shost_priv(shost); -+ vscsi->vdev = vdev; -+ vdev->priv = shost; -+ -+ /* Random initializations. */ -+ spin_lock_init(&vscsi->vq_lock); -+ sg_init_table(vscsi->sg, sg_elems + 2); -+ -+ err = virtscsi_init(vdev, vscsi); -+ if (err) -+ goto virtscsi_init_failed; -+ -+ cmd_per_lun = virtscsi_config_get(vdev, cmd_per_lun) ?: 1; -+ shost->cmd_per_lun = min_t(u32, cmd_per_lun, shost->can_queue); -+ shost->max_sectors = virtscsi_config_get(vdev, max_sectors) ?: 0xFFFF; -+ shost->max_lun = virtscsi_config_get(vdev, max_lun) + 1; -+ shost->max_id = virtscsi_config_get(vdev, max_target) + 1; -+ shost->max_channel = 0; -+ shost->max_cmd_len = VIRTIO_SCSI_CDB_SIZE; -+ err = scsi_add_host(shost, &vdev->dev); -+ if (err) -+ goto scsi_add_host_failed; -+ -+ scsi_scan_host(shost); -+ -+ return 0; -+ -+scsi_add_host_failed: -+ vdev->config->del_vqs(vdev); -+virtscsi_init_failed: -+ scsi_host_put(shost); -+ return err; -+} -+ -+static void __devexit virtscsi_remove_vqs(struct virtio_device *vdev) -+{ -+ /* Stop all the virtqueues. */ -+ vdev->config->reset(vdev); -+ -+ vdev->config->del_vqs(vdev); -+} -+ -+static void __devexit virtscsi_remove(struct virtio_device *vdev) -+{ -+ struct Scsi_Host *shost = virtio_scsi_host(vdev); -+ -+ scsi_remove_host(shost); -+ -+ virtscsi_remove_vqs(vdev); -+ scsi_host_put(shost); -+} -+ -+static struct virtio_device_id id_table[] = { -+ { VIRTIO_ID_SCSI, VIRTIO_DEV_ANY_ID }, -+ { 0 }, -+}; -+ -+static struct virtio_driver virtio_scsi_driver = { -+ .driver.name = KBUILD_MODNAME, -+ .driver.owner = THIS_MODULE, -+ .id_table = id_table, -+ .probe = virtscsi_probe, -+ .remove = __devexit_p(virtscsi_remove), -+}; -+ -+static int __init init(void) -+{ -+ int ret = -ENOMEM; -+ -+ virtscsi_cmd_cache = KMEM_CACHE(virtio_scsi_cmd, 0); -+ if (!virtscsi_cmd_cache) { -+ printk(KERN_ERR "kmem_cache_create() for " -+ "virtscsi_cmd_cache failed\n"); -+ goto error; -+ } -+ -+ -+ virtscsi_cmd_pool = -+ mempool_create_slab_pool(VIRTIO_SCSI_MEMPOOL_SZ, -+ virtscsi_cmd_cache); -+ if (!virtscsi_cmd_pool) { -+ printk(KERN_ERR "mempool_create() for" -+ "virtscsi_cmd_pool failed\n"); -+ goto error; -+ } -+ ret = register_virtio_driver(&virtio_scsi_driver); -+ if (ret < 0) -+ goto error; -+ -+ return 0; -+ -+error: -+ if (virtscsi_cmd_pool) { -+ mempool_destroy(virtscsi_cmd_pool); -+ virtscsi_cmd_pool = NULL; -+ } -+ if (virtscsi_cmd_cache) { -+ kmem_cache_destroy(virtscsi_cmd_cache); -+ virtscsi_cmd_cache = NULL; -+ } -+ return ret; -+} -+ -+static void __exit fini(void) -+{ -+ unregister_virtio_driver(&virtio_scsi_driver); -+ mempool_destroy(virtscsi_cmd_pool); -+ kmem_cache_destroy(virtscsi_cmd_cache); -+} -+module_init(init); -+module_exit(fini); -+ -+MODULE_DEVICE_TABLE(virtio, id_table); -+MODULE_DESCRIPTION("Virtio SCSI HBA driver"); -+MODULE_LICENSE("GPL"); -diff --git a/include/linux/virtio_ids.h b/include/linux/virtio_ids.h -index 85bb0bb..d83ae52 100644 ---- a/include/linux/virtio_ids.h -+++ b/include/linux/virtio_ids.h -@@ -34,6 +34,7 @@ - #define VIRTIO_ID_CONSOLE 3 /* virtio console */ - #define VIRTIO_ID_RNG 4 /* virtio ring */ - #define VIRTIO_ID_BALLOON 5 /* virtio balloon */ -+#define VIRTIO_ID_SCSI 8 /* virtio scsi */ - #define VIRTIO_ID_9P 9 /* 9p virtio console */ - - #endif /* _LINUX_VIRTIO_IDS_H */ -diff --git a/include/linux/virtio_scsi.h b/include/linux/virtio_scsi.h -new file mode 100644 -index 0000000..8ddeafd ---- /dev/null -+++ b/include/linux/virtio_scsi.h -@@ -0,0 +1,114 @@ -+#ifndef _LINUX_VIRTIO_SCSI_H -+#define _LINUX_VIRTIO_SCSI_H -+/* This header is BSD licensed so anyone can use the definitions to implement -+ * compatible drivers/servers. */ -+ -+#define VIRTIO_SCSI_CDB_SIZE 32 -+#define VIRTIO_SCSI_SENSE_SIZE 96 -+ -+/* SCSI command request, followed by data-out */ -+struct virtio_scsi_cmd_req { -+ u8 lun[8]; /* Logical Unit Number */ -+ u64 tag; /* Command identifier */ -+ u8 task_attr; /* Task attribute */ -+ u8 prio; -+ u8 crn; -+ u8 cdb[VIRTIO_SCSI_CDB_SIZE]; -+} __packed; -+ -+/* Response, followed by sense data and data-in */ -+struct virtio_scsi_cmd_resp { -+ u32 sense_len; /* Sense data length */ -+ u32 resid; /* Residual bytes in data buffer */ -+ u16 status_qualifier; /* Status qualifier */ -+ u8 status; /* Command completion status */ -+ u8 response; /* Response values */ -+ u8 sense[VIRTIO_SCSI_SENSE_SIZE]; -+} __packed; -+ -+/* Task Management Request */ -+struct virtio_scsi_ctrl_tmf_req { -+ u32 type; -+ u32 subtype; -+ u8 lun[8]; -+ u64 tag; -+} __packed; -+ -+struct virtio_scsi_ctrl_tmf_resp { -+ u8 response; -+} __packed; -+ -+/* Asynchronous notification query/subscription */ -+struct virtio_scsi_ctrl_an_req { -+ u32 type; -+ u8 lun[8]; -+ u32 event_requested; -+} __packed; -+ -+struct virtio_scsi_ctrl_an_resp { -+ u32 event_actual; -+ u8 response; -+} __packed; -+ -+struct virtio_scsi_event { -+ u32 event; -+ u8 lun[8]; -+ u32 reason; -+} __packed; -+ -+struct virtio_scsi_config { -+ u32 num_queues; -+ u32 seg_max; -+ u32 max_sectors; -+ u32 cmd_per_lun; -+ u32 event_info_size; -+ u32 sense_size; -+ u32 cdb_size; -+ u16 max_channel; -+ u16 max_target; -+ u32 max_lun; -+} __packed; -+ -+/* Response codes */ -+#define VIRTIO_SCSI_S_OK 0 -+#define VIRTIO_SCSI_S_OVERRUN 1 -+#define VIRTIO_SCSI_S_ABORTED 2 -+#define VIRTIO_SCSI_S_BAD_TARGET 3 -+#define VIRTIO_SCSI_S_RESET 4 -+#define VIRTIO_SCSI_S_BUSY 5 -+#define VIRTIO_SCSI_S_TRANSPORT_FAILURE 6 -+#define VIRTIO_SCSI_S_TARGET_FAILURE 7 -+#define VIRTIO_SCSI_S_NEXUS_FAILURE 8 -+#define VIRTIO_SCSI_S_FAILURE 9 -+#define VIRTIO_SCSI_S_FUNCTION_SUCCEEDED 10 -+#define VIRTIO_SCSI_S_FUNCTION_REJECTED 11 -+#define VIRTIO_SCSI_S_INCORRECT_LUN 12 -+ -+/* Controlq type codes. */ -+#define VIRTIO_SCSI_T_TMF 0 -+#define VIRTIO_SCSI_T_AN_QUERY 1 -+#define VIRTIO_SCSI_T_AN_SUBSCRIBE 2 -+ -+/* Valid TMF subtypes. */ -+#define VIRTIO_SCSI_T_TMF_ABORT_TASK 0 -+#define VIRTIO_SCSI_T_TMF_ABORT_TASK_SET 1 -+#define VIRTIO_SCSI_T_TMF_CLEAR_ACA 2 -+#define VIRTIO_SCSI_T_TMF_CLEAR_TASK_SET 3 -+#define VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET 4 -+#define VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET 5 -+#define VIRTIO_SCSI_T_TMF_QUERY_TASK 6 -+#define VIRTIO_SCSI_T_TMF_QUERY_TASK_SET 7 -+ -+/* Events. */ -+#define VIRTIO_SCSI_T_EVENTS_MISSED 0x80000000 -+#define VIRTIO_SCSI_T_NO_EVENT 0 -+#define VIRTIO_SCSI_T_TRANSPORT_RESET 1 -+#define VIRTIO_SCSI_T_ASYNC_NOTIFY 2 -+ -+#define VIRTIO_SCSI_S_SIMPLE 0 -+#define VIRTIO_SCSI_S_ORDERED 1 -+#define VIRTIO_SCSI_S_HEAD 2 -+#define VIRTIO_SCSI_S_ACA 3 -+ -+ -+#endif /* _LINUX_VIRTIO_SCSI_H */ --- -1.7.1 - - -From 3c0e8846ac0fc2175dd0e06f495b16a30b549762 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Tue, 29 Nov 2011 16:33:28 +0100 -Cc: Stefan Hajnoczi , Mike Christie , Pekka Enberg -Subject: [PATCH v5 2/3] virtio-scsi: add error handling - -This commit adds basic error handling to the virtio-scsi -HBA device. Task management functions are sent synchronously -via the control virtqueue. - -Cc: linux-scsi -Cc: Rusty Russell -Cc: Michael S. Tsirkin -Cc: kvm@vger.kernel.org -Acked-by: Pekka Enberg -Signed-off-by: Paolo Bonzini ---- - v3->v4: fixed 32-bit compilation; adjusted call to virtscsi_kick_cmd - - v2->v3: added mempool, used GFP_NOIO instead of GFP_ATOMIC, - formatting fixes - - v1->v2: use scmd_printk - - drivers/scsi/virtio_scsi.c | 73 +++++++++++++++++++++++++++++++++++++++++++- - 1 files changed, 72 insertions(+), 1 deletions(-) - -diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c -index 3f87ae0..68104cd 100644 ---- a/drivers/scsi/virtio_scsi.c -+++ b/drivers/scsi/virtio_scsi.c -@@ -29,6 +29,7 @@ - /* Command queue element */ - struct virtio_scsi_cmd { - struct scsi_cmnd *sc; -+ struct completion *comp; - union { - struct virtio_scsi_cmd_req cmd; - struct virtio_scsi_ctrl_tmf_req tmf; -@@ -168,11 +169,12 @@ static void virtscsi_req_done(struct virtqueue *vq) - virtscsi_vq_done(vq, virtscsi_complete_cmd); - }; - --/* These are still stubs. */ - static void virtscsi_complete_free(void *buf) - { - struct virtio_scsi_cmd *cmd = buf; - -+ if (cmd->comp) -+ complete_all(cmd->comp); - mempool_free(cmd, virtscsi_cmd_pool); - } - -@@ -306,12 +308,81 @@ out: - return ret; - } - -+static int virtscsi_tmf(struct virtio_scsi *vscsi, struct virtio_scsi_cmd *cmd) -+{ -+ DECLARE_COMPLETION_ONSTACK(comp); -+ int ret; -+ -+ cmd->comp = ∁ -+ ret = virtscsi_kick_cmd(vscsi, vscsi->ctrl_vq, cmd, -+ sizeof cmd->req.tmf, sizeof cmd->resp.tmf, -+ GFP_NOIO); -+ if (ret < 0) -+ return FAILED; -+ -+ wait_for_completion(&comp); -+ if (cmd->resp.tmf.response != VIRTIO_SCSI_S_OK && -+ cmd->resp.tmf.response != VIRTIO_SCSI_S_FUNCTION_SUCCEEDED) -+ return FAILED; -+ -+ return SUCCESS; -+} -+ -+static int virtscsi_device_reset(struct scsi_cmnd *sc) -+{ -+ struct virtio_scsi *vscsi = shost_priv(sc->device->host); -+ struct virtio_scsi_cmd *cmd; -+ -+ sdev_printk(KERN_INFO, sc->device, "device reset\n"); -+ cmd = mempool_alloc(virtscsi_cmd_pool, GFP_NOIO); -+ if (!cmd) -+ return FAILED; -+ -+ memset(cmd, 0, sizeof(*cmd)); -+ cmd->sc = sc; -+ cmd->req.tmf = (struct virtio_scsi_ctrl_tmf_req){ -+ .type = VIRTIO_SCSI_T_TMF, -+ .subtype = VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET, -+ .lun[0] = 1, -+ .lun[1] = sc->device->id, -+ .lun[2] = (sc->device->lun >> 8) | 0x40, -+ .lun[3] = sc->device->lun & 0xff, -+ }; -+ return virtscsi_tmf(vscsi, cmd); -+} -+ -+static int virtscsi_abort(struct scsi_cmnd *sc) -+{ -+ struct virtio_scsi *vscsi = shost_priv(sc->device->host); -+ struct virtio_scsi_cmd *cmd; -+ -+ scmd_printk(KERN_INFO, sc, "abort\n"); -+ cmd = mempool_alloc(virtscsi_cmd_pool, GFP_NOIO); -+ if (!cmd) -+ return FAILED; -+ -+ memset(cmd, 0, sizeof(*cmd)); -+ cmd->sc = sc; -+ cmd->req.tmf = (struct virtio_scsi_ctrl_tmf_req){ -+ .type = VIRTIO_SCSI_T_TMF, -+ .subtype = VIRTIO_SCSI_T_TMF_ABORT_TASK, -+ .lun[0] = 1, -+ .lun[1] = sc->device->id, -+ .lun[2] = (sc->device->lun >> 8) | 0x40, -+ .lun[3] = sc->device->lun & 0xff, -+ .tag = (unsigned long)sc, -+ }; -+ return virtscsi_tmf(vscsi, cmd); -+} -+ - static struct scsi_host_template virtscsi_host_template = { - .module = THIS_MODULE, - .name = "Virtio SCSI HBA", - .proc_name = "virtio_scsi", - .queuecommand = virtscsi_queuecommand, - .this_id = -1, -+ .eh_abort_handler = virtscsi_abort, -+ .eh_device_reset_handler = virtscsi_device_reset, - - .can_queue = 1024, - .dma_boundary = UINT_MAX, --- -1.7.1 - - -From 43cf1b6a4ee31e69581042a0c85d1398f83dcedc Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Fri, 13 Jan 2012 15:30:08 +0100 -Cc: Stefan Hajnoczi , Mike Christie , Pekka Enberg -Subject: [PATCH v5 3/3] virtio-scsi: add power management support - -This patch adds freeze/restore handlers for the HBA. Block queues -are managed independently by the disk devices. - -Cc: linux-scsi -Cc: Rusty Russell -Cc: Michael S. Tsirkin -Cc: kvm@vger.kernel.org -Acked-by: Pekka Enberg -Signed-off-by: Paolo Bonzini ---- - The feature has been merged in the virtio core for 3.3, so the patch - is new in v4. - - drivers/scsi/virtio_scsi.c | 26 +++++++++++++++++++++++--- - 1 files changed, 23 insertions(+), 3 deletions(-) - -diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c -index 68104cd..efccd72 100644 ---- a/drivers/scsi/virtio_scsi.c -+++ b/drivers/scsi/virtio_scsi.c -@@ -406,8 +406,8 @@ static struct scsi_host_template virtscsi_host_template = { - &__val, sizeof(__val)); \ - }) - --static int __devinit virtscsi_init(struct virtio_device *vdev, -- struct virtio_scsi *vscsi) -+static int virtscsi_init(struct virtio_device *vdev, -+ struct virtio_scsi *vscsi) - { - int err; - struct virtqueue *vqs[3]; -@@ -491,7 +491,7 @@ virtscsi_init_failed: - return err; - } - --static void __devexit virtscsi_remove_vqs(struct virtio_device *vdev) -+static void virtscsi_remove_vqs(struct virtio_device *vdev) - { - /* Stop all the virtqueues. */ - vdev->config->reset(vdev); -@@ -509,6 +509,22 @@ static void __devexit virtscsi_remove(struct virtio_device *vdev) - scsi_host_put(shost); - } - -+#ifdef CONFIG_PM -+static int virtscsi_freeze(struct virtio_device *vdev) -+{ -+ virtscsi_remove_vqs(vdev); -+ return 0; -+} -+ -+static int virtscsi_restore(struct virtio_device *vdev) -+{ -+ struct Scsi_Host *sh = virtio_scsi_host(vdev); -+ struct virtio_scsi *vscsi = shost_priv(sh); -+ -+ return virtscsi_init(vdev, vscsi); -+} -+#endif -+ - static struct virtio_device_id id_table[] = { - { VIRTIO_ID_SCSI, VIRTIO_DEV_ANY_ID }, - { 0 }, -@@ -519,6 +535,10 @@ static struct virtio_driver virtio_scsi_driver = { - .driver.owner = THIS_MODULE, - .id_table = id_table, - .probe = virtscsi_probe, -+#ifdef CONFIG_PM -+ .freeze = virtscsi_freeze, -+ .restore = virtscsi_restore, -+#endif - .remove = __devexit_p(virtscsi_remove), - }; - --- -1.7.1 - diff --git a/lis3-improve-handling-of-null-rate.patch b/lis3-improve-handling-of-null-rate.patch new file mode 100644 index 000000000..30ed26d80 --- /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}; + static int lis3_3dlh_rates[4] = {50, 100, 400, 1000}; + + /* ODR is Output Data Rate */ +@@ -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 + diff --git a/linux-2.6-makefile-after_link.patch b/makefile-after_link.patch similarity index 77% rename from linux-2.6-makefile-after_link.patch rename to makefile-after_link.patch index c2541b1d8..b520b1942 100644 --- a/linux-2.6-makefile-after_link.patch +++ b/makefile-after_link.patch @@ -1,4 +1,4 @@ -From f072f7db2194c8255c003d985b61ad2f97ebbee0 Mon Sep 17 00:00:00 2001 +From b707aea6a4947c3806ced2c23e889943a0f36876 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 6 Oct 2008 23:03:03 -0700 Subject: [PATCH] kbuild: AFTER_LINK @@ -7,24 +7,9 @@ If the make variable AFTER_LINK is set, it is a command line to run after each final link. This includes vmlinux itself and vDSO images. Signed-off-by: Roland McGrath ---- -diff --git a/Makefile b/Makefile -index f908acc..960ff6f 100644 ---- a/Makefile -+++ b/Makefile -@@ -746,6 +746,10 @@ quiet_cmd_vmlinux__ ?= LD $@ - --start-group $(vmlinux-main) --end-group \ - $(filter-out $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) vmlinux.o FORCE ,$^) - -+ifdef AFTER_LINK -+cmd_vmlinux__ += ; $(AFTER_LINK) -+endif -+ - # Generate new vmlinux version - quiet_cmd_vmlinux_version = GEN .version - cmd_vmlinux_version = set -e; \ + diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile -index 51ead52..ad21273 100644 +index 9a7946c..28d6765 100644 --- a/arch/powerpc/kernel/vdso32/Makefile +++ b/arch/powerpc/kernel/vdso32/Makefile @@ -41,7 +41,8 @@ $(obj-vdso32): %.o: %.S @@ -38,7 +23,7 @@ index 51ead52..ad21273 100644 cmd_vdso32as = $(CROSS32CC) $(a_flags) -c -o $@ $< diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile -index 79da65d..f11c21b 100644 +index 8c500d8..d27737b 100644 --- a/arch/powerpc/kernel/vdso64/Makefile +++ b/arch/powerpc/kernel/vdso64/Makefile @@ -36,7 +36,8 @@ $(obj-vdso64): %.o: %.S @@ -51,11 +36,39 @@ index 79da65d..f11c21b 100644 quiet_cmd_vdso64as = VDSO64A $@ cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< +diff --git a/arch/s390/kernel/vdso32/Makefile b/arch/s390/kernel/vdso32/Makefile +index 8ad2b34..e153572 100644 +--- a/arch/s390/kernel/vdso32/Makefile ++++ b/arch/s390/kernel/vdso32/Makefile +@@ -43,7 +43,8 @@ $(obj-vdso32): %.o: %.S + + # actual build commands + quiet_cmd_vdso32ld = VDSO32L $@ +- cmd_vdso32ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ ++ cmd_vdso32ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ \ ++ $(if $(AFTER_LINK),; $(AFTER_LINK)) + quiet_cmd_vdso32as = VDSO32A $@ + cmd_vdso32as = $(CC) $(a_flags) -c -o $@ $< + +diff --git a/arch/s390/kernel/vdso64/Makefile b/arch/s390/kernel/vdso64/Makefile +index 2a8ddfd..452ca53 100644 +--- a/arch/s390/kernel/vdso64/Makefile ++++ b/arch/s390/kernel/vdso64/Makefile +@@ -43,7 +43,8 @@ $(obj-vdso64): %.o: %.S + + # actual build commands + quiet_cmd_vdso64ld = VDSO64L $@ +- cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ ++ cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ \ ++ $(if $(AFTER_LINK),; $(AFTER_LINK)) + quiet_cmd_vdso64as = VDSO64A $@ + cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< + diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile -index 4a2afa1..12ad9f7 100644 +index fd14be1..1f3eb19 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile -@@ -120,8 +120,9 @@ $(obj)/vdso32-syms.lds: $(vdso32.so-y:%=$(obj)/vdso32-%-syms.lds) FORCE +@@ -178,8 +178,9 @@ $(obj)/vdso32-syms.lds: $(vdso32.so-y:%=$(obj)/vdso32-%-syms.lds) FORCE quiet_cmd_vdso = VDSO $@ cmd_vdso = $(CC) -nostdlib -o $@ \ $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \ @@ -67,32 +80,21 @@ index 4a2afa1..12ad9f7 100644 VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) GCOV_PROFILE := n +diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh +index cd9c6c6..3edf048 100644 +--- a/scripts/link-vmlinux.sh ++++ b/scripts/link-vmlinux.sh +@@ -65,6 +65,10 @@ vmlinux_link() + -lutil ${1} + rm -f linux + fi ++ if [ -n "${AFTER_LINK}" ]; then ++ /usr/lib/rpm/debugedit -b ${RPM_BUILD_DIR} -d /usr/src/debug -i ${2} \ ++ > ${2}.id ++ fi + } + + +-- +1.7.7.6 -diff --git a/arch/s390/kernel/vdso32/Makefile b/arch/s390/kernel/vdso32/Makefile -index d13e875..28a3e1ad 100644 ---- a/arch/s390/kernel/vdso32/Makefile -+++ b/arch/s390/kernel/vdso32/Makefile -@@ -40,7 +40,8 @@ $(obj-vdso32): %.o: %.S - - # actual build commands - quiet_cmd_vdso32ld = VDSO32L $@ -- cmd_vdso32ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ -+ cmd_vdso32ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ \ -+ $(if $(AFTER_LINK),; $(AFTER_LINK)) - quiet_cmd_vdso32as = VDSO32A $@ - cmd_vdso32as = $(CC) $(a_flags) -c -o $@ $< - -diff --git a/arch/s390/kernel/vdso64/Makefile b/arch/s390/kernel/vdso64/Makefile -index 449352d..e90e656 100644 ---- a/arch/s390/kernel/vdso64/Makefile -+++ b/arch/s390/kernel/vdso64/Makefile -@@ -40,7 +40,8 @@ $(obj-vdso64): %.o: %.S - - # actual build commands - quiet_cmd_vdso64ld = VDSO64L $@ -- cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ -+ cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@ \ -+ $(if $(AFTER_LINK),; $(AFTER_LINK)) - quiet_cmd_vdso64as = VDSO64A $@ - cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< - diff --git a/mod-extra.list b/mod-extra.list index b670e836c..bbfae398f 100644 --- a/mod-extra.list +++ b/mod-extra.list @@ -15,6 +15,7 @@ dccp_ipv4.ko dccp_ipv6.ko dccp.ko dccp_probe.ko +dlm.ko sctp.ko sctp_probe.ko rds.ko @@ -31,7 +32,6 @@ l2tp_eth.ko l2tp_ip.ko l2tp_netlink.ko l2tp_ppp.ko -llc.ko ipx.ko appletalk.ko ipddp.ko @@ -45,18 +45,12 @@ sch_choke.ko sch_drr.ko sch_dsmark.ko sch_gred.ko -sch_hfsc.ko -sch_htb.ko -sch_ingress.ko sch_mqprio.ko sch_multiq.ko sch_netem.ko -sch_prio.ko sch_qfq.ko sch_red.ko sch_sfb.ko -sch_sfq.ko -sch_tbf.ko sch_teql.ko ax25.ko netrom.ko @@ -89,6 +83,8 @@ mptbase.ko mptctl.ko mptfc.ko i2400m.ko +i2400m-usb.ko +i2400m-sdio.ko hisax.ko hysdn.ko isdn.ko @@ -141,13 +137,14 @@ umc.ko uwb.ko whci.ko hwa-rc.ko -uio.ko -uio_aec.ko -uio_pci_generic.ko gfs2.ko ocfs2.ko -ocfs2_stackglue.ko ocfs2_dlm.ko +ocfs2_dlmfs.ko +ocfs2_nodemanager.ko +ocfs2_stackglue.ko +ocfs2_stack_o2cb.ko +ocfs2_stack_user.ko cuse.ko affs.ko befs.ko @@ -155,8 +152,6 @@ sysv.ko ufs.ko ncpfs.ko coda.ko -9p.ko -9pnet.ko act200l-sir.ko ali-ircc.ko esi-sir.ko @@ -170,8 +165,29 @@ ksdazzle-sir.ko ma600-sir.ko mcp2120-sir.ko toim3232-sir.ko -pps_core.ko tpm_atmel.ko tpm_infineon.ko tpm_nsc.ko tpm_tis.ko +slip.ko +wire.ko +ds1wm.ko +ds2490.ko +ds2482.ko +w1_ds2780.ko +w1_therm.ko +w1_ds2433.ko +w1_ds2760.ko +w1_ds28e04.ko +w1_ds2408.ko +w1_ds2781.ko +w1_smem.ko +w1_ds2431.ko +w1_ds2423.ko +w1_bq27000.ko +orinoco.ko +orinoco_cs.ko +orinoco_plx.ko +orinoco_pci.ko +orinoco_nortel.ko +orinoco_usb.ko 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/net-tcp-bz857324.patch b/net-tcp-bz857324.patch new file mode 100644 index 000000000..4bbe11602 --- /dev/null +++ b/net-tcp-bz857324.patch @@ -0,0 +1,16 @@ + +Test patch from https://bugzilla.redhat.com/show_bug.cgi?id=857324 +From: Neil Horman + +--- linux-3.5.3-1.fc17.noarch/net/ipv4/tcp.c~ 2012-09-28 12:29:00.141480580 -0400 ++++ linux-3.5.3-1.fc17.noarch/net/ipv4/tcp.c 2012-09-28 12:29:33.975448093 -0400 +@@ -1298,7 +1298,8 @@ void tcp_cleanup_rbuf(struct sock *sk, i + + struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); + +- WARN(skb && !before(tp->copied_seq, TCP_SKB_CB(skb)->end_seq), ++ WARN(skb && !before(tp->copied_seq, TCP_SKB_CB(skb)->end_seq) && ++ tp->copied_seq != TCP_SKB_CB(skb)->end_seq, + "cleanup rbuf bug: copied %X seq %X rcvnxt %X\n", + tp->copied_seq, TCP_SKB_CB(skb)->end_seq, tp->rcv_nxt); + diff --git a/linux-2.6.30-no-pcspkr-modalias.patch b/no-pcspkr-modalias.patch similarity index 100% rename from linux-2.6.30-no-pcspkr-modalias.patch rename to no-pcspkr-modalias.patch diff --git a/power-x86-destdir.patch b/power-x86-destdir.patch deleted file mode 100644 index 5fb48ac13..000000000 --- a/power-x86-destdir.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/tools/power/x86/turbostat/Makefile b/tools/power/x86/turbostat/Makefile -index fd8e1f1..7af5e8c 100644 ---- a/tools/power/x86/turbostat/Makefile -+++ b/tools/power/x86/turbostat/Makefile -@@ -1,8 +1,10 @@ -+DESTDIR ?= -+ - turbostat : turbostat.c - - clean : - rm -f turbostat - - install : -- install turbostat /usr/bin/turbostat -- install turbostat.8 /usr/share/man/man8 -+ install turbostat ${DESTDIR}/usr/bin/turbostat -+ install turbostat.8 ${DESTDIR}/usr/share/man/man8 -diff --git a/tools/power/x86/x86_energy_perf_policy/Makefile b/tools/power/x86/x86_energy_perf_policy/Makefile -index f458237..f9824f0 100644 ---- a/tools/power/x86/x86_energy_perf_policy/Makefile -+++ b/tools/power/x86/x86_energy_perf_policy/Makefile -@@ -1,8 +1,10 @@ -+DESTDIR ?= -+ - x86_energy_perf_policy : x86_energy_perf_policy.c - - clean : - rm -f x86_energy_perf_policy - - install : -- install x86_energy_perf_policy /usr/bin/ -- install x86_energy_perf_policy.8 /usr/share/man/man8/ -+ install x86_energy_perf_policy ${DESTDIR}/usr/bin/ -+ install x86_energy_perf_policy.8 ${DESTDIR}/usr/share/man/man8/ diff --git a/quite-apm.patch b/quite-apm.patch deleted file mode 100644 index c38511c41..000000000 --- a/quite-apm.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c -index a46bd38..416dd12 100644 ---- a/arch/x86/kernel/apm_32.c -+++ b/arch/x86/kernel/apm_32.c -@@ -903,7 +903,7 @@ static void apm_cpu_idle(void) - unsigned int jiffies_since_last_check = jiffies - last_jiffies; - unsigned int bucket; - -- WARN_ONCE(1, "deprecated apm_cpu_idle will be deleted in 2012"); -+ printk_once(KERN_INFO "deprecated apm_cpu_idle will be deleted in 2012"); - recalc: - if (jiffies_since_last_check > IDLE_CALC_LIMIT) { - use_apm_idle = 0; diff --git a/rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch b/rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch new file mode 100644 index 000000000..354873950 --- /dev/null +++ b/rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch @@ -0,0 +1,71 @@ +My change: + +commit cee2c7315f60beeff6137ee59e99acc77d636eeb +Author: Stanislaw Gruszka +Date: Fri Oct 5 13:44:09 2012 +0200 + + rt2800: use BBP_R1 for setting tx power + +unfortunately does not work well with RT5390 and RT3290 chips as they +require different temperature compensation TX power settings (TSSI +tuning). Since that commit make wireless connection very unstable on +those chips, restore previous behavior to fix regression. Once we +implement proper TSSI tuning on 5390/3290 we can restore back setting +TX power by BBP_R1 register for those chips. + +Reported-and-tested-by: Mike Romberg +Cc: stable@vger.kernel.org +Signed-off-by: Stanislaw Gruszka +--- + drivers/net/wireless/rt2x00/rt2800lib.c | 29 ++++++++++++++++++----------- + 1 file changed, 18 insertions(+), 11 deletions(-) + +diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c +index 92849e5..8b679df 100644 +--- a/drivers/net/wireless/rt2x00/rt2800lib.c ++++ b/drivers/net/wireless/rt2x00/rt2800lib.c +@@ -2634,19 +2634,26 @@ static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev, + * TODO: we do not use +6 dBm option to do not increase power beyond + * regulatory limit, however this could be utilized for devices with + * CAPABILITY_POWER_LIMIT. ++ * ++ * TODO: add different temperature compensation code for RT3290 & RT5390 ++ * to allow to use BBP_R1 for those chips. + */ +- rt2800_bbp_read(rt2x00dev, 1, &r1); +- if (delta <= -12) { +- power_ctrl = 2; +- delta += 12; +- } else if (delta <= -6) { +- power_ctrl = 1; +- delta += 6; +- } else { +- power_ctrl = 0; ++ if (!rt2x00_rt(rt2x00dev, RT3290) && ++ !rt2x00_rt(rt2x00dev, RT5390)) { ++ rt2800_bbp_read(rt2x00dev, 1, &r1); ++ if (delta <= -12) { ++ power_ctrl = 2; ++ delta += 12; ++ } else if (delta <= -6) { ++ power_ctrl = 1; ++ delta += 6; ++ } else { ++ power_ctrl = 0; ++ } ++ rt2x00_set_field8(&r1, BBP1_TX_POWER_CTRL, power_ctrl); ++ rt2800_bbp_write(rt2x00dev, 1, r1); + } +- rt2x00_set_field8(&r1, BBP1_TX_POWER_CTRL, power_ctrl); +- rt2800_bbp_write(rt2x00dev, 1, r1); ++ + offset = TX_PWR_CFG_0; + + for (i = 0; i < EEPROM_TXPOWER_BYRATE_SIZE; i += 2) { +-- +1.7.11.7 + +-- +To unsubscribe from this list: send the line "unsubscribe linux-wireless" 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/rt2x00_fix_MCU_request_failures.patch b/rt2x00_fix_MCU_request_failures.patch deleted file mode 100644 index f7b8a6a4c..000000000 --- a/rt2x00_fix_MCU_request_failures.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h -index 2571a2f..822f9e5 100644 ---- a/drivers/net/wireless/rt2x00/rt2800.h -+++ b/drivers/net/wireless/rt2x00/rt2800.h -@@ -1627,6 +1627,7 @@ struct mac_iveiv_entry { - - /* - * H2M_MAILBOX_CSR: Host-to-MCU Mailbox. -+ * CMD_TOKEN: Command id, 0xff disable status reporting - */ - #define H2M_MAILBOX_CSR 0x7010 - #define H2M_MAILBOX_CSR_ARG0 FIELD32(0x000000ff) -@@ -1636,6 +1637,8 @@ struct mac_iveiv_entry { - - /* - * H2M_MAILBOX_CID: -+ * Free slots contain 0xff. MCU will store command's token to lowest free slot. -+ * If all slots are occupied status will be dropped. - */ - #define H2M_MAILBOX_CID 0x7014 - #define H2M_MAILBOX_CID_CMD0 FIELD32(0x000000ff) -@@ -1645,6 +1648,7 @@ struct mac_iveiv_entry { - - /* - * H2M_MAILBOX_STATUS: -+ * Command status will be saved to same slot as command id. - */ - #define H2M_MAILBOX_STATUS 0x701c - -@@ -2259,6 +2263,12 @@ struct mac_iveiv_entry { - - /* - * MCU mailbox commands. -+ * MCU_SLEEP - go to power-save mode. -+ * arg1: 1: save as much power as possible, 0: save less power -+ * status: 1: success, 2: already asleep, -+ * 3: maybe MAC is busy so can't finish this task -+ * MCU_RADIO_OFF -+ * arg0: 0: do power-saving, NOT turn off radio - */ - #define MCU_SLEEP 0x30 - #define MCU_WAKEUP 0x31 -@@ -2279,7 +2289,9 @@ struct mac_iveiv_entry { - /* - * MCU mailbox tokens - */ --#define TOKEN_WAKUP 3 -+#define TOKEN_SLEEP 1 -+#define TOKEN_RADIO_OFF 2 -+#define TOKEN_WAKEUP 3 - - /* - * DMA descriptor defines. -diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c -index dc88bae..9ac3017 100644 ---- a/drivers/net/wireless/rt2x00/rt2800pci.c -+++ b/drivers/net/wireless/rt2x00/rt2800pci.c -@@ -517,23 +517,6 @@ static void rt2800pci_disable_radio(struct rt2x00_dev *rt2x00dev) - } - } - --static int rt2800pci_set_state(struct rt2x00_dev *rt2x00dev, -- enum dev_state state) --{ -- if (state == STATE_AWAKE) { -- rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, TOKEN_WAKUP, 0, 0x02); -- rt2800pci_mcu_status(rt2x00dev, TOKEN_WAKUP); -- } else if (state == STATE_SLEEP) { -- rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_STATUS, -- 0xffffffff); -- rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, -- 0xffffffff); -- rt2800_mcu_request(rt2x00dev, MCU_SLEEP, 0x01, 0xff, 0x01); -- } -- -- return 0; --} -- - static int rt2800pci_set_device_state(struct rt2x00_dev *rt2x00dev, - enum dev_state state) - { -@@ -541,14 +524,20 @@ static int rt2800pci_set_device_state(struct rt2x00_dev *rt2x00dev, - - switch (state) { - case STATE_RADIO_ON: -- /* -- * Before the radio can be enabled, the device first has -- * to be woken up. After that it needs a bit of time -- * to be fully awake and then the radio can be enabled. -- */ -- rt2800pci_set_state(rt2x00dev, STATE_AWAKE); -- msleep(1); -+ /* Initialise all registers and send MCU_BOOT_SIGNAL. */ - retval = rt2800pci_enable_radio(rt2x00dev); -+ -+ /* After resume MCU_BOOT_SIGNAL will trash those. */ -+ rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_STATUS, ~0); -+ rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0); -+ -+ /* Finish initialization procedure. */ -+ rt2800_mcu_request(rt2x00dev, MCU_SLEEP, TOKEN_RADIO_OFF, -+ 0xff, 0x02); -+ rt2800pci_mcu_status(rt2x00dev, TOKEN_RADIO_OFF); -+ -+ rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, TOKEN_WAKEUP, 0, 0); -+ rt2800pci_mcu_status(rt2x00dev, TOKEN_WAKEUP); - break; - case STATE_RADIO_OFF: - /* -@@ -556,7 +545,7 @@ static int rt2800pci_set_device_state(struct rt2x00_dev *rt2x00dev, - * be put to sleep for powersaving. - */ - rt2800pci_disable_radio(rt2x00dev); -- rt2800pci_set_state(rt2x00dev, STATE_SLEEP); -+ rt2800pci_set_device_state(rt2x00dev, STATE_SLEEP); - break; - case STATE_RADIO_IRQ_ON: - case STATE_RADIO_IRQ_OFF: -@@ -565,8 +554,16 @@ static int rt2800pci_set_device_state(struct rt2x00_dev *rt2x00dev, - case STATE_DEEP_SLEEP: - case STATE_SLEEP: - case STATE_STANDBY: -+ /* PCIe devices won't report status after SLEEP request. */ -+ rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_STATUS, ~0); -+ rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0); -+ rt2800_mcu_request(rt2x00dev, MCU_SLEEP, TOKEN_SLEEP, -+ 0xff, 0x01); -+ break; - case STATE_AWAKE: -- retval = rt2800pci_set_state(rt2x00dev, state); -+ rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, TOKEN_WAKEUP, -+ 0, 0x02); -+ rt2800pci_mcu_status(rt2x00dev, TOKEN_WAKEUP); - break; - default: - retval = -ENOTSUPP; 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/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..48db13328 --- /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 (WARN_ONCE((!sdkp), "Invalid scsi_disk from %p\n", disk)) ++ goto out; ++ ++ sdp = sdkp->device; ++ + /* + * If the device is offline, don't try and read capacity or any + * of the other niceties. diff --git a/selinux-apply-different-permission-to-ptrace-child.patch b/selinux-apply-different-permission-to-ptrace-child.patch new file mode 100644 index 000000000..90baad840 --- /dev/null +++ b/selinux-apply-different-permission-to-ptrace-child.patch @@ -0,0 +1,162 @@ +Some applications, like gdb, are able to ptrace both children or other +completely unrelated tasks. We would like to be able to discern these two +things and to be able to allow gdb to ptrace it's children, but not to be +able to ptrace unrelated tasks for security reasons. + +Upstream is a bit weary of this patch as it may be incomplete. They are +not fundamentally opposed to the patch, I was just ask to see if I could +flush out any needed refinement in Fedora where we already had the +problem. We may find that we need to emulate the YAMA non-child +registration module in order to completely deal with 'normal' ptrace on +a system. At the moment however, this patch will at least let us get +gdb working for many users in Fedora (See fedora-devel-list for a +discussion of the current issues people are complaining about in F17 +without this) + +--- + + security/selinux/hooks.c | 38 +++++++++++++++++++++++++++++++++++ + security/selinux/include/classmap.h | 2 +- + security/selinux/include/security.h | 2 ++ + security/selinux/selinuxfs.c | 3 ++- + security/selinux/ss/services.c | 3 +++ + 5 files changed, 46 insertions(+), 2 deletions(-) + +diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c +index 1a4acf4..b226f26 100644 +--- a/security/selinux/hooks.c ++++ b/security/selinux/hooks.c +@@ -1805,6 +1805,39 @@ static inline u32 open_file_to_av(struct file *file) + + /* Hook functions begin here. */ + ++/** ++ * task_is_descendant - walk up a process family tree looking for a match ++ * @parent: the process to compare against while walking up from child ++ * @child: the process to start from while looking upwards for parent ++ * ++ * Returns 1 if child is a descendant of parent, 0 if not. ++ */ ++static int task_is_descendant(struct task_struct *parent, ++ struct task_struct *child) ++{ ++ int rc = 0; ++ struct task_struct *walker = child; ++ ++ if (!parent || !child) ++ return 0; ++ ++ rcu_read_lock(); ++ if (!thread_group_leader(parent)) ++ parent = rcu_dereference(parent->group_leader); ++ while (walker->pid > 0) { ++ if (!thread_group_leader(walker)) ++ walker = rcu_dereference(walker->group_leader); ++ if (walker == parent) { ++ rc = 1; ++ break; ++ } ++ walker = rcu_dereference(walker->real_parent); ++ } ++ rcu_read_unlock(); ++ ++ return rc; ++} ++ + static int selinux_ptrace_access_check(struct task_struct *child, + unsigned int mode) + { +@@ -1820,6 +1853,9 @@ static int selinux_ptrace_access_check(struct task_struct *child, + return avc_has_perm(sid, csid, SECCLASS_FILE, FILE__READ, NULL); + } + ++ ++ if (selinux_policycap_ptrace_child && task_is_descendant(current, child)) ++ return current_has_perm(child, PROCESS__PTRACE_CHILD); + return current_has_perm(child, PROCESS__PTRACE); + } + +@@ -1831,6 +1867,8 @@ static int selinux_ptrace_traceme(struct task_struct *parent) + if (rc) + return rc; + ++ if (selinux_policycap_ptrace_child && task_is_descendant(parent, current)) ++ return task_has_perm(parent, current, PROCESS__PTRACE_CHILD); + return task_has_perm(parent, current, PROCESS__PTRACE); + } + +diff --git a/security/selinux/include/classmap.h b/security/selinux/include/classmap.h +index 39e678c..72c08b9 100644 +--- a/security/selinux/include/classmap.h ++++ b/security/selinux/include/classmap.h +@@ -29,7 +29,7 @@ struct security_class_mapping secclass_map[] = { + "getattr", "setexec", "setfscreate", "noatsecure", "siginh", + "setrlimit", "rlimitinh", "dyntransition", "setcurrent", + "execmem", "execstack", "execheap", "setkeycreate", +- "setsockcreate", NULL } }, ++ "setsockcreate", "ptrace_child", NULL } }, + { "system", + { "ipc_info", "syslog_read", "syslog_mod", + "syslog_console", "module_request", NULL } }, +diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h +index dde2005..ac14b0a 100644 +--- a/security/selinux/include/security.h ++++ b/security/selinux/include/security.h +@@ -68,12 +68,14 @@ extern int selinux_enabled; + enum { + POLICYDB_CAPABILITY_NETPEER, + POLICYDB_CAPABILITY_OPENPERM, ++ POLICYDB_CAPABILITY_PTRACE_CHILD, + __POLICYDB_CAPABILITY_MAX + }; + #define POLICYDB_CAPABILITY_MAX (__POLICYDB_CAPABILITY_MAX - 1) + + extern int selinux_policycap_netpeer; + extern int selinux_policycap_openperm; ++extern int selinux_policycap_ptrace_child; + + /* + * type_datum properties +diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c +index 4e93f9e..3379765 100644 +--- a/security/selinux/selinuxfs.c ++++ b/security/selinux/selinuxfs.c +@@ -44,7 +44,8 @@ + /* Policy capability filenames */ + static char *policycap_names[] = { + "network_peer_controls", +- "open_perms" ++ "open_perms", ++ "ptrace_child", + }; + + unsigned int selinux_checkreqprot = CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE; +diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c +index 9b7e7ed..4d12a6e 100644 +--- a/security/selinux/ss/services.c ++++ b/security/selinux/ss/services.c +@@ -72,6 +72,7 @@ + + int selinux_policycap_netpeer; + int selinux_policycap_openperm; ++int selinux_policycap_ptrace_child; + + static DEFINE_RWLOCK(policy_rwlock); + +@@ -1812,6 +1813,8 @@ static void security_load_policycaps(void) + POLICYDB_CAPABILITY_NETPEER); + selinux_policycap_openperm = ebitmap_get_bit(&policydb.policycaps, + POLICYDB_CAPABILITY_OPENPERM); ++ selinux_policycap_ptrace_child = ebitmap_get_bit(&policydb.policycaps, ++ POLICYDB_CAPABILITY_PTRACE_CHILD); + } + + static int security_preserve_bools(struct policydb *p); + + + + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel diff --git a/linux-2.6-serial-460800.patch b/serial-460800.patch similarity index 93% rename from linux-2.6-serial-460800.patch rename to serial-460800.patch index 979b248d5..bdae70e31 100644 --- a/linux-2.6-serial-460800.patch +++ b/serial-460800.patch @@ -1,7 +1,7 @@ diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 2209620..659c1bb 100644 ---- a/drivers/tty/serial/8250/8250.c -+++ b/drivers/tty/serial/8250/8250.c +--- a/drivers/tty/serial/8250/8250_core.c ++++ b/drivers/tty/serial/8250/8250_core.c @@ -7,6 +7,9 @@ * * Copyright (C) 2001 Russell King. @@ -28,14 +28,14 @@ index 2209620..659c1bb 100644 quot = uart_get_divisor(port, baud); @@ -2240,7 +2251,7 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios, - struct uart_8250_port *up = (struct uart_8250_port *)port; + container_of(port, struct uart_8250_port, port); unsigned char cval, fcr = 0; unsigned long flags; - unsigned int baud, quot; + unsigned int baud, quot, max_baud; + int fifo_bug = 0; switch (termios->c_cflag & CSIZE) { - case CS5: @@ -2272,9 +2283,10 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios, /* * Ask the core to calculate the divisor for us. diff --git a/linux-2.6-silence-acpi-blacklist.patch b/silence-acpi-blacklist.patch similarity index 100% rename from linux-2.6-silence-acpi-blacklist.patch rename to silence-acpi-blacklist.patch diff --git a/linux-2.6-silence-fbcon-logo.patch b/silence-fbcon-logo.patch similarity index 100% rename from linux-2.6-silence-fbcon-logo.patch rename to silence-fbcon-logo.patch diff --git a/linux-2.6-silence-noise.patch b/silence-noise.patch similarity index 97% rename from linux-2.6-silence-noise.patch rename to silence-noise.patch index 1e4d7c57f..bcd5baa0b 100644 --- a/linux-2.6-silence-noise.patch +++ b/silence-noise.patch @@ -14,7 +14,7 @@ diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 170f71e..4f3e632 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c -@@ -701,10 +701,8 @@ static int __devinit i8042_check_aux(void) +@@ -701,10 +701,8 @@ static int i8042_check_aux(void) static int i8042_controller_check(void) { diff --git a/silence-timekeeping-spew.patch b/silence-timekeeping-spew.patch new file mode 100644 index 000000000..19416d433 --- /dev/null +++ b/silence-timekeeping-spew.patch @@ -0,0 +1,16 @@ +--- linux-3.3.0-4.fc17.noarch/kernel/time/timekeeping.c~ 2012-03-30 14:18:15.591162207 -0400 ++++ linux-3.3.0-4.fc17.noarch/kernel/time/timekeeping.c 2012-03-30 14:18:38.959121171 -0400 +@@ -854,13 +854,6 @@ static void timekeeping_adjust(s64 offse + } else /* No adjustment needed */ + return; + +- WARN_ONCE(timekeeper.clock->maxadj && +- (timekeeper.mult + adj > timekeeper.clock->mult + +- timekeeper.clock->maxadj), +- "Adjusting %s more then 11%% (%ld vs %ld)\n", +- timekeeper.clock->name, (long)timekeeper.mult + adj, +- (long)timekeeper.clock->mult + +- timekeeper.clock->maxadj); + /* + * So the following can be confusing. + * diff --git a/sources b/sources index 3523c657f..7bd5308bc 100644 --- a/sources +++ b/sources @@ -1,4 +1,2 @@ -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 +4348c9b6b2eb3144d601e87c19d5d909 linux-3.9.tar.xz +9ceaca9b18b47e126858900bd7502672 patch-3.9.10.xz diff --git a/taint-rss.patch b/taint-rss.patch new file mode 100644 index 000000000..30265f3e7 --- /dev/null +++ b/taint-rss.patch @@ -0,0 +1,13 @@ +diff --git a/kernel/fork.c b/kernel/fork.c +index ab5211b..0aa3c51 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -556,7 +556,7 @@ static void check_mm(struct mm_struct *mm) + + if (unlikely(x)) + printk(KERN_ALERT "BUG: Bad rss-counter state " +- "mm:%p idx:%d val:%ld\n", mm, i, x); ++ "mm:%p idx:%d val:%ld (%s)\n", mm, i, x, print_tainted()); + } + + #ifdef CONFIG_TRANSPARENT_HUGEPAGE diff --git a/taint-vbox.patch b/taint-vbox.patch index 5cb3e47c9..5cde0ce28 100644 --- a/taint-vbox.patch +++ b/taint-vbox.patch @@ -1,15 +1,13 @@ -diff --git a/kernel/module.c b/kernel/module.c -index 04379f92..d26c9a3 100644 ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -2653,6 +2653,10 @@ static int check_module_license_and_versions(struct module *mod) +--- linux-3.9.0-200.fc18.x86_64/kernel/module.c~ 2013-05-06 15:01:57.589631369 -0400 ++++ linux-3.9.0-200.fc18.x86_64/kernel/module.c 2013-05-06 15:02:30.635583966 -0400 +@@ -2873,6 +2873,10 @@ static int check_module_license_and_vers if (strcmp(mod->name, "ndiswrapper") == 0) - add_taint(TAINT_PROPRIETARY_MODULE); + add_taint(TAINT_PROPRIETARY_MODULE, LOCKDEP_NOW_UNRELIABLE); + /* vbox is garbage. */ + if (strcmp(mod->name, "vboxdrv") == 0) -+ add_taint(TAINT_CRAP); ++ add_taint(TAINT_CRAP, LOCKDEP_NOW_UNRELIABLE); + /* driverloader was caught wrongly pretending to be under GPL */ if (strcmp(mod->name, "driverloader") == 0) - add_taint_module(mod, TAINT_PROPRIETARY_MODULE); + add_taint_module(mod, TAINT_PROPRIETARY_MODULE, diff --git a/turbostat-makefile.diff b/turbostat-makefile.diff new file mode 100644 index 000000000..47326879f --- /dev/null +++ b/turbostat-makefile.diff @@ -0,0 +1,11 @@ +--- a/tools/power/x86/turbostat/Makefile 2013-03-08 15:42:39.274393369 -0500 ++++ b/tools/power/x86/turbostat/Makefile 2013-03-08 15:41:59.162486862 -0500 +@@ -5,7 +5,7 @@ DESTDIR := + + turbostat : turbostat.c + CFLAGS += -Wall +-CFLAGS += -I../../../../arch/x86/include/uapi/ ++CFLAGS += -I../../../../arch/x86/include/uapi/ -idirafter ../../../../include/ + + %: %.c + @mkdir -p $(BUILD_OUTPUT) diff --git a/udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch b/udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch deleted file mode 100644 index c304713a1..000000000 --- a/udlfb-remove-sysfs-framebuffer-device-with-USB-disconnect.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 92a9c19a89af2ca219fbb040a0059f414a4b7223 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Sat, 28 Jan 2012 19:57:46 +0000 -Subject: [PATCH] udlfb: remove sysfs framebuffer device with USB - .disconnect() - -The USB graphics card driver delays the unregistering of the framebuffer -device to a workqueue, which breaks the userspace visible remove uevent -sequence. Recent userspace tools started to support USB graphics card -hotplug out-of-the-box and rely on proper events sent by the kernel. - -The framebuffer device is a direct child of the USB interface which is -removed immediately after the USB .disconnect() callback. But the fb device -in /sys stays around until its final cleanup, at a time where all the parent -devices have been removed already. - -To work around that, we remove the sysfs fb device directly in the USB -.disconnect() callback and leave only the cleanup of the internal fb -data to the delayed work. - -Before: - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics) - remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) - remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) - remove /2-1.2:1.0/graphics/fb0 (graphics) - -After: - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) - add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics) - remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics) - remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb) - remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb) - -Cc: stable@vger.kernel.org -Tested-by: Bernie Thompson -Acked-by: Bernie Thompson -Signed-off-by: Kay Sievers -Signed-off-by: Florian Tobias Schandinat ---- - drivers/video/fbmem.c | 18 +++++++++++++++++- - drivers/video/udlfb.c | 2 +- - include/linux/fb.h | 1 + - 3 files changed, 19 insertions(+), 2 deletions(-) - -diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c -index ac9141b..c6ce416 100644 ---- a/drivers/video/fbmem.c -+++ b/drivers/video/fbmem.c -@@ -1665,6 +1665,7 @@ static int do_unregister_framebuffer(struct fb_info *fb_info) - if (ret) - return -EINVAL; - -+ unlink_framebuffer(fb_info); - if (fb_info->pixmap.addr && - (fb_info->pixmap.flags & FB_PIXMAP_DEFAULT)) - kfree(fb_info->pixmap.addr); -@@ -1672,7 +1673,6 @@ static int do_unregister_framebuffer(struct fb_info *fb_info) - registered_fb[i] = NULL; - num_registered_fb--; - fb_cleanup_device(fb_info); -- device_destroy(fb_class, MKDEV(FB_MAJOR, i)); - event.info = fb_info; - fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event); - -@@ -1681,6 +1681,22 @@ static int do_unregister_framebuffer(struct fb_info *fb_info) - return 0; - } - -+int unlink_framebuffer(struct fb_info *fb_info) -+{ -+ int i; -+ -+ i = fb_info->node; -+ if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info) -+ return -EINVAL; -+ -+ if (fb_info->dev) { -+ device_destroy(fb_class, MKDEV(FB_MAJOR, i)); -+ fb_info->dev = NULL; -+ } -+ return 0; -+} -+EXPORT_SYMBOL(unlink_framebuffer); -+ - void remove_conflicting_framebuffers(struct apertures_struct *a, - const char *name, bool primary) - { -diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c -index a197731..a40c05e 100644 ---- a/drivers/video/udlfb.c -+++ b/drivers/video/udlfb.c -@@ -1739,7 +1739,7 @@ static void dlfb_usb_disconnect(struct usb_interface *interface) - for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++) - device_remove_file(info->dev, &fb_device_attrs[i]); - device_remove_bin_file(info->dev, &edid_attr); -- -+ unlink_framebuffer(info); - usb_set_intfdata(interface, NULL); - - /* if clients still have us open, will be freed on last close */ -diff --git a/include/linux/fb.h b/include/linux/fb.h -index c18122f..a395b8c 100644 ---- a/include/linux/fb.h -+++ b/include/linux/fb.h -@@ -1003,6 +1003,7 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf, - /* drivers/video/fbmem.c */ - extern int register_framebuffer(struct fb_info *fb_info); - extern int unregister_framebuffer(struct fb_info *fb_info); -+extern int unlink_framebuffer(struct fb_info *fb_info); - extern void remove_conflicting_framebuffers(struct apertures_struct *a, - const char *name, bool primary); - extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); --- -1.7.6.5 - 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