Compare commits
497 Commits
Author | SHA1 | Date |
---|---|---|
Josh Boyer | 00e8dab168 | |
Josh Boyer | 20214bd8d2 | |
Josh Boyer | 2916df0482 | |
Josh Boyer | 9f1cdfc65f | |
Josh Boyer | 20c505206a | |
Josh Boyer | 537c688651 | |
Josh Boyer | c519a21724 | |
Josh Boyer | 841005a8d6 | |
Josh Boyer | 8e4f825019 | |
Josh Boyer | 26ef1781a0 | |
Josh Boyer | 4ec4a04f08 | |
Josh Boyer | 45b5fd0535 | |
Josh Boyer | 6d027eb298 | |
Josh Boyer | d90c5c245b | |
Josh Boyer | 6f3bcbea0d | |
Josh Boyer | df42286ed7 | |
Josh Boyer | fdd4605b14 | |
Josh Boyer | 5b9366d603 | |
Josh Boyer | 05b8b9945b | |
Dan Horák | 56372cd764 | |
Josh Boyer | 457c7156db | |
Josh Boyer | e76774d639 | |
Josh Boyer | c476786b43 | |
Josh Boyer | 7306d34d3c | |
Josh Boyer | 98d2c800fb | |
Josh Boyer | be089ee6ca | |
Josh Boyer | 9790654176 | |
Josh Boyer | 2771222ebd | |
Josh Boyer | f0c371f038 | |
Josh Boyer | 961cc9375c | |
Josh Boyer | 741d874114 | |
Josh Boyer | cd2a7b7da7 | |
Justin M. Forbes | 73a4ef0af1 | |
Josh Boyer | 99f4e6a8b2 | |
Josh Boyer | f2fe333330 | |
Josh Boyer | 288eb79a53 | |
Justin M. Forbes | 697844d851 | |
Josh Boyer | f1987ed1ac | |
Josh Boyer | 65f14f4adc | |
Josh Boyer | 26d3ee3e40 | |
Josh Boyer | 56f4eb8f66 | |
Josh Boyer | c8cb0727e0 | |
Josh Boyer | d80bca6ba4 | |
Josh Boyer | 24372f67d8 | |
Josh Boyer | 10ef192fca | |
Justin M. Forbes | e097dcad4d | |
Josh Boyer | d84051241b | |
Josh Boyer | 12c7ac7fb8 | |
Josh Boyer | be5fc1698a | |
Josh Boyer | 6a04643da5 | |
Kyle McMartin | 3b13d95419 | |
Justin M. Forbes | 8acf10ede1 | |
Josh Boyer | bc253d7d2e | |
Josh Boyer | 8b0a7026d8 | |
Justin M. Forbes | ea640b1f00 | |
Josh Boyer | 58a132eb16 | |
Justin M. Forbes | 8ca8f7ed8c | |
Josh Boyer | 9f379b4ef1 | |
Josh Boyer | 7fc3fa05db | |
Josh Boyer | 6d371ddaa7 | |
Justin M. Forbes | 20a0130a42 | |
Justin M. Forbes | 4e941e3a2f | |
Josh Boyer | 6fdf37f0eb | |
Josh Boyer | 088b8c8ab7 | |
Josh Boyer | 57b26ca924 | |
Justin M. Forbes | 7d5ba3763f | |
Josh Boyer | 00be9c0df6 | |
Josh Boyer | 5023d7a8b8 | |
Justin M. Forbes | 1fdfb5206b | |
Josh Boyer | 945a21dc10 | |
Josh Boyer | 9827a322e0 | |
Justin M. Forbes | 2838ee0969 | |
Neil Horman | 38d9b67779 | |
Josh Boyer | b3ab68051b | |
Josh Boyer | 83627137df | |
Justin M. Forbes | ef6fcfd7b8 | |
Josh Boyer | cddf6d836f | |
Josh Boyer | 7e1766f2cd | |
Josh Boyer | b1e0725fa6 | |
Josh Boyer | b5802b6a1f | |
Josh Boyer | a227754a89 | |
Josh Boyer | d84177cf02 | |
Neil Horman | f9abad3a38 | |
Justin M. Forbes | 4949ed8401 | |
Josh Boyer | dd3844ff41 | |
Justin M. Forbes | e0efd044a8 | |
Josh Boyer | 2392a892c3 | |
Justin M. Forbes | 6f9dd97c29 | |
Josh Boyer | c6db3c33f9 | |
Josh Boyer | 97e85a3166 | |
Josh Boyer | 33cc7772bf | |
Josh Boyer | 611904c0ac | |
Josh Boyer | 5bf1cd40d3 | |
Josh Boyer | 9238c21bb1 | |
Josh Boyer | 112c71db53 | |
Josh Boyer | a5e751aa97 | |
Justin M. Forbes | 781a64a27c | |
Justin M. Forbes | 15b4ccaab8 | |
Josh Boyer | 48fa95f9c8 | |
Justin M. Forbes | eee591ee95 | |
Justin M. Forbes | 87eb30dc9a | |
Josh Boyer | 3d16a9f532 | |
Justin M. Forbes | 9a45702091 | |
Justin M. Forbes | 1ff229fcea | |
Peter Robinson | 29221f9dc2 | |
Peter Robinson | 39186108a0 | |
Justin M. Forbes | 07ec8863b5 | |
Justin M. Forbes | 85ccd6f576 | |
Josh Boyer | 5499ee0c2b | |
Josh Boyer | 652a694987 | |
Josh Boyer | 0a6c27ad88 | |
Josh Boyer | 131f0a40e0 | |
Josh Boyer | 80774789b1 | |
Josh Boyer | a4d36187f5 | |
Josh Boyer | 5596f3ea40 | |
Josh Boyer | 6dcbc3634e | |
Josh Boyer | 833d99d869 | |
Josh Boyer | 53399c5a89 | |
Dave Jones | 2667cae3ea | |
Josh Boyer | 72ed366072 | |
Josh Boyer | 7eabed4227 | |
Dave Jones | 16dbebbb4b | |
Josh Boyer | 8c58af14b8 | |
Josh Boyer | 6c78bc0a35 | |
Josh Boyer | b9f0d980bc | |
Josh Boyer | 15eecb868a | |
Josh Boyer | e7d7a620ab | |
Josh Boyer | b3110537ec | |
Josh Boyer | 3e6b75eafb | |
Josh Boyer | a80f0d14d2 | |
Josh Boyer | d85f8a309c | |
Josh Boyer | 1afd520f13 | |
Josh Boyer | 82b878e489 | |
Justin M. Forbes | 7ac2c9df5f | |
Josh Boyer | 35140946fb | |
Josh Boyer | e7af4730ae | |
Josh Boyer | d09da5dea4 | |
Josh Boyer | 78b9117565 | |
Josh Boyer | f08e8e175c | |
Justin M. Forbes | 0d22b061e2 | |
Mauro Carvalho Chehab | c2c10b0fab | |
Dave Jones | 7c4fd19bb4 | |
Josh Boyer | 73be2dc284 | |
Josh Boyer | c98aa694c6 | |
Josh Boyer | 729afc3f1a | |
Josh Boyer | 6bca203461 | |
Josh Boyer | d6d68e331d | |
Josh Boyer | ce5fae0641 | |
Josh Boyer | 2bd4b14565 | |
Josh Boyer | 6bb74174a1 | |
Josh Boyer | c7995c2f97 | |
Josh Boyer | a5e016d48a | |
Josh Boyer | 33c1a67054 | |
Josh Boyer | 4c6eb690b8 | |
Josh Boyer | 21d95660dd | |
Josh Boyer | aec19f2446 | |
Josh Boyer | 3339e89a99 | |
Josh Boyer | 342e72364a | |
Josh Boyer | 4ae2403028 | |
Justin M. Forbes | 805d0e40ad | |
Josh Boyer | b51f2e35a8 | |
Josh Boyer | afcba0a0ef | |
Josh Boyer | 08acba8d9c | |
Josh Boyer | 5d01e49869 | |
Josh Boyer | ea06f6447b | |
Josh Boyer | d03943819e | |
Josh Boyer | 58f61257fc | |
Josh Boyer | 033f53a432 | |
Dave Jones | acc1b9e2ce | |
Dave Jones | 28a3cd9c35 | |
Dave Jones | e32be25541 | |
Peter Robinson | 9d5f83dd23 | |
Peter Robinson | 4eb1550b0b | |
Peter Robinson | 597b5bc924 | |
Dave Jones | a76c0c4832 | |
Josh Boyer | 05b62eef85 | |
Josh Boyer | c2a687eb09 | |
Dave Jones | 70e5203dd0 | |
Dave Jones | 4b5f226f63 | |
Dave Jones | 1ddb55578b | |
Dave Jones | f2aedf4446 | |
Dave Jones | 06b327f4ff | |
Josh Boyer | f10fcf750f | |
Peter Robinson | a468188614 | |
Peter Robinson | 904ddb1ce4 | |
Dave Jones | 2123b28761 | |
Justin M. Forbes | a7a3b25626 | |
Justin M. Forbes | 53d61ba1b1 | |
Josh Boyer | a1255c4eb9 | |
Peter Robinson | 9af76879a8 | |
Josh Boyer | 8f4049fe80 | |
Josh Boyer | 24030d8457 | |
Josh Boyer | aba5c507e3 | |
Josh Boyer | c416a99578 | |
Josh Boyer | 82eda85f49 | |
Josh Boyer | 8499d94486 | |
Josh Boyer | eaa7646216 | |
Josh Boyer | d698a1000a | |
Josh Boyer | a3cfd271ff | |
Josh Boyer | 6340edec3c | |
Josh Boyer | f300ffd100 | |
Josh Boyer | 8addbb8acf | |
Josh Boyer | 66a9977428 | |
Josh Boyer | 875e72cb7d | |
Josh Boyer | 811fc75c6e | |
Josh Boyer | 7be76a4225 | |
Josh Boyer | e299ee3af9 | |
Josh Boyer | c000c59d21 | |
Josh Boyer | f6772cc35b | |
Josh Boyer | 9266085284 | |
Josh Boyer | 5df5912517 | |
Josh Boyer | 5117b24b10 | |
Josh Boyer | 1eac3cd513 | |
Josh Boyer | 8924cb541f | |
Dave Jones | ee5b174136 | |
Josh Boyer | 3e53792876 | |
Josh Boyer | a9b6a2bb03 | |
Josh Boyer | 32c7b91b95 | |
Josh Boyer | 7a6889fefd | |
Josh Boyer | e72a53b739 | |
Josh Boyer | d79c154aba | |
Peter Robinson | fbcca03d1b | |
Josh Boyer | 97aee9cc43 | |
Justin M. Forbes | 14ff3d827a | |
Dave Jones | 58d2019abd | |
Josh Boyer | 1d4383241f | |
Josh Boyer | fd87540dd9 | |
Josh Boyer | aa6f8c0eef | |
Josh Boyer | a44dd01fce | |
Josh Boyer | 5fab95dc2e | |
Josh Boyer | 245cd7a89c | |
Justin M. Forbes | 030685dae1 | |
Josh Boyer | 892fd04191 | |
Josh Boyer | c6c6a44cac | |
Justin M. Forbes | b13c8c241f | |
Justin M. Forbes | 0d7b2212f7 | |
Peter Robinson | d70d5dbf6e | |
Josh Boyer | bf0fa1e0bc | |
Peter Robinson | 0bbf13e937 | |
Justin M. Forbes | 03f3e5ade7 | |
Josh Boyer | dcfb7ac98d | |
Justin M. Forbes | 7e393f7df6 | |
Peter Robinson | ffee9661d3 | |
Josh Boyer | c47f090f17 | |
Justin M. Forbes | f7c0765d63 | |
Josh Boyer | f330a83bcb | |
Mauro Carvalho Chehab | a707d2a493 | |
Josh Boyer | f032373d45 | |
Josh Boyer | 337ba2cf7b | |
Josh Boyer | 9f63d7d2bb | |
Josh Boyer | 61bbeae79e | |
Josh Boyer | dfee514436 | |
Josh Boyer | c9c43cfcba | |
Peter Robinson | f4081f48cf | |
Mauro Carvalho Chehab | 8df7f55b92 | |
Josh Boyer | 7c71bc7d42 | |
Josh Boyer | 24b5163c13 | |
Josh Boyer | 3f1daf9e62 | |
Josh Boyer | a886d7d7b9 | |
Peter Robinson | e39dc443b8 | |
Josh Boyer | 3bcafa2d7a | |
Justin M. Forbes | 9436a43c32 | |
Justin M. Forbes | 0a5c26d7c8 | |
Josh Boyer | 21268df59d | |
Peter Robinson | a614d46fe4 | |
Josh Boyer | 45e320120e | |
Josh Boyer | 500b360647 | |
Josh Boyer | 2926c94913 | |
Justin M. Forbes | 831372f875 | |
Justin M. Forbes | b266fd2521 | |
Josh Boyer | c1caf663bf | |
Josh Boyer | c03b60fe04 | |
Peter Robinson | 3b5b67be2b | |
Josh Boyer | 90bc19a94c | |
Josh Boyer | 65ffa65d32 | |
Josh Boyer | 20dc019917 | |
Justin M. Forbes | 0c05d73610 | |
Peter Robinson | 6e30b2ba8c | |
Dave Jones | 1f0249effe | |
Josh Boyer | 2da82c8fb5 | |
Peter Robinson | c422902195 | |
Dave Jones | 1d13754207 | |
Dave Jones | 676b781d62 | |
Dave Jones | e0af4e2a56 | |
Dave Jones | f1077a4b1c | |
Dave Jones | 171d2934e0 | |
Dave Jones | 1d052c76df | |
Dave Jones | 42cc12eb2a | |
Dave Jones | dca57f8f98 | |
Dave Jones | d08ec557c7 | |
Dave Jones | 1d266453e3 | |
Dave Jones | f847da58cd | |
Justin M. Forbes | 7fa684400e | |
Justin M. Forbes | 48ab4b0ce8 | |
Dave Jones | d3a4ba3dbf | |
Dave Jones | 1c0d824c48 | |
Justin M. Forbes | c546daa7be | |
Josh Boyer | f23e92fc88 | |
Josh Boyer | a46911c9f8 | |
Josh Boyer | fa8ce41f27 | |
Josh Boyer | 950189b40d | |
Josh Boyer | e7cbab64b1 | |
Neil Horman | 445e22c317 | |
Josh Boyer | 6b1ca21dd3 | |
Josh Boyer | a593134d04 | |
Josh Boyer | 7509bfeeae | |
Josh Boyer | 3cecb56a14 | |
Peter Robinson | 011d7ca774 | |
Justin M. Forbes | d338b6bb72 | |
Adam Jackson | f82ba77f45 | |
Adam Jackson | 65a226a1b6 | |
Josh Boyer | ba9cd28694 | |
Justin M. Forbes | 158d3b65d5 | |
Adam Jackson | 8686bf4a41 | |
Adam Jackson | 6df90aad48 | |
Josh Boyer | 517a475937 | |
Josh Boyer | 056a8e65ff | |
Dave Jones | 8de5b02e00 | |
Dave Jones | e647299c72 | |
Dave Jones | 477047eeed | |
Dave Jones | a13d73af42 | |
Justin M. Forbes | ffb7a52581 | |
Josh Boyer | 4c338c68e6 | |
Josh Boyer | 31d643927c | |
Peter Robinson | 7234330c31 | |
Josh Boyer | 2256aa8a75 | |
Josh Boyer | 0f4abb52b4 | |
Josh Boyer | bd4318b80d | |
Josh Boyer | 07ef26cdeb | |
Josh Boyer | bedfc3999f | |
Josh Boyer | 82e26bd9bb | |
Josh Boyer | 4eae979b3d | |
Peter Robinson | 274e5201ef | |
Peter Robinson | 8f91a689b6 | |
Peter Robinson | 556ae3e805 | |
Justin M. Forbes | 70cf0f26dd | |
Justin M. Forbes | dd35eb31a1 | |
Dave Jones | 79cfaf9c9a | |
Justin M. Forbes | d483733654 | |
Peter Robinson | 2ddf29a0b5 | |
Josh Boyer | 56666ff9ae | |
Josh Boyer | bd5d1b44eb | |
Justin M. Forbes | bcc94bf274 | |
Justin M. Forbes | c7c083e5a7 | |
Peter Robinson | 6f5f5295ba | |
Peter Robinson | 0f008535c8 | |
Josh Boyer | 202608877d | |
Justin M. Forbes | e4e27aa511 | |
Josh Boyer | d613208152 | |
Justin M. Forbes | b7b0a09ded | |
Josh Boyer | 3d3849a2e8 | |
Josh Boyer | 2aae8f448a | |
Justin M. Forbes | 08c8fb227b | |
Dave Jones | dc100f5f14 | |
Josh Boyer | a3656fed6c | |
Josh Boyer | ac003e409f | |
Josh Boyer | 635263af29 | |
Josh Boyer | 34e02d724c | |
Josh Boyer | 3ae631a535 | |
Josh Boyer | 1c6f1e3b70 | |
Josh Boyer | 5b55e6434a | |
Dave Jones | 03fb1ee574 | |
Josh Boyer | 8b89f2ce46 | |
Josh Boyer | e88e9e6c4c | |
Josh Boyer | e423a47e76 | |
Josh Boyer | 87a62d8ad6 | |
Dennis Gilmore | 0689821d3c | |
Josh Boyer | 820fdaa809 | |
Josh Boyer | 2dfbeb616a | |
Josh Boyer | 666877e44a | |
Josh Boyer | 389b1121b3 | |
Josh Boyer | 90c0d2496b | |
Justin M. Forbes | 6cd918b572 | |
Dave Jones | 8c7aca4e02 | |
Josh Boyer | e0377be22b | |
Justin M. Forbes | 77b6d85730 | |
Peter Robinson | d974a4b4e7 | |
Josh Boyer | bbc321ab36 | |
Josh Boyer | 8ad1d7750b | |
Josh Boyer | c5c071b35c | |
Josh Boyer | e9b768c5e7 | |
Josh Boyer | 84597ee776 | |
Josh Boyer | 8d6940a8b2 | |
Josh Boyer | 2bfaae5754 | |
Josh Boyer | 4703e152a9 | |
Josh Boyer | a6a4f9ae82 | |
Josh Boyer | 645afa77c1 | |
Josh Boyer | 9bb5a1f4aa | |
Josh Boyer | ddbf9b7f28 | |
Peter Robinson | 8b21b3a41b | |
Josh Boyer | b0cdc7c3c5 | |
Justin M. Forbes | e3759352a4 | |
Josh Boyer | 208c5d0204 | |
Josh Boyer | c1d9f39873 | |
Josh Boyer | 2d2a20cadc | |
Justin M. Forbes | c428a20204 | |
Josh Boyer | de28018acf | |
Justin M. Forbes | 40406340d2 | |
Josh Boyer | bcf7eacdcf | |
Josh Boyer | cd6bdb99f5 | |
Josh Boyer | 0854ddfab8 | |
Josh Boyer | 7002a8cc0b | |
Josh Boyer | fd50c1cf70 | |
David Woodhouse | 4f94f043d0 | |
Josh Boyer | f8f8ccfe16 | |
Josh Boyer | f1dd1c43f8 | |
Josh Boyer | 1e3ce1064c | |
Josh Boyer | 4acebb2503 | |
Josh Boyer | 8eac4e9c08 | |
Justin M. Forbes | ddc5dcdcdf | |
Peter Robinson | 39c7bf392f | |
Justin M. Forbes | a0a8db50e5 | |
Justin M. Forbes | 1c1fad8242 | |
Josh Boyer | 73a159283b | |
Josh Boyer | 9c72450ca1 | |
Peter Robinson | a0177af7b1 | |
Justin M. Forbes | d7bc89adf5 | |
Peter Robinson | 2cf9926874 | |
Peter Robinson | a40ef16775 | |
Josh Boyer | f87521dfe4 | |
Josh Boyer | 06c67c2107 | |
Josh Boyer | d5d47dc016 | |
Justin M. Forbes | aefdd98114 | |
Peter Robinson | 6419bc9683 | |
Peter Robinson | bd39f7b459 | |
Josh Boyer | 5a7aaca8ae | |
Josh Boyer | 023c26f518 | |
Josh Boyer | c7a63b96fe | |
Josh Boyer | aa337a7243 | |
Peter Robinson | a3d0a42d2d | |
Mauro Carvalho Chehab | 83707cda0a | |
Justin M. Forbes | d098f2b712 | |
Justin M. Forbes | bf61942c62 | |
Mauro Carvalho Chehab | fb857079a6 | |
Mauro Carvalho Chehab | 0291edf1a1 | |
Mauro Carvalho Chehab | d4d4cfe7bf | |
Peter Robinson | 162ad0ffb6 | |
Peter Robinson | 9abf1b6aca | |
Josh Boyer | 9d69565a5f | |
Justin M. Forbes | 5768fdefaf | |
David Woodhouse | 61db236d13 | |
Josh Boyer | cc41f66d97 | |
Josh Boyer | 0f1408ff0a | |
Peter Robinson | 5873a55fe1 | |
Adam Jackson | dd2f784bab | |
Josh Boyer | b12047e72c | |
Justin M. Forbes | b48142ecf2 | |
Josh Boyer | 8c28af1555 | |
Peter Robinson | 63d527976a | |
Justin M. Forbes | 85cffef59e | |
Josh Boyer | 4b466bb5a0 | |
Josh Boyer | 3b80dddb2f | |
Josh Boyer | bea0ea29e2 | |
Josh Boyer | c7019bcac4 | |
Josh Boyer | 8febe3d66b | |
Josh Boyer | bb764e80a3 | |
Josh Boyer | 9da87a497f | |
Josh Boyer | 1b9395fd03 | |
Josh Boyer | cf1a16641d | |
Josh Boyer | af4ca2c104 | |
Josh Boyer | 14c26cb62b | |
Josh Boyer | ee64ea8b44 | |
Josh Boyer | b4e76aa2ea | |
Josh Boyer | d790cab455 | |
Josh Boyer | 3536a72eb2 | |
Josh Boyer | 5006e294ca | |
Dave Jones | afb4793081 | |
Dave Jones | 3bf92faae1 | |
Dave Jones | f832b375f6 | |
Dave Jones | f98083c0c6 | |
Josh Boyer | c7e94d6fbf | |
Josh Boyer | 235ab5f360 | |
Josh Boyer | 08a208ba15 | |
Josh Boyer | 82d4cc2b70 | |
Josh Boyer | b0ae0f1026 | |
Josh Boyer | c878d6ce73 | |
Dave Jones | 7fd125ce03 | |
Josh Boyer | 34884fe77f | |
Josh Boyer | 3fa60a7bf3 | |
Matthew Garrett | e681abd972 | |
Peter Robinson | f82afd7d3d | |
Josh Boyer | 864f675e66 | |
Josh Boyer | 511a194649 | |
Josh Boyer | a8b9080b42 | |
Josh Boyer | a986da8f1e | |
Peter Robinson | a0ebafd828 | |
Josh Boyer | d84e876a98 | |
Peter Robinson | ce15971aed | |
Josh Boyer | 2406f94609 | |
Josh Boyer | bea0984dd4 | |
Josh Boyer | c0d37ff400 | |
Josh Boyer | 0cbef6d8b4 | |
Josh Boyer | 78739288e5 | |
Josh Boyer | 47b9eb26ca | |
Josh Boyer | fedb4582d3 | |
Josh Boyer | ec127a3f2b | |
Dave Jones | de9fa9b6bb |
|
@ -0,0 +1,69 @@
|
|||
From f462ed939de67c20528bc08f11d2fc4f2d59c0d5 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <mjg@redhat.com>
|
||||
Date: Fri, 27 Jul 2012 12:58:53 -0400
|
||||
Subject: [PATCH 1/2] 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. Additionally, set this
|
||||
flag in the UEFI stub code.
|
||||
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
Acked-by: Peter Jones <pjones@redhat.com>
|
||||
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
||||
---
|
||||
arch/x86/boot/compressed/eboot.c | 2 ++
|
||||
drivers/video/efifb.c | 4 +++-
|
||||
include/linux/screen_info.h | 2 ++
|
||||
3 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index d5e4044..bbd83b9 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -379,6 +379,8 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
|
||||
si->rsvd_pos = 0;
|
||||
}
|
||||
|
||||
+ si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
|
||||
+
|
||||
free_handle:
|
||||
efi_call_phys1(sys_table->boottime->free_pool, gop_handle);
|
||||
return status;
|
||||
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;
|
||||
|
||||
--
|
||||
1.7.12.1
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
Bugzilla: 1015905
|
||||
Upstream-status: 3.13 (should hit stable)
|
||||
|
||||
From 90e4e23d52fd04f228eed2c3d341136c50058b37 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Pirko <jiri@resnulli.us>
|
||||
Date: Wed, 6 Nov 2013 17:52:19 +0100
|
||||
Subject: [PATCH 1/2] ip6_output: fragment outgoing reassembled skb properly
|
||||
|
||||
If reassembled packet would fit into outdev MTU, it is not fragmented
|
||||
according the original frag size and it is send as single big packet.
|
||||
|
||||
The second case is if skb is gso. In that case fragmentation does not happen
|
||||
according to the original frag size.
|
||||
|
||||
This patch fixes these.
|
||||
|
||||
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv6/ip6_output.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
|
||||
index 5b25f85..f80f2fa 100644
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -150,7 +150,8 @@ static int ip6_finish_output2(struct sk_buff *skb)
|
||||
static int ip6_finish_output(struct sk_buff *skb)
|
||||
{
|
||||
if ((skb->len > ip6_skb_dst_mtu(skb) && !skb_is_gso(skb)) ||
|
||||
- dst_allfrag(skb_dst(skb)))
|
||||
+ dst_allfrag(skb_dst(skb)) ||
|
||||
+ (IP6CB(skb)->frag_max_size && skb->len > IP6CB(skb)->frag_max_size))
|
||||
return ip6_fragment(skb, ip6_finish_output2);
|
||||
else
|
||||
return ip6_finish_output2(skb);
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From 8ca95995e64f5d270889badb3e449dca91106a2b Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Sun, 15 Sep 2013 11:37:17 +0300
|
||||
Subject: [PATCH] iwlwifi: don't WARN on host commands sent when firmware is dead
|
||||
|
||||
This triggers automatic bug reports and add no valuable
|
||||
information. Print a simple error instead and drop the
|
||||
host command.
|
||||
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-trans.h | 6 ++++--
|
||||
1 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
index dd57a36..80b4750 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
@@ -601,8 +601,10 @@ static inline int iwl_trans_send_cmd(struct iwl_trans *trans,
|
||||
{
|
||||
int ret;
|
||||
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (trans->state != IWL_TRANS_FW_ALIVE) {
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
|
||||
if (!(cmd->flags & CMD_ASYNC))
|
||||
lock_map_acquire_read(&trans->sync_cmd_lockdep_map);
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From 3efd689c41080b0d4a9cc263a51f2868e3d5a37b Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Wed, 9 Oct 2013 15:03:57 +0200
|
||||
Subject: [PATCH] iwlwifi: don't WARN on bad firmware state
|
||||
|
||||
When we restart firmware is possible and hance firmware is marked as not
|
||||
alive, we can still get calls from mac80211. Don't WARN on in this
|
||||
situation as this triggers automatic bug reports with no valuable
|
||||
information.
|
||||
|
||||
This extend change from:
|
||||
|
||||
commit 8ca95995e64f5d270889badb3e449dca91106a2b
|
||||
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Sun Sep 15 11:37:17 2013 +0300
|
||||
|
||||
iwlwifi: don't WARN on host commands sent when firmware is dead
|
||||
|
||||
which remove WARN_ONCE from one place, but those warnings are also
|
||||
triggered from other functions.
|
||||
|
||||
Patch adds also unlikely() statement.
|
||||
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-trans.h | 22 +++++++++++-----------
|
||||
1 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
index 80b4750..c6bac7c 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
@@ -601,7 +601,7 @@ static inline int iwl_trans_send_cmd(struct iwl_trans *trans,
|
||||
{
|
||||
int ret;
|
||||
|
||||
- if (trans->state != IWL_TRANS_FW_ALIVE) {
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) {
|
||||
IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
return -EIO;
|
||||
}
|
||||
@@ -640,8 +640,8 @@ static inline void iwl_trans_free_tx_cmd(struct iwl_trans *trans,
|
||||
static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
|
||||
struct iwl_device_cmd *dev_cmd, int queue)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
return trans->ops->tx(trans, skb, dev_cmd, queue);
|
||||
}
|
||||
@@ -649,16 +649,16 @@ static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
|
||||
static inline void iwl_trans_reclaim(struct iwl_trans *trans, int queue,
|
||||
int ssn, struct sk_buff_head *skbs)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->reclaim(trans, queue, ssn, skbs);
|
||||
}
|
||||
|
||||
static inline void iwl_trans_txq_disable(struct iwl_trans *trans, int queue)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->txq_disable(trans, queue);
|
||||
}
|
||||
@@ -669,8 +669,8 @@ static inline void iwl_trans_txq_enable(struct iwl_trans *trans, int queue,
|
||||
{
|
||||
might_sleep();
|
||||
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely((trans->state != IWL_TRANS_FW_ALIVE)))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->txq_enable(trans, queue, fifo, sta_id, tid,
|
||||
frame_limit, ssn);
|
||||
@@ -685,8 +685,8 @@ static inline void iwl_trans_ac_txq_enable(struct iwl_trans *trans, int queue,
|
||||
|
||||
static inline int iwl_trans_wait_tx_queue_empty(struct iwl_trans *trans)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
return trans->ops->wait_tx_queue_empty(trans);
|
||||
}
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,499 @@
|
|||
Bugzilla: 1015905
|
||||
Upstream-status: 3.13 (should hit stable)
|
||||
|
||||
From 5c0df04613dd39fba5d2a43eaf90a2dc1dcd8899 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Pirko <jiri@resnulli.us>
|
||||
Date: Wed, 6 Nov 2013 17:52:20 +0100
|
||||
Subject: [PATCH 2/2] netfilter: push reasm skb through instead of original
|
||||
frag skbs
|
||||
|
||||
Pushing original fragments through causes several problems. For example
|
||||
for matching, frags may not be matched correctly. Take following
|
||||
example:
|
||||
|
||||
<example>
|
||||
On HOSTA do:
|
||||
ip6tables -I INPUT -p icmpv6 -j DROP
|
||||
ip6tables -I INPUT -p icmpv6 -m icmp6 --icmpv6-type 128 -j ACCEPT
|
||||
|
||||
and on HOSTB you do:
|
||||
ping6 HOSTA -s2000 (MTU is 1500)
|
||||
|
||||
Incoming echo requests will be filtered out on HOSTA. This issue does
|
||||
not occur with smaller packets than MTU (where fragmentation does not happen)
|
||||
</example>
|
||||
|
||||
As was discussed previously, the only correct solution seems to be to use
|
||||
reassembled skb instead of separete frags. Doing this has positive side
|
||||
effects in reducing sk_buff by one pointer (nfct_reasm) and also the reams
|
||||
dances in ipvs and conntrack can be removed.
|
||||
|
||||
Future plan is to remove net/ipv6/netfilter/nf_conntrack_reasm.c
|
||||
entirely and use code in net/ipv6/reassembly.c instead.
|
||||
|
||||
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
|
||||
Acked-by: Julian Anastasov <ja@ssi.bg>
|
||||
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
Conflicts:
|
||||
include/net/netfilter/ipv6/nf_defrag_ipv6.h
|
||||
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
|
||||
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
|
||||
net/netfilter/ipvs/ip_vs_core.c
|
||||
---
|
||||
include/linux/skbuff.h | 32 ---------------
|
||||
include/net/ip_vs.h | 32 +--------------
|
||||
include/net/netfilter/ipv6/nf_defrag_ipv6.h | 5 +--
|
||||
net/core/skbuff.c | 3 --
|
||||
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 54 +------------------------
|
||||
net/ipv6/netfilter/nf_conntrack_reasm.c | 19 +--------
|
||||
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 7 +++-
|
||||
net/netfilter/ipvs/ip_vs_core.c | 55 +-------------------------
|
||||
net/netfilter/ipvs/ip_vs_pe_sip.c | 8 +---
|
||||
9 files changed, 13 insertions(+), 202 deletions(-)
|
||||
|
||||
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
|
||||
index 6bd165b..37b4517 100644
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -333,11 +333,6 @@ typedef unsigned int sk_buff_data_t;
|
||||
typedef unsigned char *sk_buff_data_t;
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_NF_DEFRAG_IPV4) || defined(CONFIG_NF_DEFRAG_IPV4_MODULE) || \
|
||||
- defined(CONFIG_NF_DEFRAG_IPV6) || defined(CONFIG_NF_DEFRAG_IPV6_MODULE)
|
||||
-#define NET_SKBUFF_NF_DEFRAG_NEEDED 1
|
||||
-#endif
|
||||
-
|
||||
/**
|
||||
* struct sk_buff - socket buffer
|
||||
* @next: Next buffer in list
|
||||
@@ -370,7 +365,6 @@ typedef unsigned char *sk_buff_data_t;
|
||||
* @protocol: Packet protocol from driver
|
||||
* @destructor: Destruct function
|
||||
* @nfct: Associated connection, if any
|
||||
- * @nfct_reasm: netfilter conntrack re-assembly pointer
|
||||
* @nf_bridge: Saved data about a bridged frame - see br_netfilter.c
|
||||
* @skb_iif: ifindex of device we arrived on
|
||||
* @tc_index: Traffic control index
|
||||
@@ -459,9 +453,6 @@ struct sk_buff {
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
struct nf_conntrack *nfct;
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
- struct sk_buff *nfct_reasm;
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
struct nf_bridge_info *nf_bridge;
|
||||
#endif
|
||||
@@ -2603,18 +2594,6 @@ static inline void nf_conntrack_get(struct nf_conntrack *nfct)
|
||||
atomic_inc(&nfct->use);
|
||||
}
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
-static inline void nf_conntrack_get_reasm(struct sk_buff *skb)
|
||||
-{
|
||||
- if (skb)
|
||||
- atomic_inc(&skb->users);
|
||||
-}
|
||||
-static inline void nf_conntrack_put_reasm(struct sk_buff *skb)
|
||||
-{
|
||||
- if (skb)
|
||||
- kfree_skb(skb);
|
||||
-}
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
static inline void nf_bridge_put(struct nf_bridge_info *nf_bridge)
|
||||
{
|
||||
@@ -2633,10 +2612,6 @@ static inline void nf_reset(struct sk_buff *skb)
|
||||
nf_conntrack_put(skb->nfct);
|
||||
skb->nfct = NULL;
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
- nf_conntrack_put_reasm(skb->nfct_reasm);
|
||||
- skb->nfct_reasm = NULL;
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
nf_bridge_put(skb->nf_bridge);
|
||||
skb->nf_bridge = NULL;
|
||||
@@ -2658,10 +2633,6 @@ static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src)
|
||||
nf_conntrack_get(src->nfct);
|
||||
dst->nfctinfo = src->nfctinfo;
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
- dst->nfct_reasm = src->nfct_reasm;
|
||||
- nf_conntrack_get_reasm(src->nfct_reasm);
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
dst->nf_bridge = src->nf_bridge;
|
||||
nf_bridge_get(src->nf_bridge);
|
||||
@@ -2673,9 +2644,6 @@ static inline void nf_copy(struct sk_buff *dst, const struct sk_buff *src)
|
||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||
nf_conntrack_put(dst->nfct);
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
- nf_conntrack_put_reasm(dst->nfct_reasm);
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
nf_bridge_put(dst->nf_bridge);
|
||||
#endif
|
||||
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
|
||||
index f0d70f0..ff21521 100644
|
||||
--- a/include/net/ip_vs.h
|
||||
+++ b/include/net/ip_vs.h
|
||||
@@ -109,7 +109,6 @@ extern int ip_vs_conn_tab_size;
|
||||
struct ip_vs_iphdr {
|
||||
__u32 len; /* IPv4 simply where L4 starts
|
||||
IPv6 where L4 Transport Header starts */
|
||||
- __u32 thoff_reasm; /* Transport Header Offset in nfct_reasm skb */
|
||||
__u16 fragoffs; /* IPv6 fragment offset, 0 if first frag (or not frag)*/
|
||||
__s16 protocol;
|
||||
__s32 flags;
|
||||
@@ -117,34 +116,12 @@ struct ip_vs_iphdr {
|
||||
union nf_inet_addr daddr;
|
||||
};
|
||||
|
||||
-/* Dependency to module: nf_defrag_ipv6 */
|
||||
-#if defined(CONFIG_NF_DEFRAG_IPV6) || defined(CONFIG_NF_DEFRAG_IPV6_MODULE)
|
||||
-static inline struct sk_buff *skb_nfct_reasm(const struct sk_buff *skb)
|
||||
-{
|
||||
- return skb->nfct_reasm;
|
||||
-}
|
||||
-static inline void *frag_safe_skb_hp(const struct sk_buff *skb, int offset,
|
||||
- int len, void *buffer,
|
||||
- const struct ip_vs_iphdr *ipvsh)
|
||||
-{
|
||||
- if (unlikely(ipvsh->fragoffs && skb_nfct_reasm(skb)))
|
||||
- return skb_header_pointer(skb_nfct_reasm(skb),
|
||||
- ipvsh->thoff_reasm, len, buffer);
|
||||
-
|
||||
- return skb_header_pointer(skb, offset, len, buffer);
|
||||
-}
|
||||
-#else
|
||||
-static inline struct sk_buff *skb_nfct_reasm(const struct sk_buff *skb)
|
||||
-{
|
||||
- return NULL;
|
||||
-}
|
||||
static inline void *frag_safe_skb_hp(const struct sk_buff *skb, int offset,
|
||||
int len, void *buffer,
|
||||
const struct ip_vs_iphdr *ipvsh)
|
||||
{
|
||||
return skb_header_pointer(skb, offset, len, buffer);
|
||||
}
|
||||
-#endif
|
||||
|
||||
static inline void
|
||||
ip_vs_fill_ip4hdr(const void *nh, struct ip_vs_iphdr *iphdr)
|
||||
@@ -171,19 +148,12 @@ ip_vs_fill_iph_skb(int af, const struct sk_buff *skb, struct ip_vs_iphdr *iphdr)
|
||||
(struct ipv6hdr *)skb_network_header(skb);
|
||||
iphdr->saddr.in6 = iph->saddr;
|
||||
iphdr->daddr.in6 = iph->daddr;
|
||||
- /* ipv6_find_hdr() updates len, flags, thoff_reasm */
|
||||
- iphdr->thoff_reasm = 0;
|
||||
+ /* ipv6_find_hdr() updates len, flags */
|
||||
iphdr->len = 0;
|
||||
iphdr->flags = 0;
|
||||
iphdr->protocol = ipv6_find_hdr(skb, &iphdr->len, -1,
|
||||
&iphdr->fragoffs,
|
||||
&iphdr->flags);
|
||||
- /* get proto from re-assembled packet and it's offset */
|
||||
- if (skb_nfct_reasm(skb))
|
||||
- iphdr->protocol = ipv6_find_hdr(skb_nfct_reasm(skb),
|
||||
- &iphdr->thoff_reasm,
|
||||
- -1, NULL, NULL);
|
||||
-
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
diff --git a/include/net/netfilter/ipv6/nf_defrag_ipv6.h b/include/net/netfilter/ipv6/nf_defrag_ipv6.h
|
||||
index fd79c9a..17920d8 100644
|
||||
--- a/include/net/netfilter/ipv6/nf_defrag_ipv6.h
|
||||
+++ b/include/net/netfilter/ipv6/nf_defrag_ipv6.h
|
||||
@@ -6,10 +6,7 @@ extern void nf_defrag_ipv6_enable(void);
|
||||
extern int nf_ct_frag6_init(void);
|
||||
extern void nf_ct_frag6_cleanup(void);
|
||||
extern struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user);
|
||||
-extern void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
|
||||
- struct net_device *in,
|
||||
- struct net_device *out,
|
||||
- int (*okfn)(struct sk_buff *));
|
||||
+extern void nf_ct_frag6_consume_orig(struct sk_buff *skb);
|
||||
|
||||
struct inet_frags_ctl;
|
||||
|
||||
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
|
||||
index 2c3d0f5..a75022e 100644
|
||||
--- a/net/core/skbuff.c
|
||||
+++ b/net/core/skbuff.c
|
||||
@@ -580,9 +580,6 @@ static void skb_release_head_state(struct sk_buff *skb)
|
||||
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
|
||||
nf_conntrack_put(skb->nfct);
|
||||
#endif
|
||||
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
|
||||
- nf_conntrack_put_reasm(skb->nfct_reasm);
|
||||
-#endif
|
||||
#ifdef CONFIG_BRIDGE_NETFILTER
|
||||
nf_bridge_put(skb->nf_bridge);
|
||||
#endif
|
||||
diff --git a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
|
||||
index c9b6a6e..97cd750 100644
|
||||
--- a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
|
||||
+++ b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
|
||||
@@ -172,63 +172,13 @@ out:
|
||||
return nf_conntrack_confirm(skb);
|
||||
}
|
||||
|
||||
-static unsigned int __ipv6_conntrack_in(struct net *net,
|
||||
- unsigned int hooknum,
|
||||
- struct sk_buff *skb,
|
||||
- const struct net_device *in,
|
||||
- const struct net_device *out,
|
||||
- int (*okfn)(struct sk_buff *))
|
||||
-{
|
||||
- struct sk_buff *reasm = skb->nfct_reasm;
|
||||
- const struct nf_conn_help *help;
|
||||
- struct nf_conn *ct;
|
||||
- enum ip_conntrack_info ctinfo;
|
||||
-
|
||||
- /* This packet is fragmented and has reassembled packet. */
|
||||
- if (reasm) {
|
||||
- /* Reassembled packet isn't parsed yet ? */
|
||||
- if (!reasm->nfct) {
|
||||
- unsigned int ret;
|
||||
-
|
||||
- ret = nf_conntrack_in(net, PF_INET6, hooknum, reasm);
|
||||
- if (ret != NF_ACCEPT)
|
||||
- return ret;
|
||||
- }
|
||||
-
|
||||
- /* Conntrack helpers need the entire reassembled packet in the
|
||||
- * POST_ROUTING hook. In case of unconfirmed connections NAT
|
||||
- * might reassign a helper, so the entire packet is also
|
||||
- * required.
|
||||
- */
|
||||
- ct = nf_ct_get(reasm, &ctinfo);
|
||||
- if (ct != NULL && !nf_ct_is_untracked(ct)) {
|
||||
- help = nfct_help(ct);
|
||||
- if ((help && help->helper) || !nf_ct_is_confirmed(ct)) {
|
||||
- nf_conntrack_get_reasm(reasm);
|
||||
- NF_HOOK_THRESH(NFPROTO_IPV6, hooknum, reasm,
|
||||
- (struct net_device *)in,
|
||||
- (struct net_device *)out,
|
||||
- okfn, NF_IP6_PRI_CONNTRACK + 1);
|
||||
- return NF_DROP_ERR(-ECANCELED);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- nf_conntrack_get(reasm->nfct);
|
||||
- skb->nfct = reasm->nfct;
|
||||
- skb->nfctinfo = reasm->nfctinfo;
|
||||
- return NF_ACCEPT;
|
||||
- }
|
||||
-
|
||||
- return nf_conntrack_in(net, PF_INET6, hooknum, skb);
|
||||
-}
|
||||
-
|
||||
static unsigned int ipv6_conntrack_in(unsigned int hooknum,
|
||||
struct sk_buff *skb,
|
||||
const struct net_device *in,
|
||||
const struct net_device *out,
|
||||
int (*okfn)(struct sk_buff *))
|
||||
{
|
||||
- return __ipv6_conntrack_in(dev_net(in), hooknum, skb, in, out, okfn);
|
||||
+ return nf_conntrack_in(dev_net(in), PF_INET6, hooknum, skb);
|
||||
}
|
||||
|
||||
static unsigned int ipv6_conntrack_local(unsigned int hooknum,
|
||||
@@ -242,7 +192,7 @@ static unsigned int ipv6_conntrack_local(unsigned int hooknum,
|
||||
net_notice_ratelimited("ipv6_conntrack_local: packet too short\n");
|
||||
return NF_ACCEPT;
|
||||
}
|
||||
- return __ipv6_conntrack_in(dev_net(out), hooknum, skb, in, out, okfn);
|
||||
+ return nf_conntrack_in(dev_net(out), PF_INET6, hooknum, skb);
|
||||
}
|
||||
|
||||
static struct nf_hook_ops ipv6_conntrack_ops[] __read_mostly = {
|
||||
diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
|
||||
index dffdc1a..253566a 100644
|
||||
--- a/net/ipv6/netfilter/nf_conntrack_reasm.c
|
||||
+++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
|
||||
@@ -621,31 +621,16 @@ ret_orig:
|
||||
return skb;
|
||||
}
|
||||
|
||||
-void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
|
||||
- struct net_device *in, struct net_device *out,
|
||||
- int (*okfn)(struct sk_buff *))
|
||||
+void nf_ct_frag6_consume_orig(struct sk_buff *skb)
|
||||
{
|
||||
struct sk_buff *s, *s2;
|
||||
- unsigned int ret = 0;
|
||||
|
||||
for (s = NFCT_FRAG6_CB(skb)->orig; s;) {
|
||||
- nf_conntrack_put_reasm(s->nfct_reasm);
|
||||
- nf_conntrack_get_reasm(skb);
|
||||
- s->nfct_reasm = skb;
|
||||
-
|
||||
s2 = s->next;
|
||||
s->next = NULL;
|
||||
-
|
||||
- if (ret != -ECANCELED)
|
||||
- ret = NF_HOOK_THRESH(NFPROTO_IPV6, hooknum, s,
|
||||
- in, out, okfn,
|
||||
- NF_IP6_PRI_CONNTRACK_DEFRAG + 1);
|
||||
- else
|
||||
- kfree_skb(s);
|
||||
-
|
||||
+ consume_skb(s);
|
||||
s = s2;
|
||||
}
|
||||
- nf_conntrack_put_reasm(skb);
|
||||
}
|
||||
|
||||
static int nf_ct_net_init(struct net *net)
|
||||
diff --git a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
|
||||
index aacd121..581dd9e 100644
|
||||
--- a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
|
||||
+++ b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
|
||||
@@ -75,8 +75,11 @@ static unsigned int ipv6_defrag(unsigned int hooknum,
|
||||
if (reasm == skb)
|
||||
return NF_ACCEPT;
|
||||
|
||||
- nf_ct_frag6_output(hooknum, reasm, (struct net_device *)in,
|
||||
- (struct net_device *)out, okfn);
|
||||
+ nf_ct_frag6_consume_orig(reasm);
|
||||
+
|
||||
+ NF_HOOK_THRESH(NFPROTO_IPV6, hooknum, reasm,
|
||||
+ (struct net_device *) in, (struct net_device *) out,
|
||||
+ okfn, NF_IP6_PRI_CONNTRACK_DEFRAG + 1);
|
||||
|
||||
return NF_STOLEN;
|
||||
}
|
||||
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
|
||||
index 4f69e83..1517b50 100644
|
||||
--- a/net/netfilter/ipvs/ip_vs_core.c
|
||||
+++ b/net/netfilter/ipvs/ip_vs_core.c
|
||||
@@ -1131,12 +1131,6 @@ ip_vs_out(unsigned int hooknum, struct sk_buff *skb, int af)
|
||||
ip_vs_fill_iph_skb(af, skb, &iph);
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
if (af == AF_INET6) {
|
||||
- if (!iph.fragoffs && skb_nfct_reasm(skb)) {
|
||||
- struct sk_buff *reasm = skb_nfct_reasm(skb);
|
||||
- /* Save fw mark for coming frags */
|
||||
- reasm->ipvs_property = 1;
|
||||
- reasm->mark = skb->mark;
|
||||
- }
|
||||
if (unlikely(iph.protocol == IPPROTO_ICMPV6)) {
|
||||
int related;
|
||||
int verdict = ip_vs_out_icmp_v6(skb, &related,
|
||||
@@ -1606,12 +1600,6 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
|
||||
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
if (af == AF_INET6) {
|
||||
- if (!iph.fragoffs && skb_nfct_reasm(skb)) {
|
||||
- struct sk_buff *reasm = skb_nfct_reasm(skb);
|
||||
- /* Save fw mark for coming frags. */
|
||||
- reasm->ipvs_property = 1;
|
||||
- reasm->mark = skb->mark;
|
||||
- }
|
||||
if (unlikely(iph.protocol == IPPROTO_ICMPV6)) {
|
||||
int related;
|
||||
int verdict = ip_vs_in_icmp_v6(skb, &related, hooknum,
|
||||
@@ -1663,9 +1651,8 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
|
||||
/* sorry, all this trouble for a no-hit :) */
|
||||
IP_VS_DBG_PKT(12, af, pp, skb, 0,
|
||||
"ip_vs_in: packet continues traversal as normal");
|
||||
- if (iph.fragoffs && !skb_nfct_reasm(skb)) {
|
||||
+ if (iph.fragoffs) {
|
||||
/* Fragment that couldn't be mapped to a conn entry
|
||||
- * and don't have any pointer to a reasm skb
|
||||
* is missing module nf_defrag_ipv6
|
||||
*/
|
||||
IP_VS_DBG_RL("Unhandled frag, load nf_defrag_ipv6\n");
|
||||
@@ -1748,38 +1735,6 @@ ip_vs_local_request4(unsigned int hooknum, struct sk_buff *skb,
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
|
||||
/*
|
||||
- * AF_INET6 fragment handling
|
||||
- * Copy info from first fragment, to the rest of them.
|
||||
- */
|
||||
-static unsigned int
|
||||
-ip_vs_preroute_frag6(unsigned int hooknum, struct sk_buff *skb,
|
||||
- const struct net_device *in,
|
||||
- const struct net_device *out,
|
||||
- int (*okfn)(struct sk_buff *))
|
||||
-{
|
||||
- struct sk_buff *reasm = skb_nfct_reasm(skb);
|
||||
- struct net *net;
|
||||
-
|
||||
- /* Skip if not a "replay" from nf_ct_frag6_output or first fragment.
|
||||
- * ipvs_property is set when checking first fragment
|
||||
- * in ip_vs_in() and ip_vs_out().
|
||||
- */
|
||||
- if (reasm)
|
||||
- IP_VS_DBG(2, "Fragment recv prop:%d\n", reasm->ipvs_property);
|
||||
- if (!reasm || !reasm->ipvs_property)
|
||||
- return NF_ACCEPT;
|
||||
-
|
||||
- net = skb_net(skb);
|
||||
- if (!net_ipvs(net)->enable)
|
||||
- return NF_ACCEPT;
|
||||
-
|
||||
- /* Copy stored fw mark, saved in ip_vs_{in,out} */
|
||||
- skb->mark = reasm->mark;
|
||||
-
|
||||
- return NF_ACCEPT;
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
* AF_INET6 handler in NF_INET_LOCAL_IN chain
|
||||
* Schedule and forward packets from remote clients
|
||||
*/
|
||||
@@ -1916,14 +1871,6 @@ static struct nf_hook_ops ip_vs_ops[] __read_mostly = {
|
||||
.priority = 100,
|
||||
},
|
||||
#ifdef CONFIG_IP_VS_IPV6
|
||||
- /* After mangle & nat fetch 2:nd fragment and following */
|
||||
- {
|
||||
- .hook = ip_vs_preroute_frag6,
|
||||
- .owner = THIS_MODULE,
|
||||
- .pf = NFPROTO_IPV6,
|
||||
- .hooknum = NF_INET_PRE_ROUTING,
|
||||
- .priority = NF_IP6_PRI_NAT_DST + 1,
|
||||
- },
|
||||
/* After packet filtering, change source only for VS/NAT */
|
||||
{
|
||||
.hook = ip_vs_reply6,
|
||||
diff --git a/net/netfilter/ipvs/ip_vs_pe_sip.c b/net/netfilter/ipvs/ip_vs_pe_sip.c
|
||||
index 9ef22bd..bed5f70 100644
|
||||
--- a/net/netfilter/ipvs/ip_vs_pe_sip.c
|
||||
+++ b/net/netfilter/ipvs/ip_vs_pe_sip.c
|
||||
@@ -65,7 +65,6 @@ static int get_callid(const char *dptr, unsigned int dataoff,
|
||||
static int
|
||||
ip_vs_sip_fill_param(struct ip_vs_conn_param *p, struct sk_buff *skb)
|
||||
{
|
||||
- struct sk_buff *reasm = skb_nfct_reasm(skb);
|
||||
struct ip_vs_iphdr iph;
|
||||
unsigned int dataoff, datalen, matchoff, matchlen;
|
||||
const char *dptr;
|
||||
@@ -79,15 +78,10 @@ ip_vs_sip_fill_param(struct ip_vs_conn_param *p, struct sk_buff *skb)
|
||||
/* todo: IPv6 fragments:
|
||||
* I think this only should be done for the first fragment. /HS
|
||||
*/
|
||||
- if (reasm) {
|
||||
- skb = reasm;
|
||||
- dataoff = iph.thoff_reasm + sizeof(struct udphdr);
|
||||
- } else
|
||||
- dataoff = iph.len + sizeof(struct udphdr);
|
||||
+ dataoff = iph.len + sizeof(struct udphdr);
|
||||
|
||||
if (dataoff >= skb->len)
|
||||
return -EINVAL;
|
||||
- /* todo: Check if this will mess-up the reasm skb !!! /HS */
|
||||
retc = skb_linearize(skb);
|
||||
if (retc < 0)
|
||||
return retc;
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From e9b10953edbccd3744e039ffc060ab2692f17856 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <mjg@redhat.com>
|
||||
Date: Fri, 27 Jul 2012 17:20:49 -0400
|
||||
Subject: [PATCH 2/2] x86, EFI: Calculate the EFI framebuffer size instead of
|
||||
trusting the firmware
|
||||
|
||||
Seth Forshee reported that his system was reporting that the EFI framebuffer
|
||||
stretched from 0x90010000-0xb0010000 despite the GPU's BAR only covering
|
||||
0x90000000-0x9ffffff. It's safer to calculate this value from the pixel
|
||||
stride and screen height (values we already depend on) rather than face
|
||||
potential problems with resource allocation later on.
|
||||
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
Tested-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
||||
---
|
||||
arch/x86/boot/compressed/eboot.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index bbd83b9..c760e07 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -331,7 +331,6 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
|
||||
si->lfb_width = width;
|
||||
si->lfb_height = height;
|
||||
si->lfb_base = fb_base;
|
||||
- si->lfb_size = fb_size;
|
||||
si->pages = 1;
|
||||
|
||||
if (pixel_format == PIXEL_RGB_RESERVED_8BIT_PER_COLOR) {
|
||||
@@ -379,6 +378,8 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
|
||||
si->rsvd_pos = 0;
|
||||
}
|
||||
|
||||
+ si->lfb_size = si->lfb_linelength * si->lfb_height;
|
||||
+
|
||||
si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS;
|
||||
|
||||
free_handle:
|
||||
--
|
||||
1.7.12.1
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Bugzilla: 1030802
|
||||
Upstream-status: 3.13
|
||||
|
||||
From 9cb80b965eaf7af1369f6e16f48a05fbaaccc021 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Walker <matt.g.d.walker@gmail.com>
|
||||
Date: Thu, 5 Dec 2013 12:39:02 -0800
|
||||
Subject: [PATCH] Input: elantech - add support for newer (August 2013) devices
|
||||
|
||||
Added detection for newer Elantech touchpads, so that kernel doesn't
|
||||
fall-back to default PS/2 driver. Supports touchpads released after
|
||||
~August 2013. Fixes bug:
|
||||
https://lists.launchpad.net/kernel-packages/msg18481.html
|
||||
|
||||
Tested on an Acer Aspire S7-392-6302.
|
||||
|
||||
Signed-off by: Matt Walker <matt.g.d.walker@gmail.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
drivers/input/mouse/elantech.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
|
||||
index 8551dca..597e9b8 100644
|
||||
--- a/drivers/input/mouse/elantech.c
|
||||
+++ b/drivers/input/mouse/elantech.c
|
||||
@@ -1313,6 +1313,7 @@ static int elantech_set_properties(struct elantech_data *etd)
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
+ case 8:
|
||||
etd->hw_version = 4;
|
||||
break;
|
||||
default:
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
From 92eb77d0ffbaa71b501a0a8dabf09a351bf4267f Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Thu, 31 Oct 2013 07:25:34 +0000
|
||||
Subject: Input: evdev - fall back to vmalloc for client event buffer
|
||||
|
||||
evdev always tries to allocate the event buffer for clients using
|
||||
kzalloc rather than vmalloc, presumably to avoid mapping overhead where
|
||||
possible. However, drivers like bcm5974, which claims support for
|
||||
reporting 16 fingers simultaneously, can have an extraordinarily large
|
||||
buffer. The resultant contiguous order-4 allocation attempt fails due
|
||||
to fragmentation, and the device is thus unusable until reboot.
|
||||
|
||||
Try kzalloc if we can to avoid the mapping overhead, but if that fails,
|
||||
fall back to vzalloc.
|
||||
|
||||
Signed-off-by: Daniel Stone <daniels@collabora.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
|
||||
index b6ded17..a06e125 100644
|
||||
--- a/drivers/input/evdev.c
|
||||
+++ b/drivers/input/evdev.c
|
||||
@@ -18,6 +18,8 @@
|
||||
#include <linux/poll.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/vmalloc.h>
|
||||
+#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/input/mt.h>
|
||||
@@ -369,7 +371,11 @@ static int evdev_release(struct inode *inode, struct file *file)
|
||||
mutex_unlock(&evdev->mutex);
|
||||
|
||||
evdev_detach_client(evdev, client);
|
||||
- kfree(client);
|
||||
+
|
||||
+ if (is_vmalloc_addr(client))
|
||||
+ vfree(client);
|
||||
+ else
|
||||
+ kfree(client);
|
||||
|
||||
evdev_close_device(evdev);
|
||||
|
||||
@@ -389,12 +395,14 @@ static int evdev_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct evdev *evdev = container_of(inode->i_cdev, struct evdev, cdev);
|
||||
unsigned int bufsize = evdev_compute_buffer_size(evdev->handle.dev);
|
||||
+ unsigned int size = sizeof(struct evdev_client) +
|
||||
+ bufsize * sizeof(struct input_event);
|
||||
struct evdev_client *client;
|
||||
int error;
|
||||
|
||||
- client = kzalloc(sizeof(struct evdev_client) +
|
||||
- bufsize * sizeof(struct input_event),
|
||||
- GFP_KERNEL);
|
||||
+ client = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);
|
||||
+ if (!client)
|
||||
+ client = vzalloc(size);
|
||||
if (!client)
|
||||
return -ENOMEM;
|
||||
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -0,0 +1,30 @@
|
|||
From 80524f083e2c3e70057f5bb476db92baa14cb22b Mon Sep 17 00:00:00 2001
|
||||
From: Kamal Mostafa <kamal@canonical.com>
|
||||
Date: Tue, 20 Nov 2012 23:04:35 -0800
|
||||
Subject: [PATCH] Input: increase struct ps2dev cmdbuf[] to 8 bytes
|
||||
|
||||
Cypress PS/2 Trackpad (drivers/input/mouse/cypress_ps2.c) needs
|
||||
this larger cmdbuf[] to handle 8-byte packet responses.
|
||||
|
||||
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
include/linux/libps2.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/linux/libps2.h b/include/linux/libps2.h
|
||||
index 79603a6..4ad06e8 100644
|
||||
--- a/include/linux/libps2.h
|
||||
+++ b/include/linux/libps2.h
|
||||
@@ -36,7 +36,7 @@ struct ps2dev {
|
||||
wait_queue_head_t wait;
|
||||
|
||||
unsigned long flags;
|
||||
- unsigned char cmdbuf[6];
|
||||
+ unsigned char cmdbuf[8];
|
||||
unsigned char cmdcnt;
|
||||
unsigned char nak;
|
||||
};
|
||||
--
|
||||
1.7.7.6
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
Bugzilla: 1042071
|
||||
Upstream-status: 3.13 and sent to stable
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.104.107 with SMTP id gd11csp361298oab;
|
||||
Thu, 12 Dec 2013 12:41:21 -0800 (PST)
|
||||
X-Received: by 10.50.109.132 with SMTP id hs4mr33803866igb.34.1386880880893;
|
||||
Thu, 12 Dec 2013 12:41:20 -0800 (PST)
|
||||
Return-Path: <stable-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id q8si17378346pav.173.2013.12.12.12.40.57
|
||||
for <multiple recipients>;
|
||||
Thu, 12 Dec 2013 12:41:20 -0800 (PST)
|
||||
Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=stable-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@gmail.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1752041Ab3LLUhR (ORCPT <rfc822;kumadasu@gmail.com> + 64 others);
|
||||
Thu, 12 Dec 2013 15:37:17 -0500
|
||||
Received: from mail-ea0-f179.google.com ([209.85.215.179]:43785 "EHLO
|
||||
mail-ea0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1751761Ab3LLUhN (ORCPT
|
||||
<rfc822;stable@vger.kernel.org>); Thu, 12 Dec 2013 15:37:13 -0500
|
||||
Received: by mail-ea0-f179.google.com with SMTP id r15so485140ead.24
|
||||
for <multiple recipients>; Thu, 12 Dec 2013 12:37:11 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=sender:from:to:cc:subject:date:message-id;
|
||||
bh=3nLdta59rbActmGe9iq6aMqjNBfzfF7lqy0gb7EeI0I=;
|
||||
b=fWKHZKszZQjXAVDzYAlwX8s4+UNEomYiCAX0zvDzW7A5Yiy28MUt0QbNu6288Pu+Qs
|
||||
NJ38SpDcPLWzGknYOLggLa21nXsv4tX9vp4FFEY4i3H5iCVpXbvxIc+n9ZVOzWY2wkxK
|
||||
HR1Xf24kJ9FPuV/LoIyu5RlHZUm95BoAe7TxRZWlkcxQ0vEOSAyZQwH4EIj6SS7fXI1d
|
||||
PoqZKm7100ib0/wm6I49cF2b0EXRTSOYrgZneyniPVGpfTkpN2atNcEgdLSvAWQKEI+p
|
||||
79Dt0/BJd2CIuqgUbZBlA8pH6a119FtfrVqxVWJAmVvsv9lpkMIjJrFTj9yqpUFKeeYB
|
||||
XTeA==
|
||||
X-Received: by 10.14.6.136 with SMTP id 8mr9978716een.11.1386880631657;
|
||||
Thu, 12 Dec 2013 12:37:11 -0800 (PST)
|
||||
Received: from playground.com (net-2-35-202-54.cust.dsl.vodafone.it. [2.35.202.54])
|
||||
by mx.google.com with ESMTPSA id o47sm70323739eem.21.2013.12.12.12.37.00
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Thu, 12 Dec 2013 12:37:01 -0800 (PST)
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
To: linux-kernel@vger.kernel.org
|
||||
Cc: gleb@redhat.com, kvm@vger.kernel.org, pmatouse@redhat.com,
|
||||
Andy Honig <ahonig@google.com>, stable@vger.kernel.org
|
||||
Subject: [PATCH] KVM: Improve create VCPU parameter
|
||||
Date: Thu, 12 Dec 2013 21:36:51 +0100
|
||||
Message-Id: <1386880614-23300-1-git-send-email-pbonzini@redhat.com>
|
||||
X-Mailer: git-send-email 1.8.3.1
|
||||
Sender: stable-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <stable.vger.kernel.org>
|
||||
X-Mailing-List: stable@vger.kernel.org
|
||||
|
||||
From: Andy Honig <ahonig@google.com>
|
||||
|
||||
In multiple functions the vcpu_id is used as an offset into a bitfield. Ag
|
||||
malicious user could specify a vcpu_id greater than 255 in order to set or
|
||||
clear bits in kernel memory. This could be used to elevate priveges in the
|
||||
kernel. This patch verifies that the vcpu_id provided is less than 255.
|
||||
The api documentation already specifies that the vcpu_id must be less than
|
||||
max_vcpus, but this is currently not checked.
|
||||
|
||||
Reported-by: Andrew Honig <ahonig@google.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andrew Honig <ahonig@google.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
virt/kvm/kvm_main.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||
index a0aa84b5941a..4f588bc94186 100644
|
||||
--- a/virt/kvm/kvm_main.c
|
||||
+++ b/virt/kvm/kvm_main.c
|
||||
@@ -1898,6 +1898,9 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id)
|
||||
int r;
|
||||
struct kvm_vcpu *vcpu, *v;
|
||||
|
||||
+ if (id >= KVM_MAX_VCPUS)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
vcpu = kvm_arch_vcpu_create(kvm, id);
|
||||
if (IS_ERR(vcpu))
|
||||
return PTR_ERR(vcpu);
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe stable" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
@ -0,0 +1,247 @@
|
|||
Bugzilla: 1042090
|
||||
Upstream-status: 3.13 and sent for stable
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.104.107 with SMTP id gd11csp361293oab;
|
||||
Thu, 12 Dec 2013 12:41:12 -0800 (PST)
|
||||
X-Received: by 10.68.244.2 with SMTP id xc2mr15600217pbc.58.1386880872483;
|
||||
Thu, 12 Dec 2013 12:41:12 -0800 (PST)
|
||||
Return-Path: <stable-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id 5si8126292pbj.245.2013.12.12.12.40.49
|
||||
for <multiple recipients>;
|
||||
Thu, 12 Dec 2013 12:41:12 -0800 (PST)
|
||||
Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=stable-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@gmail.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1751901Ab3LLUiK (ORCPT <rfc822;kumadasu@gmail.com> + 64 others);
|
||||
Thu, 12 Dec 2013 15:38:10 -0500
|
||||
Received: from mail-ea0-f169.google.com ([209.85.215.169]:43997 "EHLO
|
||||
mail-ea0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1751940Ab3LLUhR (ORCPT
|
||||
<rfc822;stable@vger.kernel.org>); Thu, 12 Dec 2013 15:37:17 -0500
|
||||
Received: by mail-ea0-f169.google.com with SMTP id l9so411843eaj.0
|
||||
for <multiple recipients>; Thu, 12 Dec 2013 12:37:15 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=sender:from:to:cc:subject:date:message-id;
|
||||
bh=2MLmYgVGbv9FpnyP90yrPKk21SJoXFj93yQcaRn4G8Y=;
|
||||
b=ouBadI22VTf1UuezbySC80FWJYdpF/8Ks6I8f5rq1/7SDQPTpScjOYjZX0UtIf1ihj
|
||||
aeQ7IHqpmIYGKWadUbH2l88ZP1+rP7T+f2dZQeCb3HLNsPum0Ix8dzm/koeDnuS3dx75
|
||||
50E9ZcFXO13Hx24tM8p0SAuYZ1DvbCNnPRK0yxHOmCtCWe+mQLBIgig1rg8TzSAazWm7
|
||||
8LhpztDlIzNyZcfzKQvtdqTOBdnhadx5x39fxOe54Yw4JbppDa7R+BY5Jz6GOd3U0Op1
|
||||
Nf97rU0pe/jeyOtjF0LVs/d9iyPPeRoSE+VAr91iT8qj9S2PFEN1QxxWL8sdvsDPZK6B
|
||||
ZCmw==
|
||||
X-Received: by 10.14.182.199 with SMTP id o47mr10030582eem.7.1386880635352;
|
||||
Thu, 12 Dec 2013 12:37:15 -0800 (PST)
|
||||
Received: from playground.com (net-2-35-202-54.cust.dsl.vodafone.it. [2.35.202.54])
|
||||
by mx.google.com with ESMTPSA id o47sm70323739eem.21.2013.12.12.12.37.13
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Thu, 12 Dec 2013 12:37:14 -0800 (PST)
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
To: linux-kernel@vger.kernel.org
|
||||
Cc: gleb@redhat.com, kvm@vger.kernel.org, pmatouse@redhat.com,
|
||||
Andy Honig <ahonig@google.com>, stable@vger.kernel.org
|
||||
Subject: [PATCH] KVM: x86: Convert vapic synchronization to _cached functions (CVE-2013-6368)
|
||||
Date: Thu, 12 Dec 2013 21:36:53 +0100
|
||||
Message-Id: <1386880614-23300-3-git-send-email-pbonzini@redhat.com>
|
||||
X-Mailer: git-send-email 1.8.3.1
|
||||
Sender: stable-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <stable.vger.kernel.org>
|
||||
X-Mailing-List: stable@vger.kernel.org
|
||||
|
||||
From: Andy Honig <ahonig@google.com>
|
||||
|
||||
In kvm_lapic_sync_from_vapic and kvm_lapic_sync_to_vapic there is the
|
||||
potential to corrupt kernel memory if userspace provides an address that
|
||||
is at the end of a page. This patches concerts those functions to use
|
||||
kvm_write_guest_cached and kvm_read_guest_cached. It also checks the
|
||||
vapic_address specified by userspace during ioctl processing and returns
|
||||
an error to userspace if the address is not a valid GPA.
|
||||
|
||||
This is generally not guest triggerable, because the required write is
|
||||
done by firmware that runs before the guest. Also, it only affects AMD
|
||||
processors and oldish Intel that do not have the FlexPriority feature
|
||||
(unless you disable FlexPriority, of course; then newer processors are
|
||||
also affected).
|
||||
|
||||
Fixes: b93463aa59d6 ('KVM: Accelerated apic support')
|
||||
|
||||
Reported-by: Andrew Honig <ahonig@google.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andrew Honig <ahonig@google.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
arch/x86/kvm/lapic.c | 27 +++++++++++++++------------
|
||||
arch/x86/kvm/lapic.h | 4 ++--
|
||||
arch/x86/kvm/x86.c | 40 +---------------------------------------
|
||||
3 files changed, 18 insertions(+), 53 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
|
||||
index 89b52ec7d09c..b8bec45c1610 100644
|
||||
--- a/arch/x86/kvm/lapic.c
|
||||
+++ b/arch/x86/kvm/lapic.c
|
||||
@@ -1692,7 +1692,6 @@ static void apic_sync_pv_eoi_from_guest(struct kvm_vcpu *vcpu,
|
||||
void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u32 data;
|
||||
- void *vapic;
|
||||
|
||||
if (test_bit(KVM_APIC_PV_EOI_PENDING, &vcpu->arch.apic_attention))
|
||||
apic_sync_pv_eoi_from_guest(vcpu, vcpu->arch.apic);
|
||||
@@ -1700,9 +1699,8 @@ void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu)
|
||||
if (!test_bit(KVM_APIC_CHECK_VAPIC, &vcpu->arch.apic_attention))
|
||||
return;
|
||||
|
||||
- vapic = kmap_atomic(vcpu->arch.apic->vapic_page);
|
||||
- data = *(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr));
|
||||
- kunmap_atomic(vapic);
|
||||
+ kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.apic->vapic_cache, &data,
|
||||
+ sizeof(u32));
|
||||
|
||||
apic_set_tpr(vcpu->arch.apic, data & 0xff);
|
||||
}
|
||||
@@ -1738,7 +1736,6 @@ void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu)
|
||||
u32 data, tpr;
|
||||
int max_irr, max_isr;
|
||||
struct kvm_lapic *apic = vcpu->arch.apic;
|
||||
- void *vapic;
|
||||
|
||||
apic_sync_pv_eoi_to_guest(vcpu, apic);
|
||||
|
||||
@@ -1754,18 +1751,24 @@ void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu)
|
||||
max_isr = 0;
|
||||
data = (tpr & 0xff) | ((max_isr & 0xf0) << 8) | (max_irr << 24);
|
||||
|
||||
- vapic = kmap_atomic(vcpu->arch.apic->vapic_page);
|
||||
- *(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr)) = data;
|
||||
- kunmap_atomic(vapic);
|
||||
+ kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.apic->vapic_cache, &data,
|
||||
+ sizeof(u32));
|
||||
}
|
||||
|
||||
-void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr)
|
||||
+int kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr)
|
||||
{
|
||||
- vcpu->arch.apic->vapic_addr = vapic_addr;
|
||||
- if (vapic_addr)
|
||||
+ if (vapic_addr) {
|
||||
+ if (kvm_gfn_to_hva_cache_init(vcpu->kvm,
|
||||
+ &vcpu->arch.apic->vapic_cache,
|
||||
+ vapic_addr, sizeof(u32)))
|
||||
+ return -EINVAL;
|
||||
__set_bit(KVM_APIC_CHECK_VAPIC, &vcpu->arch.apic_attention);
|
||||
- else
|
||||
+ } else {
|
||||
__clear_bit(KVM_APIC_CHECK_VAPIC, &vcpu->arch.apic_attention);
|
||||
+ }
|
||||
+
|
||||
+ vcpu->arch.apic->vapic_addr = vapic_addr;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int kvm_x2apic_msr_write(struct kvm_vcpu *vcpu, u32 msr, u64 data)
|
||||
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
|
||||
index c730ac9fe801..c8b0d0d2da5c 100644
|
||||
--- a/arch/x86/kvm/lapic.h
|
||||
+++ b/arch/x86/kvm/lapic.h
|
||||
@@ -34,7 +34,7 @@ struct kvm_lapic {
|
||||
*/
|
||||
void *regs;
|
||||
gpa_t vapic_addr;
|
||||
- struct page *vapic_page;
|
||||
+ struct gfn_to_hva_cache vapic_cache;
|
||||
unsigned long pending_events;
|
||||
unsigned int sipi_vector;
|
||||
};
|
||||
@@ -76,7 +76,7 @@ void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data);
|
||||
void kvm_apic_write_nodecode(struct kvm_vcpu *vcpu, u32 offset);
|
||||
void kvm_apic_set_eoi_accelerated(struct kvm_vcpu *vcpu, int vector);
|
||||
|
||||
-void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr);
|
||||
+int kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr);
|
||||
void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu);
|
||||
void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu);
|
||||
|
||||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
|
||||
index 21ef1ba184ae..5d004da1e35d 100644
|
||||
--- a/arch/x86/kvm/x86.c
|
||||
+++ b/arch/x86/kvm/x86.c
|
||||
@@ -3214,8 +3214,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
|
||||
r = -EFAULT;
|
||||
if (copy_from_user(&va, argp, sizeof va))
|
||||
goto out;
|
||||
- r = 0;
|
||||
- kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr);
|
||||
+ r = kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr);
|
||||
break;
|
||||
}
|
||||
case KVM_X86_SETUP_MCE: {
|
||||
@@ -5739,36 +5738,6 @@ static void post_kvm_run_save(struct kvm_vcpu *vcpu)
|
||||
!kvm_event_needs_reinjection(vcpu);
|
||||
}
|
||||
|
||||
-static int vapic_enter(struct kvm_vcpu *vcpu)
|
||||
-{
|
||||
- struct kvm_lapic *apic = vcpu->arch.apic;
|
||||
- struct page *page;
|
||||
-
|
||||
- if (!apic || !apic->vapic_addr)
|
||||
- return 0;
|
||||
-
|
||||
- page = gfn_to_page(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT);
|
||||
- if (is_error_page(page))
|
||||
- return -EFAULT;
|
||||
-
|
||||
- vcpu->arch.apic->vapic_page = page;
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-static void vapic_exit(struct kvm_vcpu *vcpu)
|
||||
-{
|
||||
- struct kvm_lapic *apic = vcpu->arch.apic;
|
||||
- int idx;
|
||||
-
|
||||
- if (!apic || !apic->vapic_addr)
|
||||
- return;
|
||||
-
|
||||
- idx = srcu_read_lock(&vcpu->kvm->srcu);
|
||||
- kvm_release_page_dirty(apic->vapic_page);
|
||||
- mark_page_dirty(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT);
|
||||
- srcu_read_unlock(&vcpu->kvm->srcu, idx);
|
||||
-}
|
||||
-
|
||||
static void update_cr8_intercept(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int max_irr, tpr;
|
||||
@@ -6069,11 +6038,6 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
|
||||
struct kvm *kvm = vcpu->kvm;
|
||||
|
||||
vcpu->srcu_idx = srcu_read_lock(&kvm->srcu);
|
||||
- r = vapic_enter(vcpu);
|
||||
- if (r) {
|
||||
- srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx);
|
||||
- return r;
|
||||
- }
|
||||
|
||||
r = 1;
|
||||
while (r > 0) {
|
||||
@@ -6132,8 +6096,6 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
|
||||
|
||||
srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx);
|
||||
|
||||
- vapic_exit(vcpu);
|
||||
-
|
||||
return r;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe stable" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
@ -0,0 +1,102 @@
|
|||
Bugzilla: 1042081
|
||||
Upstream-status: 3.13 and sent for stable
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.104.107 with SMTP id gd11csp361402oab;
|
||||
Thu, 12 Dec 2013 12:43:43 -0800 (PST)
|
||||
X-Received: by 10.68.241.134 with SMTP id wi6mr15423072pbc.44.1386881023599;
|
||||
Thu, 12 Dec 2013 12:43:43 -0800 (PST)
|
||||
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id w3si17375457pbh.89.2013.12.12.12.43.07
|
||||
for <multiple recipients>;
|
||||
Thu, 12 Dec 2013 12:43:43 -0800 (PST)
|
||||
Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=linux-kernel-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@gmail.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1752145Ab3LLUiu (ORCPT <rfc822;multinymous@gmail.com>
|
||||
+ 99 others); Thu, 12 Dec 2013 15:38:50 -0500
|
||||
Received: from mail-ee0-f45.google.com ([74.125.83.45]:47138 "EHLO
|
||||
mail-ee0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1751902Ab3LLUhP (ORCPT
|
||||
<rfc822;linux-kernel@vger.kernel.org>);
|
||||
Thu, 12 Dec 2013 15:37:15 -0500
|
||||
Received: by mail-ee0-f45.google.com with SMTP id d49so478739eek.32
|
||||
for <multiple recipients>; Thu, 12 Dec 2013 12:37:13 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=sender:from:to:cc:subject:date:message-id;
|
||||
bh=Fa9qXXe9oER+jgB6WXA5v2LyR8O2Vaag7ZsOsv67MLg=;
|
||||
b=WbBUzKN8o3OzB75st3w60z/rVczWaaxrvWc2URlwJwZ0lgqObvbXvAb3ophFJxsr/O
|
||||
P3rEj33CGt5vFAmZWsrST8I4pVb7IPZYqmPuBklMhDmvegy2um2xEDCyIuI0oybwgple
|
||||
n1dYPBTNqBhiiLgIUeKgEf88yU5dsAgKOZSTnkMYhDSy9pnGxRda4WtErJ+SHjvcMaX3
|
||||
t2Vt97egJ2n+e+2BvnpS8xZ8biqp6/l3EzvdsL4W849fUUshAKva4Npu0T/D4E3JIp2O
|
||||
3uY+geb/txJL2rOCacT3RljUb3+zAy2zhqGSjKR3AHePFNIX9RxfMi/vlPmTjO0vfmCP
|
||||
H86Q==
|
||||
X-Received: by 10.14.2.73 with SMTP id 49mr10139590eee.15.1386880633625;
|
||||
Thu, 12 Dec 2013 12:37:13 -0800 (PST)
|
||||
Received: from playground.com (net-2-35-202-54.cust.dsl.vodafone.it. [2.35.202.54])
|
||||
by mx.google.com with ESMTPSA id o47sm70323739eem.21.2013.12.12.12.37.11
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Thu, 12 Dec 2013 12:37:12 -0800 (PST)
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
To: linux-kernel@vger.kernel.org
|
||||
Cc: gleb@redhat.com, kvm@vger.kernel.org, pmatouse@redhat.com,
|
||||
Andy Honig <ahonig@google.com>, stable@vger.kernel.org
|
||||
Subject: [PATCH] KVM: x86: Fix potential divide by 0 in lapic (CVE-2013-6367)
|
||||
Date: Thu, 12 Dec 2013 21:36:52 +0100
|
||||
Message-Id: <1386880614-23300-2-git-send-email-pbonzini@redhat.com>
|
||||
X-Mailer: git-send-email 1.8.3.1
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
From: Andy Honig <ahonig@google.com>
|
||||
|
||||
Under guest controllable circumstances apic_get_tmcct will execute a
|
||||
divide by zero and cause a crash. If the guest cpuid support
|
||||
tsc deadline timers and performs the following sequence of requests
|
||||
the host will crash.
|
||||
- Set the mode to periodic
|
||||
- Set the TMICT to 0
|
||||
- Set the mode bits to 11 (neither periodic, nor one shot, nor tsc deadline)
|
||||
- Set the TMICT to non-zero.
|
||||
Then the lapic_timer.period will be 0, but the TMICT will not be. If the
|
||||
guest then reads from the TMCCT then the host will perform a divide by 0.
|
||||
|
||||
This patch ensures that if the lapic_timer.period is 0, then the division
|
||||
does not occur.
|
||||
|
||||
Reported-by: Andrew Honig <ahonig@google.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andrew Honig <ahonig@google.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
arch/x86/kvm/lapic.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
|
||||
index 5439117d5c4c..89b52ec7d09c 100644
|
||||
--- a/arch/x86/kvm/lapic.c
|
||||
+++ b/arch/x86/kvm/lapic.c
|
||||
@@ -841,7 +841,8 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic)
|
||||
ASSERT(apic != NULL);
|
||||
|
||||
/* if initial count is 0, current count should also be 0 */
|
||||
- if (kvm_apic_get_reg(apic, APIC_TMICT) == 0)
|
||||
+ if (kvm_apic_get_reg(apic, APIC_TMICT) == 0 ||
|
||||
+ apic->lapic_timer.period == 0)
|
||||
return 0;
|
||||
|
||||
remaining = hrtimer_get_remaining(&apic->lapic_timer.timer);
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
--
|
||||
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/
|
|
@ -0,0 +1,53 @@
|
|||
Bugzilla: 967652
|
||||
Upstream-status: 3.13 (should hit stable)
|
||||
|
||||
From daf727225b8abfdfe424716abac3d15a3ac5626a Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Thu, 31 Oct 2013 23:05:24 +0100
|
||||
Subject: [PATCH] KVM: x86: fix emulation of "movzbl %bpl, %eax"
|
||||
|
||||
When I was looking at RHEL5.9's failure to start with
|
||||
unrestricted_guest=0/emulate_invalid_guest_state=1, I got it working with a
|
||||
slightly older tree than kvm.git. I now debugged the remaining failure,
|
||||
which was introduced by commit 660696d1 (KVM: X86 emulator: fix
|
||||
source operand decoding for 8bit mov[zs]x instructions, 2013-04-24)
|
||||
introduced a similar mis-emulation to the one in commit 8acb4207 (KVM:
|
||||
fix sil/dil/bpl/spl in the mod/rm fields, 2013-05-30). The incorrect
|
||||
decoding occurs in 8-bit movzx/movsx instructions whose 8-bit operand
|
||||
is sil/dil/bpl/spl.
|
||||
|
||||
Needless to say, "movzbl %bpl, %eax" does occur in RHEL5.9's decompression
|
||||
prolog, just a handful of instructions before finally giving control to
|
||||
the decompressed vmlinux and getting out of the invalid guest state.
|
||||
|
||||
Because OpMem8 bypasses decode_modrm, the same handling of the REX prefix
|
||||
must be applied to OpMem8.
|
||||
|
||||
Reported-by: Michele Baldessari <michele@redhat.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Gleb Natapov <gleb@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Gleb Natapov <gleb@redhat.com>
|
||||
---
|
||||
arch/x86/kvm/emulate.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
|
||||
index 16c037e..282d28c 100644
|
||||
--- a/arch/x86/kvm/emulate.c
|
||||
+++ b/arch/x86/kvm/emulate.c
|
||||
@@ -4117,7 +4117,10 @@ static int decode_operand(struct x86_emulate_ctxt *ctxt, struct operand *op,
|
||||
case OpMem8:
|
||||
ctxt->memop.bytes = 1;
|
||||
if (ctxt->memop.type == OP_REG) {
|
||||
- ctxt->memop.addr.reg = decode_register(ctxt, ctxt->modrm_rm, 1);
|
||||
+ int highbyte_regs = ctxt->rex_prefix == 0;
|
||||
+
|
||||
+ ctxt->memop.addr.reg = decode_register(ctxt, ctxt->modrm_rm,
|
||||
+ highbyte_regs);
|
||||
fetch_register_operand(&ctxt->memop);
|
||||
}
|
||||
goto mem_common;
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
Bugzilla: 1042099
|
||||
Upstream-status: 3.13 and sent for stable
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.104.107 with SMTP id gd11csp361370oab;
|
||||
Thu, 12 Dec 2013 12:42:56 -0800 (PST)
|
||||
X-Received: by 10.43.172.4 with SMTP id nw4mr8453091icc.25.1386880976232;
|
||||
Thu, 12 Dec 2013 12:42:56 -0800 (PST)
|
||||
Return-Path: <stable-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id 2si15667240pax.109.2013.12.12.12.42.31
|
||||
for <multiple recipients>;
|
||||
Thu, 12 Dec 2013 12:42:56 -0800 (PST)
|
||||
Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=stable-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@gmail.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1751853Ab3LLUiJ (ORCPT <rfc822;kumadasu@gmail.com> + 64 others);
|
||||
Thu, 12 Dec 2013 15:38:09 -0500
|
||||
Received: from mail-ee0-f54.google.com ([74.125.83.54]:48290 "EHLO
|
||||
mail-ee0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1751884Ab3LLUhS (ORCPT
|
||||
<rfc822;stable@vger.kernel.org>); Thu, 12 Dec 2013 15:37:18 -0500
|
||||
Received: by mail-ee0-f54.google.com with SMTP id e51so406857eek.13
|
||||
for <multiple recipients>; Thu, 12 Dec 2013 12:37:17 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
||||
d=gmail.com; s=20120113;
|
||||
h=sender:from:to:cc:subject:date:message-id;
|
||||
bh=VG00enyRpNYeJLwAwqWOGuy3mCBmvpmEBgLPB1IiKNo=;
|
||||
b=p0BlraPBMTIxTXGUuJyYTYRxuMKATenNpVX01fyzNpSYZsMruyMU/sJ8gdc2991eao
|
||||
ZU+66Xlnbd+AyQiuq4P9sMv6Gvax6MvJg04SMZWnLWoZGonmIIwSPch1UKLSJzRN7K+N
|
||||
+Ot3jLtNBYBoREljPkbscbMVOJ2y+S7N61oOZ7IHZNyXVFWDlW8aunduSgc3cytBEhkx
|
||||
UMUUbHVLo+XrXtuggFrmn8oUfJ1hiHQSpOyx8bi0ztxlEjL4DEFpJsKbjRe4sGRgeUy6
|
||||
dRk+7dEcILKBTRVvXaJSriXG5bhZTbcZ5gZab27Ilm1H8Va5Z6R+9C1AwX2x5CQA7Mb1
|
||||
Edug==
|
||||
X-Received: by 10.14.107.3 with SMTP id n3mr9951281eeg.67.1386880636981;
|
||||
Thu, 12 Dec 2013 12:37:16 -0800 (PST)
|
||||
Received: from playground.com (net-2-35-202-54.cust.dsl.vodafone.it. [2.35.202.54])
|
||||
by mx.google.com with ESMTPSA id o47sm70323739eem.21.2013.12.12.12.37.15
|
||||
for <multiple recipients>
|
||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
|
||||
Thu, 12 Dec 2013 12:37:16 -0800 (PST)
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
To: linux-kernel@vger.kernel.org
|
||||
Cc: gleb@redhat.com, kvm@vger.kernel.org, pmatouse@redhat.com,
|
||||
stable@vger.kernel.org
|
||||
Subject: [PATCH] KVM: x86: fix guest-initiated crash with x2apic (CVE-2013-6376)
|
||||
Date: Thu, 12 Dec 2013 21:36:54 +0100
|
||||
Message-Id: <1386880614-23300-4-git-send-email-pbonzini@redhat.com>
|
||||
X-Mailer: git-send-email 1.8.3.1
|
||||
Sender: stable-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <stable.vger.kernel.org>
|
||||
X-Mailing-List: stable@vger.kernel.org
|
||||
|
||||
From: Gleb Natapov <gleb@redhat.com>
|
||||
|
||||
A guest can cause a BUG_ON() leading to a host kernel crash.
|
||||
When the guest writes to the ICR to request an IPI, while in x2apic
|
||||
mode the following things happen, the destination is read from
|
||||
ICR2, which is a register that the guest can control.
|
||||
|
||||
kvm_irq_delivery_to_apic_fast uses the high 16 bits of ICR2 as the
|
||||
cluster id. A BUG_ON is triggered, which is a protection against
|
||||
accessing map->logical_map with an out-of-bounds access and manages
|
||||
to avoid that anything really unsafe occurs.
|
||||
|
||||
The logic in the code is correct from real HW point of view. The problem
|
||||
is that KVM supports only one cluster with ID 0 in clustered mode, but
|
||||
the code that has the bug does not take this into account.
|
||||
|
||||
Reported-by: Lars Bull <larsbull@google.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Gleb Natapov <gleb@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
arch/x86/kvm/lapic.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
|
||||
index b8bec45c1610..801dc3fd66e1 100644
|
||||
--- a/arch/x86/kvm/lapic.c
|
||||
+++ b/arch/x86/kvm/lapic.c
|
||||
@@ -143,6 +143,8 @@ static inline int kvm_apic_id(struct kvm_lapic *apic)
|
||||
return (kvm_apic_get_reg(apic, APIC_ID) >> 24) & 0xff;
|
||||
}
|
||||
|
||||
+#define KMV_X2APIC_CID_BITS 0
|
||||
+
|
||||
static void recalculate_apic_map(struct kvm *kvm)
|
||||
{
|
||||
struct kvm_apic_map *new, *old = NULL;
|
||||
@@ -180,7 +182,8 @@ static void recalculate_apic_map(struct kvm *kvm)
|
||||
if (apic_x2apic_mode(apic)) {
|
||||
new->ldr_bits = 32;
|
||||
new->cid_shift = 16;
|
||||
- new->cid_mask = new->lid_mask = 0xffff;
|
||||
+ new->cid_mask = (1 << KMV_X2APIC_CID_BITS) - 1;
|
||||
+ new->lid_mask = 0xffff;
|
||||
} else if (kvm_apic_sw_enabled(apic) &&
|
||||
!new->cid_mask /* flat mode */ &&
|
||||
kvm_apic_get_reg(apic, APIC_DFR) == APIC_DFR_CLUSTER) {
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe stable" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
@ -11,15 +11,10 @@ CONFIGFILES = \
|
|||
$(CFG)-s390x.config \
|
||||
$(CFG)-armv5tel-kirkwood.config \
|
||||
$(CFG)-armv7l.config $(CFG)-armv7hl.config \
|
||||
$(CFG)-armv7l-imx.config $(CFG)-armv7hl-imx.config \
|
||||
$(CFG)-armv7l-omap.config $(CFG)-armv7hl-omap.config \
|
||||
$(CFG)-armv7l-tegra.config $(CFG)-armv7hl-tegra.config \
|
||||
$(CFG)-armv7l-highbank.config $(CFG)-armv7hl-highbank.config \
|
||||
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
|
||||
$(CFG)-sparc64.config \
|
||||
$(CFG)-ppc64.config $(CFG)-ppc64p7.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)
|
||||
|
@ -38,24 +33,15 @@ temp-debug-generic: config-generic
|
|||
cat config-generic config-debug > temp-debug-generic
|
||||
|
||||
temp-arm-generic: config-arm-generic temp-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-armv7-generic: config-armv7-generic temp-arm-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-armv7: config-armv7 temp-armv7-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-armv7l-versatile: config-arm-versatile temp-arm-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-armv7l-omap: config-arm-omap 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
|
||||
temp-armv5tel-kirkwood: config-arm-kirkwood temp-generic
|
||||
perl merge.pl $^ > $@
|
||||
|
||||
temp-x86-32: config-x86-32-generic config-x86-generic
|
||||
|
@ -76,9 +62,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 $^ > $@
|
||||
|
||||
|
@ -112,9 +95,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: /dev/null temp-powerpc64-generic
|
||||
perl merge.pl $^ powerpc > $@
|
||||
|
||||
|
@ -130,34 +110,10 @@ kernel-$(VERSION)-s390x.config: config-s390x temp-s390-generic
|
|||
kernel-$(VERSION)-armv5tel-kirkwood.config: /dev/null temp-armv5tel-kirkwood
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7l.config: /dev/null temp-armv7l-versatile
|
||||
kernel-$(VERSION)-armv7l.config: /dev/null temp-armv7
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7l-imx.config: /dev/null temp-armv7l-imx
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7l-highbank.config: /dev/null temp-armv7l-highbank
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7l-omap.config: /dev/null temp-armv7l-omap
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7l-tegra
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7hl.config: /dev/null temp-armv7l-versatile
|
||||
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
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-armv7hl-tegra.config: /dev/null temp-armv7l-tegra
|
||||
kernel-$(VERSION)-armv7hl.config: /dev/null temp-armv7
|
||||
perl merge.pl $^ arm > $@
|
||||
|
||||
kernel-$(VERSION)-ppc.config: /dev/null temp-powerpc32-generic
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
From ae023b2795d36f0f077e157428eb7eafa29ee412 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Mon, 21 Jan 2013 13:12:57 +0200
|
||||
Subject: [PATCH] Revert "iwlwifi: fix the reclaimed packet tracking upon
|
||||
flush queue"
|
||||
|
||||
This reverts commit f590dcec944552f9a4a61155810f3abd17d6465d
|
||||
which has been reported to cause issues.
|
||||
|
||||
See https://lkml.org/lkml/2013/1/20/4 for further details.
|
||||
|
||||
Cc: stable@vger.kernel.org [3.7]
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/dvm/tx.c | 24 +++++++-----------------
|
||||
1 files changed, 7 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
index 31534f7..2797964 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
@@ -1153,6 +1153,13 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
||||
next_reclaimed = ssn;
|
||||
}
|
||||
|
||||
+ if (tid != IWL_TID_NON_QOS) {
|
||||
+ priv->tid_data[sta_id][tid].next_reclaimed =
|
||||
+ next_reclaimed;
|
||||
+ IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
|
||||
+ next_reclaimed);
|
||||
+ }
|
||||
+
|
||||
iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs);
|
||||
|
||||
iwlagn_check_ratid_empty(priv, sta_id, tid);
|
||||
@@ -1203,28 +1210,11 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
||||
if (!is_agg)
|
||||
iwlagn_non_agg_tx_status(priv, ctx, hdr->addr1);
|
||||
|
||||
- /*
|
||||
- * W/A for FW bug - the seq_ctl isn't updated when the
|
||||
- * queues are flushed. Fetch it from the packet itself
|
||||
- */
|
||||
- if (!is_agg && status == TX_STATUS_FAIL_FIFO_FLUSHED) {
|
||||
- next_reclaimed = le16_to_cpu(hdr->seq_ctrl);
|
||||
- next_reclaimed =
|
||||
- SEQ_TO_SN(next_reclaimed + 0x10);
|
||||
- }
|
||||
-
|
||||
is_offchannel_skb =
|
||||
(info->flags & IEEE80211_TX_CTL_TX_OFFCHAN);
|
||||
freed++;
|
||||
}
|
||||
|
||||
- if (tid != IWL_TID_NON_QOS) {
|
||||
- priv->tid_data[sta_id][tid].next_reclaimed =
|
||||
- next_reclaimed;
|
||||
- IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
|
||||
- next_reclaimed);
|
||||
- }
|
||||
-
|
||||
WARN_ON(!is_agg && freed != 1);
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.6.5
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
|
||||
index 3ed80b2..17fc718 100644
|
||||
--- a/drivers/acpi/sleep.c
|
||||
+++ b/drivers/acpi/sleep.c
|
||||
@@ -390,6 +390,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
|
||||
},
|
||||
{
|
||||
.callback = init_nvs_nosave,
|
||||
+ .ident = "Sony Vaio VGN-FW21E",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW21E"),
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ .callback = init_nvs_nosave,
|
||||
.ident = "Sony Vaio VGN-SR11M",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
||||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
|
||||
index 0e46fae..6d9a3ab 100644
|
||||
--- a/drivers/acpi/sleep.c
|
||||
+++ b/drivers/acpi/sleep.c
|
||||
@@ -398,6 +398,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
|
||||
},
|
||||
{
|
||||
.callback = init_nvs_nosave,
|
||||
+ .ident = "Sony Vaio VPCEB17FX",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "VPCEB17FX"),
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ .callback = init_nvs_nosave,
|
||||
.ident = "Sony Vaio VGN-SR11M",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
|
@ -0,0 +1,25 @@
|
|||
From 7673be51f16e978a438bca8ac1bf9e939b7ed7a6 Mon Sep 17 00:00:00 2001
|
||||
From: Yunkang Tang <yunkang.tang@cn.alps.com>
|
||||
Date: Thu, 24 Oct 2013 13:39:08 +0800
|
||||
Subject: [PATCH] Support for Dell XT2 model
|
||||
|
||||
Signed-off-by: Yunkang Tang <yunkang.tang@cn.alps.com>
|
||||
---
|
||||
drivers/input/mouse/alps.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index ca7a26f..24b3626 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -103,6 +103,7 @@ static const struct alps_model_info alps_model_data[] = {
|
||||
/* Dell Latitude E5500, E6400, E6500, Precision M4400 */
|
||||
{ { 0x62, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf,
|
||||
ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },
|
||||
+ { { 0x73, 0x00, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_DUALPOINT }, /* Dell XT2 */
|
||||
{ { 0x73, 0x02, 0x50 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */
|
||||
{ { 0x52, 0x01, 0x14 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff,
|
||||
ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */
|
||||
--
|
||||
1.8.1.2
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
Bugzilla: 1011362
|
||||
Upstream-status: queued for 3.13
|
||||
|
||||
From b54629e226d196e802abdd30c5e34f2a47cddcf2 Mon Sep 17 00:00:00 2001
|
||||
From: hahnjo <hahnjo@hahnjo.de>
|
||||
Date: Tue, 12 Nov 2013 17:19:24 +0000
|
||||
Subject: alx: Reset phy speed after resume
|
||||
|
||||
This fixes bug 62491 (https://bugzilla.kernel.org/show_bug.cgi?id=62491).
|
||||
After resuming some users got the following error flooding the kernel log:
|
||||
alx 0000:02:00.0: invalid PHY speed/duplex: 0xffff
|
||||
|
||||
Signed-off-by: Jonas Hahnfeld <linux@hahnjo.de>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
(limited to 'drivers/net/ethernet/atheros/alx')
|
||||
|
||||
diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c
|
||||
index 5aa5e81..c3c4c26 100644
|
||||
--- a/drivers/net/ethernet/atheros/alx/main.c
|
||||
+++ b/drivers/net/ethernet/atheros/alx/main.c
|
||||
@@ -1388,6 +1388,9 @@ static int alx_resume(struct device *dev)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
struct alx_priv *alx = pci_get_drvdata(pdev);
|
||||
+ struct alx_hw *hw = &alx->hw;
|
||||
+
|
||||
+ alx_reset_phy(hw);
|
||||
|
||||
if (!netif_running(alx->dev))
|
||||
return 0;
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -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);
|
|
@ -0,0 +1,21 @@
|
|||
X-Git-Url: http://git.linaro.org/gitweb?p=people%2Fahs3%2Farndale-acpi.git;a=blobdiff_plain;f=drivers%2Fnet%2Fethernet%2F8390%2Fax88796.c;fp=drivers%2Fnet%2Fethernet%2F8390%2Fax88796.c;h=763e575c82bc5d24e1927ad685dfbdd7a0eaa19e;hp=70dba5d01ad3cc8178318f9976a5922894a86859;hb=fe8e7c500d3d25234759351096d457b6e557ebd9;hpb=af28003b46fa7b2c5d7b52e0d4bc8f725a6305f1
|
||||
|
||||
diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
|
||||
index 70dba5d..763e575 100644
|
||||
--- a/drivers/net/ethernet/8390/ax88796.c
|
||||
+++ b/drivers/net/ethernet/8390/ax88796.c
|
||||
@@ -828,7 +828,14 @@ static int ax_probe(struct platform_device *pdev)
|
||||
struct ei_device *ei_local;
|
||||
struct ax_device *ax;
|
||||
struct resource *irq, *mem, *mem2;
|
||||
+#ifndef CONFIG_ARM_LPAE
|
||||
+ /* LPAE breaks this code as __aeabi_uldivmod for 64-bit
|
||||
+ * is not supported in lib1funcs.s yet
|
||||
+ */
|
||||
unsigned long mem_size, mem2_size = 0;
|
||||
+#else
|
||||
+ u32 mem_size, mem2_size = 0;
|
||||
+#endif
|
||||
int ret = 0;
|
||||
|
||||
dev = ax__alloc_ei_netdev(sizeof(struct ax_device));
|
|
@ -0,0 +1,14 @@
|
|||
diff -urNp linux-3.9.4-300.fc19.armv7hl_orig/drivers/video/omap2/dss/core.c linux-3.9.4-300.fc19.armv7hl/drivers/video/omap2/dss/core.c
|
||||
--- linux-3.9.4-300.fc19.armv7hl_orig/drivers/video/omap2/dss/core.c 2013-04-28 20:36:01.000000000 -0400
|
||||
+++ linux-3.9.4-300.fc19.armv7hl/drivers/video/omap2/dss/core.c 2013-05-31 12:24:07.711334359 -0400
|
||||
@@ -596,6 +596,9 @@ static int __init omap_dss_init(void)
|
||||
{
|
||||
int r;
|
||||
|
||||
+ /* hack to load panel-tfp410 driver */
|
||||
+ request_module("panel-tfp410");
|
||||
+
|
||||
r = omap_dss_bus_register();
|
||||
if (r)
|
||||
return r;
|
||||
Binary files linux-3.9.4-300.fc19.armv7hl_orig/drivers/video/omap2/dss/.Makefile.swp and linux-3.9.4-300.fc19.armv7hl/drivers/video/omap2/dss/.Makefile.swp differ
|
|
@ -1,10 +0,0 @@
|
|||
--- linux-2.6.42.noarch/drivers/staging/nvec/Kconfig.orig 2012-02-02 08:16:12.512727480 -0600
|
||||
+++ linux-2.6.42.noarch/drivers/staging/nvec/Kconfig 2012-02-01 18:44:56.674990109 -0600
|
||||
@@ -1,6 +1,6 @@
|
||||
config MFD_NVEC
|
||||
bool "NV Tegra Embedded Controller SMBus Interface"
|
||||
- depends on I2C && GPIOLIB && ARCH_TEGRA
|
||||
+ depends on I2C && GPIOLIB && ARCH_TEGRA && MFD_CORE=y
|
||||
help
|
||||
Say Y here to enable support for a nVidia compliant embedded
|
||||
controller.
|
|
@ -1,11 +0,0 @@
|
|||
--- linux-3.5.0-0.rc0.git3.1.fc18.armv7hl/drivers/mmc/host/sdhci-tegra.c.orig 2012-05-23 06:59:19.797302757 -0500
|
||||
+++ linux-3.5.0-0.rc0.git3.1.fc18.armv7hl/drivers/mmc/host/sdhci-tegra.c 2012-05-22 15:26:07.154823359 -0500
|
||||
@@ -190,7 +190,7 @@
|
||||
#endif
|
||||
{}
|
||||
};
|
||||
-MODULE_DEVICE_TABLE(of, sdhci_dt_ids);
|
||||
+MODULE_DEVICE_TABLE(of, sdhci_tegra_dt_match);
|
||||
|
||||
static struct tegra_sdhci_platform_data * __devinit sdhci_tegra_dt_parse_pdata(
|
||||
struct platform_device *pdev)
|
|
@ -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,
|
|
@ -0,0 +1,155 @@
|
|||
commit 7eacd03810960823393521063734fc8188446bca
|
||||
Author: Neil Horman <nhorman@tuxdriver.com>
|
||||
Date: Fri Sep 13 11:05:33 2013 -0400
|
||||
|
||||
bonding: Make alb learning packet interval configurable
|
||||
|
||||
running bonding in ALB mode requires that learning packets be sent periodically,
|
||||
so that the switch knows where to send responding traffic. However, depending
|
||||
on switch configuration, there may not be any need to send traffic at the
|
||||
default rate of 3 packets per second, which represents little more than wasted
|
||||
data. Allow the ALB learning packet interval to be made configurable via sysfs
|
||||
|
||||
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
|
||||
Acked-by: Acked-by: Veaceslav Falico <vfalico@redhat.com>
|
||||
CC: Jay Vosburgh <fubar@us.ibm.com>
|
||||
CC: Andy Gospodarek <andy@greyhouse.net>
|
||||
CC: "David S. Miller" <davem@davemloft.net>
|
||||
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt
|
||||
index 87bbcfe..9b28e71 100644
|
||||
--- a/Documentation/networking/bonding.txt
|
||||
+++ b/Documentation/networking/bonding.txt
|
||||
@@ -1362,6 +1362,12 @@ To add ARP targets:
|
||||
To remove an ARP target:
|
||||
# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
|
||||
|
||||
+To configure the interval between learning packet transmits:
|
||||
+# echo 12 > /sys/class/net/bond0/bonding/lp_interval
|
||||
+ NOTE: the lp_inteval is the number of seconds between instances where
|
||||
+the bonding driver sends learning packets to each slaves peer switch. The
|
||||
+default interval is 1 second.
|
||||
+
|
||||
Example Configuration
|
||||
---------------------
|
||||
We begin with the same example that is shown in section 3.3,
|
||||
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
|
||||
index 91f179d..f428ef57 100644
|
||||
--- a/drivers/net/bonding/bond_alb.c
|
||||
+++ b/drivers/net/bonding/bond_alb.c
|
||||
@@ -1472,7 +1472,7 @@ void bond_alb_monitor(struct work_struct *work)
|
||||
bond_info->lp_counter++;
|
||||
|
||||
/* send learning packets */
|
||||
- if (bond_info->lp_counter >= BOND_ALB_LP_TICKS) {
|
||||
+ if (bond_info->lp_counter >= BOND_ALB_LP_TICKS(bond)) {
|
||||
/* change of curr_active_slave involves swapping of mac addresses.
|
||||
* in order to avoid this swapping from happening while
|
||||
* sending the learning packets, the curr_slave_lock must be held for
|
||||
diff --git a/drivers/net/bonding/bond_alb.h b/drivers/net/bonding/bond_alb.h
|
||||
index 28d8e4c..c5eff5d 100644
|
||||
--- a/drivers/net/bonding/bond_alb.h
|
||||
+++ b/drivers/net/bonding/bond_alb.h
|
||||
@@ -36,14 +36,15 @@ struct slave;
|
||||
* Used for division - never set
|
||||
* to zero !!!
|
||||
*/
|
||||
-#define BOND_ALB_LP_INTERVAL 1 /* In seconds, periodic send of
|
||||
- * learning packets to the switch
|
||||
- */
|
||||
+#define BOND_ALB_DEFAULT_LP_INTERVAL 1
|
||||
+#define BOND_ALB_LP_INTERVAL(bond) (bond->params.lp_interval) /* In seconds, periodic send of
|
||||
+ * learning packets to the switch
|
||||
+ */
|
||||
|
||||
#define BOND_TLB_REBALANCE_TICKS (BOND_TLB_REBALANCE_INTERVAL \
|
||||
* ALB_TIMER_TICKS_PER_SEC)
|
||||
|
||||
-#define BOND_ALB_LP_TICKS (BOND_ALB_LP_INTERVAL \
|
||||
+#define BOND_ALB_LP_TICKS(bond) (BOND_ALB_LP_INTERVAL(bond) \
|
||||
* ALB_TIMER_TICKS_PER_SEC)
|
||||
|
||||
#define TLB_HASH_TABLE_SIZE 256 /* The size of the clients hash table.
|
||||
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
|
||||
index 72df399..55bbb8b 100644
|
||||
--- a/drivers/net/bonding/bond_main.c
|
||||
+++ b/drivers/net/bonding/bond_main.c
|
||||
@@ -4416,6 +4416,7 @@ static int bond_check_params(struct bond_params *params)
|
||||
params->all_slaves_active = all_slaves_active;
|
||||
params->resend_igmp = resend_igmp;
|
||||
params->min_links = min_links;
|
||||
+ params->lp_interval = BOND_ALB_DEFAULT_LP_INTERVAL;
|
||||
|
||||
if (primary) {
|
||||
strncpy(params->primary, primary, IFNAMSIZ);
|
||||
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
|
||||
index eeab40b..c29b836 100644
|
||||
--- a/drivers/net/bonding/bond_sysfs.c
|
||||
+++ b/drivers/net/bonding/bond_sysfs.c
|
||||
@@ -1699,6 +1699,44 @@ out:
|
||||
static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR,
|
||||
bonding_show_resend_igmp, bonding_store_resend_igmp);
|
||||
|
||||
+
|
||||
+static ssize_t bonding_show_lp_interval(struct device *d,
|
||||
+ struct device_attribute *attr,
|
||||
+ char *buf)
|
||||
+{
|
||||
+ struct bonding *bond = to_bond(d);
|
||||
+ return sprintf(buf, "%d\n", bond->params.lp_interval);
|
||||
+}
|
||||
+
|
||||
+static ssize_t bonding_store_lp_interval(struct device *d,
|
||||
+ struct device_attribute *attr,
|
||||
+ const char *buf, size_t count)
|
||||
+{
|
||||
+ struct bonding *bond = to_bond(d);
|
||||
+ int new_value, ret = count;
|
||||
+
|
||||
+ if (sscanf(buf, "%d", &new_value) != 1) {
|
||||
+ pr_err("%s: no lp interval value specified.\n",
|
||||
+ bond->dev->name);
|
||||
+ ret = -EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (new_value <= 0) {
|
||||
+ pr_err ("%s: lp_interval must be between 1 and %d\n",
|
||||
+ bond->dev->name, INT_MAX);
|
||||
+ ret = -EINVAL;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ bond->params.lp_interval = new_value;
|
||||
+out:
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR,
|
||||
+ bonding_show_lp_interval, bonding_store_lp_interval);
|
||||
+
|
||||
static struct attribute *per_bond_attrs[] = {
|
||||
&dev_attr_slaves.attr,
|
||||
&dev_attr_mode.attr,
|
||||
@@ -1729,6 +1767,7 @@ static struct attribute *per_bond_attrs[] = {
|
||||
&dev_attr_all_slaves_active.attr,
|
||||
&dev_attr_resend_igmp.attr,
|
||||
&dev_attr_min_links.attr,
|
||||
+ &dev_attr_lp_interval.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
|
||||
index 7ad8bd5..03cf3fd 100644
|
||||
--- a/drivers/net/bonding/bonding.h
|
||||
+++ b/drivers/net/bonding/bonding.h
|
||||
@@ -176,6 +176,7 @@ struct bond_params {
|
||||
int tx_queues;
|
||||
int all_slaves_active;
|
||||
int resend_igmp;
|
||||
+ int lp_interval;
|
||||
};
|
||||
|
||||
struct bond_parm_tbl {
|
|
@ -0,0 +1,83 @@
|
|||
Bugzilla: 1025770
|
||||
Upstream-status: 3.13 (commit 859828c0ea476b42f3a)
|
||||
|
||||
From 1a62121ead27a218d4b02b7130a6f5f6ca9c247e Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Pirko <jiri@resnulli.us>
|
||||
Date: Thu, 5 Dec 2013 16:27:37 +0100
|
||||
Subject: [PATCH] br: fix use of ->rx_handler_data in code executed on
|
||||
non-rx_handler path
|
||||
|
||||
br_stp_rcv() is reached by non-rx_handler path. That means there is no
|
||||
guarantee that dev is bridge port and therefore simple NULL check of
|
||||
->rx_handler_data is not enough. There is need to check if dev is really
|
||||
bridge port and since only rcu read lock is held here, do it by checking
|
||||
->rx_handler pointer.
|
||||
|
||||
Note that synchronize_net() in netdev_rx_handler_unregister() ensures
|
||||
this approach as valid.
|
||||
|
||||
Introduced originally by:
|
||||
commit f350a0a87374418635689471606454abc7beaa3a
|
||||
"bridge: use rx_handler_data pointer to store net_bridge_port pointer"
|
||||
|
||||
Fixed but not in the best way by:
|
||||
commit b5ed54e94d324f17c97852296d61a143f01b227a
|
||||
"bridge: fix RCU races with bridge port"
|
||||
|
||||
Reintroduced by:
|
||||
commit 716ec052d2280d511e10e90ad54a86f5b5d4dcc2
|
||||
"bridge: fix NULL pointer deref of br_port_get_rcu"
|
||||
|
||||
Please apply to stable trees as well. Thanks.
|
||||
|
||||
RH bugzilla reference: https://bugzilla.redhat.com/show_bug.cgi?id=1025770
|
||||
|
||||
Reported-by: Laine Stump <laine@redhat.com>
|
||||
Debugged-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
|
||||
Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Acked-by: Eric Dumazet <edumazet@google.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/bridge/br_private.h | 10 ++++++++++
|
||||
net/bridge/br_stp_bpdu.c | 2 +-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
|
||||
index e14c33b..9a63c42 100644
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -442,6 +442,16 @@ extern netdev_features_t br_features_recompute(struct net_bridge *br,
|
||||
extern int br_handle_frame_finish(struct sk_buff *skb);
|
||||
extern rx_handler_result_t br_handle_frame(struct sk_buff **pskb);
|
||||
|
||||
+static inline bool br_rx_handler_check_rcu(const struct net_device *dev)
|
||||
+{
|
||||
+ return rcu_dereference(dev->rx_handler) == br_handle_frame;
|
||||
+}
|
||||
+
|
||||
+static inline struct net_bridge_port *br_port_get_check_rcu(const struct net_device *dev)
|
||||
+{
|
||||
+ return br_rx_handler_check_rcu(dev) ? br_port_get_rcu(dev) : NULL;
|
||||
+}
|
||||
+
|
||||
/* br_ioctl.c */
|
||||
extern int br_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
|
||||
extern int br_ioctl_deviceless_stub(struct net *net, unsigned int cmd, void __user *arg);
|
||||
diff --git a/net/bridge/br_stp_bpdu.c b/net/bridge/br_stp_bpdu.c
|
||||
index 8660ea3..bdb459d 100644
|
||||
--- a/net/bridge/br_stp_bpdu.c
|
||||
+++ b/net/bridge/br_stp_bpdu.c
|
||||
@@ -153,7 +153,7 @@ void br_stp_rcv(const struct stp_proto *proto, struct sk_buff *skb,
|
||||
if (buf[0] != 0 || buf[1] != 0 || buf[2] != 0)
|
||||
goto err;
|
||||
|
||||
- p = br_port_get_rcu(dev);
|
||||
+ p = br_port_get_check_rcu(dev);
|
||||
if (!p)
|
||||
goto err;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From dde2356c8466298bd77fa699e0ea296372eed47b Mon Sep 17 00:00:00 2001
|
||||
From: Sachin Prabhu <sprabhu@redhat.com>
|
||||
Date: Fri, 27 Sep 2013 17:35:42 +0000
|
||||
Subject: cifs: Allow LANMAN auth method for servers supporting unencapsulated authentication methods
|
||||
|
||||
This allows users to use LANMAN authentication on servers which support
|
||||
unencapsulated authentication.
|
||||
|
||||
The patch fixes a regression where users using plaintext authentication
|
||||
were no longer able to do so because of changed bought in by patch
|
||||
3f618223dc0bdcbc8d510350e78ee2195ff93768
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1011621
|
||||
|
||||
Reported-by: Panos Kavalagios <Panagiotis.Kavalagios@eurodyn.com>
|
||||
Reviewed-by: Jeff Layton <jlayton@redhat.com>
|
||||
Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
|
||||
Signed-off-by: Steve French <smfrench@gmail.com>
|
||||
---
|
||||
(limited to 'fs/cifs')
|
||||
|
||||
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
|
||||
index 352358d..e87387d 100644
|
||||
--- a/fs/cifs/sess.c
|
||||
+++ b/fs/cifs/sess.c
|
||||
@@ -500,9 +500,9 @@ select_sectype(struct TCP_Server_Info *server, enum securityEnum requested)
|
||||
return NTLMv2;
|
||||
if (global_secflags & CIFSSEC_MAY_NTLM)
|
||||
return NTLM;
|
||||
- /* Fallthrough */
|
||||
default:
|
||||
- return Unspecified;
|
||||
+ /* Fallthrough to attempt LANMAN authentication next */
|
||||
+ break;
|
||||
}
|
||||
case CIFS_NEGFLAVOR_LANMAN:
|
||||
switch (requested) {
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -1,231 +1,103 @@
|
|||
# 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_ARM_THUMB=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_SMP_ON_UP=y
|
||||
|
||||
CONFIG_KUSER_HELPERS=y
|
||||
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
|
||||
# CONFIG_COMMON_CLK_DEBUG is not set
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_NFS_FS=y
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
CONFIG_PWM=y
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
CONFIG_NR_CPUS=8
|
||||
CONFIG_ARM_DMA_USE_IOMMU=y
|
||||
|
||||
# CONFIG_FPE_NWFPE is not set
|
||||
CONFIG_FPE_FASTFPE=y
|
||||
# ARM AMBA generic HW
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_OC_ETM=y
|
||||
|
||||
# Generic ARM Errata
|
||||
CONFIG_ARM_ERRATA_720789=y
|
||||
CONFIG_ARM_ERRATA_751472=y
|
||||
# ARM VExpress
|
||||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
CONFIG_COMMON_CLK_VERSATILE=y
|
||||
CONFIG_I2C_VERSATILE=m
|
||||
CONFIG_POWER_RESET_VEXPRESS=y
|
||||
CONFIG_REGULATOR_VEXPRESS=m
|
||||
CONFIG_SENSORS_VEXPRESS=m
|
||||
|
||||
# Generic ARM config options
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
|
||||
CONFIG_ATAGS_PROC=y
|
||||
|
||||
# DeviceTree
|
||||
CONFIG_USE_OF=y
|
||||
# CONFIG_OF_SELFTEST is not set
|
||||
# Device tree
|
||||
CONFIG_DTC=y
|
||||
CONFIG_DMA_OF=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_DEVICE=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_I2C=m
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_MDIO=m
|
||||
CONFIG_OF_MTD=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OF_PCI_IRQ=m
|
||||
CONFIG_OF_PCI=m
|
||||
# CONFIG_OF_SELFTEST is not set
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
|
||||
# Generic options we want for ARM that aren't defualt
|
||||
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_GOV_LADDER is not set
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_STD_PARTITION=""
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
|
||||
CONFIG_THERMAL=y
|
||||
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
|
||||
CONFIG_CC_STACKPROTECTOR=y
|
||||
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=32768
|
||||
|
||||
# Generic HW for all ARM platforms
|
||||
CONFIG_LEDS=y
|
||||
CONFIG_LEDS_CPU=y
|
||||
CONFIG_LEDS_GPIO=m
|
||||
|
||||
CONFIG_LBDAF=y
|
||||
|
||||
CONFIG_RFKILL_GPIO=m
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=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=m
|
||||
|
||||
CONFIG_AX88796=m
|
||||
CONFIG_AX88796_93CX6=y
|
||||
CONFIG_SMC91X=m
|
||||
CONFIG_DM9000=m
|
||||
CONFIG_DM9000_DEBUGLEVEL=4
|
||||
# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
|
||||
CONFIG_SMC911X=m
|
||||
CONFIG_SMSC911X=m
|
||||
|
||||
CONFIG_MMC_SDHCI_PLTFM=m
|
||||
|
||||
# Generic GPIO options
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
|
||||
CONFIG_MTD=m
|
||||
CONFIG_MTD_TESTS=m
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
CONFIG_MTD_CHAR=m
|
||||
# MTD
|
||||
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_CHAR=m
|
||||
CONFIG_MTD_CFI=m
|
||||
CONFIG_MTD_CFI_INTELEXT=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_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_CFI_STAA=m
|
||||
CONFIG_MTD_OF_PARTS=m
|
||||
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
|
||||
CONFIG_MTD_PHYSMAP=m
|
||||
CONFIG_MTD_PHYSMAP_OF=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_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_OF_MTD=y
|
||||
|
||||
# CONFIG_SM_FTL is not set
|
||||
# GPIO
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_MDIO_GPIO=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_RFKILL_GPIO=m
|
||||
|
||||
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
|
||||
# MFD
|
||||
CONFIG_MFD_CORE=m
|
||||
|
||||
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
|
||||
CONFIG_SMC91X=m
|
||||
CONFIG_SMC911X=m
|
||||
|
||||
# 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!
|
||||
# CONFIG_CRYSTALHD 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
|
||||
|
||||
# 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_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_CS89x0 is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE is not set
|
||||
# CONFIG_XEN is not set
|
||||
# CONFIG_DRM_RCAR_DU is not set
|
||||
# CONFIG_DRM_SHMOBILE is not set
|
||||
# CONFIG_MMC_DW_SOCFPGA is not set
|
||||
# CONFIG_ARM_SMMU is not set
|
||||
# CONFIG_I2C_NOMADIK is not set
|
||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
# CONFIG_LEDS_RENESAS_TPU is not set
|
||||
# CONFIG_MMC_SDHCI_PXAV2 is not set
|
||||
# CONFIG_MMC_SDHCI_PXAV3 is not set
|
||||
# CONFIG_COMMON_CLK_SI5351 is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
CONFIG_ARCH_HIGHBANK=y
|
||||
# CONFIG_ARM_LPAE is not set
|
||||
# CONFIG_ARM_THUMBEE is not set
|
||||
CONFIG_SWP_EMULATE=y
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
# CONFIG_ARM_ERRATA_430973 is not set
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
# CONFIG_PL310_ERRATA_588369 is not set
|
||||
# CONFIG_PL310_ERRATA_727915 is not set
|
||||
# CONFIG_ARM_ERRATA_743622 is not set
|
||||
# CONFIG_PL310_ERRATA_753970 is not set
|
||||
# CONFIG_ARM_ERRATA_754322 is not set
|
||||
# CONFIG_PL310_ERRATA_769419 is not set
|
||||
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_NEON=y
|
||||
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_ATA_SFF=y
|
||||
|
||||
CONFIG_NET_CALXEDA_XGMAC=y
|
||||
|
||||
CONFIG_GPIO_PL061=y
|
||||
|
||||
CONFIG_SERIAL_AMBA_PL010=y
|
||||
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
|
||||
CONFIG_RTC_DRV_PL030=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
|
||||
# CONFIG_DVB_TDA1004X is not set
|
||||
# CONFIG_DVB_PLL is not set
|
||||
|
||||
# these were all requested to be disabled on highbank kernels by calxeda
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
# CONFIG_CAIF is not set
|
||||
# CONFIG_NFC is not set
|
||||
# CONFIG_MTD is not set
|
||||
# CONFIG_PARPORT is not set
|
||||
# CONFIG_ATM_DRIVERS is not set
|
||||
# CONFIG_WAN is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
# CONFIG_DRM is not set
|
||||
# CONFIG_SND is not set
|
||||
# end of list of requested disabled options
|
|
@ -1,88 +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_DMA=y
|
||||
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_PATA_IMX=m
|
||||
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_GPIO_MC9S08DZ60 is not set
|
||||
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=y
|
||||
|
||||
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_HAVE_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_PL310_ERRATA_769419=y
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
|
||||
# CONFIG_ARM_LPAE is not set
|
||||
# CONFIG_INPUT_GP2A is not set
|
||||
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
|
|
@ -1,30 +1,556 @@
|
|||
CONFIG_ARCH_KIRKWOOD=y
|
||||
CONFIG_ARCH_KIRKWOOD_DT=y
|
||||
# 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_ARM_THUMB=y
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_ARCH_MULTI_V7 is not set
|
||||
# CONFIG_OABI_COMPAT is not set
|
||||
# CONFIG_SMP is not set
|
||||
# CONFIG_VFP is not set
|
||||
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_SMP_ON_UP=y
|
||||
|
||||
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_PM=y
|
||||
CONFIG_PM_STD_PARTITION=""
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=32768
|
||||
|
||||
# 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
|
||||
CONFIG_SMC91X=m
|
||||
CONFIG_DM9000=m
|
||||
CONFIG_DM9000_DEBUGLEVEL=4
|
||||
# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
|
||||
CONFIG_SMC911X=m
|
||||
CONFIG_SMSC911X=m
|
||||
|
||||
CONFIG_SERIO_AMBAKMI=m
|
||||
CONFIG_I2C_NOMADIK=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
CONFIG_FB_ARMCLCD=m
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_MPCORE_WATCHDOG=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
|
||||
CONFIG_MMC_ARMMMCI=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_DW_DMAC_BIG_ENDIAN_IO is not set
|
||||
|
||||
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!
|
||||
# CONFIG_CRYSTALHD 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
|
||||
|
||||
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
|
||||
# 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_EZX_PCAP is not set
|
||||
|
||||
# CONFIG_EXTCON_ARIZONA is not set
|
||||
CONFIG_ARCH_KIRKWOOD=y
|
||||
CONFIG_ARCH_KIRKWOOD_DT=y
|
||||
|
||||
CONFIG_MACH_CLOUDBOX_DT=y
|
||||
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_DREAMPLUG_DT=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_READYNAS_DT=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
|
||||
|
@ -43,8 +569,55 @@ CONFIG_LEDS_NETXBIG=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_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_TI_DAC7512=m
|
||||
# CONFIG_LATTICE_ECP3_CONFIG is not set
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
CONFIG_SPI_ORION=m
|
||||
CONFIG_SPI_PXA2XX=m
|
||||
CONFIG_SPI_TOPCLIFF_PCH=m
|
||||
# CONFIG_SPI_DW_PCI is not set
|
||||
CONFIG_GPIO_RCAR=m
|
||||
# CONFIG_LCD_ILI922X is not set
|
||||
# CONFIG_LCD_LMS501KF03 is not set
|
||||
# CONFIG_LCD_HX8357 is not set
|
||||
CONFIG_USB_EHCI_HCD_ORION=m
|
||||
CONFIG_RTC_DRV_RX4581=m
|
||||
CONFIG_COMMON_CLK_SI5351=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
|
||||
|
||||
# FIXME
|
||||
# CONFIG_MACH_DB88F628X_BP_DT is not set
|
||||
# CONFIG_MACH_SHEEVAPLUG_DT is not set
|
||||
# CONFIG_PCI_MVEBU is not set
|
||||
# CONFIG_NFC_NCI_SPI is not set
|
||||
# CONFIG_ARM_CCI is not set
|
||||
# CONFIG_AHCI_IMX is not set
|
||||
# CONFIG_POWER_RESET_VEXPRESS is not set
|
||||
# CONFIG_MFD_WM8997 is not set
|
||||
# CONFIG_VEXPRESS_CONFIG is not set
|
||||
# CONFIG_DRM_RCAR_DU is not set
|
||||
# CONFIG_DRM_SHMOBILE is not set
|
||||
# CONFIG_MMC_DW_SOCFPGA is not set
|
||||
|
|
262
config-arm-omap
262
config-arm-omap
|
@ -1,262 +0,0 @@
|
|||
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
|
||||
CONFIG_OMAP_IOMMU=y
|
||||
CONFIG_OMAP3_EMU=y
|
||||
CONFIG_HWSPINLOCK_OMAP=m
|
||||
|
||||
#
|
||||
# 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_OMAPTI81XX is not set
|
||||
# CONFIG_SOC_OMAPAM33XX is not set
|
||||
# CONFIG_SOC_OMAPTI816X is not set
|
||||
CONFIG_OMAP_PACKAGE_CBB=y
|
||||
CONFIG_OMAP_PACKAGE_CBL=y
|
||||
CONFIG_OMAP_PACKAGE_CBS=y
|
||||
# CONFIG_OMAP4_ERRATA_I688 is not set
|
||||
|
||||
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
|
||||
|
||||
#
|
||||
# OMAP Board Type
|
||||
#
|
||||
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_OMAP3_TOUCHBOOK=y
|
||||
CONFIG_MACH_OMAP_3430SDP=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_MACH_NOKIA_RM680 is not set
|
||||
# CONFIG_MACH_NOKIA_RX51 is not set
|
||||
# CONFIG_MACH_TI8148EVM is not set
|
||||
CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL=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_HAVE_ARM_SCU=y
|
||||
CONFIG_HAVE_ARM_TWD=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_LOCAL_TIMERS=y
|
||||
CONFIG_HZ=128
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE=""
|
||||
# CONFIG_AUTO_ZRELADDR is not set
|
||||
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_ARCH_HAS_OPP=y
|
||||
CONFIG_PM_OPP=y
|
||||
|
||||
#
|
||||
# OMAP Hardware
|
||||
#
|
||||
CONFIG_TI_ST=m
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_MTD_NAND_OMAP2=y
|
||||
CONFIG_MTD_NAND_OMAP_PREFETCH=y
|
||||
CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y
|
||||
CONFIG_WL1251_SPI=m
|
||||
CONFIG_WL12XX_SPI=m
|
||||
CONFIG_WL12XX_SDIO_TEST=m
|
||||
CONFIG_INPUT_TWL4030_PWRBUTTON=m
|
||||
CONFIG_INPUT_TWL4030_VIBRA=m
|
||||
CONFIG_INPUT_TWL6040_VIBRA=m
|
||||
CONFIG_KEYBOARD_OMAP4=m
|
||||
CONFIG_TOUCHSCREEN_TI_TSCADC=m
|
||||
CONFIG_SERIAL_OMAP=y
|
||||
CONFIG_SERIAL_OMAP_CONSOLE=y
|
||||
CONFIG_OMAP_WATCHDOG=y
|
||||
CONFIG_TWL4030_CORE=y
|
||||
# CONFIG_TWL4030_MADC is not set
|
||||
CONFIG_TWL4030_POWER=y
|
||||
CONFIG_TWL4030_CODEC=y
|
||||
CONFIG_GPIO_TWL4030=m
|
||||
CONFIG_CHARGER_TWL4030=m
|
||||
# CONFIG_TWL6030_PWM is not set
|
||||
|
||||
CONFIG_MTD_ONENAND_OMAP2=y
|
||||
CONFIG_I2C_OMAP=y
|
||||
CONFIG_SPI_OMAP24XX=y
|
||||
# CONFIG_MFD_OMAP_USB_HOST is not set
|
||||
# CONFIG_MFD_WL1273_CORE is not set
|
||||
CONFIG_REGULATOR_TWL4030=y
|
||||
CONFIG_VIDEO_OMAP2_VOUT=m
|
||||
# CONFIG_VIDEO_OMAP3 is not set
|
||||
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM_OMAP=m
|
||||
# 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
|
||||
ONFIG_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 is not set
|
||||
|
||||
#
|
||||
# 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_SND_OMAP_SOC=y
|
||||
CONFIG_SND_OMAP_SOC_MCBSP=y
|
||||
CONFIG_SND_OMAP_SOC_MCPDM=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
|
||||
# Because alsa is modular http://www.spinics.net/lists/linux-omap/msg67307.html
|
||||
# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set
|
||||
CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
# CONFIG_SND_OMAP_SOC_RX51 is not set
|
||||
# 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_RADIO_WL128X
|
||||
|
||||
CONFIG_USB_OTG=y
|
||||
CONFIG_USB_EHCI_HCD_OMAP=y
|
||||
CONFIG_USB_MUSB_OMAP2PLUS=y
|
||||
CONFIG_USB_MUSB_HDRC=y
|
||||
CONFIG_MUSB_PIO_ONLY=y
|
||||
# CONFIG_USB_MUSB_DEBUG is not set
|
||||
#
|
||||
|
||||
# CONFIG_USB_GADGET_OMAP is not set
|
||||
# CONFIG_ISP1301_OMAP is not set
|
||||
CONFIG_MMC_OMAP=m
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
CONFIG_TWL4030_USB=y
|
||||
CONFIG_TWL6030_USB=y
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
|
||||
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_CRYPTO_DEV_OMAP_SHAM=m
|
||||
CONFIG_CRYPTO_DEV_OMAP_AES=m
|
|
@ -1,91 +0,0 @@
|
|||
CONFIG_ARCH_TEGRA=y
|
||||
|
||||
CONFIG_ARCH_TEGRA_2x_SOC=y
|
||||
# CONFIG_ARCH_TEGRA_3x_SOC is not set
|
||||
# CONFIG_ARM_LPAE is not set
|
||||
CONFIG_TEGRA_PCI=y
|
||||
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
|
||||
CONFIG_MACH_HARMONY=y
|
||||
CONFIG_MACH_KAEN=y
|
||||
CONFIG_MACH_PAZ00=y
|
||||
CONFIG_MACH_SEABOARD=y
|
||||
CONFIG_MACH_TEGRA_DT=y
|
||||
CONFIG_MACH_TRIMSLICE=y
|
||||
CONFIG_MACH_WARIO=y
|
||||
CONFIG_MACH_TEGRA_DT=y
|
||||
CONFIG_MACH_VENTANA=y
|
||||
|
||||
CONFIG_TEGRA_DEBUG_UARTD=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
|
||||
CONFIG_TEGRA_IOMMU_GART=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
|
||||
CONFIG_I2C_TEGRA=y
|
||||
|
||||
CONFIG_MMC_SDHCI_TEGRA=y
|
||||
|
||||
# CONFIG_RCU_BOOST is not set
|
||||
CONFIG_TEGRA_SYSTEM_DMA=y
|
||||
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
|
||||
CONFIG_ARM_THUMBEE=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||
CONFIG_CACHE_L2X0=y
|
||||
CONFIG_ARM_ERRATA_430973=y
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
CONFIG_ARM_ERRATA_742230=y
|
||||
# CONFIG_ARM_ERRATA_742231 is not set
|
||||
CONFIG_PL310_ERRATA_588369=y
|
||||
CONFIG_PL310_ERRATA_769419=y
|
||||
CONFIG_ARM_ERRATA_720789=y
|
||||
# CONFIG_PL310_ERRATA_727915 is not set
|
||||
# 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_LOCAL_TIMERS=y
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
# CONFIG_NEON is not set
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_KEYBOARD_TEGRA is not set
|
||||
# CONFIG_MPCORE_WATCHDOG is not set
|
||||
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_WM8903=m
|
||||
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
|
||||
# CONFIG_SND_SOC_TEGRA30_AHUB is not set
|
||||
# CONFIG_SND_SOC_TEGRA30_I2S is not set
|
||||
|
||||
CONFIG_MFD_NVEC=y
|
||||
CONFIG_KEYBOARD_NVEC=y
|
||||
CONFIG_SERIO_NVEC_PS2=y
|
||||
CONFIG_NVEC_POWER=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_NVEC_LEDS=y
|
||||
|
||||
CONFIG_CPU_PM=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
|
||||
#CONFIG_CRYPTO_DEV_TEGRA_AES=m
|
||||
|
||||
CONFIG_PL310_ERRATA_753970=y
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
|
||||
CONFIG_OF=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_PCI=y
|
||||
CONFIG_OF_PCI_IRQ=y
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_PLAT_VERSATILE_CLCD=y
|
||||
CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
|
||||
CONFIG_PLAT_VERSATILE=y
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
|
||||
CONFIG_CPU_V7=y
|
||||
CONFIG_CPU_32v6K=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_CPU_CP15=y
|
||||
CONFIG_CPU_CP15_MMU=y
|
||||
CONFIG_CPU_HAS_PMU=y
|
||||
|
||||
# Need to verify whether these are generic or vexpress specific
|
||||
CONFIG_ARM_AMBA=y
|
||||
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
|
||||
CONFIG_CPUSETS=y
|
||||
# CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 is not set
|
||||
# CONFIG_THUMB2_KERNEL is not set
|
||||
CONFIG_TICK_ONESHOT=y
|
||||
|
||||
CONFIG_ARM_ASM_UNIFIED=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
|
||||
CONFIG_ARM_ERRATA_720789=y
|
||||
CONFIG_ARM_ERRATA_751472=y
|
||||
CONFIG_ARM_ERRATA_753970=y
|
||||
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||
|
||||
CONFIG_ARM_THUMB=y
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
CONFIG_ARM_UNWIND=y
|
||||
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_ARMCLCD=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
|
||||
CONFIG_TOUCHSCREEN_ADS7846=m
|
||||
|
||||
CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
|
||||
|
||||
CONFIG_SERIO_AMBAKMI=m
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
|
||||
CONFIG_FB_ARMCLCD=m
|
||||
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_DW=m
|
||||
# CONFIG_MMC_DW_IDMAC is not set
|
||||
|
||||
# CONFIG_ARM_CHARLCD is not set
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_RTC_DRV_PL030=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
|
||||
CONFIG_I2C_VERSATILE=y
|
|
@ -0,0 +1,678 @@
|
|||
# ARM unified arch kernel
|
||||
|
||||
# CONFIG_ARCH_EXYNOS_MULTI is not set
|
||||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
CONFIG_ARCH_MVEBU=y
|
||||
CONFIG_ARCH_MXC=y
|
||||
CONFIG_ARCH_OMAP2PLUS=y
|
||||
CONFIG_ARCH_PICOXCELL=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_ARCH_SOCFPGA=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_VIRT 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
|
||||
|
||||
# Generic
|
||||
CONFIG_REMOTEPROC=m
|
||||
|
||||
# FIXME should be generic (I think it's enabled by default)
|
||||
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
|
||||
|
||||
# mvebu
|
||||
CONFIG_MACH_ARMADA_370_XP=y
|
||||
CONFIG_MACH_ARMADA_370=y
|
||||
CONFIG_MACH_ARMADA_XP=y
|
||||
|
||||
CONFIG_MVEBU_DEVBUS=y
|
||||
CONFIG_PCI_MVEBU=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
|
||||
CONFIG_MVEBU_MBUS=y
|
||||
CONFIG_ARMADA_THERMAL=m
|
||||
|
||||
# omap
|
||||
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
|
||||
# CONFIG_ARCH_OMAP2 is not set
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_SOC_OMAP5=y
|
||||
# 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_SOC_AM43XX=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_SOC_HAS_REALTIME_COUNTER=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_OMAP2PLUS_MBOX=m
|
||||
CONFIG_OMAP_MBOX_FWK=m
|
||||
CONFIG_OMAP_MBOX_KFIFO_SIZE=256
|
||||
CONFIG_OMAP_DM_TIMER=y
|
||||
CONFIG_OMAP_PM_NOOP=y
|
||||
CONFIG_DMA_OMAP=y
|
||||
CONFIG_OMAP_IOMMU=y
|
||||
CONFIG_OMAP_IOVMM=m
|
||||
CONFIG_HWSPINLOCK_OMAP=m
|
||||
CONFIG_OMAP3_EMU=y
|
||||
# CONFIG_OMAP3_SDRC_AC_TIMING is not set
|
||||
CONFIG_OMAP_WATCHDOG=m
|
||||
CONFIG_TWL4030_WATCHDOG=m
|
||||
|
||||
CONFIG_TI_ST=m
|
||||
CONFIG_TI_EDMA=y
|
||||
CONFIG_TI_SOC_THERMAL=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_TI_ABB=y
|
||||
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_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_OMAP_USB2=m
|
||||
CONFIG_OMAP_USB3=m
|
||||
CONFIG_USB_EHCI_HCD_OMAP=m
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
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_MMC_OMAP=y
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
CONFIG_RTC_DRV_MAX8907=m
|
||||
# CONFIG_RTC_DRV_TWL92330 is not set
|
||||
CONFIG_RTC_DRV_TWL4030=y
|
||||
CONFIG_RTC_DRV_OMAP=y
|
||||
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=m
|
||||
CONFIG_SPI_DAVINCI=m
|
||||
CONFIG_SPI_OMAP24XX=m
|
||||
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=m
|
||||
CONFIG_DRM_OMAP=m
|
||||
CONFIG_DRM_OMAP_NUM_CRTCS=2
|
||||
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
|
||||
|
||||
CONFIG_DISPLAY_ENCODER_TFP410=m
|
||||
CONFIG_DISPLAY_ENCODER_TPD12S015=m
|
||||
CONFIG_DISPLAY_CONNECTOR_DVI=m
|
||||
CONFIG_DISPLAY_CONNECTOR_HDMI=m
|
||||
CONFIG_DISPLAY_CONNECTOR_ANALOG_TV=m
|
||||
CONFIG_DISPLAY_PANEL_DPI=m
|
||||
CONFIG_DISPLAY_PANEL_DSI_CM=m
|
||||
CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
|
||||
CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m
|
||||
CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m
|
||||
CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m
|
||||
CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m
|
||||
|
||||
# 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_SND_SOC_PCM1792A=m
|
||||
CONFIG_RADIO_WL128X=m
|
||||
|
||||
CONFIG_OMAP_REMOTEPROC=m
|
||||
|
||||
# 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_MDIO_SUN4I=m
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
|
||||
# imx
|
||||
CONFIG_MXC_IRQ_PRIOR=y
|
||||
# CONFIG_MXC_DEBUG_BOARD is not set
|
||||
CONFIG_MACH_IMX51_DT=y
|
||||
# CONFIG_MACH_MX51_BABBAGE is not set
|
||||
# CONFIG_MACH_EUKREA_CPUIMX51SD is not set
|
||||
CONFIG_SOC_IMX53=y
|
||||
CONFIG_SOC_IMX6Q=y
|
||||
CONFIG_SOC_IMX6SL=y
|
||||
CONFIG_PATA_IMX=m
|
||||
CONFIG_USB_CHIPIDEA=m
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
# CONFIG_USB_CHIPIDEA_DEBUG is not set
|
||||
CONFIG_NET_VENDOR_FREESCALE=y
|
||||
CONFIG_FEC=m
|
||||
CONFIG_KEYBOARD_IMX=m
|
||||
CONFIG_SERIAL_IMX=y
|
||||
CONFIG_SERIAL_IMX_CONSOLE=y
|
||||
CONFIG_I2C_IMX=m
|
||||
CONFIG_SPI_IMX=m
|
||||
CONFIG_MFD_MC13783=m
|
||||
CONFIG_MFD_MC13XXX_SPI=m
|
||||
CONFIG_W1_MASTER_MXC=m
|
||||
CONFIG_IMX_WEIM=y
|
||||
CONFIG_IMX2_WDT=m
|
||||
CONFIG_CRYPTO_DEV_SAHARA=m
|
||||
# CONFIG_FB_MX3 is not set
|
||||
CONFIG_SND_IMX_SOC=m
|
||||
CONFIG_SND_SOC_FSL_SSI=m
|
||||
CONFIG_SND_SOC_FSL_UTILS=m
|
||||
CONFIG_SND_SOC_IMX_SSI=m
|
||||
CONFIG_SND_SOC_IMX_AUDMUX=m
|
||||
CONFIG_SND_SOC_IMX_PCM_FIQ=m
|
||||
CONFIG_SND_SOC_IMX_PCM_DMA=m
|
||||
CONFIG_SND_SOC_IMX_SGTL5000=m
|
||||
CONFIG_SND_SOC_IMX_WM8962=m
|
||||
CONFIG_SND_SOC_IMX_MC13783=m
|
||||
CONFIG_USB_EHCI_MXC=m
|
||||
CONFIG_USB_IMX21_HCD=m
|
||||
CONFIG_USB_MXS_PHY=m
|
||||
CONFIG_MMC_SDHCI_ESDHC_IMX=m
|
||||
CONFIG_MMC_MXC=m
|
||||
CONFIG_SPI_MXS=m
|
||||
CONFIG_RTC_DRV_IMXDI=m
|
||||
CONFIG_RTC_DRV_MXC=m
|
||||
# CONFIG_MX3_IPU is not set
|
||||
# CONFIG_MX3_IPU_IRQS is not set
|
||||
CONFIG_IMX_SDMA=m
|
||||
CONFIG_IMX_DMA=m
|
||||
CONFIG_AHCI_IMX=m
|
||||
# CONFIG_MXS_DMA is not set
|
||||
CONFIG_PWM_IMX=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_DRM_IMX=m
|
||||
CONFIG_DRM_IMX_FB_HELPER=m
|
||||
CONFIG_DRM_IMX_IPUV3_CORE=m
|
||||
CONFIG_DRM_IMX_IPUV3=m
|
||||
# CONFIG_DRM_IMX_LDB is not set
|
||||
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
|
||||
CONFIG_DRM_IMX_TVE=m
|
||||
CONFIG_VIDEO_CODA=m
|
||||
CONFIG_SENSORS_MC13783_ADC=m
|
||||
CONFIG_REGULATOR_MC13783=m
|
||||
CONFIG_REGULATOR_MC13892=m
|
||||
CONFIG_LEDS_MC13783=m
|
||||
CONFIG_RTC_DRV_MC13XXX=m
|
||||
|
||||
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_MACH_HREFV60=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
CONFIG_MACH_UX500_DT=y
|
||||
|
||||
CONFIG_ABX500_CORE=y
|
||||
CONFIG_UX500_DEBUG_UART=2
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_STE_DMA40=y
|
||||
CONFIG_HSEM_U8500=m
|
||||
CONFIG_PINCTRL_ABX500=y
|
||||
CONFIG_PINCTRL_AB8500=y
|
||||
CONFIG_I2C_NOMADIK=m
|
||||
CONFIG_KEYBOARD_NOMADIK=m
|
||||
CONFIG_DB8500_CPUFREQ_COOLING=m
|
||||
CONFIG_DB8500_THERMAL=y
|
||||
CONFIG_UX500_WATCHDOG=m
|
||||
CONFIG_INPUT_AB8500_PONKEY=m
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_AB8500_USB=m
|
||||
CONFIG_RTC_DRV_AB8500=m
|
||||
CONFIG_PWM_AB8500=m
|
||||
CONFIG_SND_SOC_UX500=m
|
||||
CONFIG_SND_SOC_UX500_PLAT_DMA=m
|
||||
CONFIG_SND_SOC_UX500_MACH_MOP500=m
|
||||
CONFIG_CLKSRC_DBX500_PRCMU=y
|
||||
CONFIG_CLKSRC_DBX500_PRCMU_SCHED_CLOCK=y
|
||||
CONFIG_CRYPTO_DEV_UX500=m
|
||||
CONFIG_CRYPTO_DEV_UX500_CRYP=m
|
||||
CONFIG_CRYPTO_DEV_UX500_HASH=m
|
||||
CONFIG_SENSORS_LIS3_I2C=m
|
||||
CONFIG_AB8500_BM=y
|
||||
CONFIG_AB8500_GPADC=y
|
||||
CONFIG_SENSORS_AB8500=m
|
||||
CONFIG_STE_MODEM_RPROC=m
|
||||
CONFIG_CW1200=m
|
||||
CONFIG_CW1200_WLAN_SDIO=m
|
||||
CONFIG_CW1200_WLAN_SPI=m
|
||||
CONFIG_UX500_WATCHDOG=m
|
||||
|
||||
# tegra
|
||||
CONFIG_ARCH_TEGRA_2x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_3x_SOC=y
|
||||
# CONFIG_ARCH_TEGRA_114_SOC is not set
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TEGRA20_MC=y
|
||||
CONFIG_TEGRA30_MC=y
|
||||
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
|
||||
CONFIG_TEGRA_PCI=y
|
||||
CONFIG_TEGRA_IOMMU_GART=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
|
||||
CONFIG_I2C_TEGRA=m
|
||||
|
||||
CONFIG_TEGRA_SYSTEM_DMA=y
|
||||
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
|
||||
CONFIG_TEGRA_AHB=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
# CONFIG_SPI_TEGRA114 is not set
|
||||
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=m
|
||||
CONFIG_RTC_DRV_TEGRA=m
|
||||
|
||||
CONFIG_SND_SOC_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA_ALC5632=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5640=m
|
||||
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
|
||||
CONFIG_SND_SOC_TEGRA_WM8753=m
|
||||
CONFIG_SND_SOC_TEGRA_WM8903=m
|
||||
CONFIG_SND_SOC_TEGRA_WM9712=m
|
||||
CONFIG_SND_SOC_TEGRA20_AC97=m
|
||||
CONFIG_SND_SOC_TEGRA30_AHUB=m
|
||||
CONFIG_SND_SOC_TEGRA30_I2S=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=y
|
||||
CONFIG_GPIO_TPS6586X=y
|
||||
CONFIG_REGULATOR_TPS6586X=m
|
||||
CONFIG_RTC_DRV_TPS6586X=m
|
||||
|
||||
CONFIG_PWM_TEGRA=m
|
||||
|
||||
CONFIG_TEGRA_HOST1X=m
|
||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||
|
||||
CONFIG_DRM_TEGRA=y
|
||||
# CONFIG_DRM_TEGRA_STAGING is not set
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
|
||||
CONFIG_CRYPTO_DEV_TEGRA_AES=m
|
||||
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
|
||||
# OLPC XO
|
||||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
# Zynq-7xxx
|
||||
# likely needs usb/mmc still
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_COMMON_CLK_AXI_CLKGEN=m
|
||||
CONFIG_CPU_IDLE_ZYNQ=y
|
||||
CONFIG_LATTICE_ECP3_CONFIG=m
|
||||
CONFIG_NET_VENDOR_XILINX=y
|
||||
CONFIG_XILINX_EMACLITE=m
|
||||
CONFIG_GPIO_XILINX=y
|
||||
CONFIG_I2C_XILINX=m
|
||||
CONFIG_SPI_XILINX=m
|
||||
|
||||
# MMC/SD
|
||||
CONFIG_MMC_TMIO=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MMC_SDHCI_PXAV2=m
|
||||
|
||||
# Multi function devices
|
||||
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_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
|
||||
|
||||
# usb gadget
|
||||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_USB_FSL_USB2 is not set
|
||||
# CONFIG_USB_FUSB300 is not set
|
||||
# CONFIG_USB_RENESAS_USBHS is not set
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
# CONFIG_USB_GADGET_VBUS_DRAW is not set
|
||||
# CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS is not set
|
||||
# CONFIG_USB_FOTG210_UDC is not set
|
||||
# CONFIG_USB_R8A66597 is not set
|
||||
# CONFIG_USB_PXA27X is not set
|
||||
# CONFIG_USB_MV_UDC is not set
|
||||
# CONFIG_USB_MV_U3D is not set
|
||||
# CONFIG_USB_M66592 is not set
|
||||
# CONFIG_USB_AMD5536UDC is not set
|
||||
# CONFIG_USB_NET2272 is not set
|
||||
# CONFIG_USB_NET2280 is not set
|
||||
# CONFIG_USB_GOKU is not set
|
||||
# CONFIG_USB_EG20T is not set
|
||||
# CONFIG_USB_DUMMY_HCD is not set
|
||||
# CONFIG_USB_ZERO_HNPTEST is not set
|
||||
# CONFIG_USB_ETH_RNDIS is not set
|
||||
# CONFIG_USB_ETH_EEM 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_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_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_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
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
# CONFIG_CRYPTO_DEV_UX500_DEBUG is not set
|
||||
# CONFIG_AB8500_DEBUG is not set
|
||||
|
||||
# CONFIG_SOC_VF610 is not set
|
||||
# CONFIG_ARM_CCI is not set
|
||||
# CONFIG_GPIO_XILINX is not set
|
||||
# CONFIG_SERIAL_UARTLITE is not set
|
||||
|
|
@ -0,0 +1,461 @@
|
|||
# arm configs for sharing between armv7 and armv7-lpae
|
||||
# Generic ARM config options
|
||||
CONFIG_ARM=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_V7=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_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_ATAGS=y
|
||||
CONFIG_ATAGS_PROC=y
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_XZ_DEC_ARMTHUMB=y
|
||||
CONFIG_ARCH_HAS_TICK_BROADCAST=y
|
||||
CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
|
||||
|
||||
# CONFIG_MCPM is not set
|
||||
# CONFIG_OABI_COMPAT 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
|
||||
|
||||
# Platforms enabled/disabled globally on ARMv7
|
||||
CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
||||
# CONFIG_ARCH_BCM is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_STI is not set
|
||||
# CONFIG_ARCH_SIRF is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_WM8850 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
|
||||
|
||||
# errata
|
||||
# v5/v6
|
||||
# CONFIG_ARM_ERRATA_326103 is not set
|
||||
# CONFIG_ARM_ERRATA_411920 is not set
|
||||
# Cortex-A8
|
||||
CONFIG_ARM_ERRATA_430973=y
|
||||
# The following two don't work with MP
|
||||
# CONFIG_ARM_ERRATA_458693 is not set
|
||||
# CONFIG_ARM_ERRATA_460075 is not set
|
||||
# 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
|
||||
CONFIG_PJ4B_ERRATA_4742=y
|
||||
# Cortex-A15
|
||||
# CONFIG_ARM_ERRATA_798181 is not set
|
||||
|
||||
# generic that deviates from or should be merged into config-generic
|
||||
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
|
||||
|
||||
# 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_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=32768
|
||||
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
|
||||
CONFIG_LOCAL_TIMERS=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_ROOT_NFS=y
|
||||
|
||||
CONFIG_LBDAF=y
|
||||
|
||||
# Device tree
|
||||
CONFIG_USE_OF=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_I2C_MUX_PINCTRL=m
|
||||
|
||||
# General vexpress ARM drivers
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
|
||||
CONFIG_SERIO_AMBAKMI=m
|
||||
CONFIG_SERIAL_AMBA_PL010=y
|
||||
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_MRST_MAX3110=m
|
||||
|
||||
CONFIG_RTC_DRV_PL030=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
|
||||
CONFIG_PL330_DMA=m
|
||||
CONFIG_AMBA_PL08X=y
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_FB_ARMCLCD=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_USB_ISP1760_HCD=m
|
||||
# CONFIG_USB_EHCI_HCD_ORION is not set
|
||||
|
||||
# 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=y
|
||||
# CONFIG_PINCTRL_SAMSUNG is not set
|
||||
# CONFIG_PINCTRL_EXYNOS4 is not set
|
||||
|
||||
# GPIO
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=m
|
||||
CONFIG_EXTCON_GPIO=m
|
||||
# CONFIG_GPIO_EM is not set
|
||||
CONFIG_GPIO_ADNP=m
|
||||
CONFIG_GPIO_MCP23S08=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
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_GPIO_MAX7301=m
|
||||
CONFIG_GPIO_MC33880=m
|
||||
CONFIG_GPIO_74X164=m
|
||||
CONFIG_GPIO_TPS65912=m
|
||||
# CONFIG_GPIO_RCAR is not set
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
CONFIG_CHARGER_GPIO=m
|
||||
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=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
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
|
||||
CONFIG_NFC_NCI_SPI=y
|
||||
|
||||
# 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_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_SPI=m
|
||||
|
||||
# Designware (used by numerous devices)
|
||||
CONFIG_MMC_DW=m
|
||||
CONFIG_MMC_DW_PLTFM=m
|
||||
CONFIG_MMC_DW_PCI=m
|
||||
CONFIG_SPI_DW_MMIO=m
|
||||
CONFIG_SPI_DW_PCI=m
|
||||
CONFIG_MMC_DW_SOCFPGA=m
|
||||
# CONFIG_MMC_DW_EXYNOS is not set
|
||||
# CONFIG_MMC_DW_IDMAC is not set
|
||||
CONFIG_USB_DWC2=m
|
||||
CONFIG_USB_DWC3=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
|
||||
# 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_SOC_DMAENGINE_PCM=y
|
||||
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
|
||||
# Displays
|
||||
|
||||
# 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_ILI922X=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
|
||||
|
||||
# Input
|
||||
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
|
||||
|
||||
# Display
|
||||
|
||||
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
|
||||
|
||||
# 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_BPF_JIT=y
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||
|
||||
# CONFIG_PATA_PLATFORM is not set
|
||||
|
||||
# CONFIG_DRM_EXYNOS is not set
|
||||
# CONFIG_DRM_TILCDC is not set
|
||||
# CONFIG_DRM_IMX is not set
|
||||
# CONFIG_AHCI_IMX 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_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_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
|
||||
# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
|
||||
# CONFIG_SPI_TOPCLIFF_PCH is not set
|
||||
# CONFIG_SPI_PXA2XX 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_DEBUG_USER is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
# CONFIG_DEBUG_PINCTRL is not set
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
|
||||
# FIX ME
|
||||
# CONFIG_FB_XILINX is not set
|
13
config-debug
13
config-debug
|
@ -5,6 +5,7 @@ CONFIG_SND_PCM_XRUN_DEBUG=y
|
|||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
||||
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y
|
||||
CONFIG_DEBUG_RT_MUTEXES=y
|
||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||
CONFIG_PROVE_LOCKING=y
|
||||
|
@ -64,6 +65,8 @@ CONFIG_DEBUG_CREDENTIALS=y
|
|||
|
||||
CONFIG_EXT4_DEBUG=y
|
||||
|
||||
CONFIG_XFS_WARN=y
|
||||
|
||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
||||
|
||||
# off in both production debug and nodebug builds,
|
||||
|
@ -82,6 +85,8 @@ CONFIG_ATH_DEBUG=y
|
|||
CONFIG_CARL9170_DEBUGFS=y
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||
|
||||
CONFIG_RTLWIFI_DEBUG=y
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||
|
||||
CONFIG_DMADEVICES_DEBUG=y
|
||||
|
@ -96,9 +101,11 @@ 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_TEST_STRING_HELPERS=m
|
||||
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
|
@ -112,3 +119,9 @@ CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
|||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||
|
||||
CONFIG_MAC80211_MESSAGE_TRACING=y
|
||||
|
||||
CONFIG_EDAC_DEBUG=y
|
||||
|
||||
CONFIG_X86_DEBUG_STATIC_CPU_HAS=y
|
||||
CONFIG_LATENCYTOP=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
|
|
524
config-generic
524
config-generic
File diff suppressed because it is too large
Load Diff
127
config-nodebug
127
config-nodebug
|
@ -2,113 +2,130 @@ 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_SPINLOCK=y
|
||||
CONFIG_PROVE_RCU=y
|
||||
# CONFIG_DEBUG_MUTEXES is not set
|
||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH 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_XFS_WARN is not set
|
||||
|
||||
CONFIG_JBD2_DEBUG=y
|
||||
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||
|
||||
CONFIG_NFSD_FAULT_INJECTION=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_RTLWIFI_DEBUG is not set
|
||||
|
||||
# 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_TEST_STRING_HELPERS 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_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# Most PowerPC kernels we build are SMP
|
||||
CONFIG_SMP=y
|
||||
CONFIG_IRQ_ALL_CPUS=y
|
||||
CONFIG_PPC=y
|
||||
CONFIG_WATCHDOG_RTAS=m
|
||||
|
@ -11,14 +10,6 @@ CONFIG_TAU=y
|
|||
# CONFIG_TAU_INT is not set
|
||||
CONFIG_TAU_AVERAGE=y
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
||||
CONFIG_PM=y
|
||||
|
||||
CONFIG_PM_STD_PARTITION=""
|
||||
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_HIBERNATION=y
|
||||
# CONFIG_RTC is not set
|
||||
# CONFIG_GEN_RTC is not set
|
||||
# CONFIG_GEN_RTC_X is not set
|
||||
|
@ -39,6 +30,7 @@ CONFIG_FB_OF=y
|
|||
# CONFIG_FB_CONTROL is not set
|
||||
CONFIG_FB_IBM_GXT4500=y
|
||||
CONFIG_FB_MATROX=y
|
||||
CONFIG_FB_MATROX_G=y
|
||||
# CONFIG_FB_VGA16 is not set
|
||||
CONFIG_FB_ATY128_BACKLIGHT=y
|
||||
CONFIG_FB_ATY_BACKLIGHT=y
|
||||
|
@ -99,9 +91,6 @@ CONFIG_LEDS_TRIGGER_TIMER=m
|
|||
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
|
||||
CONFIG_LEDS_TRIGGER_GPIO=m
|
||||
|
||||
# FIXME: Should depend on IA64/x86
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
|
||||
CONFIG_PPC_EFIKA=y
|
||||
CONFIG_PPC_MEDIA5200=y
|
||||
|
||||
|
@ -181,7 +170,6 @@ 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
|
||||
|
@ -314,7 +302,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
|
||||
|
@ -346,6 +334,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
|
||||
|
@ -357,15 +346,11 @@ 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
|
||||
# CONFIG_INPUT_GP2A is not set
|
||||
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
|
||||
|
@ -373,6 +358,27 @@ CONFIG_RCU_FANOUT_LEAF=16
|
|||
# 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_SPAPR_TCE_IOMMU is not set
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE 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_POWERNV_MSI 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
|
||||
|
|
|
@ -95,8 +95,6 @@ CONFIG_SERIAL_OF_PLATFORM=y
|
|||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
|
||||
# CONFIG_EMBEDDED6xx is not set
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
|
||||
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||
# CONFIG_BLK_DEV_4DRIVES is not set
|
||||
|
@ -175,10 +173,6 @@ CONFIG_CRYPTO_DEV_TALITOS=m
|
|||
|
||||
CONFIG_RCU_FANOUT=32
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_EVENT_PROFILE=y
|
||||
|
||||
CONFIG_KVM_BOOK3S_32=m
|
||||
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
CONFIG_SMP=y
|
||||
# CONFIG_HOTPLUG_CPU is not set
|
||||
CONFIG_NR_CPUS=4
|
||||
# CONFIG_BATTERY_PMU is not set
|
||||
|
|
|
@ -12,6 +12,7 @@ CONFIG_PPC_MAPLE=y
|
|||
CONFIG_PPC_PSERIES=y
|
||||
CONFIG_PPC_PMAC=y
|
||||
CONFIG_PPC_POWERNV=y
|
||||
CONFIG_POWERNV_MSI=y
|
||||
CONFIG_PPC_POWERNV_RTAS=y
|
||||
# CONFIG_PPC_PASEMI is not set
|
||||
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||
|
@ -110,11 +111,7 @@ CONFIG_XMON_DISASSEMBLY=y
|
|||
|
||||
CONFIG_SCSI_IBMVSCSIS=m
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
||||
# CONFIG_TUNE_CELL is not set
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
|
@ -137,13 +134,10 @@ CONFIG_RELOCATABLE=y
|
|||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_EVENT_PROFILE=y
|
||||
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
# CONFIG_KVM_EXIT_TIMING is not set
|
||||
CONFIG_KVM_XICS=y
|
||||
|
||||
#-- bz#607175
|
||||
#-- active memory sharing
|
||||
|
@ -164,13 +158,19 @@ CONFIG_PPC_ICSWX=y
|
|||
CONFIG_IO_EVENT_IRQ=y
|
||||
CONFIG_HW_RANDOM_AMD=m
|
||||
|
||||
# CONFIG_HW_RANDOM_PSERIES is not set
|
||||
# CONFIG_CRYPTO_DEV_NX is not set
|
||||
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
|
||||
|
|
|
@ -8,6 +8,7 @@ CONFIG_POWER7_CPU=y
|
|||
CONFIG_PPC_PSERIES=y
|
||||
# CONFIG_PPC_PMAC is not set
|
||||
CONFIG_PPC_POWERNV=y
|
||||
CONFIG_POWERNV_MSI=y
|
||||
CONFIG_PPC_POWERNV_RTAS=y
|
||||
# CONFIG_PPC_PASEMI is not set
|
||||
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||
|
@ -101,11 +102,7 @@ CONFIG_XMON_DISASSEMBLY=y
|
|||
|
||||
CONFIG_SCSI_IBMVSCSIS=m
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
||||
# CONFIG_TUNE_CELL is not set
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
# CONFIG_BLK_DEV_PLATFORM is not set
|
||||
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
|
@ -128,13 +125,10 @@ CONFIG_RELOCATABLE=y
|
|||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_EVENT_PROFILE=y
|
||||
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
# CONFIG_KVM_EXIT_TIMING is not set
|
||||
CONFIG_KVM_XICS=y
|
||||
|
||||
#-- bz#607175
|
||||
#-- active memory sharing
|
||||
|
@ -155,13 +149,18 @@ CONFIG_PPC_ICSWX=y
|
|||
CONFIG_IO_EVENT_IRQ=y
|
||||
CONFIG_HW_RANDOM_AMD=m
|
||||
|
||||
# CONFIG_HW_RANDOM_PSERIES is not set
|
||||
# CONFIG_CRYPTO_DEV_NX is not set
|
||||
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_SND_HDA_INTEL is not set
|
||||
CONFIG_BLK_DEV_RSXX=m
|
||||
|
|
75
config-s390x
75
config-s390x
|
@ -13,13 +13,9 @@ CONFIG_HZ_100=y
|
|||
# See bug 496605
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
|
||||
CONFIG_MMU=y
|
||||
|
||||
CONFIG_LOG_BUF_SHIFT=16
|
||||
CONFIG_NO_IDLE_HZ=y
|
||||
|
||||
CONFIG_SMP=y
|
||||
|
||||
#
|
||||
# I/O subsystem configuration
|
||||
#
|
||||
|
@ -38,6 +34,7 @@ CONFIG_CMM=m
|
|||
CONFIG_CMM_PROC=y
|
||||
# CONFIG_NETIUCV is not set
|
||||
CONFIG_SMSGIUCV=m
|
||||
CONFIG_CRASH_DUMP=y
|
||||
|
||||
#
|
||||
# SCSI low-level drivers
|
||||
|
@ -189,8 +186,6 @@ CONFIG_S390_VMUR=m
|
|||
|
||||
# CONFIG_THERMAL is not set
|
||||
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_CTCM=m
|
||||
CONFIG_QETH_L2=m
|
||||
CONFIG_QETH_L3=m
|
||||
|
@ -213,15 +208,7 @@ CONFIG_HVC_IUCV=y
|
|||
CONFIG_RCU_FANOUT=64
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
||||
CONFIG_PM=y
|
||||
CONFIG_HIBERNATION=y
|
||||
CONFIG_PM_STD_PARTITION="/dev/jokes"
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_EVENT_PROFILE=y
|
||||
# CONFIG_SUSPEND is not set
|
||||
|
||||
CONFIG_SMSGIUCV_EVENT=m
|
||||
|
||||
|
@ -234,10 +221,60 @@ CONFIG_ZFCP_DIF=y
|
|||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SCHED_BOOK=y
|
||||
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
|
||||
# CONFIG_WARN_DYNAMIC_STACK is not set
|
||||
|
||||
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 is not set
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
# CONFIG_HID is not set
|
||||
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
# CONFIG_STAGING is not set
|
||||
# CONFIG_MEMSTICK 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 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
|
||||
|
||||
# CONFIG_PHYLIB is not set
|
||||
# CONFIG_ATM_DRIVERS is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
# CONFIG_SH_ETH is not set
|
||||
# CONFIG_NET_VENDOR_VIA is not set
|
||||
# CONFIG_IEEE802154_DRIVERS is not set
|
||||
|
||||
# CONFIG_FMC is not set
|
||||
|
|
|
@ -1,203 +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_RCU_FANOUT_LEAF=16
|
||||
|
||||
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
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
|
||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
|
@ -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
|
||||
|
@ -53,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
|
||||
|
@ -94,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
|
||||
|
||||
|
@ -117,8 +122,6 @@ CONFIG_SND_ES18XX=m
|
|||
|
||||
CONFIG_HW_RANDOM_GEODE=m
|
||||
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
|
||||
CONFIG_TC1100_WMI=m
|
||||
|
||||
CONFIG_IB700_WDT=m
|
||||
|
@ -179,6 +182,9 @@ CONFIG_XO1_RFKILL=m
|
|||
|
||||
CONFIG_X86_32_IRIS=m
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
|
||||
|
||||
|
||||
CONFIG_MTD_OF_PARTS=y
|
||||
CONFIG_MTD_PHYSMAP_OF=m
|
||||
|
@ -190,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
|
||||
|
@ -201,6 +208,9 @@ 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
|
||||
|
||||
# CONFIG_X86_WANT_INTEL_MID is not set
|
||||
|
@ -211,5 +221,12 @@ CONFIG_I2O_BUS=m
|
|||
# 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
|
||||
|
||||
# CONFIG_MLX5_INFINIBAND is not set
|
||||
|
|
|
@ -2,8 +2,6 @@ CONFIG_UID16=y
|
|||
|
||||
CONFIG_X86_EXTENDED_PLATFORM=y
|
||||
|
||||
CONFIG_SMP=y
|
||||
|
||||
CONFIG_X86_GENERIC=y
|
||||
|
||||
CONFIG_HPET=y
|
||||
|
@ -14,6 +12,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 +27,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 +35,9 @@ CONFIG_X86_PM_TIMER=y
|
|||
CONFIG_EFI=y
|
||||
CONFIG_EFI_STUB=y
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
CONFIG_EFI_PCDP=y
|
||||
CONFIG_FB_EFI=y
|
||||
|
||||
|
@ -48,8 +50,6 @@ CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
|||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||
CONFIG_SCSI_ADVANSYS=m
|
||||
|
||||
CONFIG_SECCOMP=y
|
||||
|
||||
CONFIG_CAPI_EICON=y
|
||||
|
||||
#
|
||||
|
@ -67,7 +67,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 +78,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,12 +92,15 @@ 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=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_AMD_FREQ_SENSITIVITY=m
|
||||
CONFIG_X86_P4_CLOCKMOD=m
|
||||
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
|
||||
|
||||
#
|
||||
|
@ -109,10 +113,6 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
|
|||
|
||||
CONFIG_GENERIC_ISA_DMA=y
|
||||
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_HIBERNATION=y
|
||||
CONFIG_PM_STD_PARTITION=""
|
||||
|
||||
CONFIG_PCI_MMCONFIG=y
|
||||
CONFIG_PCI_BIOS=y
|
||||
CONFIG_PCI_IOAPIC=y
|
||||
|
@ -123,8 +123,6 @@ CONFIG_HOTPLUG_PCI_COMPAQ=m
|
|||
CONFIG_HOTPLUG_PCI_IBM=m
|
||||
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||
|
||||
CONFIG_PM=y
|
||||
|
||||
CONFIG_IPW2100=m
|
||||
CONFIG_IPW2100_MONITOR=y
|
||||
CONFIG_IPW2200=m
|
||||
|
@ -140,6 +138,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
|
||||
|
@ -151,7 +150,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
|
||||
|
@ -193,6 +191,7 @@ 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
|
||||
|
@ -204,7 +203,6 @@ CONFIG_SAMSUNG_LAPTOP=m
|
|||
CONFIG_SONY_LAPTOP=m
|
||||
CONFIG_TOPSTAR_LAPTOP=m
|
||||
|
||||
|
||||
CONFIG_ACPI_WMI=m
|
||||
CONFIG_ACER_WMI=m
|
||||
CONFIG_ACERHDF=m
|
||||
|
@ -219,6 +217,9 @@ CONFIG_INTEL_OAKTRAIL=m
|
|||
CONFIG_SAMSUNG_Q10=m
|
||||
CONFIG_APPLE_GMUX=m
|
||||
CONFIG_XO15_EBOOK=m
|
||||
CONFIG_INTEL_RST=m
|
||||
CONFIG_INTEL_SMARTCONNECT=y
|
||||
CONFIG_PVPANIC=m
|
||||
|
||||
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
|
||||
|
||||
|
@ -235,10 +236,11 @@ CONFIG_VIRTUALIZATION=y
|
|||
CONFIG_KVM=m
|
||||
CONFIG_KVM_INTEL=m
|
||||
CONFIG_KVM_AMD=m
|
||||
CONFIG_KVM_DEVICE_ASSIGNMENT=y
|
||||
CONFIG_LGUEST=m
|
||||
CONFIG_LGUEST_GUEST=y
|
||||
|
||||
CONFIG_PARAVIRT_GUEST=y
|
||||
CONFIG_HYPERVISOR_GUEST=y
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
|
||||
# CONFIG_PARAVIRT_DEBUG is not set
|
||||
|
@ -279,9 +281,8 @@ CONFIG_XEN_ACPI_PROCESSOR=m
|
|||
CONFIG_MTD_ESB2ROM=m
|
||||
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
|
||||
|
||||
|
@ -314,13 +315,11 @@ CONFIG_HP_WATCHDOG=m
|
|||
CONFIG_NV_TCO=m
|
||||
CONFIG_SP5100_TCO=m
|
||||
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
|
||||
# CONFIG_NO_BOOTMEM is not set
|
||||
|
||||
# CONFIG_MEMTEST is not set
|
||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
||||
CONFIG_MAXSMP=y
|
||||
# CONFIG_MAXSMP is not set
|
||||
|
||||
|
||||
CONFIG_HP_ILO=m
|
||||
|
@ -338,13 +337,10 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
|
|||
|
||||
# CONFIG_IOMMU_STRESS is not set
|
||||
|
||||
CONFIG_PERF_COUNTERS=y
|
||||
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
|
||||
|
||||
|
@ -362,6 +358,7 @@ CONFIG_LPC_SCH=m
|
|||
CONFIG_LPC_ICH=m
|
||||
|
||||
CONFIG_GPIO_ICH=m
|
||||
# CONFIG_GPIO_LYNXPOINT is not set
|
||||
|
||||
CONFIG_PCI_CNB20LE_QUIRK=y
|
||||
|
||||
|
@ -390,10 +387,9 @@ CONFIG_X86_RESERVE_LOW=64
|
|||
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
|
||||
|
||||
|
@ -411,6 +407,8 @@ CONFIG_HYPERV_UTILS=m
|
|||
CONFIG_HID_HYPERV_MOUSE=m
|
||||
CONFIG_HYPERV_NET=m
|
||||
CONFIG_HYPERV_STORAGE=m
|
||||
CONFIG_HYPERV_BALLOON=m
|
||||
CONFIG_FB_HYPERV=m
|
||||
|
||||
# Depends on HOTPLUG_PCI_PCIE
|
||||
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
|
||||
|
@ -422,12 +420,41 @@ CONFIG_DRM_GMA3600=y
|
|||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
|
||||
CONFIG_INTEL_MEI=m
|
||||
CONFIG_INTEL_MEI_ME=m
|
||||
|
||||
CONFIG_NFC_MEI_PHY=m
|
||||
CONFIG_NFC_PN544_MEI=m
|
||||
CONFIG_NFC_MICROREAD_MEI=m
|
||||
|
||||
# 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_X86_PKG_TEMP_THERMAL=m
|
||||
|
||||
CONFIG_VMWARE_VMCI=m
|
||||
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
||||
|
||||
CONFIG_XZ_DEC_X86=y
|
||||
|
||||
CONFIG_MPILIB=y
|
||||
CONFIG_PKCS7_MESSAGE_PARSER=y
|
||||
CONFIG_EFI_SIGNATURE_LIST_PARSER=y
|
||||
CONFIG_PE_FILE_PARSER=y
|
||||
CONFIG_SYSTEM_TRUSTED_KEYRING=y
|
||||
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
|
||||
CONFIG_MODULE_SIG=y
|
||||
CONFIG_MODULE_SIG_ALL=y
|
||||
# CONFIG_MODULE_SIG_SHA1 is not set
|
||||
CONFIG_MODULE_SIG_SHA256=y
|
||||
# CONFIG_MODULE_SIG_FORCE is not set
|
||||
CONFIG_MODULE_SIG_BLACKLIST=y
|
||||
CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE=y
|
||||
CONFIG_EFI_SIGNATURE_LIST_PARSER=y
|
||||
|
||||
CONFIG_MODULE_SIG_UEFI=y
|
||||
|
||||
CONFIG_VMXNET3=m
|
||||
CONFIG_VFIO_PCI_VGA=y
|
||||
|
|
|
@ -13,6 +13,8 @@ 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=128
|
||||
CONFIG_PHYSICAL_START=0x1000000
|
||||
|
@ -27,10 +29,13 @@ CONFIG_AMD_IOMMU_V2=m
|
|||
CONFIG_SWIOTLB=y
|
||||
# CONFIG_CALGARY_IOMMU is not set
|
||||
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_MEM_SOFT_DIRTY=y
|
||||
|
||||
CONFIG_KEXEC_JUMP=y
|
||||
|
||||
CONFIG_ACPI_BLACKLIST_YEAR=0
|
||||
CONFIG_ACPI_HOTPLUG_MEMORY=m
|
||||
CONFIG_ACPI_HOTPLUG_MEMORY=y
|
||||
|
||||
# CONFIG_INTEL_SCU_IPC is not set
|
||||
|
||||
|
@ -43,11 +48,21 @@ CONFIG_CRYPTO_TWOFISH_X86_64=m
|
|||
CONFIG_CRYPTO_SALSA20_X86_64=m
|
||||
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
|
||||
CONFIG_CRYPTO_SHA1_SSSE3=m
|
||||
CONFIG_CRYPTO_SHA256_SSSE3=m
|
||||
CONFIG_CRYPTO_SHA512_SSSE3=m
|
||||
CONFIG_CRYPTO_BLOWFISH_X86_64=m
|
||||
CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
|
||||
CONFIG_CRYPTO_CAMELLIA_X86_64=m
|
||||
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
|
||||
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_CAST6_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
|
||||
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_AVX2_X86_64=m
|
||||
|
||||
# CONFIG_I2C_ALI1535 is not set
|
||||
# CONFIG_I2C_ALI1563 is not set
|
||||
|
@ -67,6 +82,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
|
||||
|
||||
|
@ -89,6 +105,7 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=128
|
|||
CONFIG_XEN_DEV_EVTCHN=m
|
||||
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||
# CONFIG_XEN_MCE_LOG is not set
|
||||
# CONFIG_XEN_STUB is not set
|
||||
|
||||
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
|
||||
|
||||
|
@ -107,6 +124,7 @@ CONFIG_X86_X2APIC=y
|
|||
CONFIG_SPARSE_IRQ=y
|
||||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
# CONFIG_RCU_USER_QS is not set
|
||||
|
||||
CONFIG_INTEL_TXT=y
|
||||
|
||||
|
@ -118,6 +136,27 @@ CONFIG_I7300_IDLE=m
|
|||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# https://fedoraproject.org/wiki/Features/Checkpoint_Restore
|
||||
CONFIG_CHECKPOINT_RESTORE=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
|
||||
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
From cb8e390d258b7f8073afafcbb163976e27346e9d Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 11 Oct 2013 08:37:53 -0400
|
||||
Subject: [PATCH] cpupower: Fix segfault due to incorrect getopt_long arugments
|
||||
|
||||
If a user calls 'cpupower set --perf-bias 15', the process will end with a
|
||||
SIGSEGV in libc because cpupower-set passes a NULL optarg to the atoi call.
|
||||
This is because the getopt_long structure currently has all of the options
|
||||
as having an optional_argument when they really have a required argument.
|
||||
We change the structure to use required_argument to match the short options
|
||||
and it resolves the issue.
|
||||
|
||||
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1000439
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
tools/power/cpupower/utils/cpupower-set.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tools/power/cpupower/utils/cpupower-set.c b/tools/power/cpupower/utils/cpupower-set.c
|
||||
index dc4de37..bcf1d2f 100644
|
||||
--- a/tools/power/cpupower/utils/cpupower-set.c
|
||||
+++ b/tools/power/cpupower/utils/cpupower-set.c
|
||||
@@ -18,9 +18,9 @@
|
||||
#include "helpers/bitmask.h"
|
||||
|
||||
static struct option set_opts[] = {
|
||||
- { .name = "perf-bias", .has_arg = optional_argument, .flag = NULL, .val = 'b'},
|
||||
- { .name = "sched-mc", .has_arg = optional_argument, .flag = NULL, .val = 'm'},
|
||||
- { .name = "sched-smt", .has_arg = optional_argument, .flag = NULL, .val = 's'},
|
||||
+ { .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'},
|
||||
+ { .name = "sched-mc", .has_arg = required_argument, .flag = NULL, .val = 'm'},
|
||||
+ { .name = "sched-smt", .has_arg = required_argument, .flag = NULL, .val = 's'},
|
||||
{ },
|
||||
};
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -131,7 +131,7 @@ new file mode 100644
|
|||
index 0000000..dfcc006
|
||||
--- /dev/null
|
||||
+++ b/arch/x86/include/asm/crash.h
|
||||
@@ -0,0 +1,75 @@
|
||||
@@ -0,0 +1,73 @@
|
||||
+#ifndef _ASM_I386_CRASH_H
|
||||
+#define _ASM_I386_CRASH_H
|
||||
+
|
||||
|
@ -162,8 +162,6 @@ index 0000000..dfcc006
|
|||
+#include <linux/highmem.h>
|
||||
+#include <asm/mmzone.h>
|
||||
+
|
||||
+extern int page_is_ram(unsigned long);
|
||||
+
|
||||
+static inline void *
|
||||
+map_virtual(u64 offset, struct page **pp)
|
||||
+{
|
||||
|
@ -207,19 +205,6 @@ index 0000000..dfcc006
|
|||
+#endif /* __KERNEL__ */
|
||||
+
|
||||
+#endif /* _ASM_I386_CRASH_H */
|
||||
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
|
||||
index be1ef57..ac659f7 100644
|
||||
--- a/arch/x86/mm/ioremap.c
|
||||
+++ b/arch/x86/mm/ioremap.c
|
||||
@@ -24,6 +24,8 @@
|
||||
|
||||
#include "physaddr.h"
|
||||
|
||||
+EXPORT_SYMBOL_GPL(page_is_ram);
|
||||
+
|
||||
/*
|
||||
* Fix up the linear direct mapping of the kernel to avoid cache attribute
|
||||
* conflicts.
|
||||
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
|
||||
index 423fd56..e04a561 100644
|
||||
--- a/drivers/char/Kconfig
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
diff --git a/drivers/md/dm-cache-policy-mq.c b/drivers/md/dm-cache-policy-mq.c
|
||||
index cab6dd2..ec79c8f 100644
|
||||
--- a/drivers/md/dm-cache-policy-mq.c
|
||||
+++ b/drivers/md/dm-cache-policy-mq.c
|
||||
@@ -868,7 +868,7 @@ static void mq_destroy(struct dm_cache_policy *p)
|
||||
struct mq_policy *mq = to_mq_policy(p);
|
||||
|
||||
free_bitset(mq->allocation_bitset);
|
||||
- kfree(mq->table);
|
||||
+ vfree(mq->table);
|
||||
free_entries(mq);
|
||||
kfree(mq);
|
||||
}
|
||||
@@ -1189,7 +1189,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
|
||||
|
||||
mq->nr_buckets = next_power(from_cblock(cache_size) / 2, 16);
|
||||
mq->hash_bits = ffs(mq->nr_buckets) - 1;
|
||||
- mq->table = kzalloc(sizeof(*mq->table) * mq->nr_buckets, GFP_KERNEL);
|
||||
+ mq->table = vzalloc(sizeof(*mq->table) * mq->nr_buckets);
|
||||
if (!mq->table)
|
||||
goto bad_alloc_table;
|
||||
|
||||
@@ -1200,7 +1200,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
|
||||
return &mq->policy;
|
||||
|
||||
bad_alloc_bitset:
|
||||
- kfree(mq->table);
|
||||
+ vfree(mq->table);
|
||||
bad_alloc_table:
|
||||
free_entries(mq);
|
||||
bad_cache_alloc:
|
|
@ -1,33 +0,0 @@
|
|||
From da7662784dcced04a5b7a3a5b2bbb8276d699522 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle McMartin <kyle@mcmartin.ca>
|
||||
Date: Sun, 17 Oct 2010 15:55:32 -0400
|
||||
Subject: [PATCH] dmar: disable if ricoh multifunction detected
|
||||
|
||||
---
|
||||
drivers/pci/intel-iommu.c | 10 ++++++++++
|
||||
1 files changed, 10 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
|
||||
index 4789f8e..5923914 100644
|
||||
--- a/drivers/iommu/intel-iommu.c
|
||||
+++ b/drivers/iommu/intel-iommu.c
|
||||
@@ -3784,6 +3784,16 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0044, quirk_calpella_no_shadow_g
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0062, quirk_calpella_no_shadow_gtt);
|
||||
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)
|
||||
+{
|
||||
+ dmar_disabled = 1;
|
||||
+}
|
||||
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe822, quirk_ricoh_multifunction);
|
||||
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe230, quirk_ricoh_multifunction);
|
||||
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe832, quirk_ricoh_multifunction);
|
||||
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe476, quirk_ricoh_multifunction);
|
||||
+
|
||||
/* On Tylersburg chipsets, some BIOSes have been known to enable the
|
||||
ISOCH DMAR unit for the Azalia sound device, but not give it any
|
||||
TLB entries, which causes it to deadlock. Check for that. We do
|
||||
--
|
||||
1.7.3.1
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
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));
|
||||
@@ -400,7 +400,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
|
||||
}
|
||||
|
||||
if (try == 3) {
|
||||
- WARN(1, "dp_aux_ch not started status 0x%08x\n",
|
||||
+ DRM_ERROR("dp_aux_ch not started status 0x%08x\n",
|
||||
I915_READ(ch_ctl));
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -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);
|
|
@ -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;
|
||||
|
|
@ -0,0 +1,226 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: Queued for 3.13
|
||||
|
||||
From db8edc33193879f39c1b52521e20f4d6eb4e9858 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Fri, 08 Nov 2013 06:36:45 +0000
|
||||
Subject: drm/qxl: backport fixes for Fedora
|
||||
|
||||
This pulls these changes from drm-next back into Fedora.
|
||||
|
||||
drm/qxl: prefer the monitor config resolution (b080742393e2c1)
|
||||
drm/qxl: remove unnecessary check (a40a60d912a101e8dfb08ee1)
|
||||
drm/qxl: fix disabling extra monitors from client (5cab51cb3381157)
|
||||
qxl: avoid an oops in the deferred io code. (cc87509d87696d7cd39)
|
||||
drm/qxl: support 64bit surface bar (35541782dcc1e502)
|
||||
qxl: add a connector property to denote hotplug should rescan modes. (4695b03970df37)
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
index 835caba..1d975eb 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_display.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
@@ -110,7 +110,9 @@ void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
|
||||
drm_helper_hpd_irq_event(qdev->ddev);
|
||||
}
|
||||
|
||||
-static int qxl_add_monitors_config_modes(struct drm_connector *connector)
|
||||
+static int qxl_add_monitors_config_modes(struct drm_connector *connector,
|
||||
+ unsigned *pwidth,
|
||||
+ unsigned *pheight)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct qxl_device *qdev = dev->dev_private;
|
||||
@@ -126,11 +128,15 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector)
|
||||
mode = drm_cvt_mode(dev, head->width, head->height, 60, false, false,
|
||||
false);
|
||||
mode->type |= DRM_MODE_TYPE_PREFERRED;
|
||||
+ *pwidth = head->width;
|
||||
+ *pheight = head->height;
|
||||
drm_mode_probed_add(connector, mode);
|
||||
return 1;
|
||||
}
|
||||
|
||||
-static int qxl_add_common_modes(struct drm_connector *connector)
|
||||
+static int qxl_add_common_modes(struct drm_connector *connector,
|
||||
+ unsigned pwidth,
|
||||
+ unsigned pheight)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_display_mode *mode = NULL;
|
||||
@@ -159,12 +165,9 @@ static int qxl_add_common_modes(struct drm_connector *connector)
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
|
||||
- if (common_modes[i].w < 320 || common_modes[i].h < 200)
|
||||
- continue;
|
||||
-
|
||||
mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h,
|
||||
60, false, false, false);
|
||||
- if (common_modes[i].w == 1024 && common_modes[i].h == 768)
|
||||
+ if (common_modes[i].w == pwidth && common_modes[i].h == pheight)
|
||||
mode->type |= DRM_MODE_TYPE_PREFERRED;
|
||||
drm_mode_probed_add(connector, mode);
|
||||
}
|
||||
@@ -720,16 +723,18 @@ static int qxl_conn_get_modes(struct drm_connector *connector)
|
||||
{
|
||||
int ret = 0;
|
||||
struct qxl_device *qdev = connector->dev->dev_private;
|
||||
+ unsigned pwidth = 1024;
|
||||
+ unsigned pheight = 768;
|
||||
|
||||
DRM_DEBUG_KMS("monitors_config=%p\n", qdev->monitors_config);
|
||||
/* TODO: what should we do here? only show the configured modes for the
|
||||
* device, or allow the full list, or both? */
|
||||
if (qdev->monitors_config && qdev->monitors_config->count) {
|
||||
- ret = qxl_add_monitors_config_modes(connector);
|
||||
+ ret = qxl_add_monitors_config_modes(connector, &pwidth, &pheight);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
- ret += qxl_add_common_modes(connector);
|
||||
+ ret += qxl_add_common_modes(connector, pwidth, pheight);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -793,7 +798,10 @@ static enum drm_connector_status qxl_conn_detect(
|
||||
qdev->client_monitors_config->count > output->index &&
|
||||
qxl_head_enabled(&qdev->client_monitors_config->heads[output->index]));
|
||||
|
||||
- DRM_DEBUG("\n");
|
||||
+ DRM_DEBUG("#%d connected: %d\n", output->index, connected);
|
||||
+ if (!connected)
|
||||
+ qxl_monitors_config_set(qdev, output->index, 0, 0, 0, 0, 0);
|
||||
+
|
||||
return connected ? connector_status_connected
|
||||
: connector_status_disconnected;
|
||||
}
|
||||
@@ -835,8 +843,21 @@ static const struct drm_encoder_funcs qxl_enc_funcs = {
|
||||
.destroy = qxl_enc_destroy,
|
||||
};
|
||||
|
||||
+static int qxl_mode_create_hotplug_mode_update_property(struct qxl_device *qdev)
|
||||
+{
|
||||
+ if (qdev->hotplug_mode_update_property)
|
||||
+ return 0;
|
||||
+
|
||||
+ qdev->hotplug_mode_update_property =
|
||||
+ drm_property_create_range(qdev->ddev, DRM_MODE_PROP_IMMUTABLE,
|
||||
+ "hotplug_mode_update", 0, 1);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int qdev_output_init(struct drm_device *dev, int num_output)
|
||||
{
|
||||
+ struct qxl_device *qdev = dev->dev_private;
|
||||
struct qxl_output *qxl_output;
|
||||
struct drm_connector *connector;
|
||||
struct drm_encoder *encoder;
|
||||
@@ -863,6 +884,8 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
|
||||
drm_encoder_helper_add(encoder, &qxl_enc_helper_funcs);
|
||||
drm_connector_helper_add(connector, &qxl_connector_helper_funcs);
|
||||
|
||||
+ drm_object_attach_property(&connector->base,
|
||||
+ qdev->hotplug_mode_update_property, 0);
|
||||
drm_sysfs_connector_add(connector);
|
||||
return 0;
|
||||
}
|
||||
@@ -975,6 +998,9 @@ int qxl_modeset_init(struct qxl_device *qdev)
|
||||
qdev->ddev->mode_config.max_height = 8192;
|
||||
|
||||
qdev->ddev->mode_config.fb_base = qdev->vram_base;
|
||||
+
|
||||
+ qxl_mode_create_hotplug_mode_update_property(qdev);
|
||||
+
|
||||
for (i = 0 ; i < qxl_num_crtc; ++i) {
|
||||
qdev_crtc_init(qdev->ddev, i);
|
||||
qdev_output_init(qdev->ddev, i);
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
index 7e96f4f..18c599d 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
@@ -323,6 +323,8 @@ struct qxl_device {
|
||||
struct work_struct gc_work;
|
||||
|
||||
struct work_struct fb_work;
|
||||
+
|
||||
+ struct drm_property *hotplug_mode_update_property;
|
||||
};
|
||||
|
||||
/* forward declaration for QXL_INFO_IO */
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c
|
||||
index 88722f2..f437b30 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_fb.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_fb.c
|
||||
@@ -108,7 +108,7 @@ static void qxl_fb_dirty_flush(struct fb_info *info)
|
||||
u32 x1, x2, y1, y2;
|
||||
|
||||
/* TODO: hard coding 32 bpp */
|
||||
- int stride = qfbdev->qfb.base.pitches[0] * 4;
|
||||
+ int stride = qfbdev->qfb.base.pitches[0];
|
||||
|
||||
x1 = qfbdev->dirty.x1;
|
||||
x2 = qfbdev->dirty.x2;
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
index 9e8da9e..e0ddd5b 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
@@ -120,7 +120,7 @@ int qxl_device_init(struct qxl_device *qdev,
|
||||
struct pci_dev *pdev,
|
||||
unsigned long flags)
|
||||
{
|
||||
- int r;
|
||||
+ int r, sb;
|
||||
|
||||
qdev->dev = &pdev->dev;
|
||||
qdev->ddev = ddev;
|
||||
@@ -136,21 +136,39 @@ int qxl_device_init(struct qxl_device *qdev,
|
||||
qdev->rom_base = pci_resource_start(pdev, 2);
|
||||
qdev->rom_size = pci_resource_len(pdev, 2);
|
||||
qdev->vram_base = pci_resource_start(pdev, 0);
|
||||
- qdev->surfaceram_base = pci_resource_start(pdev, 1);
|
||||
- qdev->surfaceram_size = pci_resource_len(pdev, 1);
|
||||
qdev->io_base = pci_resource_start(pdev, 3);
|
||||
|
||||
qdev->vram_mapping = io_mapping_create_wc(qdev->vram_base, pci_resource_len(pdev, 0));
|
||||
- qdev->surface_mapping = io_mapping_create_wc(qdev->surfaceram_base, qdev->surfaceram_size);
|
||||
- DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk)\n",
|
||||
+
|
||||
+ if (pci_resource_len(pdev, 4) > 0) {
|
||||
+ /* 64bit surface bar present */
|
||||
+ sb = 4;
|
||||
+ qdev->surfaceram_base = pci_resource_start(pdev, sb);
|
||||
+ qdev->surfaceram_size = pci_resource_len(pdev, sb);
|
||||
+ qdev->surface_mapping =
|
||||
+ io_mapping_create_wc(qdev->surfaceram_base,
|
||||
+ qdev->surfaceram_size);
|
||||
+ }
|
||||
+ if (qdev->surface_mapping == NULL) {
|
||||
+ /* 64bit surface bar not present (or mapping failed) */
|
||||
+ sb = 1;
|
||||
+ qdev->surfaceram_base = pci_resource_start(pdev, sb);
|
||||
+ qdev->surfaceram_size = pci_resource_len(pdev, sb);
|
||||
+ qdev->surface_mapping =
|
||||
+ io_mapping_create_wc(qdev->surfaceram_base,
|
||||
+ qdev->surfaceram_size);
|
||||
+ }
|
||||
+
|
||||
+ DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk, %s)\n",
|
||||
(unsigned long long)qdev->vram_base,
|
||||
(unsigned long long)pci_resource_end(pdev, 0),
|
||||
(int)pci_resource_len(pdev, 0) / 1024 / 1024,
|
||||
(int)pci_resource_len(pdev, 0) / 1024,
|
||||
(unsigned long long)qdev->surfaceram_base,
|
||||
- (unsigned long long)pci_resource_end(pdev, 1),
|
||||
+ (unsigned long long)pci_resource_end(pdev, sb),
|
||||
(int)qdev->surfaceram_size / 1024 / 1024,
|
||||
- (int)qdev->surfaceram_size / 1024);
|
||||
+ (int)qdev->surfaceram_size / 1024,
|
||||
+ (sb == 4) ? "64bit" : "32bit");
|
||||
|
||||
qdev->rom = ioremap(qdev->rom_base, qdev->rom_size);
|
||||
if (!qdev->rom) {
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
|
@ -0,0 +1,30 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: 3.13
|
||||
|
||||
From 1b28c3e628315ac0d9ef2d3fac0403f05ae692db Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Thu, 28 Nov 2013 05:39:03 +0000
|
||||
Subject: drm/qxl: fix memory leak in release list handling
|
||||
|
||||
wow no idea how I got this far without seeing this,
|
||||
leaking the entries in the list makes kmalloc-64 slab grow.
|
||||
|
||||
References: https://bugzilla.kernel.org/show_bug.cgi?id=65121
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Matthew Stapleton <matthew4196@gmail.com>
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c
|
||||
index 0109a96..821ab7b 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_release.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_release.c
|
||||
@@ -92,6 +92,7 @@ qxl_release_free(struct qxl_device *qdev,
|
||||
- DRM_FILE_OFFSET);
|
||||
qxl_fence_remove_release(&bo->fence, release->id);
|
||||
qxl_bo_unref(&bo);
|
||||
+ kfree(entry);
|
||||
}
|
||||
spin_lock(&qdev->release_idr_lock);
|
||||
idr_remove(&qdev->release_idr, release->id);
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
|
@ -0,0 +1,173 @@
|
|||
Bugzilla: 1010679
|
||||
Upstream-status: 3.13
|
||||
|
||||
From 908171aa738b5bbcc6241cec46f73fcd57dd00d4 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre Ossman <pierre@ossman.eu>
|
||||
Date: Wed, 6 Nov 2013 20:00:32 +0100
|
||||
Subject: [PATCH 1/2] drm/radeon/audio: correct ACR table
|
||||
|
||||
The values were taken from the HDMI spec, but they assumed
|
||||
exact x/1.001 clocks. Since we round the clocks, we also need
|
||||
to calculate different N and CTS values.
|
||||
|
||||
Note that the N for 25.2/1.001 MHz at 44.1 kHz audio is out of
|
||||
spec. Hopefully this mode is rarely used and/or HDMI sinks
|
||||
tolerate overly large values of N.
|
||||
|
||||
bug:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69675
|
||||
|
||||
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index 4140fe8..e8ca095 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -57,15 +57,15 @@ enum r600_hdmi_iec_status_bits {
|
||||
static const struct radeon_hdmi_acr r600_hdmi_predefined_acr[] = {
|
||||
/* 32kHz 44.1kHz 48kHz */
|
||||
/* Clock N CTS N CTS N CTS */
|
||||
- { 25175, 4576, 28125, 7007, 31250, 6864, 28125 }, /* 25,20/1.001 MHz */
|
||||
+ { 25175, 4096, 25175, 28224, 125875, 6144, 25175 }, /* 25,20/1.001 MHz */
|
||||
{ 25200, 4096, 25200, 6272, 28000, 6144, 25200 }, /* 25.20 MHz */
|
||||
{ 27000, 4096, 27000, 6272, 30000, 6144, 27000 }, /* 27.00 MHz */
|
||||
{ 27027, 4096, 27027, 6272, 30030, 6144, 27027 }, /* 27.00*1.001 MHz */
|
||||
{ 54000, 4096, 54000, 6272, 60000, 6144, 54000 }, /* 54.00 MHz */
|
||||
{ 54054, 4096, 54054, 6272, 60060, 6144, 54054 }, /* 54.00*1.001 MHz */
|
||||
- { 74176, 11648, 210937, 17836, 234375, 11648, 140625 }, /* 74.25/1.001 MHz */
|
||||
+ { 74176, 4096, 74176, 5733, 75335, 6144, 74176 }, /* 74.25/1.001 MHz */
|
||||
{ 74250, 4096, 74250, 6272, 82500, 6144, 74250 }, /* 74.25 MHz */
|
||||
- { 148352, 11648, 421875, 8918, 234375, 5824, 140625 }, /* 148.50/1.001 MHz */
|
||||
+ { 148352, 4096, 148352, 5733, 150670, 6144, 148352 }, /* 148.50/1.001 MHz */
|
||||
{ 148500, 4096, 148500, 6272, 165000, 6144, 148500 }, /* 148.50 MHz */
|
||||
{ 0, 4096, 0, 6272, 0, 6144, 0 } /* Other */
|
||||
};
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
||||
From 05e4776357fe7217e531cbaaa163e24f688d10ce Mon Sep 17 00:00:00 2001
|
||||
From: Pierre Ossman <pierre@ossman.eu>
|
||||
Date: Wed, 6 Nov 2013 20:09:08 +0100
|
||||
Subject: [PATCH 2/2] drm/radeon/audio: improve ACR calculation
|
||||
|
||||
In order to have any realistic chance of calculating proper
|
||||
ACR values, we need to be able to calculate both N and CTS,
|
||||
not just CTS. We still aim for the ideal N as specified in
|
||||
the HDMI spec though.
|
||||
|
||||
bug:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69675
|
||||
|
||||
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 68 ++++++++++++++++++++++++++------------
|
||||
1 file changed, 46 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index e8ca095..92c6df7 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -24,6 +24,7 @@
|
||||
* Authors: Christian König
|
||||
*/
|
||||
#include <linux/hdmi.h>
|
||||
+#include <linux/gcd.h>
|
||||
#include <drm/drmP.h>
|
||||
#include <drm/radeon_drm.h>
|
||||
#include "radeon.h"
|
||||
@@ -67,25 +68,47 @@ static const struct radeon_hdmi_acr r600_hdmi_predefined_acr[] = {
|
||||
{ 74250, 4096, 74250, 6272, 82500, 6144, 74250 }, /* 74.25 MHz */
|
||||
{ 148352, 4096, 148352, 5733, 150670, 6144, 148352 }, /* 148.50/1.001 MHz */
|
||||
{ 148500, 4096, 148500, 6272, 165000, 6144, 148500 }, /* 148.50 MHz */
|
||||
- { 0, 4096, 0, 6272, 0, 6144, 0 } /* Other */
|
||||
};
|
||||
|
||||
+
|
||||
/*
|
||||
- * calculate CTS value if it's not found in the table
|
||||
+ * calculate CTS and N values if they are not found in the table
|
||||
*/
|
||||
-static void r600_hdmi_calc_cts(uint32_t clock, int *CTS, int N, int freq)
|
||||
+static void r600_hdmi_calc_cts(uint32_t clock, int *CTS, int *N, int freq)
|
||||
{
|
||||
- u64 n;
|
||||
- u32 d;
|
||||
-
|
||||
- if (*CTS == 0) {
|
||||
- n = (u64)clock * (u64)N * 1000ULL;
|
||||
- d = 128 * freq;
|
||||
- do_div(n, d);
|
||||
- *CTS = n;
|
||||
- }
|
||||
- DRM_DEBUG("Using ACR timing N=%d CTS=%d for frequency %d\n",
|
||||
- N, *CTS, freq);
|
||||
+ int n, cts;
|
||||
+ unsigned long div, mul;
|
||||
+
|
||||
+ /* Safe, but overly large values */
|
||||
+ n = 128 * freq;
|
||||
+ cts = clock * 1000;
|
||||
+
|
||||
+ /* Smallest valid fraction */
|
||||
+ div = gcd(n, cts);
|
||||
+
|
||||
+ n /= div;
|
||||
+ cts /= div;
|
||||
+
|
||||
+ /*
|
||||
+ * The optimal N is 128*freq/1000. Calculate the closest larger
|
||||
+ * value that doesn't truncate any bits.
|
||||
+ */
|
||||
+ mul = ((128*freq/1000) + (n-1))/n;
|
||||
+
|
||||
+ n *= mul;
|
||||
+ cts *= mul;
|
||||
+
|
||||
+ /* Check that we are in spec (not always possible) */
|
||||
+ if (n < (128*freq/1500))
|
||||
+ printk(KERN_WARNING "Calculated ACR N value is too small. You may experience audio problems.\n");
|
||||
+ if (n > (128*freq/300))
|
||||
+ printk(KERN_WARNING "Calculated ACR N value is too large. You may experience audio problems.\n");
|
||||
+
|
||||
+ *N = n;
|
||||
+ *CTS = cts;
|
||||
+
|
||||
+ DRM_DEBUG("Calculated ACR timing N=%d CTS=%d for frequency %d\n",
|
||||
+ *N, *CTS, freq);
|
||||
}
|
||||
|
||||
struct radeon_hdmi_acr r600_hdmi_acr(uint32_t clock)
|
||||
@@ -93,15 +116,16 @@ struct radeon_hdmi_acr r600_hdmi_acr(uint32_t clock)
|
||||
struct radeon_hdmi_acr res;
|
||||
u8 i;
|
||||
|
||||
- for (i = 0; r600_hdmi_predefined_acr[i].clock != clock &&
|
||||
- r600_hdmi_predefined_acr[i].clock != 0; i++)
|
||||
- ;
|
||||
- res = r600_hdmi_predefined_acr[i];
|
||||
+ /* Precalculated values for common clocks */
|
||||
+ for (i = 0; i < ARRAY_SIZE(r600_hdmi_predefined_acr); i++) {
|
||||
+ if (r600_hdmi_predefined_acr[i].clock == clock)
|
||||
+ return r600_hdmi_predefined_acr[i];
|
||||
+ }
|
||||
|
||||
- /* In case some CTS are missing */
|
||||
- r600_hdmi_calc_cts(clock, &res.cts_32khz, res.n_32khz, 32000);
|
||||
- r600_hdmi_calc_cts(clock, &res.cts_44_1khz, res.n_44_1khz, 44100);
|
||||
- r600_hdmi_calc_cts(clock, &res.cts_48khz, res.n_48khz, 48000);
|
||||
+ /* And odd clocks get manually calculated */
|
||||
+ r600_hdmi_calc_cts(clock, &res.cts_32khz, &res.n_32khz, 32000);
|
||||
+ r600_hdmi_calc_cts(clock, &res.cts_44_1khz, &res.n_44_1khz, 44100);
|
||||
+ r600_hdmi_calc_cts(clock, &res.cts_48khz, &res.n_48khz, 48000);
|
||||
|
||||
return res;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
|
||||
index 3ae4128..ff7dc70 100644
|
||||
--- a/arch/x86/platform/efi/efi.c
|
||||
+++ b/arch/x86/platform/efi/efi.c
|
||||
@@ -659,10 +659,13 @@ void __init efi_enter_virtual_mode(void)
|
||||
|
||||
for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
|
||||
md = p;
|
||||
- if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
|
||||
- md->type != EFI_BOOT_SERVICES_CODE &&
|
||||
- md->type != EFI_BOOT_SERVICES_DATA)
|
||||
- continue;
|
||||
+ if (!(md->attribute & EFI_MEMORY_RUNTIME)) {
|
||||
+#ifdef CONFIG_X86_64
|
||||
+ if (md->type != EFI_BOOT_SERVICES_CODE &&
|
||||
+ md->type != EFI_BOOT_SERVICES_DATA)
|
||||
+#endif
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
size = md->num_pages << EFI_PAGE_SHIFT;
|
||||
end = md->phys_addr + size;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,110 @@
|
|||
Bugzilla: 1030802
|
||||
Upstream-status: http://www.mail-archive.com/linux-input@vger.kernel.org/msg07220.html
|
||||
|
||||
From e1c7fa5fbb6688bd464658ff8a93bdf23c442065 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 9 Dec 2013 15:18:04 +0100
|
||||
Subject: [PATCH v2] elantech: Properly differentiate between clickpads and
|
||||
normal touchpads
|
||||
|
||||
The current assumption in the elantech driver that hw version 3 touchpads are
|
||||
never clickpads and hw version 4 touchpads are always clickpads is wrong.
|
||||
|
||||
There are several bug reports for this, ie:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1030802
|
||||
http://superuser.com/questions/619582/right-elantech-touchpad-button-not-working-in-linux
|
||||
|
||||
I've spend a couple of hours wading through various bugzillas,
|
||||
launchpads and forum posts to create a list of fw-versions and capabilities
|
||||
for different laptop models to find a good method to differentiate between
|
||||
clickpads and versions with separate hardware buttons.
|
||||
|
||||
Which shows that a device being a clickpad is reliable indicated by bit 12
|
||||
being set in the fw_version. I've included the gathered list inside the driver,
|
||||
so that we've this info at hand if we need to revisit this later.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/elantech.c | 45 +++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 42 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
|
||||
index 597e9b8..ef1cf52 100644
|
||||
--- a/drivers/input/mouse/elantech.c
|
||||
+++ b/drivers/input/mouse/elantech.c
|
||||
@@ -486,6 +486,7 @@ static void elantech_input_sync_v4(struct psmouse *psmouse)
|
||||
unsigned char *packet = psmouse->packet;
|
||||
|
||||
input_report_key(dev, BTN_LEFT, packet[0] & 0x01);
|
||||
+ input_report_key(dev, BTN_RIGHT, packet[0] & 0x02);
|
||||
input_mt_report_pointer_emulation(dev, true);
|
||||
input_sync(dev);
|
||||
}
|
||||
@@ -984,6 +985,44 @@ static int elantech_get_resolution_v4(struct psmouse *psmouse,
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Advertise INPUT_PROP_BUTTONPAD for clickpads. The testing of bit 12 in
|
||||
+ * fw_version for this is based on the following fw_version & caps table:
|
||||
+ *
|
||||
+ * Laptop-model: fw_version: caps: buttons:
|
||||
+ * Acer S3 0x461f00 10, 13, 0e clickpad
|
||||
+ * Acer S7-392 0x581f01 50, 17, 0d clickpad
|
||||
+ * Acer V5-131 0x461f02 01, 16, 0c clickpad
|
||||
+ * Acer V5-551 0x461f00 ? clickpad
|
||||
+ * Asus K53SV 0x450f01 78, 15, 0c 2 hw buttons
|
||||
+ * Asus G46VW 0x460f02 00, 18, 0c 2 hw buttons
|
||||
+ * Asus G750JX 0x360f00 00, 16, 0c 2 hw buttons
|
||||
+ * Asus UX31 0x361f00 20, 15, 0e clickpad
|
||||
+ * Asus UX32VD 0x361f02 00, 15, 0e clickpad
|
||||
+ * Avatar AVIU-145A2 0x361f00 ? clickpad
|
||||
+ * Gigabyte U2442 0x450f01 58, 17, 0c 2 hw buttons
|
||||
+ * Lenovo L430 0x350f02 b9, 15, 0c 2 hw buttons (*)
|
||||
+ * Samsung NF210 0x150b00 78, 14, 0a 2 hw buttons
|
||||
+ * Samsung NP770Z5E 0x575f01 10, 15, 0f clickpad
|
||||
+ * Samsung NP700Z5B 0x361f06 21, 15, 0f clickpad
|
||||
+ * Samsung NP900X3E-A02 0x575f03 ? clickpad
|
||||
+ * Samsung NP-QX410 0x851b00 19, 14, 0c clickpad
|
||||
+ * Samsung RC512 0x450f00 08, 15, 0c 2 hw buttons
|
||||
+ * Samsung RF710 0x450f00 ? 2 hw buttons
|
||||
+ * System76 Pangolin 0x250f01 ? 2 hw buttons
|
||||
+ * (*) + 3 trackpoint buttons
|
||||
+ */
|
||||
+static void elantech_set_buttonpad_prop(struct psmouse *psmouse)
|
||||
+{
|
||||
+ struct input_dev *dev = psmouse->dev;
|
||||
+ struct elantech_data *etd = psmouse->private;
|
||||
+
|
||||
+ if (etd->fw_version & 0x001000) {
|
||||
+ __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
|
||||
+ __clear_bit(BTN_RIGHT, dev->keybit);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Set the appropriate event bits for the input subsystem
|
||||
*/
|
||||
static int elantech_set_input_params(struct psmouse *psmouse)
|
||||
@@ -1026,6 +1065,8 @@ static int elantech_set_input_params(struct psmouse *psmouse)
|
||||
__set_bit(INPUT_PROP_SEMI_MT, dev->propbit);
|
||||
/* fall through */
|
||||
case 3:
|
||||
+ if (etd->hw_version == 3)
|
||||
+ elantech_set_buttonpad_prop(psmouse);
|
||||
input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0);
|
||||
input_set_abs_params(dev, ABS_Y, y_min, y_max, 0, 0);
|
||||
if (etd->reports_pressure) {
|
||||
@@ -1047,9 +1088,7 @@ static int elantech_set_input_params(struct psmouse *psmouse)
|
||||
*/
|
||||
psmouse_warn(psmouse, "couldn't query resolution data.\n");
|
||||
}
|
||||
- /* v4 is clickpad, with only one button. */
|
||||
- __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
|
||||
- __clear_bit(BTN_RIGHT, dev->keybit);
|
||||
+ elantech_set_buttonpad_prop(psmouse);
|
||||
__set_bit(BTN_TOOL_QUADTAP, dev->keybit);
|
||||
/* For X to recognize me as touchpad. */
|
||||
input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0);
|
||||
--
|
||||
1.8.4.2
|
||||
|
|
@ -0,0 +1,162 @@
|
|||
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.168.104 with SMTP id zv8csp55663oab;
|
||||
Fri, 30 Aug 2013 15:52:46 -0700 (PDT)
|
||||
X-Received: by 10.68.244.168 with SMTP id xh8mr12419215pbc.3.1377903166373;
|
||||
Fri, 30 Aug 2013 15:52:46 -0700 (PDT)
|
||||
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id qc9si280431pac.269.1969.12.31.16.00.00;
|
||||
Fri, 30 Aug 2013 15:52:46 -0700 (PDT)
|
||||
Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=linux-kernel-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@hds.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1753535Ab3H3WrV (ORCPT <rfc822;georgezhim@gmail.com>
|
||||
+ 99 others); Fri, 30 Aug 2013 18:47:21 -0400
|
||||
Received: from usindpps04.hds.com ([207.126.252.17]:35636 "EHLO
|
||||
usindpps04.hds.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1752650Ab3H3WrU (ORCPT
|
||||
<rfc822;linux-kernel@vger.kernel.org>);
|
||||
Fri, 30 Aug 2013 18:47:20 -0400
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hds.com; h=subject : to : from : cc
|
||||
: date : message-id : mime-version : content-type :
|
||||
content-transfer-encoding; s=mail1;
|
||||
bh=VofHN8IMnygn2hbqnFjLmX0PPEPbvpzE377u1RxpGOY=;
|
||||
b=piW6J78W57qDXBPJJuodWw/tvf0T//JbxKX6sLPvpuaOG2nBLMHzDqUeTYwFEQqUvdmf
|
||||
ZTkiwsKi0WEku3MKcxJ7veR7wvTZcQ4fGMETFTf1c2J/1JOKpXLnft4ERuW89/FAxw25
|
||||
wQM1ulsuQ3Cncl0I/sIaqMlaMOtvuQ/C8rsHorp+75eFiL6yx1jU5wMbuti4D/NprIET
|
||||
3r57cPZ0YCh6sLjvOgjay6mKyktMToyjHPx6X1TWCSWcwes33Popc1hpadxUdFI/0npL
|
||||
mN3Tttbe7e2RcmkXAZbwg8xj+FwSu3nIRC4G9UpFCsMz518C/AWZj4puwWE6VHZWVvVZ Rg==
|
||||
Received: from usindmail01.hds.com (usindmail03 [207.126.252.22])
|
||||
by usindpps04.hds.com (8.14.5/8.14.5) with ESMTP id r7UMlBjr025492;
|
||||
Fri, 30 Aug 2013 18:47:11 -0400
|
||||
Received: from hds.com (usindnetf5d-vlan47float.corp.hds.com [10.74.73.11])
|
||||
by usindmail01.hds.com (8.14.1/8.14.1) with ESMTP id r7UMl8SG058466;
|
||||
Fri, 30 Aug 2013 18:47:10 -0400 (EDT)
|
||||
Subject: [PATCH v2 1/2] elevator: Fix a race in elevator switching and md
|
||||
device initialization
|
||||
To: linux-kernel@vger.kernel.org
|
||||
From: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
|
||||
Cc: axboe@kernel.dk, tj@kernel.org, seiji.aguchi@hds.com,
|
||||
vgoyal@redhat.com, majianpeng@gmail.com
|
||||
Date: Fri, 30 Aug 2013 18:47:07 -0400
|
||||
Message-ID: <20130830224707.21812.63516.stgit@hds.com>
|
||||
User-Agent: StGit/0.16
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Proofpoint-SPF-Result: pass
|
||||
X-Proofpoint-SPF-Record: v=spf1 mx ip4:207.126.244.0/26 ip4:207.126.252.0/25 include:mktomail.com
|
||||
include:cloud.hds.com ~all
|
||||
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794,1.0.431,0.0.0000
|
||||
definitions=2013-08-30_09:2013-08-30,2013-08-30,1970-01-01 signatures=0
|
||||
X-Proofpoint-Spam-Details: rule=notspam policy=outbound_policy score=0 spamscore=0 suspectscore=1
|
||||
phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx
|
||||
scancount=1 engine=7.0.1-1305240000 definitions=main-1308300162
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
The soft lockup below happens at the boot time of the system using dm
|
||||
multipath and the udev rules to switch scheduler.
|
||||
|
||||
[ 356.127001] BUG: soft lockup - CPU#3 stuck for 22s! [sh:483]
|
||||
[ 356.127001] RIP: 0010:[<ffffffff81072a7d>] [<ffffffff81072a7d>] lock_timer_base.isra.35+0x1d/0x50
|
||||
...
|
||||
[ 356.127001] Call Trace:
|
||||
[ 356.127001] [<ffffffff81073810>] try_to_del_timer_sync+0x20/0x70
|
||||
[ 356.127001] [<ffffffff8118b08a>] ? kmem_cache_alloc_node_trace+0x20a/0x230
|
||||
[ 356.127001] [<ffffffff810738b2>] del_timer_sync+0x52/0x60
|
||||
[ 356.127001] [<ffffffff812ece22>] cfq_exit_queue+0x32/0xf0
|
||||
[ 356.127001] [<ffffffff812c98df>] elevator_exit+0x2f/0x50
|
||||
[ 356.127001] [<ffffffff812c9f21>] elevator_change+0xf1/0x1c0
|
||||
[ 356.127001] [<ffffffff812caa50>] elv_iosched_store+0x20/0x50
|
||||
[ 356.127001] [<ffffffff812d1d09>] queue_attr_store+0x59/0xb0
|
||||
[ 356.127001] [<ffffffff812143f6>] sysfs_write_file+0xc6/0x140
|
||||
[ 356.127001] [<ffffffff811a326d>] vfs_write+0xbd/0x1e0
|
||||
[ 356.127001] [<ffffffff811a3ca9>] SyS_write+0x49/0xa0
|
||||
[ 356.127001] [<ffffffff8164e899>] system_call_fastpath+0x16/0x1b
|
||||
|
||||
This is caused by a race between md device initialization by multipathd and
|
||||
shell script to switch the scheduler using sysfs.
|
||||
|
||||
- multipathd:
|
||||
SyS_ioctl -> do_vfs_ioctl -> dm_ctl_ioctl -> ctl_ioctl -> table_load
|
||||
-> dm_setup_md_queue -> blk_init_allocated_queue -> elevator_init
|
||||
q->elevator = elevator_alloc(q, e); // not yet initialized
|
||||
|
||||
- sh -c 'echo deadline > /sys/$DEVPATH/queue/scheduler':
|
||||
elevator_switch (in the call trace above)
|
||||
struct elevator_queue *old = q->elevator;
|
||||
q->elevator = elevator_alloc(q, new_e);
|
||||
elevator_exit(old); // lockup! (*)
|
||||
|
||||
- multipathd: (cont.)
|
||||
err = e->ops.elevator_init_fn(q); // init fails; q->elevator is modified
|
||||
|
||||
(*) When del_timer_sync() is called, lock_timer_base() will loop infinitely
|
||||
while timer->base == NULL. In this case, as timer will never initialized,
|
||||
it results in lockup.
|
||||
|
||||
This patch introduces acquisition of q->sysfs_lock around elevator_init()
|
||||
into blk_init_allocated_queue(), to provide mutual exclusion between
|
||||
initialization of the q->scheduler and switching of the scheduler.
|
||||
|
||||
This should fix this bugzilla:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=902012
|
||||
|
||||
Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
|
||||
---
|
||||
block/blk-core.c | 10 +++++++++-
|
||||
block/elevator.c | 6 ++++++
|
||||
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/block/blk-core.c b/block/blk-core.c
|
||||
index 93a18d1..2f6275f 100644
|
||||
--- a/block/blk-core.c
|
||||
+++ b/block/blk-core.c
|
||||
@@ -739,9 +739,17 @@ blk_init_allocated_queue(struct request_queue *q, request_fn_proc *rfn,
|
||||
|
||||
q->sg_reserved_size = INT_MAX;
|
||||
|
||||
+ /* Protect q->elevator from elevator_change */
|
||||
+ mutex_lock(&q->sysfs_lock);
|
||||
+
|
||||
/* init elevator */
|
||||
- if (elevator_init(q, NULL))
|
||||
+ if (elevator_init(q, NULL)) {
|
||||
+ mutex_unlock(&q->sysfs_lock);
|
||||
return NULL;
|
||||
+ }
|
||||
+
|
||||
+ mutex_unlock(&q->sysfs_lock);
|
||||
+
|
||||
return q;
|
||||
}
|
||||
EXPORT_SYMBOL(blk_init_allocated_queue);
|
||||
diff --git a/block/elevator.c b/block/elevator.c
|
||||
index 668394d..02d4390 100644
|
||||
--- a/block/elevator.c
|
||||
+++ b/block/elevator.c
|
||||
@@ -186,6 +186,12 @@ int elevator_init(struct request_queue *q, char *name)
|
||||
struct elevator_type *e = NULL;
|
||||
int err;
|
||||
|
||||
+ /*
|
||||
+ * q->sysfs_lock must be held to provide mutual exclusion between
|
||||
+ * elevator_switch() and here.
|
||||
+ */
|
||||
+ lockdep_assert_held(&q->sysfs_lock);
|
||||
+
|
||||
if (unlikely(q->elevator))
|
||||
return 0;
|
||||
|
||||
|
||||
--
|
||||
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/
|
|
@ -0,0 +1,121 @@
|
|||
|
||||
Delivered-To: jwboyer@gmail.com
|
||||
Received: by 10.76.168.104 with SMTP id zv8csp55623oab;
|
||||
Fri, 30 Aug 2013 15:51:42 -0700 (PDT)
|
||||
X-Received: by 10.67.30.70 with SMTP id kc6mr13149193pad.32.1377903101609;
|
||||
Fri, 30 Aug 2013 15:51:41 -0700 (PDT)
|
||||
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
||||
by mx.google.com with ESMTP id gg2si304840pac.217.1969.12.31.16.00.00;
|
||||
Fri, 30 Aug 2013 15:51:41 -0700 (PDT)
|
||||
Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67;
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mail=linux-kernel-owner@vger.kernel.org;
|
||||
dkim=neutral (bad format) header.i=@hds.com
|
||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||
id S1756106Ab3H3WrX (ORCPT <rfc822;georgezhim@gmail.com>
|
||||
+ 99 others); Fri, 30 Aug 2013 18:47:23 -0400
|
||||
Received: from usindpps04.hds.com ([207.126.252.17]:35640 "EHLO
|
||||
usindpps04.hds.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
||||
with ESMTP id S1752650Ab3H3WrW (ORCPT
|
||||
<rfc822;linux-kernel@vger.kernel.org>);
|
||||
Fri, 30 Aug 2013 18:47:22 -0400
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hds.com; h=subject : to : from : cc
|
||||
: date : message-id : in-reply-to : references : mime-version :
|
||||
content-type : content-transfer-encoding; s=mail1;
|
||||
bh=xbQuWVaSJrPfWG5E7bXFAbOFjf/sBaRZsPmpVgy0CYk=;
|
||||
b=NW/A8Imu32MXoBi5FLrQ0FsK66RTWMQo1bFRtgQplVEQQIAXyf1XhCaAZyTkTplc0iEx
|
||||
ovyGZHvLbmGL6w3I3pxkCFz1BPJCqoZtvQITir/WvfzyadYOK1cz+vuBUQSCmfkacvS/
|
||||
w37h1jLAjsvWXkl0GY7pxB9HJMXdeLnhhuWxtNU8m8rKZ7t3LSByMeQi5/3OTkNojDEe
|
||||
70cKeZXCPQ/UIDJAF4cpSVXia5FwoJISjXvQIrvqkYhFelzq3OHMcC482PdpqNB475h3
|
||||
yHHJ83HFOLRulUQdOG5ZVTB9qRg0zxRx/oedeXwzturFke68noRRa4f4izQ8sCwsWOCI Dw==
|
||||
Received: from usindmail01.hds.com (usindmail03 [207.126.252.22])
|
||||
by usindpps04.hds.com (8.14.5/8.14.5) with ESMTP id r7UMlHIc025543;
|
||||
Fri, 30 Aug 2013 18:47:17 -0400
|
||||
Received: from hds.com (usindnetf5d-vlan47float.corp.hds.com [10.74.73.11])
|
||||
by usindmail01.hds.com (8.14.1/8.14.1) with ESMTP id r7UMlGiC058545;
|
||||
Fri, 30 Aug 2013 18:47:17 -0400 (EDT)
|
||||
Subject: [PATCH v2 2/2] elevator: acquire q->sysfs_lock in elevator_change()
|
||||
To: linux-kernel@vger.kernel.org
|
||||
From: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
|
||||
Cc: axboe@kernel.dk, tj@kernel.org, seiji.aguchi@hds.com,
|
||||
vgoyal@redhat.com, majianpeng@gmail.com
|
||||
Date: Fri, 30 Aug 2013 18:47:16 -0400
|
||||
Message-ID: <20130830224716.21812.99333.stgit@hds.com>
|
||||
In-Reply-To: <20130830224707.21812.63516.stgit@hds.com>
|
||||
References: <20130830224707.21812.63516.stgit@hds.com>
|
||||
User-Agent: StGit/0.16
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Proofpoint-SPF-Result: pass
|
||||
X-Proofpoint-SPF-Record: v=spf1 mx ip4:207.126.244.0/26 ip4:207.126.252.0/25 include:mktomail.com
|
||||
include:cloud.hds.com ~all
|
||||
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794,1.0.431,0.0.0000
|
||||
definitions=2013-08-30_09:2013-08-30,2013-08-30,1970-01-01 signatures=0
|
||||
X-Proofpoint-Spam-Details: rule=notspam policy=outbound_policy score=0 spamscore=0 suspectscore=1
|
||||
phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx
|
||||
scancount=1 engine=7.0.1-1305240000 definitions=main-1308300162
|
||||
Sender: linux-kernel-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-kernel.vger.kernel.org>
|
||||
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||
|
||||
Add locking of q->sysfs_lock into elevator_change() (an exported function)
|
||||
to ensure it is held to protect q->elevator from elevator_init(), even if
|
||||
elevator_change() is called from non-sysfs paths.
|
||||
sysfs path (elv_iosched_store) uses __elevator_change(), non-locking
|
||||
version, as the lock is already taken by elv_iosched_store().
|
||||
|
||||
Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
|
||||
---
|
||||
block/elevator.c | 16 ++++++++++++++--
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/block/elevator.c b/block/elevator.c
|
||||
index 02d4390..6d765f7 100644
|
||||
--- a/block/elevator.c
|
||||
+++ b/block/elevator.c
|
||||
@@ -965,7 +965,7 @@ fail_init:
|
||||
/*
|
||||
* Switch this queue to the given IO scheduler.
|
||||
*/
|
||||
-int elevator_change(struct request_queue *q, const char *name)
|
||||
+static int __elevator_change(struct request_queue *q, const char *name)
|
||||
{
|
||||
char elevator_name[ELV_NAME_MAX];
|
||||
struct elevator_type *e;
|
||||
@@ -987,6 +987,18 @@ int elevator_change(struct request_queue *q, const char *name)
|
||||
|
||||
return elevator_switch(q, e);
|
||||
}
|
||||
+
|
||||
+int elevator_change(struct request_queue *q, const char *name)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ /* Protect q->elevator from elevator_init() */
|
||||
+ mutex_lock(&q->sysfs_lock);
|
||||
+ ret = __elevator_change(q, name);
|
||||
+ mutex_unlock(&q->sysfs_lock);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
EXPORT_SYMBOL(elevator_change);
|
||||
|
||||
ssize_t elv_iosched_store(struct request_queue *q, const char *name,
|
||||
@@ -997,7 +1009,7 @@ ssize_t elv_iosched_store(struct request_queue *q, const char *name,
|
||||
if (!q->elevator)
|
||||
return count;
|
||||
|
||||
- ret = elevator_change(q, name);
|
||||
+ ret = __elevator_change(q, name);
|
||||
if (!ret)
|
||||
return count;
|
||||
|
||||
|
||||
--
|
||||
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/
|
|
@ -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 <pthread.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#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 <woodard@redhat.com>
|
||||
Signed-off-by: Mark Grondona <mgrondona@llnl.gov>
|
||||
---
|
||||
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/
|
|
@ -0,0 +1,154 @@
|
|||
From 062c2e4363451d49ef840232fe65e8bff0dde2a5 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Fri, 27 Sep 2013 18:09:54 -0400
|
||||
Subject: [PATCH 1/4] drm/radeon: use 64-bit math to calculate CTS values for
|
||||
audio (v2)
|
||||
|
||||
Avoid losing precision. See bug:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69675
|
||||
|
||||
v2: fix math as per Anssi's comments.
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index b0fa600..49043a5 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -75,8 +75,15 @@ static const struct radeon_hdmi_acr r600_hdmi_predefined_acr[] = {
|
||||
*/
|
||||
static void r600_hdmi_calc_cts(uint32_t clock, int *CTS, int N, int freq)
|
||||
{
|
||||
- if (*CTS == 0)
|
||||
- *CTS = clock * N / (128 * freq) * 1000;
|
||||
+ u64 n;
|
||||
+ u32 d;
|
||||
+
|
||||
+ if (*CTS == 0) {
|
||||
+ n = (u64)clock * (u64)N * 1000ULL;
|
||||
+ d = 128 * freq;
|
||||
+ do_div(n, d);
|
||||
+ *CTS = n;
|
||||
+ }
|
||||
DRM_DEBUG("Using ACR timing N=%d CTS=%d for frequency %d\n",
|
||||
N, *CTS, freq);
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
||||
From e7d12c2f98ae1e68c7298e5028048d150fa553a1 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Fri, 27 Sep 2013 18:19:42 -0400
|
||||
Subject: [PATCH 2/4] drm/radeon: fix N/CTS clock matching for audio
|
||||
|
||||
The drm code that calculates the 1001 clocks rounds up
|
||||
rather than truncating. This allows the table to match
|
||||
properly on those modes.
|
||||
|
||||
See bug:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69675
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index 49043a5..567703f 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -57,15 +57,15 @@ enum r600_hdmi_iec_status_bits {
|
||||
static const struct radeon_hdmi_acr r600_hdmi_predefined_acr[] = {
|
||||
/* 32kHz 44.1kHz 48kHz */
|
||||
/* Clock N CTS N CTS N CTS */
|
||||
- { 25174, 4576, 28125, 7007, 31250, 6864, 28125 }, /* 25,20/1.001 MHz */
|
||||
+ { 25175, 4576, 28125, 7007, 31250, 6864, 28125 }, /* 25,20/1.001 MHz */
|
||||
{ 25200, 4096, 25200, 6272, 28000, 6144, 25200 }, /* 25.20 MHz */
|
||||
{ 27000, 4096, 27000, 6272, 30000, 6144, 27000 }, /* 27.00 MHz */
|
||||
{ 27027, 4096, 27027, 6272, 30030, 6144, 27027 }, /* 27.00*1.001 MHz */
|
||||
{ 54000, 4096, 54000, 6272, 60000, 6144, 54000 }, /* 54.00 MHz */
|
||||
{ 54054, 4096, 54054, 6272, 60060, 6144, 54054 }, /* 54.00*1.001 MHz */
|
||||
- { 74175, 11648, 210937, 17836, 234375, 11648, 140625 }, /* 74.25/1.001 MHz */
|
||||
+ { 74176, 11648, 210937, 17836, 234375, 11648, 140625 }, /* 74.25/1.001 MHz */
|
||||
{ 74250, 4096, 74250, 6272, 82500, 6144, 74250 }, /* 74.25 MHz */
|
||||
- { 148351, 11648, 421875, 8918, 234375, 5824, 140625 }, /* 148.50/1.001 MHz */
|
||||
+ { 148352, 11648, 421875, 8918, 234375, 5824, 140625 }, /* 148.50/1.001 MHz */
|
||||
{ 148500, 4096, 148500, 6272, 165000, 6144, 148500 }, /* 148.50 MHz */
|
||||
{ 0, 4096, 0, 6272, 0, 6144, 0 } /* Other */
|
||||
};
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
||||
From ee0fec312a1c4e26f255955da942562cd8908a4b Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Fri, 27 Sep 2013 18:22:15 -0400
|
||||
Subject: [PATCH 3/4] drm/radeon: use hw generated CTS/N values for audio
|
||||
|
||||
Use the hw generated values rather than calculating
|
||||
them in the driver. There may be some older r6xx
|
||||
asics where this doesn't work correctly. This remains
|
||||
to be seen.
|
||||
|
||||
See bug:
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=69675
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index 567703f..e2ae1c2 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -451,8 +451,7 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod
|
||||
}
|
||||
|
||||
WREG32(HDMI0_ACR_PACKET_CONTROL + offset,
|
||||
- HDMI0_ACR_AUTO_SEND | /* allow hw to sent ACR packets when required */
|
||||
- HDMI0_ACR_SOURCE); /* select SW CTS value */
|
||||
+ HDMI0_ACR_AUTO_SEND); /* allow hw to sent ACR packets when required */
|
||||
|
||||
WREG32(HDMI0_VBI_PACKET_CONTROL + offset,
|
||||
HDMI0_NULL_SEND | /* send null packets when required */
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
||||
From b852c985010a77c850b7548d64bbb964ca462b02 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Thu, 10 Oct 2013 11:47:01 -0400
|
||||
Subject: [PATCH 4/4] drm/radeon: re-enable sw ACR support on pre-DCE4
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
HW ACR support may have issues on some older chips, so
|
||||
use SW ACR for now until we've tested further.
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
CC: Rafał Miłecki <zajec5@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/r600_hdmi.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
index e2ae1c2..5b72931 100644
|
||||
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
|
||||
@@ -451,6 +451,7 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod
|
||||
}
|
||||
|
||||
WREG32(HDMI0_ACR_PACKET_CONTROL + offset,
|
||||
+ HDMI0_ACR_SOURCE | /* select SW CTS value - XXX verify that hw CTS works on all families */
|
||||
HDMI0_ACR_AUTO_SEND); /* allow hw to sent ACR packets when required */
|
||||
|
||||
WREG32(HDMI0_VBI_PACKET_CONTROL + offset,
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -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
|
10
genkey
10
genkey
|
@ -1,10 +0,0 @@
|
|||
%pubring modsign.pub
|
||||
%secring modsign.sec
|
||||
%no-protection: yes
|
||||
%transient-key: yes
|
||||
Key-Type: RSA
|
||||
Key-Length: 2048
|
||||
Name-Real: Fedora Project
|
||||
Name-Comment: Kernel Module GPG key
|
||||
%commit
|
||||
|
|
@ -0,0 +1,253 @@
|
|||
Bugzilla: 1035887
|
||||
Upstream-status: 3.13
|
||||
|
||||
From 4be402ba6158068d53ab0268f1affa9d82dae2ec Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Date: Fri, 22 Nov 2013 23:46:12 +0000
|
||||
Subject: [PATCH] inet: fix addr_len/msg->msg_namelen assignment in recv_error
|
||||
and rxpmtu functions
|
||||
|
||||
Commit bceaa90240b6019ed73b49965eac7d167610be69 ("inet: prevent leakage
|
||||
of uninitialized memory to user in recv syscalls") conditionally updated
|
||||
addr_len if the msg_name is written to. The recv_error and rxpmtu
|
||||
functions relied on the recvmsg functions to set up addr_len before.
|
||||
|
||||
As this does not happen any more we have to pass addr_len to those
|
||||
functions as well and set it to the size of the corresponding sockaddr
|
||||
length.
|
||||
|
||||
This broke traceroute and such.
|
||||
|
||||
Fixes: bceaa90240b6 ("inet: prevent leakage of uninitialized memory to user in recv syscalls")
|
||||
Reported-by: Brad Spengler <spender@grsecurity.net>
|
||||
Reported-by: Tom Labanowski
|
||||
Cc: mpb <mpb.mail@gmail.com>
|
||||
Cc: David S. Miller <davem@davemloft.net>
|
||||
Cc: Eric Dumazet <eric.dumazet@gmail.com>
|
||||
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
include/net/ip.h | 2 +-
|
||||
include/net/ipv6.h | 4 ++--
|
||||
include/net/ping.h | 3 ++-
|
||||
net/ipv4/ip_sockglue.c | 3 ++-
|
||||
net/ipv4/ping.c | 5 +++--
|
||||
net/ipv4/raw.c | 2 +-
|
||||
net/ipv4/udp.c | 2 +-
|
||||
net/ipv6/datagram.c | 7 +++++--
|
||||
net/ipv6/ping.c | 3 ++-
|
||||
net/ipv6/raw.c | 4 ++--
|
||||
net/ipv6/udp.c | 4 ++--
|
||||
net/l2tp/l2tp_ip6.c | 2 +-
|
||||
12 files changed, 24 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/include/net/ip.h b/include/net/ip.h
|
||||
index 5e52688..301f10c 100644
|
||||
--- a/include/net/ip.h
|
||||
+++ b/include/net/ip.h
|
||||
@@ -464,7 +464,7 @@ extern int compat_ip_getsockopt(struct sock *sk, int level,
|
||||
int optname, char __user *optval, int __user *optlen);
|
||||
extern int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *));
|
||||
|
||||
-extern int ip_recv_error(struct sock *sk, struct msghdr *msg, int len);
|
||||
+extern int ip_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len);
|
||||
extern void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
|
||||
__be16 port, u32 info, u8 *payload);
|
||||
extern void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 dport,
|
||||
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
|
||||
index bbf1c8f..5529d79 100644
|
||||
--- a/include/net/ipv6.h
|
||||
+++ b/include/net/ipv6.h
|
||||
@@ -802,8 +802,8 @@ extern int compat_ipv6_getsockopt(struct sock *sk,
|
||||
extern int ip6_datagram_connect(struct sock *sk,
|
||||
struct sockaddr *addr, int addr_len);
|
||||
|
||||
-extern int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len);
|
||||
-extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len);
|
||||
+extern int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len);
|
||||
+extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len, int *addr_len);
|
||||
extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port,
|
||||
u32 info, u8 *payload);
|
||||
extern void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info);
|
||||
diff --git a/include/net/ping.h b/include/net/ping.h
|
||||
index 5db0224..2b496e9 100644
|
||||
--- a/include/net/ping.h
|
||||
+++ b/include/net/ping.h
|
||||
@@ -31,7 +31,8 @@
|
||||
|
||||
/* Compatibility glue so we can support IPv6 when it's compiled as a module */
|
||||
struct pingv6_ops {
|
||||
- int (*ipv6_recv_error)(struct sock *sk, struct msghdr *msg, int len);
|
||||
+ int (*ipv6_recv_error)(struct sock *sk, struct msghdr *msg, int len,
|
||||
+ int *addr_len);
|
||||
int (*ip6_datagram_recv_ctl)(struct sock *sk, struct msghdr *msg,
|
||||
struct sk_buff *skb);
|
||||
int (*icmpv6_err_convert)(u8 type, u8 code, int *err);
|
||||
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
|
||||
index d9c4f11..23e6ab0 100644
|
||||
--- a/net/ipv4/ip_sockglue.c
|
||||
+++ b/net/ipv4/ip_sockglue.c
|
||||
@@ -368,7 +368,7 @@ void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 port, u32 inf
|
||||
/*
|
||||
* Handle MSG_ERRQUEUE
|
||||
*/
|
||||
-int ip_recv_error(struct sock *sk, struct msghdr *msg, int len)
|
||||
+int ip_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
|
||||
{
|
||||
struct sock_exterr_skb *serr;
|
||||
struct sk_buff *skb, *skb2;
|
||||
@@ -405,6 +405,7 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len)
|
||||
serr->addr_offset);
|
||||
sin->sin_port = serr->port;
|
||||
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
|
||||
memcpy(&errhdr.ee, &serr->ee, sizeof(struct sock_extended_err));
|
||||
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
|
||||
index 92fb6ff..ac31877 100644
|
||||
--- a/net/ipv4/ping.c
|
||||
+++ b/net/ipv4/ping.c
|
||||
@@ -838,10 +838,11 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
|
||||
if (flags & MSG_ERRQUEUE) {
|
||||
if (family == AF_INET) {
|
||||
- return ip_recv_error(sk, msg, len);
|
||||
+ return ip_recv_error(sk, msg, len, addr_len);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
} else if (family == AF_INET6) {
|
||||
- return pingv6_ops.ipv6_recv_error(sk, msg, len);
|
||||
+ return pingv6_ops.ipv6_recv_error(sk, msg, len,
|
||||
+ addr_len);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
|
||||
index ca4c3f1..7d3db78 100644
|
||||
--- a/net/ipv4/raw.c
|
||||
+++ b/net/ipv4/raw.c
|
||||
@@ -695,7 +695,7 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
goto out;
|
||||
|
||||
if (flags & MSG_ERRQUEUE) {
|
||||
- err = ip_recv_error(sk, msg, len);
|
||||
+ err = ip_recv_error(sk, msg, len, addr_len);
|
||||
goto out;
|
||||
}
|
||||
|
||||
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
|
||||
index a7003de..1ef8794 100644
|
||||
--- a/net/ipv4/udp.c
|
||||
+++ b/net/ipv4/udp.c
|
||||
@@ -1210,7 +1210,7 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
bool slow;
|
||||
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
- return ip_recv_error(sk, msg, len);
|
||||
+ return ip_recv_error(sk, msg, len, addr_len);
|
||||
|
||||
try_again:
|
||||
skb = __skb_recv_datagram(sk, flags | (noblock ? MSG_DONTWAIT : 0),
|
||||
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
|
||||
index 48b6bd2..7a0fd80 100644
|
||||
--- a/net/ipv6/datagram.c
|
||||
+++ b/net/ipv6/datagram.c
|
||||
@@ -318,7 +318,7 @@ void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu)
|
||||
/*
|
||||
* Handle MSG_ERRQUEUE
|
||||
*/
|
||||
-int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
|
||||
+int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
|
||||
{
|
||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
struct sock_exterr_skb *serr;
|
||||
@@ -369,6 +369,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
|
||||
&sin->sin6_addr);
|
||||
sin->sin6_scope_id = 0;
|
||||
}
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
|
||||
memcpy(&errhdr.ee, &serr->ee, sizeof(struct sock_extended_err));
|
||||
@@ -423,7 +424,8 @@ EXPORT_SYMBOL_GPL(ipv6_recv_error);
|
||||
/*
|
||||
* Handle IPV6_RECVPATHMTU
|
||||
*/
|
||||
-int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len)
|
||||
+int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len,
|
||||
+ int *addr_len)
|
||||
{
|
||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
struct sk_buff *skb;
|
||||
@@ -457,6 +459,7 @@ int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len)
|
||||
sin->sin6_port = 0;
|
||||
sin->sin6_scope_id = mtu_info.ip6m_addr.sin6_scope_id;
|
||||
sin->sin6_addr = mtu_info.ip6m_addr.sin6_addr;
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
|
||||
put_cmsg(msg, SOL_IPV6, IPV6_PATHMTU, sizeof(mtu_info), &mtu_info);
|
||||
diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
|
||||
index 18f19df..7856e96 100644
|
||||
--- a/net/ipv6/ping.c
|
||||
+++ b/net/ipv6/ping.c
|
||||
@@ -57,7 +57,8 @@ static struct inet_protosw pingv6_protosw = {
|
||||
|
||||
|
||||
/* Compatibility glue so we can support IPv6 when it's compiled as a module */
|
||||
-static int dummy_ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
|
||||
+static int dummy_ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len,
|
||||
+ int *addr_len)
|
||||
{
|
||||
return -EAFNOSUPPORT;
|
||||
}
|
||||
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
|
||||
index 2f303bf..430067c 100644
|
||||
--- a/net/ipv6/raw.c
|
||||
+++ b/net/ipv6/raw.c
|
||||
@@ -467,10 +467,10 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
- return ipv6_recv_error(sk, msg, len);
|
||||
+ return ipv6_recv_error(sk, msg, len, addr_len);
|
||||
|
||||
if (np->rxpmtu && np->rxopt.bits.rxpmtu)
|
||||
- return ipv6_recv_rxpmtu(sk, msg, len);
|
||||
+ return ipv6_recv_rxpmtu(sk, msg, len, addr_len);
|
||||
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &err);
|
||||
if (!skb)
|
||||
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
|
||||
index a59beed..3d2758d 100644
|
||||
--- a/net/ipv6/udp.c
|
||||
+++ b/net/ipv6/udp.c
|
||||
@@ -375,10 +375,10 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
bool slow;
|
||||
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
- return ipv6_recv_error(sk, msg, len);
|
||||
+ return ipv6_recv_error(sk, msg, len, addr_len);
|
||||
|
||||
if (np->rxpmtu && np->rxopt.bits.rxpmtu)
|
||||
- return ipv6_recv_rxpmtu(sk, msg, len);
|
||||
+ return ipv6_recv_rxpmtu(sk, msg, len, addr_len);
|
||||
|
||||
try_again:
|
||||
skb = __skb_recv_datagram(sk, flags | (noblock ? MSG_DONTWAIT : 0),
|
||||
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
|
||||
index b8a6039..e6e8408 100644
|
||||
--- a/net/l2tp/l2tp_ip6.c
|
||||
+++ b/net/l2tp/l2tp_ip6.c
|
||||
@@ -665,7 +665,7 @@ static int l2tp_ip6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
*addr_len = sizeof(*lsa);
|
||||
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
- return ipv6_recv_error(sk, msg, len);
|
||||
+ return ipv6_recv_error(sk, msg, len, addr_len);
|
||||
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &err);
|
||||
if (!skb)
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,256 @@
|
|||
Bugzilla: 1035887
|
||||
Upstream-status: 3.13
|
||||
|
||||
From bceaa90240b6019ed73b49965eac7d167610be69 Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Date: Mon, 18 Nov 2013 04:20:45 +0100
|
||||
Subject: [PATCH] inet: prevent leakage of uninitialized memory to user in recv
|
||||
syscalls
|
||||
|
||||
Only update *addr_len when we actually fill in sockaddr, otherwise we
|
||||
can return uninitialized memory from the stack to the caller in the
|
||||
recvfrom, recvmmsg and recvmsg syscalls. Drop the the (addr_len == NULL)
|
||||
checks because we only get called with a valid addr_len pointer either
|
||||
from sock_common_recvmsg or inet_recvmsg.
|
||||
|
||||
If a blocking read waits on a socket which is concurrently shut down we
|
||||
now return zero and set msg_msgnamelen to 0.
|
||||
|
||||
Reported-by: mpb <mpb.mail@gmail.com>
|
||||
Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
|
||||
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ieee802154/dgram.c | 3 +--
|
||||
net/ipv4/ping.c | 19 +++++++------------
|
||||
net/ipv4/raw.c | 4 +---
|
||||
net/ipv4/udp.c | 7 +------
|
||||
net/ipv6/raw.c | 4 +---
|
||||
net/ipv6/udp.c | 5 +----
|
||||
net/l2tp/l2tp_ip.c | 4 +---
|
||||
net/phonet/datagram.c | 9 ++++-----
|
||||
8 files changed, 17 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c
|
||||
index 581a595..1865fdf 100644
|
||||
--- a/net/ieee802154/dgram.c
|
||||
+++ b/net/ieee802154/dgram.c
|
||||
@@ -315,9 +315,8 @@ static int dgram_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
if (saddr) {
|
||||
saddr->family = AF_IEEE802154;
|
||||
saddr->addr = mac_cb(skb)->sa;
|
||||
- }
|
||||
- if (addr_len)
|
||||
*addr_len = sizeof(*saddr);
|
||||
+ }
|
||||
|
||||
if (flags & MSG_TRUNC)
|
||||
copied = skb->len;
|
||||
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
|
||||
index 9afbdb1..aacefa0 100644
|
||||
--- a/net/ipv4/ping.c
|
||||
+++ b/net/ipv4/ping.c
|
||||
@@ -830,8 +830,6 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
{
|
||||
struct inet_sock *isk = inet_sk(sk);
|
||||
int family = sk->sk_family;
|
||||
- struct sockaddr_in *sin;
|
||||
- struct sockaddr_in6 *sin6;
|
||||
struct sk_buff *skb;
|
||||
int copied, err;
|
||||
|
||||
@@ -841,13 +839,6 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
if (flags & MSG_OOB)
|
||||
goto out;
|
||||
|
||||
- if (addr_len) {
|
||||
- if (family == AF_INET)
|
||||
- *addr_len = sizeof(*sin);
|
||||
- else if (family == AF_INET6 && addr_len)
|
||||
- *addr_len = sizeof(*sin6);
|
||||
- }
|
||||
-
|
||||
if (flags & MSG_ERRQUEUE) {
|
||||
if (family == AF_INET) {
|
||||
return ip_recv_error(sk, msg, len);
|
||||
@@ -877,11 +868,13 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
|
||||
/* Copy the address and add cmsg data. */
|
||||
if (family == AF_INET) {
|
||||
- sin = (struct sockaddr_in *) msg->msg_name;
|
||||
+ struct sockaddr_in *sin = (struct sockaddr_in *)msg->msg_name;
|
||||
+
|
||||
sin->sin_family = AF_INET;
|
||||
sin->sin_port = 0 /* skb->h.uh->source */;
|
||||
sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
|
||||
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
|
||||
+ *addr_len = sizeof(*sin);
|
||||
|
||||
if (isk->cmsg_flags)
|
||||
ip_cmsg_recv(msg, skb);
|
||||
@@ -890,17 +883,19 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
} else if (family == AF_INET6) {
|
||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
struct ipv6hdr *ip6 = ipv6_hdr(skb);
|
||||
- sin6 = (struct sockaddr_in6 *) msg->msg_name;
|
||||
+ struct sockaddr_in6 *sin6 =
|
||||
+ (struct sockaddr_in6 *)msg->msg_name;
|
||||
+
|
||||
sin6->sin6_family = AF_INET6;
|
||||
sin6->sin6_port = 0;
|
||||
sin6->sin6_addr = ip6->saddr;
|
||||
-
|
||||
sin6->sin6_flowinfo = 0;
|
||||
if (np->sndflow)
|
||||
sin6->sin6_flowinfo = ip6_flowinfo(ip6);
|
||||
|
||||
sin6->sin6_scope_id = ipv6_iface_scope_id(&sin6->sin6_addr,
|
||||
IP6CB(skb)->iif);
|
||||
+ *addr_len = sizeof(*sin6);
|
||||
|
||||
if (inet6_sk(sk)->rxopt.all)
|
||||
pingv6_ops.ip6_datagram_recv_ctl(sk, msg, skb);
|
||||
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
|
||||
index 41e1d28..5cb8ddb 100644
|
||||
--- a/net/ipv4/raw.c
|
||||
+++ b/net/ipv4/raw.c
|
||||
@@ -696,9 +696,6 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
if (flags & MSG_OOB)
|
||||
goto out;
|
||||
|
||||
- if (addr_len)
|
||||
- *addr_len = sizeof(*sin);
|
||||
-
|
||||
if (flags & MSG_ERRQUEUE) {
|
||||
err = ip_recv_error(sk, msg, len);
|
||||
goto out;
|
||||
@@ -726,6 +723,7 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
|
||||
sin->sin_port = 0;
|
||||
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
if (inet->cmsg_flags)
|
||||
ip_cmsg_recv(msg, skb);
|
||||
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
|
||||
index 89909dd..998431c 100644
|
||||
--- a/net/ipv4/udp.c
|
||||
+++ b/net/ipv4/udp.c
|
||||
@@ -1235,12 +1235,6 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
int is_udplite = IS_UDPLITE(sk);
|
||||
bool slow;
|
||||
|
||||
- /*
|
||||
- * Check any passed addresses
|
||||
- */
|
||||
- if (addr_len)
|
||||
- *addr_len = sizeof(*sin);
|
||||
-
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
return ip_recv_error(sk, msg, len);
|
||||
|
||||
@@ -1302,6 +1296,7 @@ try_again:
|
||||
sin->sin_port = udp_hdr(skb)->source;
|
||||
sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
|
||||
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
if (inet->cmsg_flags)
|
||||
ip_cmsg_recv(msg, skb);
|
||||
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
|
||||
index 3c00842..e24ff1d 100644
|
||||
--- a/net/ipv6/raw.c
|
||||
+++ b/net/ipv6/raw.c
|
||||
@@ -465,9 +465,6 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
if (flags & MSG_OOB)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- if (addr_len)
|
||||
- *addr_len=sizeof(*sin6);
|
||||
-
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
return ipv6_recv_error(sk, msg, len);
|
||||
|
||||
@@ -506,6 +503,7 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
sin6->sin6_flowinfo = 0;
|
||||
sin6->sin6_scope_id = ipv6_iface_scope_id(&sin6->sin6_addr,
|
||||
IP6CB(skb)->iif);
|
||||
+ *addr_len = sizeof(*sin6);
|
||||
}
|
||||
|
||||
sock_recv_ts_and_drops(msg, sk, skb);
|
||||
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
|
||||
index f3893e8..81eb8cf 100644
|
||||
--- a/net/ipv6/udp.c
|
||||
+++ b/net/ipv6/udp.c
|
||||
@@ -392,9 +392,6 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
int is_udp4;
|
||||
bool slow;
|
||||
|
||||
- if (addr_len)
|
||||
- *addr_len = sizeof(struct sockaddr_in6);
|
||||
-
|
||||
if (flags & MSG_ERRQUEUE)
|
||||
return ipv6_recv_error(sk, msg, len);
|
||||
|
||||
@@ -480,7 +477,7 @@ try_again:
|
||||
ipv6_iface_scope_id(&sin6->sin6_addr,
|
||||
IP6CB(skb)->iif);
|
||||
}
|
||||
-
|
||||
+ *addr_len = sizeof(*sin6);
|
||||
}
|
||||
if (is_udp4) {
|
||||
if (inet->cmsg_flags)
|
||||
diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
|
||||
index 571db8d..da1a1ce 100644
|
||||
--- a/net/l2tp/l2tp_ip.c
|
||||
+++ b/net/l2tp/l2tp_ip.c
|
||||
@@ -518,9 +518,6 @@ static int l2tp_ip_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
|
||||
if (flags & MSG_OOB)
|
||||
goto out;
|
||||
|
||||
- if (addr_len)
|
||||
- *addr_len = sizeof(*sin);
|
||||
-
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &err);
|
||||
if (!skb)
|
||||
goto out;
|
||||
@@ -543,6 +540,7 @@ static int l2tp_ip_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
|
||||
sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
|
||||
sin->sin_port = 0;
|
||||
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
|
||||
+ *addr_len = sizeof(*sin);
|
||||
}
|
||||
if (inet->cmsg_flags)
|
||||
ip_cmsg_recv(msg, skb);
|
||||
diff --git a/net/phonet/datagram.c b/net/phonet/datagram.c
|
||||
index 12c30f3..38946b2 100644
|
||||
--- a/net/phonet/datagram.c
|
||||
+++ b/net/phonet/datagram.c
|
||||
@@ -139,9 +139,6 @@ static int pn_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
MSG_CMSG_COMPAT))
|
||||
goto out_nofree;
|
||||
|
||||
- if (addr_len)
|
||||
- *addr_len = sizeof(sa);
|
||||
-
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &rval);
|
||||
if (skb == NULL)
|
||||
goto out_nofree;
|
||||
@@ -162,8 +159,10 @@ static int pn_recvmsg(struct kiocb *iocb, struct sock *sk,
|
||||
|
||||
rval = (flags & MSG_TRUNC) ? skb->len : copylen;
|
||||
|
||||
- if (msg->msg_name != NULL)
|
||||
- memcpy(msg->msg_name, &sa, sizeof(struct sockaddr_pn));
|
||||
+ if (msg->msg_name != NULL) {
|
||||
+ memcpy(msg->msg_name, &sa, sizeof(sa));
|
||||
+ *addr_len = sizeof(sa);
|
||||
+ }
|
||||
|
||||
out:
|
||||
skb_free_datagram(sk, skb);
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
From 05104a4e8713b27291c7bb49c1e7e68b4e243571 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Horman <nhorman@tuxdriver.com>
|
||||
Date: Fri, 27 Sep 2013 16:53:35 +0000
|
||||
Subject: iommu: Remove stack trace from broken irq remapping warning
|
||||
|
||||
The warning for the irq remapping broken check in intel_irq_remapping.c is
|
||||
pretty pointless. We need the warning, but we know where its comming from, the
|
||||
stack trace will always be the same, and it needlessly triggers things like
|
||||
Abrt. This changes the warning to just print a text warning about BIOS being
|
||||
broken, without the stack trace, then sets the appropriate taint bit. Since we
|
||||
automatically disable irq remapping, theres no need to contiue making Abrt jump
|
||||
at this problem
|
||||
|
||||
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
|
||||
CC: Joerg Roedel <joro@8bytes.org>
|
||||
CC: Bjorn Helgaas <bhelgaas@google.com>
|
||||
CC: Andy Lutomirski <luto@amacapital.net>
|
||||
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
|
||||
CC: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
|
||||
Signed-off-by: Joerg Roedel <joro@8bytes.org>
|
||||
---
|
||||
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
|
||||
index f71673d..b97d70b 100644
|
||||
--- a/drivers/iommu/intel_irq_remapping.c
|
||||
+++ b/drivers/iommu/intel_irq_remapping.c
|
||||
@@ -525,12 +525,13 @@ static int __init intel_irq_remapping_supported(void)
|
||||
if (disable_irq_remap)
|
||||
return 0;
|
||||
if (irq_remap_broken) {
|
||||
- WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND,
|
||||
- "This system BIOS has enabled interrupt remapping\n"
|
||||
- "on a chipset that contains an erratum making that\n"
|
||||
- "feature unstable. To maintain system stability\n"
|
||||
- "interrupt remapping is being disabled. Please\n"
|
||||
- "contact your BIOS vendor for an update\n");
|
||||
+ printk(KERN_WARNING
|
||||
+ "This system BIOS has enabled interrupt remapping\n"
|
||||
+ "on a chipset that contains an erratum making that\n"
|
||||
+ "feature unstable. To maintain system stability\n"
|
||||
+ "interrupt remapping is being disabled. Please\n"
|
||||
+ "contact your BIOS vendor for an update\n");
|
||||
+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
|
||||
disable_irq_remap = 1;
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -0,0 +1,43 @@
|
|||
Bugzilla: 1030015 1030017
|
||||
Upstream-status: 3.13
|
||||
|
||||
From aeb45260747b0a1bf4d374d5e65298cc254cb4f5 Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Date: Tue, 5 Nov 2013 02:41:27 +0100
|
||||
Subject: [PATCH] ipv6: fix headroom calculation in udp6_ufo_fragment
|
||||
|
||||
Commit 1e2bd517c108816220f262d7954b697af03b5f9c ("udp6: Fix udp
|
||||
fragmentation for tunnel traffic.") changed the calculation if
|
||||
there is enough space to include a fragment header in the skb from a
|
||||
skb->mac_header dervived one to skb_headroom. Because we already peeled
|
||||
off the skb to transport_header this is wrong. Change this back to check
|
||||
if we have enough room before the mac_header.
|
||||
|
||||
This fixes a panic Saran Neti reported. He used the tbf scheduler which
|
||||
skb_gso_segments the skb. The offsets get negative and we panic in memcpy
|
||||
because the skb was erroneously not expanded at the head.
|
||||
|
||||
Reported-by: Saran Neti <Saran.Neti@telus.com>
|
||||
Cc: Pravin B Shelar <pshelar@nicira.com>
|
||||
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv6/udp_offload.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c
|
||||
index 5d1b8d7..657914b 100644
|
||||
--- a/net/ipv6/udp_offload.c
|
||||
+++ b/net/ipv6/udp_offload.c
|
||||
@@ -86,7 +86,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
|
||||
|
||||
/* Check if there is enough headroom to insert fragment header. */
|
||||
tnl_hlen = skb_tnl_header_len(skb);
|
||||
- if (skb_headroom(skb) < (tnl_hlen + frag_hdr_sz)) {
|
||||
+ if (skb->mac_header < (tnl_hlen + frag_hdr_sz)) {
|
||||
if (gso_pskb_expand_head(skb, tnl_hlen + frag_hdr_sz))
|
||||
goto out;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
From: Eric Dumazet <edumazet@google.com>
|
||||
|
||||
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 <sesse@google.com>
|
||||
Signed-off-by: Eric Dumazet <edumazet@google.com>
|
||||
Cc: Paul Stewart <pstew@google.com>
|
||||
---
|
||||
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)
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
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 <sgruszka@redhat.com>
|
||||
---
|
||||
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
|
||||
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From f6b129527ca15bae29ffb9417ddaa1c9d99ffc5d Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Tue, 15 Oct 2013 19:04:54 +0000
|
||||
Subject: iwlwifi: dvm: don't override mac80211's queue setting
|
||||
|
||||
Since we set IEEE80211_HW_QUEUE_CONTROL, we can let
|
||||
mac80211 do the queue assignement and don't need to
|
||||
override its decisions.
|
||||
While reassiging the same values is harmless of course,
|
||||
it triggered a WARNING when iwlwifi and mac80211 came
|
||||
to different conclusions. This happened when mac80211 set
|
||||
IEEE80211_TX_CTL_SEND_AFTER_DTIM, but didn't route the
|
||||
packet to the cab_queue because no stations were asleep.
|
||||
|
||||
iwlwifi should not override mac80211's decicions for
|
||||
offchannel packets and packets to be sent after DTIM,
|
||||
but it should override mac80211's decision for AMPDUs
|
||||
since we have a special queue for them. So for AMPDU,
|
||||
we still override info->hw_queue by the AMPDU queue.
|
||||
|
||||
This avoids:
|
||||
------------[ cut here ]------------
|
||||
WARNING: CPU: 0 PID: 2531 at drivers/net/wireless/iwlwifi/dvm/tx.c:456 iwlagn_tx_skb+0x6c5/0x883()
|
||||
Modules linked in:
|
||||
CPU: 0 PID: 2531 Comm: hostapd Not tainted 3.12.0-rc5+ #1
|
||||
Hardware name: /D53427RKE, BIOS RKPPT10H.86A.0017.2013.0425.1251 04/25/2013
|
||||
0000000000000000 0000000000000009 ffffffff8189aa62 0000000000000000
|
||||
ffffffff8105a4f2 ffff880058339a48 ffffffff815f8a04 0000000000000000
|
||||
ffff8800560097b0 0000000000000208 0000000000000000 ffff8800561a9e5e
|
||||
Call Trace:
|
||||
[<ffffffff8189aa62>] ? dump_stack+0x41/0x51
|
||||
[<ffffffff8105a4f2>] ? warn_slowpath_common+0x78/0x90
|
||||
[<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
|
||||
[<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
|
||||
[<ffffffff818a0040>] ? put_cred+0x15/0x15
|
||||
[<ffffffff815f6db4>] ? iwlagn_mac_tx+0x19/0x2f
|
||||
[<ffffffff8186cc45>] ? __ieee80211_tx+0x226/0x29b
|
||||
[<ffffffff8186e6bd>] ? ieee80211_tx+0xa6/0xb5
|
||||
[<ffffffff8186e98b>] ? ieee80211_monitor_start_xmit+0x1e9/0x204
|
||||
[<ffffffff8171ce5f>] ? dev_hard_start_xmit+0x271/0x3ec
|
||||
[<ffffffff817351ac>] ? sch_direct_xmit+0x66/0x164
|
||||
[<ffffffff8171d1bf>] ? dev_queue_xmit+0x1e5/0x3c8
|
||||
[<ffffffff817fac5a>] ? packet_sendmsg+0xac5/0xb3d
|
||||
[<ffffffff81709a09>] ? sock_sendmsg+0x37/0x52
|
||||
[<ffffffff810f9e0c>] ? __do_fault+0x338/0x36b
|
||||
[<ffffffff81713820>] ? verify_iovec+0x44/0x94
|
||||
[<ffffffff81709e63>] ? ___sys_sendmsg+0x1f1/0x283
|
||||
[<ffffffff81140a73>] ? __inode_wait_for_writeback+0x67/0xae
|
||||
[<ffffffff8111735e>] ? __cache_free.isra.46+0x178/0x187
|
||||
[<ffffffff811173b1>] ? kmem_cache_free+0x44/0x84
|
||||
[<ffffffff81132c22>] ? dentry_kill+0x13d/0x149
|
||||
[<ffffffff81132f6f>] ? dput+0xe5/0xef
|
||||
[<ffffffff81136e04>] ? fget_light+0x2e/0x7c
|
||||
[<ffffffff8170ae62>] ? __sys_sendmsg+0x39/0x57
|
||||
[<ffffffff818a7e39>] ? system_call_fastpath+0x16/0x1b
|
||||
---[ end trace 1b3eb79359c1d1e6 ]---
|
||||
|
||||
Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
|
||||
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
index da442b8..1fef524 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
@@ -433,27 +433,19 @@ int iwlagn_tx_skb(struct iwl_priv *priv,
|
||||
/* Copy MAC header from skb into command buffer */
|
||||
memcpy(tx_cmd->hdr, hdr, hdr_len);
|
||||
|
||||
+ txq_id = info->hw_queue;
|
||||
+
|
||||
if (is_agg)
|
||||
txq_id = priv->tid_data[sta_id][tid].agg.txq_id;
|
||||
else if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) {
|
||||
/*
|
||||
- * Send this frame after DTIM -- there's a special queue
|
||||
- * reserved for this for contexts that support AP mode.
|
||||
- */
|
||||
- txq_id = ctx->mcast_queue;
|
||||
-
|
||||
- /*
|
||||
* The microcode will clear the more data
|
||||
* bit in the last frame it transmits.
|
||||
*/
|
||||
hdr->frame_control |=
|
||||
cpu_to_le16(IEEE80211_FCTL_MOREDATA);
|
||||
- } else if (info->flags & IEEE80211_TX_CTL_TX_OFFCHAN)
|
||||
- txq_id = IWL_AUX_QUEUE;
|
||||
- else
|
||||
- txq_id = ctx->ac_to_queue[skb_get_queue_mapping(skb)];
|
||||
+ }
|
||||
|
||||
- WARN_ON_ONCE(!is_agg && txq_id != info->hw_queue);
|
||||
WARN_ON_ONCE(is_agg &&
|
||||
priv->queue_to_mac80211[txq_id] != info->hw_queue);
|
||||
|
||||
--
|
||||
cgit v0.9.2
|
3647
kernel.spec
3647
kernel.spec
File diff suppressed because it is too large
Load Diff
|
@ -1,17 +0,0 @@
|
|||
Disable firmware video brightness change on AC/Battery switch by default
|
||||
|
||||
-- mjg59
|
||||
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index bac2901..93b1a9e 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -1818,7 +1818,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
|
||||
|
||||
static int acpi_video_bus_start_devices(struct acpi_video_bus *video)
|
||||
{
|
||||
- return acpi_video_bus_DOS(video, 0, 0);
|
||||
+ return acpi_video_bus_DOS(video, 0, 1);
|
||||
}
|
||||
|
||||
static int acpi_video_bus_stop_devices(struct acpi_video_bus *video)
|
|
@ -1,46 +0,0 @@
|
|||
From 802e6d8c8477a553a677b23a247d6d2638e01958 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Jones <davej@redhat.com>
|
||||
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
|
||||
|
|
@ -28,9 +28,9 @@ index 35c67e0..42dce2a 100644
|
|||
-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 */
|
||||
static int lis3lv02d_get_odr(struct lis3lv02d *lis3)
|
||||
@@ -202,12 +203,11 @@ static int lis3lv02d_get_odr(struct lis3lv02d *lis3)
|
||||
return lis3->odrs[(ctrl >> shift)];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
From b43ea8068d2090cb1e44632c8a938ab40d2c7419 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Koch <johannes@ortsraum.de>
|
||||
Date: Wed, 17 Jul 2013 17:28:16 +0000
|
||||
Subject: [media] cx23885: Fix TeVii S471 regression since introduction of ts2020
|
||||
|
||||
Patch to make TeVii S471 cards use the ts2020 tuner, since ds3000 driver no
|
||||
longer contains tuning code.
|
||||
|
||||
Signed-off-by: Johannes Koch <johannes@ortsraum.de>
|
||||
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
|
||||
---
|
||||
(limited to 'drivers/media/pci/cx23885/cx23885-dvb.c')
|
||||
|
||||
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
index 9c5ed10..bb291c6 100644
|
||||
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
@@ -1249,6 +1249,10 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
fe0->dvb.frontend = dvb_attach(ds3000_attach,
|
||||
&tevii_ds3000_config,
|
||||
&i2c_bus->i2c_adap);
|
||||
+ if (fe0->dvb.frontend != NULL) {
|
||||
+ dvb_attach(ts2020_attach, fe0->dvb.frontend,
|
||||
+ &tevii_ts2020_config, &i2c_bus->i2c_adap);
|
||||
+ }
|
||||
break;
|
||||
case CX23885_BOARD_PROF_8000:
|
||||
i2c_bus = &dev->i2c_bus[0];
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -0,0 +1,28 @@
|
|||
#! /bin/bash
|
||||
|
||||
# We need to sign modules we've moved from <path>/kernel/ to <path>/extra/
|
||||
# during mod-extra processing by hand. The 'modules_sign' Kbuild target can
|
||||
# "handle" out-of-tree modules, but it does that by not signing them. Plus,
|
||||
# the modules we've moved aren't actually out-of-tree. We've just shifted
|
||||
# them to a different location behind Kbuild's back because we are mean.
|
||||
|
||||
# This essentially duplicates the 'modules_sign' Kbuild target and runs the
|
||||
# same commands for those modules.
|
||||
|
||||
moddir=$1
|
||||
|
||||
modules=`find $moddir -name *.ko`
|
||||
|
||||
MODSECKEY="./signing_key.priv"
|
||||
MODPUBKEY="./signing_key.x509"
|
||||
|
||||
for mod in $modules
|
||||
do
|
||||
dir=`dirname $mod`
|
||||
file=`basename $mod`
|
||||
|
||||
./scripts/sign-file sha256 ${MODSECKEY} ${MODPUBKEY} ${dir}/${file} \
|
||||
${dir}/${file}.signed
|
||||
mv ${dir}/${file}.signed ${dir}/${file}
|
||||
rm -f ${dir}/${file}.{sig,dig}
|
||||
done
|
|
@ -172,3 +172,25 @@ tpm_tis.ko
|
|||
slip.ko
|
||||
nilfs2.ko
|
||||
batman-adv.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
|
||||
ubifs.ko
|
||||
orinoco.ko
|
||||
orinoco_cs.ko
|
||||
orinoco_plx.ko
|
||||
orinoco_pci.ko
|
||||
orinoco_nortel.ko
|
||||
orinoco_usb.ko
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
#! /bin/bash
|
||||
|
||||
Dir=$1
|
||||
List=$2
|
||||
|
||||
pushd $Dir
|
||||
rm -rf modnames
|
||||
find . -name "*.ko" -type f > modnames
|
||||
# Look through all of the modules, and throw any that have a dependency in
|
||||
# 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 $2 .
|
||||
|
||||
for dep in `cat modnames`
|
||||
do
|
||||
depends=`modinfo $dep | grep depends| cut -f2 -d":" | sed -e 's/^[ \t]*//'`
|
||||
[ -z "$depends" ] && continue;
|
||||
for mod in `echo $depends | sed -e 's/,/ /g'`
|
||||
do
|
||||
match=`grep "^$mod.ko" mod-extra.list` ||:
|
||||
if [ -z "$match" ]
|
||||
then
|
||||
continue
|
||||
else
|
||||
# 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
|
||||
|
||||
sort -u req.list > req2.list
|
||||
sort -u mod-extra.list > mod-extra2.list
|
||||
join -v 1 mod-extra2.list req2.list > mod-extra3.list
|
||||
|
||||
for mod in `cat mod-extra3.list`
|
||||
do
|
||||
# get the path for the module
|
||||
modpath=`grep /$mod modnames` ||:
|
||||
[ -z "$modpath" ] && continue;
|
||||
echo $modpath >> dep.list
|
||||
done
|
||||
|
||||
sort -u dep.list > dep2.list
|
||||
|
||||
# now move the modules into the extra/ directory
|
||||
for mod in `cat dep2.list`
|
||||
do
|
||||
newpath=`dirname $mod | sed -e 's/kernel\//extra\//'`
|
||||
mkdir -p $newpath
|
||||
mv $mod $newpath
|
||||
done
|
||||
|
||||
popd
|
||||
|
||||
# If we're signing modules, we can't leave the .mod files for the .ko files
|
||||
# we've moved in .tmp_versions/. Remove them so the Kbuild 'modules_sign'
|
||||
# target doesn't try to sign a non-existent file. This is kinda ugly, but
|
||||
# so is modules-extra.
|
||||
|
||||
for mod in `cat ${Dir}/dep2.list`
|
||||
do
|
||||
modfile=`basename $mod | sed -e 's/.ko/.mod/'`
|
||||
rm .tmp_versions/$modfile
|
||||
done
|
||||
|
||||
pushd $Dir
|
||||
rm modnames dep.list dep2.list req.list req2.list
|
||||
rm mod-extra.list mod-extra2.list mod-extra3.list
|
||||
popd
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,774 @@
|
|||
Bugzilla: 1039874
|
||||
Upstream-status: 3.13 and 3.12.4
|
||||
|
||||
From 9cb9fb275f8794546dc31a79f2f02127fed5baf2 Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Date: Thu, 21 Nov 2013 03:14:22 +0100
|
||||
Subject: [PATCH] net: rework recvmsg handler msg_name and msg_namelen logic
|
||||
|
||||
[ Upstream commit f3d3342602f8bcbf37d7c46641cb9bca7618eb1c ]
|
||||
|
||||
This patch now always passes msg->msg_namelen as 0. recvmsg handlers must
|
||||
set msg_namelen to the proper size <= sizeof(struct sockaddr_storage)
|
||||
to return msg_name to the user.
|
||||
|
||||
This prevents numerous uninitialized memory leaks we had in the
|
||||
recvmsg handlers and makes it harder for new code to accidentally leak
|
||||
uninitialized memory.
|
||||
|
||||
Optimize for the case recvfrom is called with NULL as address. We don't
|
||||
need to copy the address at all, so set it to NULL before invoking the
|
||||
recvmsg handler. We can do so, because all the recvmsg handlers must
|
||||
cope with the case a plain read() is called on them. read() also sets
|
||||
msg_name to NULL.
|
||||
|
||||
Also document these changes in include/linux/net.h as suggested by David
|
||||
Miller.
|
||||
|
||||
Changes since RFC:
|
||||
|
||||
Set msg->msg_name = NULL if user specified a NULL in msg_name but had a
|
||||
non-null msg_namelen in verify_iovec/verify_compat_iovec. This doesn't
|
||||
affect sendto as it would bail out earlier while trying to copy-in the
|
||||
address. It also more naturally reflects the logic by the callers of
|
||||
verify_iovec.
|
||||
|
||||
With this change in place I could remove "
|
||||
if (!uaddr || msg_sys->msg_namelen == 0)
|
||||
msg->msg_name = NULL
|
||||
".
|
||||
|
||||
This change does not alter the user visible error logic as we ignore
|
||||
msg_namelen as long as msg_name is NULL.
|
||||
|
||||
Also remove two unnecessary curly brackets in ___sys_recvmsg and change
|
||||
comments to netdev style.
|
||||
|
||||
Cc: David Miller <davem@davemloft.net>
|
||||
Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
|
||||
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
crypto/algif_hash.c | 2 --
|
||||
crypto/algif_skcipher.c | 1 -
|
||||
drivers/isdn/mISDN/socket.c | 13 ++++---------
|
||||
drivers/net/ppp/pppoe.c | 2 --
|
||||
include/linux/net.h | 8 ++++++++
|
||||
net/appletalk/ddp.c | 16 +++++++---------
|
||||
net/atm/common.c | 2 --
|
||||
net/ax25/af_ax25.c | 4 ++--
|
||||
net/bluetooth/af_bluetooth.c | 4 ----
|
||||
net/bluetooth/hci_sock.c | 2 --
|
||||
net/bluetooth/rfcomm/sock.c | 1 -
|
||||
net/bluetooth/sco.c | 1 -
|
||||
net/caif/caif_socket.c | 4 ----
|
||||
net/compat.c | 3 ++-
|
||||
net/core/iovec.c | 3 ++-
|
||||
net/ipx/af_ipx.c | 3 +--
|
||||
net/irda/af_irda.c | 4 ----
|
||||
net/iucv/af_iucv.c | 2 --
|
||||
net/key/af_key.c | 1 -
|
||||
net/l2tp/l2tp_ppp.c | 2 --
|
||||
net/llc/af_llc.c | 2 --
|
||||
net/netlink/af_netlink.c | 2 --
|
||||
net/netrom/af_netrom.c | 3 +--
|
||||
net/nfc/llcp_sock.c | 2 --
|
||||
net/nfc/rawsock.c | 2 --
|
||||
net/packet/af_packet.c | 32 +++++++++++++++-----------------
|
||||
net/rds/recv.c | 2 --
|
||||
net/rose/af_rose.c | 8 +++++---
|
||||
net/rxrpc/ar-recvmsg.c | 9 ++++++---
|
||||
net/socket.c | 19 +++++++++++--------
|
||||
net/tipc/socket.c | 6 ------
|
||||
net/unix/af_unix.c | 5 -----
|
||||
net/vmw_vsock/af_vsock.c | 2 --
|
||||
net/vmw_vsock/vmci_transport.c | 2 --
|
||||
net/x25/af_x25.c | 3 +--
|
||||
35 files changed, 65 insertions(+), 112 deletions(-)
|
||||
|
||||
diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
|
||||
index 0262210..ef5356c 100644
|
||||
--- a/crypto/algif_hash.c
|
||||
+++ b/crypto/algif_hash.c
|
||||
@@ -161,8 +161,6 @@ static int hash_recvmsg(struct kiocb *unused, struct socket *sock,
|
||||
else if (len < ds)
|
||||
msg->msg_flags |= MSG_TRUNC;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
lock_sock(sk);
|
||||
if (ctx->more) {
|
||||
ctx->more = 0;
|
||||
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
|
||||
index a1c4f0a..6a6dfc0 100644
|
||||
--- a/crypto/algif_skcipher.c
|
||||
+++ b/crypto/algif_skcipher.c
|
||||
@@ -432,7 +432,6 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock,
|
||||
long copied = 0;
|
||||
|
||||
lock_sock(sk);
|
||||
- msg->msg_namelen = 0;
|
||||
for (iov = msg->msg_iov, iovlen = msg->msg_iovlen; iovlen > 0;
|
||||
iovlen--, iov++) {
|
||||
unsigned long seglen = iov->iov_len;
|
||||
diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c
|
||||
index e47dcb9..5cefb47 100644
|
||||
--- a/drivers/isdn/mISDN/socket.c
|
||||
+++ b/drivers/isdn/mISDN/socket.c
|
||||
@@ -117,7 +117,6 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
struct sock *sk = sock->sk;
|
||||
- struct sockaddr_mISDN *maddr;
|
||||
|
||||
int copied, err;
|
||||
|
||||
@@ -135,9 +134,9 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (!skb)
|
||||
return err;
|
||||
|
||||
- if (msg->msg_namelen >= sizeof(struct sockaddr_mISDN)) {
|
||||
- msg->msg_namelen = sizeof(struct sockaddr_mISDN);
|
||||
- maddr = (struct sockaddr_mISDN *)msg->msg_name;
|
||||
+ if (msg->msg_name) {
|
||||
+ struct sockaddr_mISDN *maddr = msg->msg_name;
|
||||
+
|
||||
maddr->family = AF_ISDN;
|
||||
maddr->dev = _pms(sk)->dev->id;
|
||||
if ((sk->sk_protocol == ISDN_P_LAPD_TE) ||
|
||||
@@ -150,11 +149,7 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
maddr->sapi = _pms(sk)->ch.addr & 0xFF;
|
||||
maddr->tei = (_pms(sk)->ch.addr >> 8) & 0xFF;
|
||||
}
|
||||
- } else {
|
||||
- if (msg->msg_namelen)
|
||||
- printk(KERN_WARNING "%s: too small namelen %d\n",
|
||||
- __func__, msg->msg_namelen);
|
||||
- msg->msg_namelen = 0;
|
||||
+ msg->msg_namelen = sizeof(*maddr);
|
||||
}
|
||||
|
||||
copied = skb->len + MISDN_HEADER_LEN;
|
||||
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
|
||||
index 5f66e30..82ee6ed 100644
|
||||
--- a/drivers/net/ppp/pppoe.c
|
||||
+++ b/drivers/net/ppp/pppoe.c
|
||||
@@ -979,8 +979,6 @@ static int pppoe_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (error < 0)
|
||||
goto end;
|
||||
|
||||
- m->msg_namelen = 0;
|
||||
-
|
||||
if (skb) {
|
||||
total_len = min_t(size_t, total_len, skb->len);
|
||||
error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);
|
||||
diff --git a/include/linux/net.h b/include/linux/net.h
|
||||
index 4f27575..8bd9d92 100644
|
||||
--- a/include/linux/net.h
|
||||
+++ b/include/linux/net.h
|
||||
@@ -163,6 +163,14 @@ struct proto_ops {
|
||||
#endif
|
||||
int (*sendmsg) (struct kiocb *iocb, struct socket *sock,
|
||||
struct msghdr *m, size_t total_len);
|
||||
+ /* Notes for implementing recvmsg:
|
||||
+ * ===============================
|
||||
+ * msg->msg_namelen should get updated by the recvmsg handlers
|
||||
+ * iff msg_name != NULL. It is by default 0 to prevent
|
||||
+ * returning uninitialized memory to user space. The recvfrom
|
||||
+ * handlers can assume that msg.msg_name is either NULL or has
|
||||
+ * a minimum size of sizeof(struct sockaddr_storage).
|
||||
+ */
|
||||
int (*recvmsg) (struct kiocb *iocb, struct socket *sock,
|
||||
struct msghdr *m, size_t total_len,
|
||||
int flags);
|
||||
diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
|
||||
index 7fee50d..7d424ac 100644
|
||||
--- a/net/appletalk/ddp.c
|
||||
+++ b/net/appletalk/ddp.c
|
||||
@@ -1735,7 +1735,6 @@ static int atalk_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
|
||||
size_t size, int flags)
|
||||
{
|
||||
struct sock *sk = sock->sk;
|
||||
- struct sockaddr_at *sat = (struct sockaddr_at *)msg->msg_name;
|
||||
struct ddpehdr *ddp;
|
||||
int copied = 0;
|
||||
int offset = 0;
|
||||
@@ -1764,14 +1763,13 @@ static int atalk_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr
|
||||
}
|
||||
err = skb_copy_datagram_iovec(skb, offset, msg->msg_iov, copied);
|
||||
|
||||
- if (!err) {
|
||||
- if (sat) {
|
||||
- sat->sat_family = AF_APPLETALK;
|
||||
- sat->sat_port = ddp->deh_sport;
|
||||
- sat->sat_addr.s_node = ddp->deh_snode;
|
||||
- sat->sat_addr.s_net = ddp->deh_snet;
|
||||
- }
|
||||
- msg->msg_namelen = sizeof(*sat);
|
||||
+ if (!err && msg->msg_name) {
|
||||
+ struct sockaddr_at *sat = msg->msg_name;
|
||||
+ sat->sat_family = AF_APPLETALK;
|
||||
+ sat->sat_port = ddp->deh_sport;
|
||||
+ sat->sat_addr.s_node = ddp->deh_snode;
|
||||
+ sat->sat_addr.s_net = ddp->deh_snet;
|
||||
+ msg->msg_namelen = sizeof(*sat);
|
||||
}
|
||||
|
||||
skb_free_datagram(sk, skb); /* Free the datagram. */
|
||||
diff --git a/net/atm/common.c b/net/atm/common.c
|
||||
index 737bef5..7b49100 100644
|
||||
--- a/net/atm/common.c
|
||||
+++ b/net/atm/common.c
|
||||
@@ -531,8 +531,6 @@ int vcc_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
|
||||
struct sk_buff *skb;
|
||||
int copied, error = -EINVAL;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
if (sock->state != SS_CONNECTED)
|
||||
return -ENOTCONN;
|
||||
|
||||
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
|
||||
index 4b4d2b7..78c474f 100644
|
||||
--- a/net/ax25/af_ax25.c
|
||||
+++ b/net/ax25/af_ax25.c
|
||||
@@ -1636,11 +1636,11 @@ static int ax25_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
|
||||
|
||||
- if (msg->msg_namelen != 0) {
|
||||
- struct sockaddr_ax25 *sax = (struct sockaddr_ax25 *)msg->msg_name;
|
||||
+ if (msg->msg_name) {
|
||||
ax25_digi digi;
|
||||
ax25_address src;
|
||||
const unsigned char *mac = skb_mac_header(skb);
|
||||
+ struct sockaddr_ax25 *sax = msg->msg_name;
|
||||
|
||||
memset(sax, 0, sizeof(struct full_sockaddr_ax25));
|
||||
ax25_addr_parse(mac + 1, skb->data - mac - 1, &src, NULL,
|
||||
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
|
||||
index 9096137..6629cdc 100644
|
||||
--- a/net/bluetooth/af_bluetooth.c
|
||||
+++ b/net/bluetooth/af_bluetooth.c
|
||||
@@ -221,8 +221,6 @@ int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (flags & (MSG_OOB))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &err);
|
||||
if (!skb) {
|
||||
if (sk->sk_shutdown & RCV_SHUTDOWN)
|
||||
@@ -287,8 +285,6 @@ int bt_sock_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (flags & MSG_OOB)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
BT_DBG("sk %p size %zu", sk, size);
|
||||
|
||||
lock_sock(sk);
|
||||
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
|
||||
index 9bd7d95..fa4bf66 100644
|
||||
--- a/net/bluetooth/hci_sock.c
|
||||
+++ b/net/bluetooth/hci_sock.c
|
||||
@@ -752,8 +752,6 @@ static int hci_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (!skb)
|
||||
return err;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
copied = skb->len;
|
||||
if (len < copied) {
|
||||
msg->msg_flags |= MSG_TRUNC;
|
||||
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
|
||||
index 30b3721..c1c6028 100644
|
||||
--- a/net/bluetooth/rfcomm/sock.c
|
||||
+++ b/net/bluetooth/rfcomm/sock.c
|
||||
@@ -608,7 +608,6 @@ static int rfcomm_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) {
|
||||
rfcomm_dlc_accept(d);
|
||||
- msg->msg_namelen = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
|
||||
index e7bd4ee..2bb1d3a 100644
|
||||
--- a/net/bluetooth/sco.c
|
||||
+++ b/net/bluetooth/sco.c
|
||||
@@ -700,7 +700,6 @@ static int sco_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
test_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags)) {
|
||||
sco_conn_defer_accept(pi->conn->hcon, 0);
|
||||
sk->sk_state = BT_CONFIG;
|
||||
- msg->msg_namelen = 0;
|
||||
|
||||
release_sock(sk);
|
||||
return 0;
|
||||
diff --git a/net/caif/caif_socket.c b/net/caif/caif_socket.c
|
||||
index 05a41c7..d6be3ed 100644
|
||||
--- a/net/caif/caif_socket.c
|
||||
+++ b/net/caif/caif_socket.c
|
||||
@@ -286,8 +286,6 @@ static int caif_seqpkt_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (m->msg_flags&MSG_OOB)
|
||||
goto read_error;
|
||||
|
||||
- m->msg_namelen = 0;
|
||||
-
|
||||
skb = skb_recv_datagram(sk, flags, 0 , &ret);
|
||||
if (!skb)
|
||||
goto read_error;
|
||||
@@ -361,8 +359,6 @@ static int caif_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (flags&MSG_OOB)
|
||||
goto out;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
/*
|
||||
* Lock the socket to prevent queue disordering
|
||||
* while sleeps in memcpy_tomsg
|
||||
diff --git a/net/compat.c b/net/compat.c
|
||||
index 8903258..618c6a8 100644
|
||||
--- a/net/compat.c
|
||||
+++ b/net/compat.c
|
||||
@@ -93,7 +93,8 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
- kern_msg->msg_name = kern_address;
|
||||
+ if (kern_msg->msg_name)
|
||||
+ kern_msg->msg_name = kern_address;
|
||||
} else
|
||||
kern_msg->msg_name = NULL;
|
||||
|
||||
diff --git a/net/core/iovec.c b/net/core/iovec.c
|
||||
index de178e4..9a31515 100644
|
||||
--- a/net/core/iovec.c
|
||||
+++ b/net/core/iovec.c
|
||||
@@ -48,7 +48,8 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
- m->msg_name = address;
|
||||
+ if (m->msg_name)
|
||||
+ m->msg_name = address;
|
||||
} else {
|
||||
m->msg_name = NULL;
|
||||
}
|
||||
diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c
|
||||
index 7a1e0fc..e096025 100644
|
||||
--- a/net/ipx/af_ipx.c
|
||||
+++ b/net/ipx/af_ipx.c
|
||||
@@ -1823,8 +1823,6 @@ static int ipx_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (skb->tstamp.tv64)
|
||||
sk->sk_stamp = skb->tstamp;
|
||||
|
||||
- msg->msg_namelen = sizeof(*sipx);
|
||||
-
|
||||
if (sipx) {
|
||||
sipx->sipx_family = AF_IPX;
|
||||
sipx->sipx_port = ipx->ipx_source.sock;
|
||||
@@ -1832,6 +1830,7 @@ static int ipx_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
sipx->sipx_network = IPX_SKB_CB(skb)->ipx_source_net;
|
||||
sipx->sipx_type = ipx->ipx_type;
|
||||
sipx->sipx_zero = 0;
|
||||
+ msg->msg_namelen = sizeof(*sipx);
|
||||
}
|
||||
rc = copied;
|
||||
|
||||
diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c
|
||||
index 0578d4f..a5e62ef5 100644
|
||||
--- a/net/irda/af_irda.c
|
||||
+++ b/net/irda/af_irda.c
|
||||
@@ -1385,8 +1385,6 @@ static int irda_recvmsg_dgram(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
IRDA_DEBUG(4, "%s()\n", __func__);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
|
||||
flags & MSG_DONTWAIT, &err);
|
||||
if (!skb)
|
||||
@@ -1451,8 +1449,6 @@ static int irda_recvmsg_stream(struct kiocb *iocb, struct socket *sock,
|
||||
target = sock_rcvlowat(sk, flags & MSG_WAITALL, size);
|
||||
timeo = sock_rcvtimeo(sk, noblock);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
do {
|
||||
int chunk;
|
||||
struct sk_buff *skb = skb_dequeue(&sk->sk_receive_queue);
|
||||
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
|
||||
index 168aff5..c4b7218 100644
|
||||
--- a/net/iucv/af_iucv.c
|
||||
+++ b/net/iucv/af_iucv.c
|
||||
@@ -1324,8 +1324,6 @@ static int iucv_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
int err = 0;
|
||||
u32 offset;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
if ((sk->sk_state == IUCV_DISCONN) &&
|
||||
skb_queue_empty(&iucv->backlog_skb_q) &&
|
||||
skb_queue_empty(&sk->sk_receive_queue) &&
|
||||
diff --git a/net/key/af_key.c b/net/key/af_key.c
|
||||
index ab8bd2c..66f51c5 100644
|
||||
--- a/net/key/af_key.c
|
||||
+++ b/net/key/af_key.c
|
||||
@@ -3623,7 +3623,6 @@ static int pfkey_recvmsg(struct kiocb *kiocb,
|
||||
if (flags & ~(MSG_PEEK|MSG_DONTWAIT|MSG_TRUNC|MSG_CMSG_COMPAT))
|
||||
goto out;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &err);
|
||||
if (skb == NULL)
|
||||
goto out;
|
||||
diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c
|
||||
index 8c46b27..44441c0 100644
|
||||
--- a/net/l2tp/l2tp_ppp.c
|
||||
+++ b/net/l2tp/l2tp_ppp.c
|
||||
@@ -197,8 +197,6 @@ static int pppol2tp_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (sk->sk_state & PPPOX_BOUND)
|
||||
goto end;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
err = 0;
|
||||
skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
|
||||
flags & MSG_DONTWAIT, &err);
|
||||
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
|
||||
index 48aaa89..8870988 100644
|
||||
--- a/net/llc/af_llc.c
|
||||
+++ b/net/llc/af_llc.c
|
||||
@@ -720,8 +720,6 @@ static int llc_ui_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
int target; /* Read at least this many bytes */
|
||||
long timeo;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
lock_sock(sk);
|
||||
copied = -ENOTCONN;
|
||||
if (unlikely(sk->sk_type == SOCK_STREAM && sk->sk_state == TCP_LISTEN))
|
||||
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
|
||||
index 0c61b59..90b654b 100644
|
||||
--- a/net/netlink/af_netlink.c
|
||||
+++ b/net/netlink/af_netlink.c
|
||||
@@ -2317,8 +2317,6 @@ static int netlink_recvmsg(struct kiocb *kiocb, struct socket *sock,
|
||||
}
|
||||
#endif
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
copied = data_skb->len;
|
||||
if (len < copied) {
|
||||
msg->msg_flags |= MSG_TRUNC;
|
||||
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
|
||||
index 698814b..53c19a3 100644
|
||||
--- a/net/netrom/af_netrom.c
|
||||
+++ b/net/netrom/af_netrom.c
|
||||
@@ -1179,10 +1179,9 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
sax->sax25_family = AF_NETROM;
|
||||
skb_copy_from_linear_data_offset(skb, 7, sax->sax25_call.ax25_call,
|
||||
AX25_ADDR_LEN);
|
||||
+ msg->msg_namelen = sizeof(*sax);
|
||||
}
|
||||
|
||||
- msg->msg_namelen = sizeof(*sax);
|
||||
-
|
||||
skb_free_datagram(sk, skb);
|
||||
|
||||
release_sock(sk);
|
||||
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
|
||||
index d308402..824c605 100644
|
||||
--- a/net/nfc/llcp_sock.c
|
||||
+++ b/net/nfc/llcp_sock.c
|
||||
@@ -807,8 +807,6 @@ static int llcp_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
pr_debug("%p %zu\n", sk, len);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
lock_sock(sk);
|
||||
|
||||
if (sk->sk_state == LLCP_CLOSED &&
|
||||
diff --git a/net/nfc/rawsock.c b/net/nfc/rawsock.c
|
||||
index 313bf1b..5d11f4a 100644
|
||||
--- a/net/nfc/rawsock.c
|
||||
+++ b/net/nfc/rawsock.c
|
||||
@@ -241,8 +241,6 @@ static int rawsock_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (!skb)
|
||||
return rc;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
copied = skb->len;
|
||||
if (len < copied) {
|
||||
msg->msg_flags |= MSG_TRUNC;
|
||||
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
|
||||
index 75c8bbf..739c50d 100644
|
||||
--- a/net/packet/af_packet.c
|
||||
+++ b/net/packet/af_packet.c
|
||||
@@ -2694,7 +2694,6 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
struct sock *sk = sock->sk;
|
||||
struct sk_buff *skb;
|
||||
int copied, err;
|
||||
- struct sockaddr_ll *sll;
|
||||
int vnet_hdr_len = 0;
|
||||
|
||||
err = -EINVAL;
|
||||
@@ -2777,22 +2776,10 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * If the address length field is there to be filled in, we fill
|
||||
- * it in now.
|
||||
- */
|
||||
-
|
||||
- sll = &PACKET_SKB_CB(skb)->sa.ll;
|
||||
- if (sock->type == SOCK_PACKET)
|
||||
- msg->msg_namelen = sizeof(struct sockaddr_pkt);
|
||||
- else
|
||||
- msg->msg_namelen = sll->sll_halen + offsetof(struct sockaddr_ll, sll_addr);
|
||||
-
|
||||
- /*
|
||||
- * You lose any data beyond the buffer you gave. If it worries a
|
||||
- * user program they can ask the device for its MTU anyway.
|
||||
+ /* You lose any data beyond the buffer you gave. If it worries
|
||||
+ * a user program they can ask the device for its MTU
|
||||
+ * anyway.
|
||||
*/
|
||||
-
|
||||
copied = skb->len;
|
||||
if (copied > len) {
|
||||
copied = len;
|
||||
@@ -2805,9 +2792,20 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
sock_recv_ts_and_drops(msg, sk, skb);
|
||||
|
||||
- if (msg->msg_name)
|
||||
+ if (msg->msg_name) {
|
||||
+ /* If the address length field is there to be filled
|
||||
+ * in, we fill it in now.
|
||||
+ */
|
||||
+ if (sock->type == SOCK_PACKET) {
|
||||
+ msg->msg_namelen = sizeof(struct sockaddr_pkt);
|
||||
+ } else {
|
||||
+ struct sockaddr_ll *sll = &PACKET_SKB_CB(skb)->sa.ll;
|
||||
+ msg->msg_namelen = sll->sll_halen +
|
||||
+ offsetof(struct sockaddr_ll, sll_addr);
|
||||
+ }
|
||||
memcpy(msg->msg_name, &PACKET_SKB_CB(skb)->sa,
|
||||
msg->msg_namelen);
|
||||
+ }
|
||||
|
||||
if (pkt_sk(sk)->auxdata) {
|
||||
struct tpacket_auxdata aux;
|
||||
diff --git a/net/rds/recv.c b/net/rds/recv.c
|
||||
index 9f0f17c..de339b2 100644
|
||||
--- a/net/rds/recv.c
|
||||
+++ b/net/rds/recv.c
|
||||
@@ -410,8 +410,6 @@ int rds_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
|
||||
|
||||
rdsdebug("size %zu flags 0x%x timeo %ld\n", size, msg_flags, timeo);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
if (msg_flags & MSG_OOB)
|
||||
goto out;
|
||||
|
||||
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
|
||||
index e98fcfb..33af772 100644
|
||||
--- a/net/rose/af_rose.c
|
||||
+++ b/net/rose/af_rose.c
|
||||
@@ -1216,7 +1216,6 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
{
|
||||
struct sock *sk = sock->sk;
|
||||
struct rose_sock *rose = rose_sk(sk);
|
||||
- struct sockaddr_rose *srose = (struct sockaddr_rose *)msg->msg_name;
|
||||
size_t copied;
|
||||
unsigned char *asmptr;
|
||||
struct sk_buff *skb;
|
||||
@@ -1252,8 +1251,11 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
|
||||
|
||||
- if (srose != NULL) {
|
||||
- memset(srose, 0, msg->msg_namelen);
|
||||
+ if (msg->msg_name) {
|
||||
+ struct sockaddr_rose *srose;
|
||||
+
|
||||
+ memset(msg->msg_name, 0, sizeof(struct full_sockaddr_rose));
|
||||
+ srose = msg->msg_name;
|
||||
srose->srose_family = AF_ROSE;
|
||||
srose->srose_addr = rose->dest_addr;
|
||||
srose->srose_call = rose->dest_call;
|
||||
diff --git a/net/rxrpc/ar-recvmsg.c b/net/rxrpc/ar-recvmsg.c
|
||||
index 4b48687..898492a 100644
|
||||
--- a/net/rxrpc/ar-recvmsg.c
|
||||
+++ b/net/rxrpc/ar-recvmsg.c
|
||||
@@ -143,10 +143,13 @@ int rxrpc_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
/* copy the peer address and timestamp */
|
||||
if (!continue_call) {
|
||||
- if (msg->msg_name && msg->msg_namelen > 0)
|
||||
+ if (msg->msg_name) {
|
||||
+ size_t len =
|
||||
+ sizeof(call->conn->trans->peer->srx);
|
||||
memcpy(msg->msg_name,
|
||||
- &call->conn->trans->peer->srx,
|
||||
- sizeof(call->conn->trans->peer->srx));
|
||||
+ &call->conn->trans->peer->srx, len);
|
||||
+ msg->msg_namelen = len;
|
||||
+ }
|
||||
sock_recv_ts_and_drops(msg, &rx->sk, skb);
|
||||
}
|
||||
|
||||
diff --git a/net/socket.c b/net/socket.c
|
||||
index 4b94643..5158ff7 100644
|
||||
--- a/net/socket.c
|
||||
+++ b/net/socket.c
|
||||
@@ -1849,8 +1849,10 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
|
||||
msg.msg_iov = &iov;
|
||||
iov.iov_len = size;
|
||||
iov.iov_base = ubuf;
|
||||
- msg.msg_name = (struct sockaddr *)&address;
|
||||
- msg.msg_namelen = sizeof(address);
|
||||
+ /* Save some cycles and don't copy the address if not needed */
|
||||
+ msg.msg_name = addr ? (struct sockaddr *)&address : NULL;
|
||||
+ /* We assume all kernel code knows the size of sockaddr_storage */
|
||||
+ msg.msg_namelen = 0;
|
||||
if (sock->file->f_flags & O_NONBLOCK)
|
||||
flags |= MSG_DONTWAIT;
|
||||
err = sock_recvmsg(sock, &msg, size, flags);
|
||||
@@ -2230,16 +2232,14 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
|
||||
goto out;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * Save the user-mode address (verify_iovec will change the
|
||||
- * kernel msghdr to use the kernel address space)
|
||||
+ /* Save the user-mode address (verify_iovec will change the
|
||||
+ * kernel msghdr to use the kernel address space)
|
||||
*/
|
||||
-
|
||||
uaddr = (__force void __user *)msg_sys->msg_name;
|
||||
uaddr_len = COMPAT_NAMELEN(msg);
|
||||
- if (MSG_CMSG_COMPAT & flags) {
|
||||
+ if (MSG_CMSG_COMPAT & flags)
|
||||
err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
|
||||
- } else
|
||||
+ else
|
||||
err = verify_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
|
||||
if (err < 0)
|
||||
goto out_freeiov;
|
||||
@@ -2248,6 +2248,9 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
|
||||
cmsg_ptr = (unsigned long)msg_sys->msg_control;
|
||||
msg_sys->msg_flags = flags & (MSG_CMSG_CLOEXEC|MSG_CMSG_COMPAT);
|
||||
|
||||
+ /* We assume all kernel code knows the size of sockaddr_storage */
|
||||
+ msg_sys->msg_namelen = 0;
|
||||
+
|
||||
if (sock->file->f_flags & O_NONBLOCK)
|
||||
flags |= MSG_DONTWAIT;
|
||||
err = (nosec ? sock_recvmsg_nosec : sock_recvmsg)(sock, msg_sys,
|
||||
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
|
||||
index 6cc7ddd..dffdbea 100644
|
||||
--- a/net/tipc/socket.c
|
||||
+++ b/net/tipc/socket.c
|
||||
@@ -984,9 +984,6 @@ static int recv_msg(struct kiocb *iocb, struct socket *sock,
|
||||
goto exit;
|
||||
}
|
||||
|
||||
- /* will be updated in set_orig_addr() if needed */
|
||||
- m->msg_namelen = 0;
|
||||
-
|
||||
timeout = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);
|
||||
restart:
|
||||
|
||||
@@ -1095,9 +1092,6 @@ static int recv_stream(struct kiocb *iocb, struct socket *sock,
|
||||
goto exit;
|
||||
}
|
||||
|
||||
- /* will be updated in set_orig_addr() if needed */
|
||||
- m->msg_namelen = 0;
|
||||
-
|
||||
target = sock_rcvlowat(sk, flags & MSG_WAITALL, buf_len);
|
||||
timeout = sock_rcvtimeo(sk, flags & MSG_DONTWAIT);
|
||||
|
||||
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
|
||||
index e64bbcf..6c66e8d 100644
|
||||
--- a/net/unix/af_unix.c
|
||||
+++ b/net/unix/af_unix.c
|
||||
@@ -1762,7 +1762,6 @@ static void unix_copy_addr(struct msghdr *msg, struct sock *sk)
|
||||
{
|
||||
struct unix_sock *u = unix_sk(sk);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
if (u->addr) {
|
||||
msg->msg_namelen = u->addr->len;
|
||||
memcpy(msg->msg_name, u->addr->name, u->addr->len);
|
||||
@@ -1786,8 +1785,6 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (flags&MSG_OOB)
|
||||
goto out;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
err = mutex_lock_interruptible(&u->readlock);
|
||||
if (err) {
|
||||
err = sock_intr_errno(sock_rcvtimeo(sk, noblock));
|
||||
@@ -1927,8 +1924,6 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
target = sock_rcvlowat(sk, flags&MSG_WAITALL, size);
|
||||
timeo = sock_rcvtimeo(sk, flags&MSG_DONTWAIT);
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
/* Lock the socket to prevent queue disordering
|
||||
* while sleeps in memcpy_tomsg
|
||||
*/
|
||||
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
|
||||
index 4d93346..16f721c 100644
|
||||
--- a/net/vmw_vsock/af_vsock.c
|
||||
+++ b/net/vmw_vsock/af_vsock.c
|
||||
@@ -1663,8 +1663,6 @@ vsock_stream_recvmsg(struct kiocb *kiocb,
|
||||
vsk = vsock_sk(sk);
|
||||
err = 0;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
lock_sock(sk);
|
||||
|
||||
if (sk->sk_state != SS_CONNECTED) {
|
||||
diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
|
||||
index ffc11df..73ca104 100644
|
||||
--- a/net/vmw_vsock/vmci_transport.c
|
||||
+++ b/net/vmw_vsock/vmci_transport.c
|
||||
@@ -1746,8 +1746,6 @@ static int vmci_transport_dgram_dequeue(struct kiocb *kiocb,
|
||||
if (flags & MSG_OOB || flags & MSG_ERRQUEUE)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- msg->msg_namelen = 0;
|
||||
-
|
||||
/* Retrieve the head sk_buff from the socket's receive queue. */
|
||||
err = 0;
|
||||
skb = skb_recv_datagram(&vsk->sk, flags, noblock, &err);
|
||||
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c
|
||||
index 45a3ab5..7622789 100644
|
||||
--- a/net/x25/af_x25.c
|
||||
+++ b/net/x25/af_x25.c
|
||||
@@ -1340,10 +1340,9 @@ static int x25_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (sx25) {
|
||||
sx25->sx25_family = AF_X25;
|
||||
sx25->sx25_addr = x25->dest_addr;
|
||||
+ msg->msg_namelen = sizeof(*sx25);
|
||||
}
|
||||
|
||||
- msg->msg_namelen = sizeof(struct sockaddr_x25);
|
||||
-
|
||||
x25_check_rbuf(sk);
|
||||
rc = copied;
|
||||
out_free_dgram:
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From c13a84a830a208fb3443628773c8ca0557773cc7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michal=20Kube=C4=8Dek?= <mkubecek@suse.cz>
|
||||
Date: Wed, 11 Sep 2013 10:17:27 +0200
|
||||
Subject: [PATCH] netfilter: nf_conntrack: use RCU safe kfree for conntrack
|
||||
extensions
|
||||
|
||||
Commit 68b80f11 (netfilter: nf_nat: fix RCU races) introduced
|
||||
RCU protection for freeing extension data when reallocation
|
||||
moves them to a new location. We need the same protection when
|
||||
freeing them in nf_ct_ext_free() in order to prevent a
|
||||
use-after-free by other threads referencing a NAT extension data
|
||||
via bysource list.
|
||||
|
||||
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
|
||||
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
---
|
||||
include/net/netfilter/nf_conntrack_extend.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
|
||||
index ff95434..88a1d40 100644
|
||||
--- a/include/net/netfilter/nf_conntrack_extend.h
|
||||
+++ b/include/net/netfilter/nf_conntrack_extend.h
|
||||
@@ -86,7 +86,7 @@ static inline void nf_ct_ext_destroy(struct nf_conn *ct)
|
||||
static inline void nf_ct_ext_free(struct nf_conn *ct)
|
||||
{
|
||||
if (ct->ext)
|
||||
- kfree(ct->ext);
|
||||
+ kfree_rcu(ct->ext, rcu);
|
||||
}
|
||||
|
||||
/* Add this type, returns pointer to data or NULL. */
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: queued in NFS git tree (for 3.13/3.14?)
|
||||
|
||||
Currently, the client will attempt to use krb5i in the SETCLIENTID call
|
||||
even if rpc.gssd isn't running. When that fails, it'll then fall back to
|
||||
RPC_AUTH_UNIX. This introduced a delay when mounting if rpc.gssd isn't
|
||||
running, and causes warning messages to pop up in the ring buffer.
|
||||
|
||||
Check to see if rpc.gssd is running before even attempting to use krb5i
|
||||
auth, and just silently skip trying to do so if it isn't. In the event
|
||||
that the admin is actually trying to mount with krb5*, it will still
|
||||
fail at a later stage of the mount attempt.
|
||||
|
||||
Signed-off-by: Jeff Layton <jlayton@redhat.com>
|
||||
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|
||||
---
|
||||
fs/nfs/nfs4client.c | 7 ++++++-
|
||||
1 files changed, 6 insertions(+), 1 deletions(-)
|
||||
|
||||
diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c
|
||||
--- linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig 2013-09-02 16:46:10.000000000 -0400
|
||||
+++ linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c 2013-11-21 10:20:27.288286000 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/sunrpc/xprt.h>
|
||||
#include <linux/sunrpc/bc_xprt.h>
|
||||
+#include <linux/sunrpc/rpc_pipe_fs.h>
|
||||
#include "internal.h"
|
||||
#include "callback.h"
|
||||
#include "delegation.h"
|
||||
@@ -206,7 +207,11 @@ struct nfs_client *nfs4_init_client(stru
|
||||
if (clp->cl_minorversion != 0)
|
||||
__set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
|
||||
__set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
|
||||
- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I);
|
||||
+
|
||||
+ error = -EINVAL;
|
||||
+ if (gssd_running(clp->cl_net))
|
||||
+ error = nfs_create_rpc_client(clp, timeparms,
|
||||
+ RPC_AUTH_GSS_KRB5I);
|
||||
if (error == -EINVAL)
|
||||
error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
|
||||
if (error < 0)
|
||||
|
||||
_______________________________________________
|
||||
kernel mailing list
|
||||
kernel@lists.fedoraproject.org
|
||||
https://admin.fedoraproject.org/mailman/listinfo/kernel
|
|
@ -0,0 +1,67 @@
|
|||
Disable watchdog on virtual machines.
|
||||
|
||||
For various reasons, VMs seem to trigger the soft lockup detector a lot,
|
||||
in cases where it's just not possible for a lockup to occur.
|
||||
(Example: https://bugzilla.redhat.com/show_bug.cgi?id=971139)
|
||||
|
||||
In some cases it seems that the host just never scheduled the app running
|
||||
the VM for a very long time (Could be the host was under heavy load).
|
||||
|
||||
Just disable the detector on VMs.
|
||||
|
||||
Signed-off-by: Dave Jones <davej@redhat.com>
|
||||
|
||||
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
|
||||
index 1241d8c..b2dc4e4 100644
|
||||
--- a/kernel/watchdog.c
|
||||
+++ b/kernel/watchdog.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/smpboot.h>
|
||||
#include <linux/sched/rt.h>
|
||||
+#include <linux/dmi.h>
|
||||
|
||||
#include <asm/irq_regs.h>
|
||||
#include <linux/kvm_para.h>
|
||||
@@ -96,6 +97,32 @@ static int __init nosoftlockup_setup(char *str)
|
||||
__setup("nosoftlockup", nosoftlockup_setup);
|
||||
/* */
|
||||
|
||||
+static int disable_watchdog(const struct dmi_system_id *d)
|
||||
+{
|
||||
+ printk(KERN_INFO "watchdog: disabled (inside virtual machine)\n");
|
||||
+ watchdog_user_enabled = 0;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct dmi_system_id watchdog_virt_dmi_table[] = {
|
||||
+ {
|
||||
+ .callback = disable_watchdog,
|
||||
+ .ident = "VMware",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "VMware, Inc."),
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ .callback = disable_watchdog,
|
||||
+ .ident = "Bochs",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Bochs Bochs"),
|
||||
+ },
|
||||
+ },
|
||||
+ {}
|
||||
+};
|
||||
+
|
||||
+
|
||||
/*
|
||||
* Hard-lockup warnings should be triggered after just a few seconds. Soft-
|
||||
* lockups can have false positives under extreme conditions. So we generally
|
||||
@@ -551,6 +578,8 @@ int proc_dowatchdog(struct ctl_table *table, int write,
|
||||
|
||||
void __init lockup_detector_init(void)
|
||||
{
|
||||
+ dmi_check_system(watchdog_virt_dmi_table);
|
||||
+
|
||||
set_sample_period();
|
||||
|
||||
#ifdef CONFIG_NO_HZ_FULL
|
|
@ -0,0 +1,44 @@
|
|||
From a97ad0c4b447a132a322cedc3a5f7fa4cab4b304 Mon Sep 17 00:00:00 2001
|
||||
From: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Date: Thu, 1 Aug 2013 19:31:35 +0200
|
||||
Subject: [PATCH] ntp: Make periodic RTC update more reliable
|
||||
|
||||
The current code requires that the scheduled update of the RTC happens
|
||||
in the closest tick to the half of the second. This seems to be
|
||||
difficult to achieve reliably. The scheduled work may be missing the
|
||||
target time by a tick or two and be constantly rescheduled every second.
|
||||
|
||||
Relax the limit to 10 ticks. As a typical RTC drifts in the 11-minute
|
||||
update interval by several milliseconds, this shouldn't affect the
|
||||
overall accuracy of the RTC much.
|
||||
|
||||
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
Signed-off-by: John Stultz <john.stultz@linaro.org>
|
||||
---
|
||||
kernel/time/ntp.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
|
||||
index 8f5b3b9..ab1fa7c 100644
|
||||
--- a/kernel/time/ntp.c
|
||||
+++ b/kernel/time/ntp.c
|
||||
@@ -475,6 +475,7 @@ static void sync_cmos_clock(struct work_struct *work)
|
||||
* called as close as possible to 500 ms before the new second starts.
|
||||
* This code is run on a timer. If the clock is set, that timer
|
||||
* may not expire at the correct time. Thus, we adjust...
|
||||
+ * We want the clock to be within a couple of ticks from the target.
|
||||
*/
|
||||
if (!ntp_synced()) {
|
||||
/*
|
||||
@@ -485,7 +486,7 @@ static void sync_cmos_clock(struct work_struct *work)
|
||||
}
|
||||
|
||||
getnstimeofday(&now);
|
||||
- if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2) {
|
||||
+ if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec * 5) {
|
||||
struct timespec adjust = now;
|
||||
|
||||
fail = -ENODEV;
|
||||
--
|
||||
1.7.9.5
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
diff --git a/tools/power/x86/turbostat/Makefile b/tools/power/x86/turbostat/Makefile
|
||||
index f856495..984cc00 100644
|
||||
--- a/tools/power/x86/turbostat/Makefile
|
||||
+++ b/tools/power/x86/turbostat/Makefile
|
||||
@@ -1,3 +1,5 @@
|
||||
+DESTDIR ?=
|
||||
+
|
||||
turbostat : turbostat.c
|
||||
CFLAGS += -Wall
|
||||
|
||||
@@ -5,5 +7,5 @@ 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/
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
|
||||
index 1c22b2d..29857c6 100644
|
||||
--- a/arch/powerpc/kernel/traps.c
|
||||
+++ b/arch/powerpc/kernel/traps.c
|
||||
@@ -1151,7 +1151,7 @@ void alignment_exception(struct pt_regs *regs)
|
||||
local_irq_enable();
|
||||
|
||||
if (tm_abort_check(regs, TM_CAUSE_ALIGNMENT | TM_CAUSE_PERSISTENT))
|
||||
- goto bail;
|
||||
+ return;
|
||||
|
||||
/* we don't implement logging of alignment exceptions */
|
||||
if (!(current->thread.align_ctl & PR_UNALIGN_SIGBUS))
|
|
@ -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;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue