Compare commits

...

548 Commits
master ... f17

Author SHA1 Message Date
Josh Boyer 498deb1154 Fix wrong structure in iwlwifi dvm patch 2013-07-13 21:20:01 -04:00
Josh Boyer 891cc1841b Linux v3.9.10 2013-07-13 21:03:04 -04:00
Dave Jones 76082fd1da Disable LATENCYTOP/SCHEDSTATS in non-debug builds. 2013-07-12 12:27:56 -04:00
Josh Boyer be05448047 Fix various overflow issues in ext4 (rhbz 976837) 2013-07-12 09:35:38 -04:00
Josh Boyer 6523ee4682 Add iwlwifi fix for connection issue (rhbz 885407) 2013-07-12 07:48:44 -04:00
Peter Robinson e0f4b6180b Fix building ARM kernel by dropping OMAP subpackage 2013-07-08 06:39:14 +01:00
Josh Boyer 745e1e6d9f Add report fixup for Genius Gila mouse from Benjamin Tissoires (rhbz 959721) 2013-07-05 09:17:58 -04:00
Josh Boyer 5b7355e655 Add vhost-net use-after-free fix (rhbz 976789 980643) 2013-07-05 09:02:35 -04:00
Josh Boyer c26d168712 Add fix for timer issue in bridge code (rhbz 980254) 2013-07-05 09:02:29 -04:00
Josh Boyer e39d89beef CVE-2013-2232 ipv6: using ipv4 vs ipv6 structure during routing lookup in sendmsg (rhbz 981552 981564) 2013-07-05 08:03:42 -04:00
Josh Boyer 26edf9ecd2 Add verrel for release
Fixup some bogus date entries in %changelog
2013-07-04 08:40:58 -04:00
Josh Boyer c8c0339604 CVE-2013-1059 libceph: Fix NULL pointer dereference in auth client code (rhbz 977356 980341) 2013-07-03 16:12:36 -04:00
Josh Boyer d1740087bc CVE-2013-2234 net: information leak in AF_KEY notify (rhbz 980995 981007) 2013-07-03 15:37:46 -04:00
Josh Boyer e02d934488 Linux v3.9.9 2013-07-03 14:49:43 -04:00
Josh Boyer 9006cf8aee Add patches to fix iwl skb managment (rhbz 977040) 2013-07-03 08:33:44 -04:00
Josh Boyer c8304131bf Add verrel for build 2013-06-27 15:02:55 -04:00
Josh Boyer 1c0545258e Linux v3.9.8 2013-06-27 15:00:24 -04:00
Josh Boyer 1622b3d8e5 Fix stack memory usage for DMA in ath3k (rhbz 977558) 2013-06-27 09:37:29 -04:00
Josh Boyer 940cf17eb0 Add two patches to fix bridge networking issues (rhbz 880035) 2013-06-26 07:51:22 -04:00
Josh Boyer 6fd38013c8 Fix battery issue with bluetooth keyboards (rhbz 903741) 2013-06-24 10:25:25 -04:00
Josh Boyer ae3a062e88 Add verrel for build 2013-06-21 13:42:03 -04:00
Josh Boyer ccaa0a90c5 Add two patches to fix iwlwifi issues in unmapping
- Add patch to fix carl9170 oops (rhbz 967271)
2013-06-21 09:33:38 -04:00
Josh Boyer 38c2c4d211 Add patch to fix carl9170 oops (rhbz 967271) 2013-06-21 09:09:33 -04:00
Justin M. Forbes 753f28c2d8 Linux v3.9.7 2013-06-20 17:01:01 -05:00
Dave Jones f58c94c259 Disable MTRR sanitizer by default. 2013-06-18 13:06:22 -04:00
Josh Boyer 86985d0596 Linux v3.9.6 2013-06-14 10:35:40 -04:00
Josh Boyer 06a13386b0 Fix KVM divide by zero error (rhbz 969644) 2013-06-12 07:38:54 -04:00
Josh Boyer f7695cdcaf Add fix for rt5390/rt3290 regression (rhbz 950735) 2013-06-12 07:33:20 -04:00
Josh Boyer 8ff0b55e6a Add verrel for build 2013-06-11 15:21:46 -04:00
Josh Boyer 20ff6b3171 Add patches to fix MTRR issues in 3.9.5 (rhbz 973185) 2013-06-11 14:53:13 -04:00
Josh Boyer 7a126072eb Add two patches to fix issues with vhost_net and macvlan (rhbz 954181) 2013-06-11 09:27:01 -04:00
Josh Boyer b54718c5ec CVE-2013-2164 information leak in cdrom driver (rhbz 973100 973109) 2013-06-11 08:08:24 -04:00
Josh Boyer c60f5d3991 Add verrel for build 2013-06-10 10:11:35 -04:00
Josh Boyer f174ce0724 Add patch to fix 3.9.5 build on powerpc 2013-06-10 10:05:22 -04:00
Josh Boyer 2a7218df92 Linux v3.9.5 2013-06-10 07:33:02 -04:00
Josh Boyer 333bcd60b9 CVE-2013-2851 block: passing disk names as format strings (rhbz 969515 971662) 2013-06-07 08:23:28 -04:00
Josh Boyer e6a9984329 CVE-2013-2852 b43: format string leaking into error msgs (rhbz 969518 971665) 2013-06-07 08:16:22 -04:00
Josh Boyer 6ca684a54d CVE-2013-2148 fanotify: info leak in copy_event_to_user (rhbz 971258 971261) 2013-06-06 08:24:25 -04:00
Josh Boyer 4e6476bdd5 CVE-2013-2147 cpqarray/cciss: information leak via ioctl (rhbz 971242 971249) 2013-06-06 08:20:38 -04:00
Josh Boyer 3eefce94f5 CVE-2013-2140 xen: blkback: insufficient permission checks for BLKIF_OP_DISCARD (rhbz 971146 971148) 2013-06-05 16:12:45 -04:00
Josh Boyer fc7d3f59a4 Add verrel for build 2013-06-05 07:50:54 -04:00
Josh Boyer 2f84d57e54 Fix UEFI anti-bricking code (rhbz 964335) 2013-06-03 19:07:24 -04:00
Josh Boyer 1c462fd782 CVE-2013-2850 iscsi-target: heap buffer overflow on large key error (rhbz 968036 969272) 2013-05-31 07:36:30 -04:00
Justin M. Forbes 642c45daf1 Linux v3.9.4 2013-05-24 14:43:40 -05:00
Josh Boyer 0b1d6743c8 Add patch to quiet irq remapping failures (rhbz 948262) 2013-05-24 12:59:14 -04:00
Josh Boyer 231a6c6746 Fix oops from incorrect rfkill set in hp-wmi (rhbz 964367) 2013-05-23 16:14:03 -04:00
Peter Robinson 1656aee902 update spec to reflect changes in config-arm* 2013-05-23 09:12:12 +01:00
Peter Robinson 4829c8180f Update ARM configs for 3.9 2013-05-22 17:32:45 +01:00
Justin M. Forbes 6328a50193 Linux v3.9.3 2013-05-22 11:00:01 -05:00
Josh Boyer 36c229586e memcmp, not memset.
I promise I read the code before I applied the patch.
2013-05-22 09:47:27 -04:00
Josh Boyer f1f97f7fa3 Fix memset error in iwlwifi 2013-05-22 08:25:13 -04:00
Justin M. Forbes 977738adfe Linux v3.8.13 2013-05-13 08:10:13 -05:00
Justin M. Forbes e6852b690d Linux v3.8.12 2013-05-08 10:11:59 -05:00
Josh Boyer 89560ac259 Fix dmesg_restrict patch to avoid regression (rhbz 952655) 2013-05-07 12:33:31 -04:00
Justin M. Forbes 4751fcd387 Linux v3.8.11 2013-05-01 14:11:55 -05:00
Justin M. Forbes 16dc88406e Linux v3.8.10 2013-04-29 09:36:33 -05:00
Peter Robinson af3159cc36 minor ARM config fix 2013-04-25 15:21:08 +01:00
Josh Boyer 638bba75cc Add verrel for build 2013-04-24 11:31:52 -04:00
Josh Boyer b92e84a3a8 CVE-2013-3228 irda: missing msg_namelen update in irda_recvmsg_dgram (rhbz 956069 956071) 2013-04-24 08:55:31 -04:00
Josh Boyer b0d734f6c4 CVE-2013-3230 l2tp: info leak in l2tp_ip6_recvmsg (rhbz 956088 956089) 2013-04-24 08:52:56 -04:00
Josh Boyer 158d104c07 CVE-2013-3231 llc: Fix missing msg_namelen update in llc_ui_recvmsg (rhbz 956094 956104) 2013-04-24 08:50:18 -04:00
Josh Boyer f36a215782 CVE-2013-3232 netrom: information leak via msg_name in nr_recvmsg (rhbz 956110 956113) 2013-04-24 08:47:22 -04:00
Josh Boyer 0ebd597832 CVE-2013-3233 NFC: llcp: info leaks via msg_name in llcp_sock_recvmsg (rhbz 956125 956129) 2013-04-24 08:35:10 -04:00
Josh Boyer e576093454 CVE-2013-3234 rose: info leak via msg_name in rose_recvmsg (rhbz 956135 956139) 2013-04-24 08:26:43 -04:00
Josh Boyer 583f2ea58f CVE-2013-3076 crypto: algif suppress sending src addr info in recvmsg (rhbz 956162 956168) 2013-04-24 08:23:54 -04:00
Josh Boyer 62ad7b1fc0 Actually add Bluetooth fix. Sigh. 2013-04-24 08:16:52 -04:00
Josh Boyer 4a7e4a4d41 CVE-2013-3223 ax25: information leak via msg_name in ax25_recvmsg (rhbz 955662 955666) 2013-04-23 09:44:55 -04:00
Josh Boyer 2d3286ee13 CVE-2013-3225 Bluetooth: RFCOMM missing msg_namelen update in rfcomm_sock_recvmsg (rhbz 955649 955658) 2013-04-23 09:32:05 -04:00
Josh Boyer f4dacfee76 CVE-2013-1979 net: incorrect SCM_CREDENTIALS passing (rhbz 955629 955647)
- CVE-2013-3224 Bluetooth: possible info leak in bt_sock_recvmsg (rhbz 955599 955607)
2013-04-23 09:09:18 -04:00
Josh Boyer e9cd14fc4d CVE-2013-3224 Bluetooth: possible info leak in bt_sock_recvmsg (rhbz 955599 955607) 2013-04-23 08:16:01 -04:00
Josh Boyer 401880b16e CVE-2013-3222 atm: update msg_namelen in vcc_recvmsg (rhbz 955216 955228) 2013-04-22 14:08:29 -04:00
Josh Boyer d5e330f6f8 Actually add patch from last commit.
Sigh and stuff.
2013-04-17 19:11:25 -04:00
Josh Boyer 586dc72172 Fix missing raid REQ_WRITE_SAME flag commit (rhbz 947539) 2013-04-17 16:12:03 -04:00
Dave Jones 76877b8187 Linux 3.8.8
Dropped: x86-mm-Fix-vmalloc_fault-oops-during-lazy-MMU-updates.patch
  Dropped: tracing-Fix-possible-NULL-pointer-dereferences.patch
2013-04-17 13:03:13 -04:00
Josh Boyer 7f35254607 Fix uninitialized variable free in iwlwifi (rhbz 951241) 2013-04-16 10:39:36 -04:00
Josh Boyer aa9dea0e34 Fix race in regulatory code (rhbz 919176) 2013-04-16 10:37:15 -04:00
Josh Boyer 0a3f614f1a Fix debug patches to build on s390x/ppc 2013-04-15 20:54:16 -04:00
Josh Boyer cceeebddab tracing: NULL pointer dereference (rhbz 952197 952217) 2013-04-15 08:28:32 -04:00
Dave Jones 069f7ae276 more droppage 2013-04-12 14:06:14 -04:00
Dave Jones af745223da 3.8.7
dropped: HID-magicmouse-fix-race-between-input_register-and-probe.patch
2013-04-12 14:01:42 -04:00
Josh Boyer 97b1b12b20 Enable CONFIG_LDM_PARTITION (rhbz 948636) 2013-04-12 11:57:01 -04:00
Dave Jones 257bb08298 Print out some extra debug information when we hit bad page tables. 2013-04-11 11:53:05 -04:00
Josh Boyer 01bed76462 Fix ALPS backport patch (rhbz 812111) 2013-04-11 08:59:57 -04:00
Josh Boyer 719ad5a41f Update dmesg_restrict patch to v2 2013-04-09 13:30:08 -04:00
Josh Boyer 498db5becd Note CVE-2013-1929 is fixed with 3.8.6 in changelog 2013-04-09 08:56:31 -04:00
Josh Boyer f70e5919dc Backport intel brightness quirk for emachines (rhbz 871932) 2013-04-09 08:47:54 -04:00
Peter Robinson aa42a31acf Enable CMA on ARM tegra, Minor tweeks to ARM OMAP 2013-04-08 16:30:40 +01:00
Josh Boyer e6e57faa6b Add patch from Benjamin Tissoires to fix race in HID magicmouse (rhbz 908604) 2013-04-08 09:26:26 -04:00
Justin M. Forbes 0390113468 Linux v3.8.6 2013-04-05 13:20:13 -05:00
Dave Jones 7a13662cd4 Enable MTD_CHAR/MTD_BLOCK (Needed for SFC)
Enable 10gigE on 64-bit only.
2013-04-03 14:49:09 -04:00
Josh Boyer 9a2eae9267 Add support for Atheros 04ca:3004 bluetooth devices (again) (rhbz 844750) 2013-04-02 14:24:16 -04:00
Josh Boyer 0303fb0eac Enable CONFIG_SCSI_DMX3191D (rhbz 919874) 2013-04-02 12:02:19 -04:00
Josh Boyer f9c0a737cc Enable CONFIG_MCE_INJECT (rhbz 927353) 2013-04-01 12:46:22 -04:00
Josh Boyer 83d2836284 Linux v3.8.5 2013-03-28 15:38:29 -04:00
Justin M. Forbes aa34b4a3d3 Fix child thread introspection of of /proc/self/exe (rhbz 927469) 2013-03-26 15:04:05 -05:00
Josh Boyer 2f06bf0c2b Add quirk for Realtek card reader to avoid 10 sec boot delay (rhbz 806587) 2013-03-26 07:52:09 -04:00
Josh Boyer 462525f905 Add quirk for MSI keyboard backlight to avoid 10 sec boot delay (rhbz 907221) 2013-03-26 07:48:06 -04:00
Justin M. Forbes 0ff6c9ba73 disable whci-hcd since it doesnt seem to have users (rhbz 919289) 2013-03-25 13:35:14 -05:00
Josh Boyer 29aec5dbb4 Add verrel for build 2013-03-24 08:57:25 -04:00
Peter Robinson 8edaa7fef3 Disable Marvell Dove support for the moment as it breaks other SoCs 2013-03-23 18:41:14 +00:00
Peter Robinson eefd4a7b9c fix merge 2013-03-21 13:44:36 +00:00
Peter Robinson 4b23d6ae18 Minor ARM config updates 2013-03-21 13:36:27 +00:00
Josh Boyer 89389a2e90 Fix workqueue crash in mac80211 (rhbz 920218) 2013-03-21 09:04:30 -04:00
Josh Boyer eed7f51b23 Linux v3.8.4
- CVE-2013-1873 information leaks via netlink interface (rhbz 923652 923662)
2013-03-20 16:39:02 -04:00
Josh Boyer 8d496427eb CVE-2013-1796 kvm: buffer overflow in handling of MSR_KVM_SYSTEM_TIME
(rhbz 917012 923966)
- CVE-2013-1797 kvm: after free issue with the handling of MSR_KVM_SYSTEM_TIME
  (rhbz 917013 923967)
- CVE-2013-1798 kvm: out-of-bounds access in ioapic indirect register reads
  (rhbz 917017 923968)
2013-03-20 16:13:35 -04:00
Josh Boyer 403abecdfc Add verrel for build 2013-03-18 11:34:42 -04:00
Justin M. Forbes 01783818dd Revert rc6 ilk changes from 3.8.3 stable (rhbz 922304) 2013-03-18 11:11:24 -04:00
Peter Robinson df1cf3af93 Enable OMAP RNG and mvebu dove configs 2013-03-18 09:10:57 +00:00
Peter Robinson fad676f9ff re-enable accidentally disabled ARM kernels 2013-03-15 15:24:35 +00:00
Josh Boyer f6d83f1bcb CVE-2013-1860 usb: cdc-wdm buf overflow triggered by dev (rhbz 921970 922004) 2013-03-15 07:53:08 -04:00
Josh Boyer 314bf85c5a Linux v3.8.3
- Fix divide by zero on host TSC calibration failure (rhbz 859282)
2013-03-14 14:55:11 -04:00
Josh Boyer 5d9a19407d Fix divide by zero on host TSC calibration failure (rhbz 859282) 2013-03-14 07:45:49 -04:00
Mauro Carvalho Chehab d07c9bf44a Fix i7300_edac size report on single DIMM mode
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-03-14 07:42:01 -04:00
Josh Boyer 6f8ae00dca Add patch to fix ieee80211_do_stop (rhbz 892599) 2013-03-12 12:58:22 -04:00
Josh Boyer 9fa4523eb7 Add patches to fix cfg80211 issues with suspend (rhbz 856863) 2013-03-12 12:24:24 -04:00
Josh Boyer 6af31c189d Add patch to fix Cypress trackpad on XPS 12 machines (rhbz 912166) 2013-03-12 10:23:50 -04:00
Josh Boyer c690b0ad2b Use SA_RESTORER, as __ARCH_HAS_SA_RESTORER was added in 3.9 2013-03-12 09:23:46 -04:00
Josh Boyer 63a70f0755 CVE-2013-0913 drm/i915: head writing overflow (rhbz 920471 920529) 2013-03-12 09:07:06 -04:00
Josh Boyer b9b2422ce0 CVE-2013-0914 sa_restorer information leak (rhbz 920499 920510) 2013-03-12 08:58:15 -04:00
Mauro Carvalho Chehab fc114e5562 Fix amd64_edac report with the new API
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-03-12 08:54:01 -04:00
Josh Boyer ba5da0cf14 Add patch to fix usb_submit_urb error in uvcvideo (rhbz 879462) 2013-03-11 16:28:14 -04:00
Josh Boyer 9a0a8c2024 Add patch to allow "8250." prefix to keep working (rhbz 911771) 2013-03-11 14:59:23 -04:00
Josh Boyer 053e021c3a Add patch to fix w1_search oops (rhbz 857954) 2013-03-11 09:15:34 -04:00
Josh Boyer 365b244c7c Add patch to fix broken tty handling (rhbz 904182) 2013-03-11 09:07:32 -04:00
Josh Boyer 49732d2a24 Add turbostat and x86_engery_perf_policy debuginfo to kernel-tools-debuginfo 2013-03-08 18:42:39 -05:00
Josh Boyer 49decd0917 Add patch to fix 32-bit turbostat build with older glibc-headers
glibc-2.15 32-bit sigcontext.h pulls in asm/sigcontext.h.  Because turbostat
is using -I to point to the kernel source UAPI dir, we get an error about
linux/compiler.h not being found.  That's true, because the kernel doesn't
export linux/compiler.h and it's stripped out of the uapi sigcontext.h file
when we export it.  But that doesn't help us when turbostat is being stupid
and pointing at the pre-stripped UAPI headers.  Just what.

So just point it to the top level kernel include directory after it's already
searched everything else.
2013-03-08 15:50:20 -05:00
Josh Boyer f08161620a Add verrel for build 2013-03-08 13:57:16 -05:00
Justin M. Forbes ca09502aec Revert write backlight harder until better solution is found (rhbz 917353) 2013-03-08 07:35:08 -06:00
Josh Boyer 90b1fad492 CVE-2013-1828 sctp: SCTP_GET_ASSOC_STATS stack buffer overflow (rhbz 919315 919316) 2013-03-08 08:32:20 -05:00
Peter Robinson aef219c581 - Have kernel provide kernel-highbank for upgrade to unified
- Update mvebu configs
- Drop unused ARM patches
2013-03-08 07:29:49 +00:00
Josh Boyer 645ccd73dc Fix DMI regression (rhbz 916444) 2013-03-07 14:42:51 -05:00
Josh Boyer 39198815d8 Fix logitech-dj HID bug from Benjamin Tissoires (rhbz 840391) 2013-03-07 13:10:57 -05:00
Josh Boyer 86ce060b46 CVE-2013-1792 keys: race condition in install_user_keyrings (rhbz 916646 919021) 2013-03-07 07:56:22 -05:00
Justin M. Forbes 8d3a89bb31 Fix destroy_conntrack GPF (rhbz 859346) 2013-03-06 13:22:45 -06:00
Justin M. Forbes b710426697 Remove Ricoh multifunction DMAR patch as it's no longer needed (rhbz 880051) 2013-03-06 10:09:25 -06:00
Josh Boyer 81649bdb3e crypto: info leaks in report API (rhbz 918512 918521) 2013-03-06 08:54:52 -05:00
Peter Robinson bbf7716489 Update ARM configs for 3.8. Fix beagle (OMAP), update vexpress 2013-03-05 19:38:21 +00:00
Josh Boyer d33d175ed0 CVE-2013-1819 xfs: _xfs_buf_find oops on blocks beyond the filesystem end
(rhbz 918009,918070)

Note CVE fix in 3.8 rebase.  Fixed with upstream commit
eb178619f930fa2ba2348de332a1ff1c66a31424
2013-03-05 10:30:22 -05:00
Josh Boyer 6ac537a028 Backport 4 fixes for efivarfs (rhbz 917984) 2013-03-05 10:27:26 -05:00
Josh Boyer 5a61b3c3be Fix issues in nx crypto driver from Kent Yoder (rhbz 916544) 2013-03-04 13:38:45 -05:00
Justin M. Forbes 48601caa5c Add audit-libs-devel to perf build-deps to enable trace command. (rhbz 892893) 2013-03-04 09:27:36 -06:00
Josh Boyer 31122695c7 Linux v3.8.2 2013-03-04 10:27:57 -05:00
Justin M. Forbes ec583c93be Linux v3.8.1 2013-03-04 00:05:01 -06:00
Josh Boyer 413c7e79f6 Add patches to fix sunrpc panic (rhbz 904870) 2013-03-01 09:00:34 -05:00
Peter Robinson 6067ea9ca1 Update ARM config to enable SPI and a few other cleanups 2013-02-27 23:00:06 +00:00
Justin M. Forbes 3c34bf7a1f Linux v3.7.10 2013-02-27 12:52:48 -06:00
Justin M. Forbes dc7f562424 Avoid recursion in put_user_ns, potential overflow 2013-02-26 17:03:56 -06:00
Josh Boyer 1f1cbe4b73 CVE-2013-1767 tmpfs: fix use-after-free of mempolicy obj (rhbz 915592,915716) 2013-02-26 09:08:15 -05:00
Josh Boyer 66df908ad4 Fix vmalloc_fault oops during lazy MMU (rhbz 914737) 2013-02-26 08:15:14 -05:00
Josh Boyer 48b6f5c693 Honor dmesg_restrict for /dev/kmsg (rhbz 903192) 2013-02-25 10:04:58 -05:00
Josh Boyer 375c9e59f5 CVE-2013-1763 sock_diag: out-of-bounds access to sock_diag_handlers (rhbz 915052,915057) 2013-02-24 14:02:21 -05:00
Josh Boyer 2038832ba0 Fix perf report field separator issue (rhbz 906055)
- Add support for Atheros 04ca:3004 bluetooth devices (rhbz 844750)
- Backport support for newer ALPS touchpads (rhbz 812111)
2013-02-20 12:23:53 -05:00
Josh Boyer 7a177e376a Add support for Atheros 04ca:3004 bluetooth devices (rhbz 844750) 2013-02-19 11:56:07 -05:00
Josh Boyer 930df99ee1 Backport support for newer ALPS touchpads (rhbz 812111) 2013-02-19 11:20:07 -05:00
Justin M. Forbes 639f23b1b1 Linux v3.7.9 2013-02-18 13:35:48 -06:00
Adam Jackson ac36543927 i915: Fix a mismerge in 3.7.y that leads to divide-by-zero in i9xx_update_wm 2013-02-18 13:47:33 -05:00
Adam Jackson ec07e9dbae Add drm-i915-Fix-up-mismerge-of-3490ea5d-in-3.7.y.patch 2013-02-18 13:46:34 -05:00
Josh Boyer 381fac519a CVE-2013-0290 net: infinite loop in __skb_recv_datagram (rhbz 911479 911473) 2013-02-15 08:00:59 -05:00
Justin M. Forbes 6a4938fe99 Linux v3.7.8 2013-02-14 15:19:31 -06:00
Adam Jackson c8a1c7c713 i915: Hush asserts during TV detection, just useless noise
- i915: Fix LVDS downclock to not cripple performance (#901951)
2013-02-14 14:25:52 -05:00
Adam Jackson b5410eb507 i915: Hush asserts during TV detection, just useless noise
- i915: Fix LVDS downclock to not cripple performance (#901951)
2013-02-14 14:23:30 -05:00
Justin M. Forbes eae3ac4d02 Fix patch numbering 2013-02-14 11:41:53 -06:00
Justin M. Forbes ec0018e745 mm: Check if PUD is large when validating a kernel address 2013-02-14 11:35:13 -06:00
Josh Boyer a8887f38a3 Add patch to fix corruption on newer M6116 SATA bridges (rhbz 909591) 2013-02-14 09:41:42 -05:00
Josh Boyer 228b22afc5 CVE-2013-0228 xen: xen_iret() invalid %ds local DoS (rhbz 910848 906309) 2013-02-14 09:26:59 -05:00
Josh Boyer d4c9a720d9 CVE-2013-0216/0127 xen: netback DoS via malicious guest ring (rhbz 910886) 2013-02-14 09:12:20 -05:00
Justin M. Forbes 2fa62b2c11 Linux v3.7.7 2013-02-11 13:59:08 -06:00
Peter Robinson 3900a1c2e7 Minor ARM build fixes 2013-02-07 09:41:51 +00:00
Josh Boyer 87ef682fd1 Add patch to fix ath9k dma stop checks (rhbz 892811) 2013-02-06 09:57:47 -05:00
Josh Boyer 2ee5453858 Fix rtlwifi scheduling while atomic from Larry Finger (rhbz 903881) 2013-02-04 09:53:02 -05:00
Justin M. Forbes d06e03b3b8 Linux v3.7.6 2013-02-04 08:44:11 -06:00
Josh Boyer 2ab3c91680 Backport driver for Cypress PS/2 trackpad (rhbz 799564) 2013-01-29 08:47:33 -05:00
Justin M. Forbes ccfa9cad08 Linux v3.7.5 2013-01-28 15:22:30 -06:00
Josh Boyer 70941191f8 Add patch to fix iwlwifi issues (rhbz 863424) 2013-01-28 09:29:59 -05:00
Peter Robinson 803c4f1115 Enable FB options for qemu vexpress on unified 2013-01-28 12:07:46 +00:00
Peter Robinson 90005a2208 Build and package dtbs on ARM 2013-01-27 18:25:25 +00:00
Justin M. Forbes 7bd354bebe Turn off THP for 32bit 2013-01-25 11:00:57 -06:00
Josh Boyer 9f4fa4a8be Add verrel for build 2013-01-23 12:00:28 -05:00
Justin M. Forbes 000cc3f5b2 brcmsmac fixes from upstream (rhbz 892428) 2013-01-23 10:24:13 -06:00
Dave Jones c7ce3f8cd6 Remove empty IPI mask warnings. 2013-01-23 11:04:30 -05:00
Justin M. Forbes 21070266ff drm/i915: Invalidate the relocation presumed_offsets along the slow path 2013-01-22 21:09:04 -06:00
Josh Boyer 6792bee3a5 Fix libata settings bug (rhbz 902523) 2013-01-22 13:41:23 -05:00
Josh Boyer 82e9f20090 Linux v3.7.4 2013-01-21 15:23:48 -05:00
Peter Robinson ea1041cae6 - Merge ARM changes back to fix ARMv5 kernel build and update for 3.7
- Drop highbank, versatile kernel as it's now unified
- Drop imx as the previously supported HW platforms don't work with 3.7
2013-01-20 12:33:26 +00:00
Josh Boyer bf8beb2520 Linux v3.7.3 2013-01-18 12:28:28 -05:00
Josh Boyer 8e4071a187 Add verrel for build 2013-01-16 15:03:41 -05:00
Justin M. Forbes 32a943ee1f Fix for CVE-2013-0190 xen corruption with 32bit pvops (rhbz 896051 896038) 2013-01-16 10:03:38 -06:00
Josh Boyer a577c7dc62 Add patch from Stanislaw Gruszka to fix iwlegacy IBSS cleanup (rhbz 886946) 2013-01-16 08:31:28 -05:00
Josh Boyer 89a713e2a7 Enable Orinoco drivers in kernel-modules-extra (rhbz 894069) 2013-01-14 13:57:30 -05:00
Josh Boyer 639aa658b1 Add verrel for build 2013-01-08 15:41:03 -05:00
Josh Boyer fff6e55c0a Add patch to fix shutdown on some machines (rhbz 890547) 2013-01-08 08:28:32 -05:00
Josh Boyer bf1ab34254 Fix oops on aoe module removal (rhbz 853064) 2013-01-04 08:08:18 -05:00
Josh Boyer 46e984b0cc Fix autofs issue in 3.6 (rhbz 874372) 2013-01-02 10:30:45 -05:00
Josh Boyer 6cc4725ea9 BR the hostname package (rhbz 886113) 2013-01-02 09:12:00 -05:00
Justin M. Forbes 9c2b622aa0 Linux 3.6.11 2012-12-17 15:59:29 -06:00
Josh Boyer 47d4848005 Fix oops in sony-laptop setup (rhbz 873107) 2012-12-17 09:09:45 -05:00
Josh Boyer 9f37335d3f Fix IBSS scanning in mac80211 (rhbz 883414) 2012-12-11 12:03:38 -05:00
Justin M. Forbes a6b73f8197 Linux 3.6.10 2012-12-11 08:01:49 -06:00
Josh Boyer 3f737433a5 Backport 3 upstream fixes to resolve radeon schedule IB errors (rhbz 855275) 2012-12-03 18:47:39 -05:00
Justin M. Forbes ba1530aaae Linux 3.6.9 2012-12-03 16:34:03 -06:00
Josh Boyer 2103f93a59 Update patches for 8139cp issues from David Woodhouse (rhbz 851278) 2012-11-27 14:01:21 -05:00
Justin M. Forbes f2c359e484 Linux 3.6.8 2012-11-26 15:48:59 -06:00
Josh Boyer 140e24d99e Fix regression in 8139cp driver, debugged by William J. Eaton (rhbz 851278) 2012-11-26 14:48:40 -05:00
Josh Boyer 418011b505 Fix ACPI video after _DOD errors (rhbz 869383) 2012-11-26 14:15:56 -05:00
Josh Boyer 1380ea091c Fix ata command timeout oops in mvsas (rhbz 869629) 2012-11-26 13:43:27 -05:00
Josh Boyer 4209423e87 Enable CONFIG_UIO_PDRV on ppc64 (rhbz 878180) 2012-11-26 10:48:46 -05:00
Josh Boyer ceeebe3bad CVE-2012-4530: stack disclosure binfmt_script load_script (rhbz 868285 880147) 2012-11-26 09:04:37 -05:00
Peter Robinson 89f20dbfa7 one for fixup for armv5 on ARM 2012-11-25 22:41:21 +00:00
Peter Robinson 861a924b1a Update ARM kernel config and patches to fix F-17 build 2012-11-25 19:43:10 +00:00
Josh Boyer e0f0154760 CVE-2012-4461: kvm: invalid opcode oops on SET_SREGS with OSXSAVE bit set (rhbz 878518 862900) 2012-11-20 13:02:08 -05:00
Josh Boyer 68b56ce54e Add support for BCM20702A0 (rhbz 874791) 2012-11-20 07:51:30 -05:00
Josh Boyer 9ef55ad171 Apply patches from Jeff Moyer to fix direct-io oops (rhbz 812129) 2012-11-19 11:05:17 -05:00
Justin M. Forbes 3cd5674396 linux 3.6.7 2012-11-17 22:33:31 -06:00
Josh Boyer 51aef44bf2 Fix oops causing typo in keyspan driver (rhbz 870562) 2012-11-16 08:44:27 -05:00
Josh Boyer 999740f300 Don't WARN_ON empty queues in iwlwifi (rhbz 873001) 2012-11-16 08:40:22 -05:00
Justin M. Forbes ebefd3cc65 Fix panic in panic in smp_irq_move_cleanup_interrupt 2012-11-15 11:06:52 -06:00
Justin M. Forbes 42b0632bc6 forgot to add kernel.spec 2012-11-12 12:24:17 -06:00
Justin M. Forbes 019f1d555e fix list_del corruption warning on USB audio with twinkle (rhbz 871078) 2012-11-12 12:23:04 -06:00
Justin M. Forbes d6512de431 Linux 3.6.6 2012-11-05 15:44:44 -06:00
Dave Jones 5cffc5a007 Linux 3.6.5
Merged upstream:
  - iwlwifi-fix-6000-ch-switch.patch
  - mac80211_local_deauth_v3.6.patch
  - mac80211-connect-with-HT20-if-HT40-is-not-permitted.patch
2012-10-31 14:59:39 -04:00
Josh Boyer e3cffe0bf8 CVE-2012-4565 net: divide by zero in tcp algorithm illinois (rhbz 871848 871923) 2012-10-31 14:00:31 -04:00
Mauro Carvalho Chehab c15eb72f4b edac: Fix memory filling order
After testing it on a machine with in asynchronous mode, it was
noticed that the memories are not filled in the proper order.
Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-30 18:43:04 -02:00
Josh Boyer 8e8972af61 Move power-x86-destdir.patch to apply on vanilla kernels (thanks knurd) 2012-10-30 14:01:46 -04:00
Josh Boyer c84ab99ae9 Update patch for 867344 2012-10-30 13:06:45 -04:00
Justin M. Forbes 6d20a43c2f Uprobes backports from upstream 2012-10-29 23:33:12 -05:00
Justin M. Forbes 76d02ca8df Linux 3.6.4 2012-10-29 09:01:22 -05:00
Justin M. Forbes cd394142aa CVE-2012-4508: ext4: AIO vs fallocate stale data exposure (rhbz 869904 869909) 2012-10-25 13:15:32 -05:00
Josh Boyer 9516ccc8d5 Remove patch added for rhbz 856863 2012-10-24 14:41:27 -04:00
Josh Boyer 24d200243d Add patch to fix corrupted text with i915 (rhbz 852210) 2012-10-24 08:23:01 -04:00
Peter Robinson b71c8a4360 Merge branch 'f17' of ssh://pkgs.fedoraproject.org/kernel into f17 2012-10-22 21:24:49 +01:00
Peter Robinson ebea7f281f VIFO fails on ARM at the moment so disable it for the time being 2012-10-22 21:24:43 +01:00
Josh Boyer c8c2a319d5 Add patch to fix CIFS oops from Jeff Layton (rhbz 867344) 2012-10-22 15:46:47 -04:00
Josh Boyer dd77d2b803 Add verrel to changelog for build 2012-10-22 10:47:21 -04:00
Josh Boyer 8431cbd968 CVE-2012-0957: uts: stack memory leak in UNAME26 (rhbz 862877 864824) 2012-10-22 09:47:08 -04:00
Josh Boyer 951aef5850 Fix rt2x00 usb reset resume (rhbz 856863) 2012-10-22 08:32:03 -04:00
Josh Boyer 994eaf2759 Linux v3.6.3 2012-10-22 08:24:33 -04:00
Peter Robinson 1fc4e2217f fix merge with ARM 2012-10-22 10:16:09 +01:00
Peter Robinson aeb97b1a00 - Cleanup ARM patches
- Add highbank sata patch
- add patch to revert ARM misaligned access check to stop kernel OOPS
2012-10-22 10:15:23 +01:00
Josh Boyer 9580bc3940 Don't enable UDL per Dave Airlie 2012-10-21 07:01:27 -04:00
Josh Boyer 3204d8646a Patch to have mac80211 connect with HT20 if HT40 is not allowed (rhbz 866013) 2012-10-18 08:52:21 -04:00
Josh Boyer 2cf66fac5e Enable VFIO (rhbz 867152) 2012-10-18 08:39:45 -04:00
Josh Boyer df409ec92f Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168) 2012-10-18 08:33:57 -04:00
Josh Boyer 05a71e9f31 Apply patch to fix iwlwifi crash (rhbz 770484) 2012-10-18 08:26:39 -04:00
Josh Boyer 77e4883e85 Enable TCM_VHOST module (rhbz 866984) 2012-10-17 10:58:18 -04:00
Mauro Carvalho Chehab a3db4ce6af Increment kernel base, due to the i82795x_edac driver fix
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-16 23:04:19 -03:00
Mauro Carvalho Chehab e524144689 i82975x_edac: rewrite the entire fill/report logic
There are so many bugs at the fill/error report logic that
the code ended by being re-written.

Issues solved:

- DIMM labels were "randomly" filled: they won't
  match the memory layout, due to a series of bugs on it;

- The memory controller supports 3 different modes:
  single, dual interleaved and dual async. The logic there were
  written considering the dual interleaved one (yet, some
  single mode support was there);

- The boundary limit to decide on each channel the error happens,
  at dual interleaved mode, is given by bit 6 of the error address,
  and not bit 1. The practical effect is that Corrected errors
  will have a 50% of chance of pointing to the right DIMM. Only
  the DIMM pair logic were OK;

- The asymetric mode weren't properly supported. The driver would
  handle an asymetric mode as 'single mode', with doesn't actually
  match it, creating some weird real/virtual DIMM mappings.

- Some other random bugs got fixed.

Tested on a Dell Precision N390, on dual interleaved mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-16 22:47:26 -03:00
Mauro Carvalho Chehab f41e24298c Make sure all -debug Kernels will have CONFIG_EDAC_DEBUG
Due to the parsing logic, CONFIG_EDAC_DEBUG should be at
config-nodebug, and not at config-*-generic, otherwise,
this symbol will never be allowed, even geing at config-debug.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-16 09:06:06 -03:00
Mauro Carvalho Chehab a25b44e653 Enable EDAC debug facility on config-debug
It helps to have EDAC debug enabled, on -debug modules. the actual
debug only happens when a modprobe parameter is used, so the only
side effect of enabling the debug is to increase a little bit
the size of the edac Kernel modules, as new printk's will be
available there.

While here, bump version to 3.6.2-3.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-16 00:35:11 -03:00
Mauro Carvalho Chehab 1d13150d5e Fix i82975x_edac OOPS (BZ#848149)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-15 21:59:20 -03:00
Josh Boyer e2d59620f5 Add version in changelog for build 2012-10-15 06:57:24 -04:00
Josh Boyer e5b3dadf5f Linux v3.6.2
- Fix whitespace corruption in linux-3.6-arm-build-fixup.patch
2012-10-13 08:10:44 -04:00
Josh Boyer c05f8b9272 Fix whitespace corruption in linux-3.6-arm-build-fixup.patch 2012-10-13 08:08:08 -04:00
Mauro Carvalho Chehab 35552829b4 omap: enable v4l2 drivers for omap2+
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-13 08:41:30 -03:00
Mauro Carvalho Chehab 1a44375e15 fix omap_drv compilation
drivers/staging/omapdrm/omap_drv.c:764:3: error: unknown field 'reclaim_buffers' specified in initializer
drivers/staging/omapdrm/omap_drv.c:764:3: error: initialization from incompatible pointer type [-Werror]
drivers/staging/omapdrm/omap_drv.c:764:3: error: (near initialization for 'omap_drm_driver.irq_preinstall') [-Werror]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-13 08:21:59 -03:00
Mauro Carvalho Chehab 088b3292dd Fix ARM breakage due to linux v3.6 rebase 2012-10-13 08:11:14 -03:00
Mauro Carvalho Chehab 6a9077fe35 arm-exynos4: add regulator fix patches for SMDK310 and Origen boards
Without those patches, both drivers oopses, due to a bug at the
dummy regulator on Kernel 3.6.

Also, some board components don't work without it.

Those patches could not be 100% correct, but all components that
are known to work with the upstream Kernel are available with it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-10-10 21:04:12 -03:00
Peter Robinson 6f283881b2 add versatile config file 2012-10-10 05:46:34 +01:00
Peter Robinson 9a09a5c53c Update ARM configurations 2012-10-09 23:17:01 +01:00
Josh Boyer 43e4600ffe Linux v3.6.1
- Include patches from 3.6.2 stable queue
- Drop unhandled irq patch.  Proving to be not worthwhile
2012-10-09 08:21:23 -04:00
Josh Boyer b2ff1b70cc Linux v3.5.6 2012-10-07 14:54:52 -04:00
Josh Boyer 5e430a4dd6 Make sure kernel-tools-libs-devel provides kernel-tools-devel 2012-10-03 08:25:44 -04:00
Josh Boyer ef6c2f38d1 Linux v3.5.5 2012-10-02 15:11:38 -04:00
Dave Jones 1876a31055 Apply potential fix for bogus WARN_ON in tcp. (rhbz 857324) 2012-09-28 12:33:29 -04:00
Josh Boyer 6cec19f42c Split out kernel-tools-libs (rhbz 859943) 2012-09-28 08:38:02 -04:00
Justin M. Forbes e1089320be 3.5.5 stable queue and bugfixes 2012-09-26 16:08:13 -05:00
Josh Boyer 5e2cf58050 Add patch to fix radeon regression from Jerome Glisse (rhbz 785375) 2012-09-21 09:08:32 -04:00
Justin M. Forbes 107cc7895c Enable POWER7+ crypto modules (rhbz 857971) 2012-09-18 09:44:21 -05:00
Justin M. Forbes 20a9e7ec59 Linux 3.5.4 2012-09-17 09:01:49 -05:00
Justin M. Forbes 021ce7bee3 Drop xen EC2 work around, finally 2012-09-11 10:17:21 -05:00
Dave Jones 743d347abb dos2unix. 2012-09-10 13:35:18 -04:00
Justin M. Forbes 877f9f439e Linux 3.5.3 2012-08-27 09:31:37 -05:00
Dave Jones 04489966aa af_netlink: force credentials passing [CVE-2012-3520] 2012-08-21 14:06:24 -04:00
Dave Jones 90780aef64 remove unused files. exec-shield remnants 2012-08-21 14:03:16 -04:00
Dave Jones 0348219582 Add patch from Dave Airlie to fix fb cursor vs grub2 gfxterm hang 2012-08-21 11:00:28 -04:00
Dave Jones db67df2ee4 Reenable W1 drivers. (rhbz 849430) 2012-08-20 12:03:22 -04:00
Dave Jones 17c4c18ae9 Linux 3.5.2 2012-08-15 11:28:27 -04:00
Dave Jones a7252002cb Linux 3.5.1 2012-08-09 12:48:24 -04:00
Dave Jones 700f9d642a Update to 3.5.1-rc1 2012-08-07 19:01:39 -04:00
Dave Jones 32403ff239 Update the uprobes backport. (Anton Arapov) 2012-08-07 11:34:47 -04:00
Dave Jones 222b075b3f Don't treat warnings as errors when building perf. (rhbz 845758) 2012-08-06 11:27:41 -04:00
Josh Boyer fbb6665b06 CVE-2012-3412 sfc: potential rDOS through TCP MSS option (rhbz 844714 845558) 2012-08-03 09:30:37 -04:00
Dave Jones 880031fe2d Change VM_BUG_ON's to be WARN_ONs instead. 2012-07-31 09:47:02 -04:00
Josh Boyer 66cb0c0021 Move modules needed by Shorewall back to main kernel package (rhbz 844436) 2012-07-31 08:05:21 -04:00
Josh Boyer ac50af7370 Actually add the file. Sigh. 2012-07-26 19:11:47 -04:00
Josh Boyer 487c4d7167 Add patch series queued for 3.5.1 2012-07-26 17:15:09 -04:00
Josh Boyer 53ecebd579 Rebase to Linux v3.5 2012-07-26 15:12:33 -04:00
Josh Boyer 63bb17548c kernel: recv{from,msg}() on an rds socket can leak kernel
memory (rhbz 820039 843554)
- Apply patch to fix uvcvideo crash (rhbz 836742)
2012-07-26 13:40:22 -04:00
Josh Boyer 40e2ad513d Apply patch to fix uvcvideo crash (rhbz 836742) 2012-07-26 11:10:43 -04:00
Josh Boyer a394a589c5 Add patch to fix cpu pinning after suspend/resume (rhbz 714271) 2012-07-25 08:05:41 -04:00
Josh Boyer e89b5d878b Update vga_default_device.patch to fix build failures (rhbz 830446) 2012-07-20 13:55:24 -04:00
Josh Boyer e557f0dad8 Touch the needed module-extras temp files so sort doesn't fail (rhbz 833558) 2012-07-20 12:46:31 -04:00
Josh Boyer 1ea9812cdb bump baserelease to keep f17 newer 2012-07-19 16:30:04 -04:00
Josh Boyer b51c09f7b5 Linux v3.4.6 2012-07-19 16:27:37 -04:00
Josh Boyer e3521339a4 check return value of power_supply_register from Lan Tianyu (rhbz 772730) 2012-07-18 09:12:02 -04:00
Josh Boyer fda19b317c Bump baserelease to keep F17 kernel newer than F16 2012-07-16 14:54:54 -04:00
Josh Boyer 656d21accd Linux v3.4.5 2012-07-16 14:50:33 -04:00
Josh Boyer 755df4e987 Add patch to fix ACPICA null pointer exception regression (rhbz 834318) 2012-07-12 16:50:43 -04:00
Justin M. Forbes 9143a6376f Fix FIPS for aesni hardware (rhbz 839239) 2012-07-11 10:47:41 -05:00
Josh Boyer e86c904030 Add patch to fix xen dom0 crash when using BLKDISCARD (rhbz 824641) 2012-07-10 13:26:24 -04:00
Justin M. Forbes a5a7f0c684 ACPI, APEI, Avoid too much error reporting in runtime 2012-07-06 16:19:57 -05:00
Peter Robinson 2f09889abb disable TI_CPSW 2012-07-06 12:21:08 +01:00
Josh Boyer 1e9cc93abf Fix device misprobe for Gobi devices (rhbz 829880) 2012-07-05 13:58:27 -04:00
Josh Boyer 55271253c5 Fix breakage in nouveau with nv_two_heads (rhbz 830359) 2012-07-05 13:50:54 -04:00
Josh Boyer 2d2df068ff Apply patch to fix tg3 watchdog hangs on BCM5906 devices (rhbz 825123) 2012-07-05 13:44:46 -04:00
Peter Robinson 48d388d483 Merge branch 'f17' of ssh://pkgs.fedoraproject.org/kernel into f17 2012-07-05 17:36:52 +01:00
Peter Robinson 5f9a54d3c0 omap: enable new driver 2012-07-05 17:32:48 +01:00
Josh Boyer 4ecd7184ff Move sch_htb module into main kernel package (rhbz 836185) 2012-07-05 11:53:27 -04:00
Peter Robinson cb6e1a99f5 Enable OMAP freq scaling driver, Initial support for Beaglebone in OMAP kernel 2012-07-05 16:25:55 +01:00
Josh Boyer 470b70635f Patch from Stanislaw Gruszka to fix rt2x00 USB access point (rhbz 828824) 2012-07-04 11:30:20 -04:00
Josh Boyer 082fbe3473 Allow ACPI backlight to still work if _DOS isn't present (rhbz 834910) 2012-07-03 10:23:03 -04:00
John W. Linville ed9681dca3 ath9k: fix panic caused by returning a descriptor we have... (rhbz 832927) 2012-06-29 10:39:06 -04:00
Dennis Gilmore e35f3f6061 ARM: include the mach- headers on arm arches if they are available 2012-06-28 14:08:30 -05:00
Justin M. Forbes 694fdf18e6 Team driver update 2012-06-28 12:39:49 -05:00
Josh Boyer 5290429908 Add version to changelog for build 2012-06-26 16:15:10 -04:00
Dave Jones d295287e24 Add mm-correctly-synchronize-rss-counters-at-exit-exec.patch (rhbz 832867) 2012-06-26 15:56:41 -04:00
Josh Boyer 48a9b7ba7a Add task_work_add backport from Anton Arapov 2012-06-26 15:40:11 -04:00
Josh Boyer 1c5ab3b392 Add patch to fix mount hangs (rhbz 835019) 2012-06-26 11:38:02 -04:00
John W. Linville ec675c56ba ath9k_htc: configure bssid on ASSOC/IBSS change (rhbz 828731) 2012-06-26 11:10:47 -04:00
Justin M. Forbes 6c6f1b8594 Linux 3.4.4 2012-06-22 16:40:12 -05:00
Josh Boyer 28170d1407 Add uprobe backports from Anton Arapov (rhbz 832083) 2012-06-22 10:19:28 -04:00
Josh Boyer da59896775 Disable UDL DRM driver per Dave Airlie 2012-06-22 07:47:04 -04:00
Josh Boyer 3d47c715a4 Fix incorrect logic in irqpoll patch 2012-06-20 15:17:12 -04:00
Josh Boyer a2fe54c8b0 Add proposed patch to fix READ_CAPACITY command on usb keys (rhbz 831807) 2012-06-20 08:35:14 -04:00
Justin M. Forbes 50263f8131 Merge branch 'f17' of ssh://pkgs.fedoraproject.org/kernel into f17 2012-06-18 10:46:38 -05:00
Dave Jones 6f3b87d430 Output taint info when the RSS counter check trips up. 2012-06-18 11:46:19 -04:00
Justin M. Forbes 9d2bce0cc6 Fix versioning, what was I thinking? 2012-06-18 10:46:17 -05:00
Justin M. Forbes 46932ff9af Bump for build 2012-06-18 10:41:27 -05:00
Justin M. Forbes 81b6a5b514 Merge branch 'f17' of ssh://pkgs.fedoraproject.org/kernel into f17 2012-06-18 10:39:40 -05:00
Justin M. Forbes 82f5c0ee45 Linux 3.4.3 2012-06-18 10:39:36 -05:00
Justin M. Forbes c459464235 Linux 3.4.3 2012-06-18 10:39:18 -05:00
Josh Boyer 7b1733efd5 Add patch to fix CIFS password mount option parsing (rhbz 832741)
- Add patch to fix udl device binding (rhbz 832188)
2012-06-18 08:36:01 -04:00
Josh Boyer 1b96ab66be Add patches to fix NFS shutdown panic (rhbz 830862) 2012-06-13 16:00:23 -04:00
Justin M. Forbes 5a91192c1e turn on hyperv support 2012-06-13 09:15:57 -05:00
Dennis Gilmore 72cee3c2fc ARM: build in rtc modules so time gets set right on boot 2012-06-12 09:01:34 -05:00
Josh Boyer a8283add14 Add virtual provides for kernel-module to kernel-modules-extra (rhbz 770444) 2012-06-11 16:15:34 -04:00
Josh Boyer 95e7d92685 Add patch to fix xen domU 32bit (rhbz 829016) 2012-06-11 08:39:21 -04:00
Josh Boyer 2ccad4cf5e Add two upstream commits to fix flaky iwlwifi (rhbz 825491) 2012-06-11 08:01:13 -04:00
Josh Boyer ab7183ff44 Linux v3.4.2 2012-06-09 14:25:14 -04:00
Josh Boyer 12eb25beb1 Enable HV assisted KVM on ppc64 2012-06-09 09:17:12 -04:00
Josh Boyer 2cd576ed87 Backport edid header fixup threashold patch from Adam Jackson (rhbz 582559) 2012-06-08 09:23:00 -04:00
Dennis Gilmore b920e9b748 fix up white space corruption in highbank-secure-smc.patch 2012-06-07 07:58:45 -05:00
Dennis Gilmore 26dfa93c6b bump baserelease 2012-06-07 01:45:52 -05:00
Dennis Gilmore dac218827a add patch from calxeda enabling the kernel to boot on physical hardware
http://lists.arm.linux.org.uk/lurker/message/20120605.031140.e7d9b601.en.html
2012-06-07 01:43:34 -05:00
Dennis Gilmore 0ee1a3499d fix typo in ApplyPatch 2012-06-05 14:38:40 -05:00
Dennis Gilmore 0c2c60f6fb register omapdrm to the platform so that we get working frambuffer and X working 2012-06-05 14:28:31 -05:00
Peter Robinson 85ce09f074 minor ARM imx update 2012-06-05 16:46:29 +01:00
Peter Robinson 745a2cc5d4 Update ARM config options for 3.4, nable MTD/UBI/JFFS2 on ARM platforms 2012-06-05 15:20:20 +01:00
Josh Boyer a8e293d2a3 Linux v3.4.1 2012-06-04 16:02:07 -04:00
Dave Jones 88fa1f0332 disable 32bit nx, it seems to be broken 2012-06-04 11:56:08 -04:00
Peter Robinson d885d6c86a fix minor typo in config 2012-06-03 18:36:13 +01:00
Justin M. Forbes 2660d94801 Add bison buildreq and bump NR_CPUS to 128 on x86_64 2012-06-03 01:01:20 -05:00
Justin M. Forbes 39acffae26 Linux 3.4 and stable queue updates 2012-06-02 23:57:09 -05:00
Josh Boyer 506e7ae6a2 Include upstream commit 4523e145 for CVE-2012-2390
This fixes an oops that was trivially triggered after the original commit
went in.  Props to Dave J.
2012-05-30 12:03:07 -04:00
Josh Boyer 62a54c7401 CVE-2012-2390 huge pages: memory leak on mmap failure (rhbz 824352 824345) 2012-05-30 07:46:34 -04:00
Mauro Carvalho Chehab 1e953ffdf6 Update the spec with the last change and its bugzilla
Also remove a few bogus comments about DVB frontends/DVB USB
that are at the wrong places

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-25 08:10:32 -03:00
Mauro Carvalho Chehab b2151191d3 Don't customise tuners or frontends
The option to customise tuners/frontends are there to allow
embedded systems or advanced users that compile their own
kernels to disable I2C modules that aren't used by their
specific device. When those options are not selected, the
building system will automatically select the modules that
are needed by each DVB device.

The end result is that dummy frontends used only for testing,
like DVB_DUMMY_FE won't be selected.

Also, when newer frontends are added (and they're added all
the times), the new ones will automatically be selected, if
the bridge drivers that support them are selected.

This also makes the configuration simpler to understand.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-25 07:51:04 -03:00
Josh Boyer 455182ef81 CVE-2012-2372 mm: 32bit PAE pmd walk vs populate SMP race (rhbz 822821 822825) 2012-05-24 07:43:48 -04:00
Adam Jackson 2ee75d45c7 drm-i915-lvds-dual-channel.patch: Scrape dual-channel-ness for LVDS out
of the VBT, rather than just making things up. (#819343)
2012-05-23 15:42:25 -04:00
Justin M. Forbes af47703545 Linux 3.3.7 2012-05-21 17:17:13 -05:00
Josh Boyer ec51726eca Additional fixes for CVE-2011-4131 (rhbz 822874 822869) 2012-05-18 09:19:58 -04:00
Josh Boyer 07d66f28b6 Fix rtlwifi async firmware load race condition (rhbz 822120) 2012-05-17 10:30:49 -04:00
Josh Boyer fe11531247 Enable cpu_idle drivers for ppc64/pseries (requested by Ben Herrenschmidt) 2012-05-17 08:28:00 -04:00
Dennis Gilmore a4ec16e544 ARM: set platform for arm kernel to VEXPRESS allows us to emulate v7 systems and works with fedoras qemu
ARM: enable SMP everywhere but disable on kirkwood as its up only platform
2012-05-16 21:27:22 -05:00
Justin M. Forbes a8d5b8b142 rtl818x fix sleeping function called from invalid context (rhbz 795176) 2012-05-16 16:06:13 -05:00
Josh Boyer 0e8b5cac91 Update the vgaarb patches to pick up a small switcheroo fix from airlied 2012-05-16 12:37:56 -04:00
Dennis Gilmore 34b6abb66f ARM: add patch to correctly initialise USB on beagleboards 2012-05-15 13:58:41 -05:00
Josh Boyer 6f5fb13061 Fixup atl1c register programming (rhbz 749276) 2012-05-15 07:57:12 -04:00
Justin M. Forbes be402e5a53 Because deps changed, we need to define CONFIG_BLK_DEV_PCIESSD_MTIP32XX in config-generic 2012-05-14 13:23:16 -05:00
Justin M. Forbes 29833ee66f Linux 3.3.6 2012-05-14 12:53:55 -05:00
Josh Boyer 8511ce0313 Enable DRM_VIA again per Adam Jackson 2012-05-14 11:51:07 -04:00
Mauro Carvalho Chehab 5963c7872d Fix DVB-S zig-zag logic
This logic got broken by the dvb_frontend.c rewrite.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-08 07:53:09 -03:00
Josh Boyer 99667a9f69 Linux 3.3.5
- Add patch to rate limit NFSv4 message (rhbz 732748)
2012-05-07 13:28:17 -04:00
Dave Jones c733befc8b bump for build 2012-05-07 13:11:20 -04:00
Dave Jones ded40ae5b3 Remove /proc/device-tree when openfirmware init fails. (rhbz 818378) 2012-05-07 11:34:29 -04:00
Justin M. Forbes c11628e2fd Bumped wrong thing for build 2012-05-04 11:51:33 -05:00
Justin M. Forbes f5a9f4b3b3 Bump for build 2012-05-04 11:47:25 -05:00
Justin M. Forbes 35223b7f9c drm/radeon: don't mess with hot plug detect for eDP or LVDS (rhbz 726143) 2012-05-04 10:31:52 -05:00
Josh Boyer ba63b0eddb unfiltered netdev rio_ioctl access by users (rhbz 818820) 2012-05-04 07:16:28 -04:00
Dennis Gilmore 33847bf37e set CONFIG_DRM_OMAP_NUM_CRTCS to 2 which allows for 2 overlays to be used as framebuffers 2012-05-03 18:11:59 -05:00
Dennis Gilmore d8200c0196 ARM: disable FB_OMAP2 as it conflicts with the KMS driver 2012-05-03 16:38:14 -05:00
Dennis Gilmore 6de3dde529 enable the omap kms driver 2012-05-03 16:03:06 -05:00
Peter Robinson 76a51fad57 Patch for disconnect issues with storage attached to a tegra-ehci controller 2012-05-03 20:36:47 +01:00
Justin M. Forbes b17fbf6281 Reenable slip and add to module-extras (rhbz 818308) 2012-05-03 13:12:39 -05:00
Josh Boyer db355f7ded Disable PCIEPORTBUS on ppc64 per IBM request 2012-05-03 12:51:33 -04:00
Justin M. Forbes db21f469dd Many patches from 3.3.5 stable queue 2012-05-02 10:29:49 -05:00
Justin M. Forbes aeab634894 NFS Bugfixes from upstream 2012-05-01 16:42:21 -05:00
Josh Boyer c1dc37b693 Backport ipw2x00 nl80211 cipher suite reporting (rhbz 817298) 2012-04-30 15:28:31 -04:00
Dave Jones cab5127bd1 Disable CONFIG_RCU_FAST_NO_HZ for now. (rhbz 806548) 2012-04-30 12:18:46 -04:00
Justin M. Forbes a8f58bb89c Linux 3.3.4 2012-04-27 13:23:22 -05:00
Justin M. Forbes 918c474fc0 Skip DMI checks if the bootloader knows what it's doing 2012-04-27 13:07:40 -05:00
Josh Boyer 37e7953c58 Add patch to fix perf build due to incorrect cherry-pick in 3.3.3 2012-04-24 09:46:27 -04:00
Josh Boyer 5b0120f33f Add patch to fix ipw2200 (rhbz 802106) 2012-04-24 08:47:28 -04:00
Josh Boyer 3b96934ff4 Add GMA3600 (Cedarview) support (rhbz 810686) 2012-04-23 13:13:52 -04:00
Josh Boyer 6e2468ba3e Linux 3.3.3 2012-04-23 07:42:15 -04:00
Peter Hutterer f3ba8d1a96 Fix regression on clickpads 2012-04-23 16:50:35 +10:00
Josh Boyer 7bb156c930 Fix error check in memblock that prevented boot on various Dells (rhbz 811225) 2012-04-21 08:07:10 -04:00
Josh Boyer d80df3443e Move the dlm module to modules-extra and do additional cleanup (rhbz 811547) 2012-04-20 16:47:06 -04:00
Josh Boyer 2ddaf28593 CVE-2012-2123 fcaps: clear the same personality flags as suid when fcaps are used (rhbz 814523 806722) 2012-04-20 08:28:30 -04:00
Justin M. Forbes 1268e178c4 add macvtap patch 2012-04-19 16:20:02 -05:00
Justin M. Forbes 3490e9bb74 CVE-2012-2119 macvtap: zerocopy: vector length is not validated before pinning user pages (rhbz 814278 814289) 2012-04-19 16:12:54 -05:00
Justin M. Forbes 150a1754ad Fix KVM device assignment page leak 2012-04-19 09:50:51 -05:00
Josh Boyer d49243fb20 Fix hfsplus bless ioctl with hardlinks (from Matthew Garrett) 2012-04-18 14:10:06 -04:00
Josh Boyer 052403b3c9 Make sure userflags is initialized in hfsplus files (from Matthew Garrett) 2012-04-18 14:05:11 -04:00
Josh Boyer 861ec4fcf6 Change patch to resolve libata hotplug (rhbz 807632) 2012-04-18 13:56:04 -04:00
Josh Boyer 905b88a9e8 Move the dlm module to modules-extra (rhbz 811547) 2012-04-17 16:28:39 -04:00
Josh Boyer f7429699b4 Fix oops in nfs_have_delegation (rhbz 811138) 2012-04-17 12:43:33 -04:00
Josh Boyer 3357ee4929 Add "# END OF PATCH DEFINITIONS" tag (rhbz 811777) 2012-04-17 11:12:48 -04:00
Josh Boyer 640877bc22 Fix oops on invalid AMD microcode load (rhbz 797559) 2012-04-17 11:05:40 -04:00
Josh Boyer 6ae0c8402e Add and use vga_default_device patches (requested by Matthew Garrett) 2012-04-16 20:34:09 -04:00
Josh Boyer 03aee81210 Add platform driver for Apple GMUX device (requested by Matthew Garrett) 2012-04-16 16:14:16 -04:00
Josh Boyer aca0c0113c Add ALSA quirk for MacPro 5,1 machines (rhbz 808559) 2012-04-14 09:23:39 -04:00
Josh Boyer d9aad82f33 Linux 3.3.2 2012-04-13 13:49:22 -04:00
Dennis Gilmore d3a46ed584 KALLSYMS_EXTRA_PASS=1 is only able to be set via environment variables
pass it in on the make line for arm only
2012-04-12 10:44:30 -05:00
Peter Robinson 116089caa5 add ARM changelog 2012-04-12 00:29:28 +01:00
Peter Robinson 341240f413 rename config-arm-omap-generic to config-arm-omap 2012-04-12 00:29:28 +01:00
Peter Robinson 34c59d0ce1 fix KALLSYMS_EXTRA_PASS 2012-04-12 00:04:57 +01:00
Dennis Gilmore 65cabe786d based on upstreams recommendation add
KALLSYMS_EXTRA_PASS=1 to arm configs

http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html
2012-04-11 11:43:24 -05:00
Josh Boyer c6f2d01d81 SELinux apply a different permission to ptrace a child vs non-child
(rhbz 802072)
2012-04-11 08:22:10 -04:00
Josh Boyer 4b3699110c Update hibernate watermark patch to latest tested version 2012-04-10 20:11:51 -04:00
Mauro Carvalho Chehab 21154b3b1c Add the Kernel media updates with fixes for 3.4 and other material for 3.4/3.5
Those patches contain important fixes, expecially the one
for BZ#808871 and BZ#807052, at the DVB core.

Also add poll_requested_events
    - The new events interface requires this function in order to work.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-04-10 16:57:08 -03:00
Josh Boyer 546745e9c3 Apply upstream patch to add USB device 13d3:3375 (rhbz 811087) 2012-04-10 15:11:37 -04:00
Josh Boyer 1d8fbc4937 Disable the PMAC ide driver. PATA_MACIO seems to work (rhbz 810579)
- Backport fixes for correct register constraints in cmpxchg.h (rhbz 809014)
2012-04-10 10:58:46 -04:00
Josh Boyer 6bae32eefe Backport fixes for correct register constraints in cmpxchg.h (rhbz 809014) 2012-04-10 09:11:56 -04:00
Dave Jones 8e40392487 Better watermark the number of pages used by hibernation I/O (Bojan Smojver) (rhbz 785384) 2012-04-05 11:47:15 -04:00
Josh Boyer 541804a28d Increase the size of the dmesg buffer
Bump it to 256K, as discussed in the community kernel meeting on Mar 30, 2012
2012-04-04 14:43:32 -04:00
Josh Boyer 7c5e45e7c3 Backport upstream patches to enable i915 RC6 by default on SNB 2012-04-04 13:51:03 -04:00
Josh Boyer 359bad2b92 Add additional bug number for libata hotplug fix (rhbz 807632) 2012-04-04 10:52:11 -04:00
Josh Boyer 008280377a Disable runtime PM for hotpluggable ATA ports (rhbz 806676) 2012-04-04 10:42:07 -04:00
Josh Boyer 37604c39bc Disable MID_PTI driver (rhbz 783561) 2012-04-04 08:25:12 -04:00
Josh Boyer e7391bed1e Fix NULL pointer dereference in i2400m (rhbz 808603) 2012-04-04 08:19:48 -04:00
Josh Boyer 035ffabe06 Fix crash in uvc_video_clock_update from Laurent Pinchart (rhbz 806433) 2012-04-03 13:50:23 -04:00
Dave Jones 5be33f56fa Linux 3.3.1 2012-04-02 14:47:02 -04:00
Dave Jones e9cafbfe1a Silence the timekeeping "Adjusting tsc more then 11%" spew. (rhbz 798600) 2012-03-30 14:20:38 -04:00
Josh Boyer 9abfa16136 Fix i915 fbdev cursor blink around suspend/hibernate from Dave Airlied 2012-03-30 12:56:18 -04:00
Josh Boyer c898e790c9 CVE-2012-1601: kvm: NULL dereference from irqchip_in_kernel and
vcpu->arch.apic inconsistency (rhbz 808207)
2012-03-30 11:08:18 -04:00
Josh Boyer e238325e94 Add patch to fix incorrect buffer length in __nfs4_get_acl_uncached 2012-03-30 10:49:57 -04:00
Josh Boyer b2e5b31ef2 Add version for build 2012-03-29 14:00:40 -04:00
Josh Boyer 2722c59313 Drop __cpuinitdata on disable_nx for x86_32 (rhbz 808075) 2012-03-29 11:00:30 -04:00
Josh Boyer 0aca2ef1c5 iwl{wifi,legacy}: Fix warnings on remove interface from Stanislaw Gruszka
(rhbz 770467)
2012-03-29 10:40:50 -04:00
Josh Boyer 5bdfff4ee1 Fix disabled ASPM regression 2012-03-28 13:16:14 -04:00
Josh Boyer e5e09d24a2 Move 9p modules back to main package for KVM (rhbz 807733) 2012-03-28 12:55:08 -04:00
Josh Boyer 46ad899861 Implement xen apic_ops to fix early crash in Xen Dom0 (rhbz 804347) 2012-03-27 12:18:23 -04:00
Matthew Garrett f1d2f5da9e Add some additional support for Apple hardware 2012-03-27 11:59:27 -04:00
Dave Jones 52f64574fa bump for build 2012-03-23 15:36:23 -04:00
Dave Jones 6797a3efae Apply patches that should solve the bluetooth use-after-free oopses. (rhbz 806033) 2012-03-23 12:18:34 -04:00
Josh Boyer 98931fa9d1 Ship hmac file for vmlinuz for FIPS-140 (rhbz 805538) 2012-03-21 15:33:10 -04:00
Dave Jones 3b5b9ca4f6 Don't bind the IPS driver if no irq is assigned (typically BIOS bug). (rhbz 804353) 2012-03-20 16:50:59 -04:00
Josh Boyer 5bbe9ea49d CVE-2012-1568: execshield: predictable ascii armour base address (rhbz 804957) 2012-03-20 10:33:23 -04:00
Josh Boyer 475d827aeb mac80211: fix possible tid_rx->reorder_timer use after free
from Stanislaw Gruska (rhbz 804007)
2012-03-20 08:46:49 -04:00
Dave Jones 3cc64333de Linux 3.3 2012-03-18 22:47:47 -04:00
Dave Jones 64c1946b90 bump for build 2012-03-16 16:55:08 -04:00
Adam Jackson efa8ce0877 drm-i915-dp-stfu.patch: Muzzle a bunch of DP WARN()s. They're not wrong,
but they're not helpful at this point.
2012-03-16 16:49:43 -04:00
Dave Jones 0901f900da Disable debugging options. 2012-03-16 15:50:50 -04:00
Dave Jones b4ed1de226 Linux v3.3-rc7-103-g0c4d067 2012-03-16 15:44:23 -04:00
Justin M. Forbes 63bfa6a42c re-enable threading on hibernate compression/decompressio 2012-03-16 13:13:57 -05:00
Josh Boyer 841f4ae865 Fixup irqpoll patch to really not impact machines without ASM108x bridges (rhbz 800520)
WITH FEELING THIS TIME
2012-03-16 11:07:13 -04:00
Justin M. Forbes 7e5dab31d9 CVE-2012-1179 fix pmd_bad() triggering in code paths holding mmap_sem read mode 2012-03-15 14:55:13 -05:00
Josh Boyer 631462571d Fixup irqpoll patch to only activate on machines with ASM108x PCI bridge 2012-03-14 20:31:44 -04:00
Dave Jones 114779eefd bump for build 2012-03-14 18:29:13 -04:00
Dave Jones bf89f3a369 Reduce the foot print of the NFSv4 idmapping coda (bz 593035) 2012-03-14 18:28:36 -04:00
Dave Jones 26fca6fb1f add new options 2012-03-14 18:28:26 -04:00
Dave Jones dc7e77c88c Linux v3.3-rc7-48-g762ad8a 2012-03-14 18:05:33 -04:00
John W. Linville ec5a8cd72e Remove infrastructure related to compat-wireless integration 2012-03-13 13:30:03 -04:00
Dennis Gilmore c298448388 Create a working config file for highbank and add highbank to the
spec file.

Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com>
2012-03-12 14:56:50 -05:00
Josh Boyer 4f07bf38b5 Make the irqpoll patch less chatty (rhbz 800520)
Should look at making the frequency of checking dynamic, but this will help
the immediate problem.
2012-03-12 14:59:46 -04:00
Dave Jones cade301a3b Reenable debugging options. 2012-03-12 14:29:38 -04:00
Dave Jones f8424d652a Disable debugging options. 2012-03-12 12:22:00 -04:00
Dave Jones 953a44d426 Linux 3.3-rc7 2012-03-12 12:21:23 -04:00
Dave Jones bb24598347 Add debug patch for bugs 787171/766277 2012-03-07 17:11:26 -05:00
Dave Jones 987250ae87 Linux v3.3-rc6-132-g55062d0 2012-03-07 00:15:17 -05:00
Dave Jones 43c809527e Linux v3.3-rc6-131-g097d591 2012-03-06 22:32:20 -05:00
Dave Jones b183b702f7 Reenable debugging options. 2012-03-05 14:22:10 -05:00
Dave Jones 0c76388efa hush output 2012-03-05 11:44:00 -05:00
Dave Jones 49d8394023 Disable debugging options. 2012-03-05 11:36:35 -05:00
Dave Jones 322dbeb8ef Linux 3.3-rc6 2012-03-05 11:36:13 -05:00
John W. Linville 16d5b4083a Turn-off CONFIG_B43_BCMA_EXTRA to avoid b43/brcmsmac overlap 2012-03-05 11:28:28 -05:00
Mark Wielaard b81b450037 Add -r to debuginfo_args to invoke eu-strip --reloc-debug-sections.
The -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections
reduces the number of unnecessary relocations in kernel module .ko.debug
files. This saves ~500MB on the installed size of the kernel-debuginfo
package and makes the rpm file ~30MB smaller.
2012-03-05 09:09:48 -05:00
Justin M. Forbes 5a64af3faf Disable threading on compression/decompression for hibernate 2012-03-02 14:19:44 -06:00
Adam Jackson 543bc43145 drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) 2012-03-02 12:25:24 -05:00
Dave Jones 191eabc46e temporarily switch to low-performance polling IRQ mode when unexpected IRQs occur. 2012-03-01 13:05:47 -05:00
Dave Jones 957f70d8ce Linux v3.3-rc5-101-g88ebdda 2012-02-29 16:13:30 -05:00
Dave Jones 34f57fef38 Linux v3.3-rc5-101-g88ebdda 2012-02-29 16:12:48 -05:00
Josh Boyer 8604c9164a Add patch to enable keyboard backlight on Sony laptops (rhbz 728478) 2012-02-28 15:46:16 -05:00
Dave Jones 03f3fa649f Disable CONFIG_USB_DEVICEFS (Deprecated). 2012-02-28 15:43:08 -05:00
Justin M. Forbes c15034c210 CVE-2012-1090 CIFS: fix dentry refcount leak when opening a FIFO on lookup (rhbz 798296) 2012-02-28 14:15:26 -06:00
Dave Jones c675e2db6b Linux v3.3-rc5-88-g586c6e7 2012-02-28 11:52:27 -05:00
Josh Boyer 3e2c562382 Add patch to fix regression in FADT revision checks (rhbz 730007 727865) 2012-02-27 14:21:30 -05:00
Josh Boyer 918552e3f3 Linux 3.3-rc5-git1 (upstream 500dd2370e77c9551ba298bdeeb91b02d8402199) 2012-02-27 08:26:17 -05:00
Josh Boyer 3daa224e41 Reenable debugging options. 2012-02-27 08:20:02 -05:00
Josh Boyer d55b8fbc56 Add patch from Linus Torvalds to fix 32-bit autofs4 build 2012-02-26 11:04:13 -05:00
Josh Boyer d4f9238c88 Disable debugging options. 2012-02-25 17:24:03 -05:00
Josh Boyer 9b45c234f0 Linux 3.3-rc5 2012-02-25 17:23:10 -05:00
Josh Boyer db1939dd8f Linux 3.3-rc4-git5 (upstream b52b80023f262ce8a0ffdcb490acb23e8678377a) 2012-02-25 08:19:03 -05:00
Josh Boyer 6b45478950 Linux 3.3-rc4-git4 (upstream bb4c7e9a9908548b458f34afb2fee74dc0d49f90) 2012-02-24 10:16:26 -05:00
Peter Robinson da2d4fb231 Further ARM config updates 2012-02-23 14:12:38 +00:00
Josh Boyer 7d7342cd50 Linux 3.3-rc4-git3 (upstream 45196cee28a5bcfb6ddbe2bffa4270cbed66ae4b) 2012-02-22 20:02:34 -05:00
Josh Boyer 950a401dc3 One s/kversion/KVERREL too many
Fix prep as the tarball untars to linux-%{kversion}
2012-02-22 19:18:51 -05:00
Josh Boyer 55bd825353 Build in a fully versioned directory
Switch to building in linux-%{KVERREL} so we have a fully versioned directory.
This also helps (but doesn't solve) rhbz 751195.
2012-02-22 18:54:17 -05:00
Josh Boyer 6bdf8498f4 Linux 3.3-rc4-git2 (upstream 719741d9986572d64b47c35c09f5e7bb8d389400) 2012-02-22 10:12:13 -05:00
Josh Boyer add2ca9e12 Drop x86-Avoid-invoking-RCU-when-CPU-is-idle.patch (rhbz 795050) 2012-02-21 20:01:54 -05:00
Peter Robinson 76ebbb6c6c update ARM configs 2012-02-21 22:44:34 +00:00
Josh Boyer dae3cd5ca5 ext4: fix resize when resizing within single group (rhbz 786454) 2012-02-21 14:42:20 -05:00
Josh Boyer 0a89a58e03 imon: don't wedge hardware after early callbacks (rhbz 781832) 2012-02-21 14:32:16 -05:00
Josh Boyer 0255fc68c9 Enable rtl8712 driver (rhbz 699618) 2012-02-21 11:35:16 -05:00
Josh Boyer 0e3dcef2db Linux 3.3-rc4-git1 (upstream 27e74da9800289e69ba907777df1e2085231eff7) 2012-02-21 10:51:35 -05:00
Josh Boyer 44e57012c8 Revert "Append .debug to rawhide builds"
This reverts commit abff21a8fa.

The way we have all the macros coded, this means all the paths need to end
with .debug, including the %kernel_variant_files macros.  That gets ugly
rather quickly with the "simple" fix the above commit tried.  An alternate
solution might be to override the variants built instead.
2012-02-21 10:17:26 -05:00
Peter Robinson e1d46a5d22 Disable ARM highbank kernels for the time being 2012-02-21 09:04:16 +00:00
Dave Jones b2f4cd93ec Do not call drivers when invalidating partitions for -ENOMEDIUM 2012-02-20 20:27:59 -05:00
Peter Robinson d15a70859a Disable sfc ethernet driver on ARM 2012-02-21 01:04:27 +00:00
Josh Boyer c08cca5888 Avoid using stack variables in ums_realtek (again) (rhbz 795544) 2012-02-20 16:20:25 -05:00
Dave Jones 0297ab965a NFSv4: Fix an Oops in the NFSv4 getacl code 2012-02-20 13:31:30 -05:00
Josh Boyer 8bd30695f0 Reenable debugging options. 2012-02-20 09:05:29 -05:00
Josh Boyer abff21a8fa Append .debug to rawhide builds
When we have debugbuildsenabled=0, we're actually building a debug kernel.
To help point this out, let's append .debug in EXTRAVERSION like we would
when building kernel-debug
2012-02-20 09:03:51 -05:00
Josh Boyer cd68c0b144 Linux 3.3-rc4
Disable debugging options.
2012-02-19 22:29:30 -05:00
Peter Robinson d92680c835 More ARM config updates, fix NVEC patch 2012-02-19 12:42:27 +00:00
Dave Jones ad44e064a0 improve handling of null rate in LIS3LV02Dx accelerometer driver. (rhbz 785814) 2012-02-17 16:01:21 -05:00
Dave Jones 9ce789da04 Reenable radio drivers. (rhbz 784824) 2012-02-17 14:56:54 -05:00
Josh Boyer 9163dd7666 Freeze all filesystems during system suspend/hibernate.
Rebased http://marc.info/?l=linux-kernel&m=132775832509351&w=4 to 3.3-rc3
2012-02-17 13:20:18 -05:00
Josh Boyer 157fe84354 Linux 3.3-rc3-git7 (upstream 4903062b5485f0e2c286a23b44c9b59d9b017d53) 2012-02-17 10:20:00 -05:00
Peter Robinson 3a72e754ec comment out NVEC patch for the moment 2012-02-16 11:19:26 +00:00
Peter Robinson 3f54814095 update ARM configs for 3.3 2012-02-16 01:00:28 +00:00
Josh Boyer 39fd9cfd02 Require newer linux-firmware package for updated bnx2/bnx2x drivers 2012-02-15 19:04:43 -05:00
Josh Boyer 7952cde44b Linux 3.3-rc3-git6 (upstream c38e23456278e967f094b08247ffc3711b1029b2) 2012-02-15 18:54:41 -05:00
Adam Jackson f935a16509 Add patch and config change for vgem.ko 2012-02-15 14:46:26 -05:00
John W. Linville f516fcd1f0 Disable with_backports to help things to stabilize 2012-02-15 14:15:31 -05:00
Josh Boyer 08db8c5d12 Install perf examples as suggested by Jason Baron 2012-02-14 19:53:38 -05:00
Josh Boyer b150cfcb0f Modify sd_revalidate_disk patch to do a WARN_ONCE instead of silently skip 2012-02-14 11:01:47 -05:00
Josh Boyer 65b7231f44 Patch to enable CONFIG_KEYS_COMPAT on s390 from David Howells (rhbz 790367) 2012-02-14 10:22:26 -05:00
Josh Boyer 9bf39b3281 Fix rhbzs 789641 and 789644
Fix RCU usage during cpu idle (rhbz 789641)
Fix mce rcu splat (rhbz 789644)
2012-02-14 10:09:54 -05:00
Josh Boyer 770ad8ca88 Linux 3.3-rc3-git5 (upstream ce5afed937f0a823d3b00c9459409c3f5f2fbd5d) 2012-02-14 09:46:33 -05:00
Peter Robinson 4cee10509f Update ARM components in Makefile.config 2012-02-14 10:02:28 +00:00
Josh Boyer 2d7f1ba183 Apply patch to fix autofs4 lockdep splat (rhbz 714828) 2012-02-13 20:48:11 -05:00
Josh Boyer 96e2cd2647 Linux 3.3-rc3-git4 (upstream 3ec1e88b33a3bdd852ce8e014052acec7a9da8b5) 2012-02-13 07:37:11 -05:00
Josh Boyer 88671e11c1 Linux 3.3-rc3-git3 (upstream 8df54d622a120058ee8bec38743c9b8f091c8e58) 2012-02-11 09:02:33 -05:00
Josh Boyer beef0e952d Patch to prevent NULL pointer dereference in sd_revalidate_disk (rhbz 754518) 2012-02-10 15:00:50 -05:00
Josh Boyer 87001d5c4f Linux 3.3-rc3-git2 (upstream 612b8507c5d545feed2437b3d2239929cac7688d) 2012-02-10 13:38:08 -05:00
Josh Boyer 85df0e0b4f Reenable debugging options. 2012-02-10 09:42:34 -05:00
Josh Boyer fa3e4fce5a Linux 3.3-rc3-git1 (upstream 19e00f2f1d5273dbc52eab0ebc315cae3aa44b2a) 2012-02-10 09:37:52 -05:00
Dave Jones 75f90a6e2f bsg: fix sysfs link remove warning (#787281) 2012-02-10 09:26:32 -05:00
Josh Boyer b0d8317b77 Disable debugging options. 2012-02-09 07:43:57 -05:00
Josh Boyer 9befbf0be8 Linux 3.3-rc3 2012-02-09 07:42:49 -05:00
Josh Boyer a9de21e9b4 Remove a bogus inline declaration that broke ARM and ppc builds (rhbz 787373) 2012-02-08 11:28:13 -05:00
Josh Boyer 36def90773 Add new upstream NFS id mapping patches from Steve Dickson 2012-02-08 08:48:02 -05:00
Josh Boyer 7dc73bb9a6 CVE-2011-4086 jbd2: unmapped buffer with _Unwritten or _Delay flags set can lead to DoS (rhbz 788260) 2012-02-08 08:39:32 -05:00
Josh Boyer 5fbbd7cdcd ... and replace him with Beefy Miracle
Props to Ian Weller http://git.fedorahosted.org/git/?p=beefymiracle.git
2012-02-07 19:04:48 -05:00
Josh Boyer 92a0ba45a8 Drop scary cow
We're branched now, so scary cow has done his job for F17.
2012-02-07 19:00:03 -05:00
Josh Boyer d916a9f0bf Linux 3.3-rc2-git6 (upstream 6bd113f1f4a8c0d05c4dbadb300319e0e3526db4) 2012-02-07 18:56:42 -05:00
Chris Wright d12d87cbf7 Enable CONFIG_OPENVSWITCH as part of Fedora supporting Open vSwitch as
a more modern way to provide hypervisor based layer 2/3 switching for VMs.

http://fedoraproject.org/wiki/Features/Open_vSwitch
2012-02-07 18:47:18 -05:00
133 changed files with 9403 additions and 6360 deletions

View File

@ -0,0 +1,83 @@
From b05ceba560e094d27ff716f6df1e2d5ef670d4d3 Mon Sep 17 00:00:00 2001
From: Kent Yoder <key@linux.vnet.ibm.com>
Date: Wed, 27 Feb 2013 15:50:27 -0600
Subject: [PATCH] drivers/crypto/nx: fix init race, alignmasks and GCM bug
Fixes a race on driver init with registering algorithms where the
driver status flag wasn't being set before self testing started.
Added the cra_alignmask field for CBC and ECB modes.
Fixed a bug in GCM where AES block size was being used instead of
authsize.
Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
---
drivers/crypto/nx/nx-aes-cbc.c | 1 +
drivers/crypto/nx/nx-aes-ecb.c | 1 +
drivers/crypto/nx/nx-aes-gcm.c | 2 +-
drivers/crypto/nx/nx.c | 4 ++--
4 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/crypto/nx/nx-aes-cbc.c b/drivers/crypto/nx/nx-aes-cbc.c
index a76d4c4..35d483f 100644
--- a/drivers/crypto/nx/nx-aes-cbc.c
+++ b/drivers/crypto/nx/nx-aes-cbc.c
@@ -126,6 +126,7 @@ struct crypto_alg nx_cbc_aes_alg = {
.cra_blocksize = AES_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct nx_crypto_ctx),
.cra_type = &crypto_blkcipher_type,
+ .cra_alignmask = 0xf,
.cra_module = THIS_MODULE,
.cra_init = nx_crypto_ctx_aes_cbc_init,
.cra_exit = nx_crypto_ctx_exit,
diff --git a/drivers/crypto/nx/nx-aes-ecb.c b/drivers/crypto/nx/nx-aes-ecb.c
index ba5f161..7bbc9a8 100644
--- a/drivers/crypto/nx/nx-aes-ecb.c
+++ b/drivers/crypto/nx/nx-aes-ecb.c
@@ -123,6 +123,7 @@ struct crypto_alg nx_ecb_aes_alg = {
.cra_priority = 300,
.cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER,
.cra_blocksize = AES_BLOCK_SIZE,
+ .cra_alignmask = 0xf,
.cra_ctxsize = sizeof(struct nx_crypto_ctx),
.cra_type = &crypto_blkcipher_type,
.cra_module = THIS_MODULE,
diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c
index c8109ed..6cca6c3 100644
--- a/drivers/crypto/nx/nx-aes-gcm.c
+++ b/drivers/crypto/nx/nx-aes-gcm.c
@@ -219,7 +219,7 @@ static int gcm_aes_nx_crypt(struct aead_request *req, int enc)
if (enc)
NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT;
else
- nbytes -= AES_BLOCK_SIZE;
+ nbytes -= crypto_aead_authsize(crypto_aead_reqtfm(req));
csbcpb->cpb.aes_gcm.bit_length_data = nbytes * 8;
diff --git a/drivers/crypto/nx/nx.c b/drivers/crypto/nx/nx.c
index c767f23..7621d05 100644
--- a/drivers/crypto/nx/nx.c
+++ b/drivers/crypto/nx/nx.c
@@ -454,6 +454,8 @@ static int nx_register_algs(void)
if (rc)
goto out;
+ nx_driver.of.status = NX_OKAY;
+
rc = crypto_register_alg(&nx_ecb_aes_alg);
if (rc)
goto out;
@@ -498,8 +500,6 @@ static int nx_register_algs(void)
if (rc)
goto out_unreg_s512;
- nx_driver.of.status = NX_OKAY;
-
goto out;
out_unreg_s512:
--
1.7.11.7

View File

@ -0,0 +1,55 @@
From d0a934b764c67b4bf626f5b7cf725a6e3066afd2 Mon Sep 17 00:00:00 2001
From: David Herrmann <dh.herrmann@gmail.com>
Date: Mon, 13 May 2013 15:01:30 +0000
Subject: HID: input: return ENODATA if reading battery attrs fails
power_supply core has the bad habit of calling our battery callbacks
from within power_supply_register(). Furthermore, if the callbacks
fail with an unhandled error code, it will skip any uevent that it
might currently process.
So if HID-core registers battery devices, an "add" uevent is generated
and the battery callbacks are called. These will gracefully fail due
to timeouts as they might still hold locks on event processing. One
could argue that this should be fixed in power_supply core, but the
least we can do is to signal ENODATA so power_supply core will just
skip the property and continue with the uevent.
This fixes a bug where "add" and "remove" uevents are skipped for
battery devices. upower is unable to track these devices and currently
needs to ignore them.
This patch also overwrites any other error code. I cannot see any reason
why we should forward protocol- or I/O-errors to the power_supply core.
We handle these errors in hid_ll_driver later, anyway, so just skip
them. power_supply core cannot do anything useful with them, anyway,
and we avoid skipping important uevents and confusing user-space.
Thanks a lot to Daniel Nicoletti for pushing and investigating
on this.
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Anton Vorontsov <cbou@mail.ru>
Cc: David Woodhouse <dwmw2@infradead.org>
Reported-by: Daniel Nicoletti <dantti12@gmail.com>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 945b815..c526a3c 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -354,10 +354,10 @@ static int hidinput_get_battery_property(struct power_supply *psy,
dev->battery_report_type);
if (ret != 2) {
- if (ret >= 0)
- ret = -EINVAL;
+ ret = -ENODATA;
break;
}
+ ret = 0;
if (dev->battery_min < dev->battery_max &&
buf[1] >= dev->battery_min &&
--
cgit v0.9.2

View File

@ -0,0 +1,98 @@
From 3685c18e17f12438d0a83331c1b6a5b00fade7a1 Mon Sep 17 00:00:00 2001
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date: Tue, 02 Jul 2013 16:10:09 +0000
Subject: HID: kye: Add report fixup for Genius Gila Gaming mouse
Genius Gila Gaming Mouse presents an obviously wrong report descriptor.
the Consumer control (report ID 3) is the following:
0x05, 0x0c, // Usage Page (Consumer Devices) 105
0x09, 0x01, // Usage (Consumer Control) 107
0xa1, 0x01, // Collection (Application) 109
0x85, 0x03, // Report ID (3) 111
0x19, 0x00, // Usage Minimum (0) 113
0x2a, 0xff, 0x7f, // Usage Maximum (32767) 115
0x15, 0x00, // Logical Minimum (0) 118
0x26, 0xff, 0x7f, // Logical Maximum (32767) 120
0x75, 0x10, // Report Size (16) 123
0x95, 0x03, // Report Count (3) 125
0x81, 0x00, // Input (Data,Arr,Abs) 127
0x75, 0x08, // Report Size (8) 129
0x95, 0x01, // Report Count (1) 131
0x81, 0x01, // Input (Cnst,Arr,Abs) 133
0xc0, // End Collection 135
So the first input whithin this report has a count of 3 but a usage range
of 32768. So this value is obviously wrong as it should not be greater than
the report count.
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=959721
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8f616bd..27aa7c7 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1589,6 +1589,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KENSINGTON, USB_DEVICE_ID_KS_SLIMBLADE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KEYTOUCH, USB_DEVICE_ID_KEYTOUCH_IEC) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_ERGO_525V) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_I405X) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_MOUSEPEN_I608X) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 3da75dd..b2b692e 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -474,6 +474,7 @@
#define USB_VENDOR_ID_KYE 0x0458
#define USB_DEVICE_ID_KYE_ERGO_525V 0x0087
+#define USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE 0x0138
#define USB_DEVICE_ID_KYE_GPEN_560 0x5003
#define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010
#define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011
diff --git a/drivers/hid/hid-kye.c b/drivers/hid/hid-kye.c
index 6af90db..1e2ee2aa 100644
--- a/drivers/hid/hid-kye.c
+++ b/drivers/hid/hid-kye.c
@@ -314,6 +314,25 @@ static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc,
*rsize = sizeof(easypen_m610x_rdesc_fixed);
}
break;
+ case USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE:
+ /*
+ * the fixup that need to be done:
+ * - change Usage Maximum in the Comsumer Control
+ * (report ID 3) to a reasonable value
+ */
+ if (*rsize >= 135 &&
+ /* Usage Page (Consumer Devices) */
+ rdesc[104] == 0x05 && rdesc[105] == 0x0c &&
+ /* Usage (Consumer Control) */
+ rdesc[106] == 0x09 && rdesc[107] == 0x01 &&
+ /* Usage Maximum > 12287 */
+ rdesc[114] == 0x2a && rdesc[116] > 0x2f) {
+ hid_info(hdev,
+ "fixing up Genius Gila Gaming Mouse "
+ "report descriptor\n");
+ rdesc[116] = 0x2f;
+ }
+ break;
}
return rdesc;
}
@@ -407,6 +426,8 @@ static const struct hid_device_id kye_devices[] = {
USB_DEVICE_ID_KYE_MOUSEPEN_I608X) },
{ HID_USB_DEVICE(USB_VENDOR_ID_KYE,
USB_DEVICE_ID_KYE_EASYPEN_M610X) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE,
+ USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) },
{ }
};
MODULE_DEVICE_TABLE(hid, kye_devices);
--
cgit v0.9.2

View File

@ -1,78 +0,0 @@
From 0769c5de24621141c953fbe1f943582d37cb4244 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf@tu-ilmenau.de>
Date: Thu, 12 Jan 2012 16:43:03 +0100
Subject: [PATCH 1/2] KVM: x86: extend "struct x86_emulate_ops" with
"get_cpuid"
In order to be able to proceed checks on CPU-specific properties
within the emulator, function "get_cpuid" is introduced.
With "get_cpuid" it is possible to virtually call the guests
"cpuid"-opcode without changing the VM's context.
[mtosatti: cleanup/beautify code]
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
arch/x86/include/asm/kvm_emulate.h | 3 +++
arch/x86/kvm/x86.c | 23 +++++++++++++++++++++++
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
index ab4092e..c8b2868 100644
--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -190,6 +190,9 @@ struct x86_emulate_ops {
int (*intercept)(struct x86_emulate_ctxt *ctxt,
struct x86_instruction_info *info,
enum x86_intercept_stage stage);
+
+ bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt,
+ u32 *eax, u32 *ebx, u32 *ecx, u32 *edx);
};
typedef u32 __attribute__((vector_size(16))) sse128_t;
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index f0fa3fb..c95ca2d 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4205,6 +4205,28 @@ static int emulator_intercept(struct x86_emulate_ctxt *ctxt,
return kvm_x86_ops->check_intercept(emul_to_vcpu(ctxt), info, stage);
}
+static bool emulator_get_cpuid(struct x86_emulate_ctxt *ctxt,
+ u32 *eax, u32 *ebx, u32 *ecx, u32 *edx)
+{
+ struct kvm_cpuid_entry2 *cpuid = NULL;
+
+ if (eax && ecx)
+ cpuid = kvm_find_cpuid_entry(emul_to_vcpu(ctxt),
+ *eax, *ecx);
+
+ if (cpuid) {
+ *eax = cpuid->eax;
+ *ecx = cpuid->ecx;
+ if (ebx)
+ *ebx = cpuid->ebx;
+ if (edx)
+ *edx = cpuid->edx;
+ return true;
+ }
+
+ return false;
+}
+
static struct x86_emulate_ops emulate_ops = {
.read_std = kvm_read_guest_virt_system,
.write_std = kvm_write_guest_virt_system,
@@ -4236,6 +4258,7 @@ static struct x86_emulate_ops emulate_ops = {
.get_fpu = emulator_get_fpu,
.put_fpu = emulator_put_fpu,
.intercept = emulator_intercept,
+ .get_cpuid = emulator_get_cpuid,
};
static void cache_all_regs(struct kvm_vcpu *vcpu)
--
1.7.7.5

View File

@ -1,144 +0,0 @@
From e28ba7bb020f07193bc000453c8775e9d2c0dda7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf@tu-ilmenau.de>
Date: Thu, 12 Jan 2012 16:43:04 +0100
Subject: [PATCH 2/2] KVM: x86: fix missing checks in syscall emulation
On hosts without this patch, 32bit guests will crash (and 64bit guests
may behave in a wrong way) for example by simply executing following
nasm-demo-application:
[bits 32]
global _start
SECTION .text
_start: syscall
(I tested it with winxp and linux - both always crashed)
Disassembly of section .text:
00000000 <_start>:
0: 0f 05 syscall
The reason seems a missing "invalid opcode"-trap (int6) for the
syscall opcode "0f05", which is not available on Intel CPUs
within non-longmodes, as also on some AMD CPUs within legacy-mode.
(depending on CPU vendor, MSR_EFER and cpuid)
Because previous mentioned OSs may not engage corresponding
syscall target-registers (STAR, LSTAR, CSTAR), they remain
NULL and (non trapping) syscalls are leading to multiple
faults and finally crashs.
Depending on the architecture (AMD or Intel) pretended by
guests, various checks according to vendor's documentation
are implemented to overcome the current issue and behave
like the CPUs physical counterparts.
[mtosatti: cleanup/beautify code]
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
arch/x86/include/asm/kvm_emulate.h | 13 +++++++++
arch/x86/kvm/emulate.c | 51 ++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
index c8b2868..7b9cfc4 100644
--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -301,6 +301,19 @@ struct x86_emulate_ctxt {
#define X86EMUL_MODE_PROT (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \
X86EMUL_MODE_PROT64)
+/* CPUID vendors */
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_edx 0x69746e65
+
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx 0x69444d41
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx 0x21726574
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_edx 0x74656273
+
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ebx 0x756e6547
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ecx 0x6c65746e
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_edx 0x49656e69
+
enum x86_intercept_stage {
X86_ICTP_NONE = 0, /* Allow zero-init to not match anything */
X86_ICPT_PRE_EXCEPT,
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 05a562b..0982507 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -1891,6 +1891,51 @@ setup_syscalls_segments(struct x86_emulate_ctxt *ctxt,
ss->p = 1;
}
+static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt)
+{
+ struct x86_emulate_ops *ops = ctxt->ops;
+ u32 eax, ebx, ecx, edx;
+
+ /*
+ * syscall should always be enabled in longmode - so only become
+ * vendor specific (cpuid) if other modes are active...
+ */
+ if (ctxt->mode == X86EMUL_MODE_PROT64)
+ return true;
+
+ eax = 0x00000000;
+ ecx = 0x00000000;
+ if (ops->get_cpuid(ctxt, &eax, &ebx, &ecx, &edx)) {
+ /*
+ * Intel ("GenuineIntel")
+ * remark: Intel CPUs only support "syscall" in 64bit
+ * longmode. Also an 64bit guest with a
+ * 32bit compat-app running will #UD !! While this
+ * behaviour can be fixed (by emulating) into AMD
+ * response - CPUs of AMD can't behave like Intel.
+ */
+ if (ebx == X86EMUL_CPUID_VENDOR_GenuineIntel_ebx &&
+ ecx == X86EMUL_CPUID_VENDOR_GenuineIntel_ecx &&
+ edx == X86EMUL_CPUID_VENDOR_GenuineIntel_edx)
+ return false;
+
+ /* AMD ("AuthenticAMD") */
+ if (ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx &&
+ ecx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx &&
+ edx == X86EMUL_CPUID_VENDOR_AuthenticAMD_edx)
+ return true;
+
+ /* AMD ("AMDisbetter!") */
+ if (ebx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx &&
+ ecx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx &&
+ edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx)
+ return true;
+ }
+
+ /* default: (not Intel, not AMD), apply Intel's stricter rules... */
+ return false;
+}
+
static int em_syscall(struct x86_emulate_ctxt *ctxt)
{
struct x86_emulate_ops *ops = ctxt->ops;
@@ -1904,9 +1949,15 @@ static int em_syscall(struct x86_emulate_ctxt *ctxt)
ctxt->mode == X86EMUL_MODE_VM86)
return emulate_ud(ctxt);
+ if (!(em_syscall_is_enabled(ctxt)))
+ return emulate_ud(ctxt);
+
ops->get_msr(ctxt, MSR_EFER, &efer);
setup_syscalls_segments(ctxt, &cs, &ss);
+ if (!(efer & EFER_SCE))
+ return emulate_ud(ctxt);
+
ops->get_msr(ctxt, MSR_STAR, &msr_data);
msr_data >>= 32;
cs_sel = (u16)(msr_data & 0xfffc);
--
1.7.7.5

View File

@ -0,0 +1,45 @@
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 094b5d9..64a4b03 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1194,20 +1194,37 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, struct msr_data *msr)
elapsed = ns - kvm->arch.last_tsc_nsec;
if (vcpu->arch.virtual_tsc_khz) {
+ int faulted = 0;
+
/* n.b - signed multiplication and division required */
usdiff = data - kvm->arch.last_tsc_write;
#ifdef CONFIG_X86_64
usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz;
#else
/* do_div() only does unsigned */
- asm("idivl %2; xor %%edx, %%edx"
- : "=A"(usdiff)
- : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz));
+ asm("1: idivl %[divisor]\n"
+ "2: xor %%edx, %%edx\n"
+ " movl $0, %[faulted]\n"
+ "3:\n"
+ ".section .fixup,\"ax\"\n"
+ "4: movl $1, %[faulted]\n"
+ " jmp 3b\n"
+ ".previous\n"
+
+ _ASM_EXTABLE(1b, 4b)
+
+ : "=A"(usdiff), [faulted] "=r" (faulted)
+ : "A"(usdiff * 1000), [divisor] "rm"(vcpu->arch.virtual_tsc_khz));
+
#endif
do_div(elapsed, 1000);
usdiff -= elapsed;
if (usdiff < 0)
usdiff = -usdiff;
+
+ /* idivl overflow => difference is larger than USEC_PER_SEC */
+ if (faulted)
+ usdiff = USEC_PER_SEC;
} else
usdiff = USEC_PER_SEC; /* disable TSC match window below */

View File

@ -100,7 +100,7 @@ debug:
@perl -pi -e 's/# CONFIG_MAXSMP is not set/CONFIG_MAXSMP=y/' config-x86-generic
# Try out UAS in rawhide builds.
@# Try out UAS in rawhide builds.
@perl -pi -e 's/# CONFIG_USB_UAS is not set/CONFIG_USB_UAS=m/' config-generic
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec

View File

@ -9,16 +9,13 @@ CONFIGFILES = \
$(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config \
$(CFG)-x86_64.config $(CFG)-x86_64-debug.config \
$(CFG)-s390x.config \
$(CFG)-arm.config $(CFG)-armv5tel.config $(CFG)-armv7hl.config \
$(CFG)-armv5tel-kirkwood.config $(CFG)-armv7l-imx.config \
$(CFG)-armv7l-omap.config $(CFG)-armv7l-tegra.config \
$(CFG)-armv7hl-imx.config $(CFG)-armv7hl-highbank.config \
$(CFG)-armv7hl-omap.config $(CFG)-armv7hl-tegra.config \
$(CFG)-armv5tel-kirkwood.config \
$(CFG)-armv7l.config $(CFG)-armv7hl.config \
$(CFG)-armv7l-tegra.config $(CFG)-armv7hl-tegra.config \
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
$(CFG)-sparc64.config \
$(CFG)-ppc64.config $(CFG)-ppc64-debug.config
$(CFG)-ppc64.config $(CFG)-ppc64-debug.config
PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x sparc64
PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x arm
TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
configs: $(CONFIGFILES)
@ -36,24 +33,21 @@ temp-generic: config-generic
temp-debug-generic: config-generic
cat config-generic config-debug > temp-debug-generic
temp-armv7-generic: config-armv7-generic temp-generic
perl merge.pl $^ > $@
temp-armv7: config-armv7 temp-armv7-generic
perl merge.pl $^ > $@
temp-armv7-tegra: config-armv7-tegra temp-armv7-generic
perl merge.pl $^ > $@
temp-arm-generic: config-arm-generic temp-generic
perl merge.pl $^ > $@
temp-armv7l-omap-generic: config-arm-omap-generic temp-arm-generic
perl merge.pl $^ > $@
temp-armv7l-tegra: config-arm-tegra temp-arm-generic
perl merge.pl $^ > $@
temp-armv5tel-kirkwood: config-arm-kirkwood temp-arm-generic
perl merge.pl $^ > $@
temp-armv7l-imx: config-arm-imx temp-arm-generic
perl merge.pl $^ > $@
temp-armv7l-highbank: config-arm-highbank temp-arm-generic
perl merge.pl $^ > $@
temp-x86-32: config-x86-32-generic config-x86-generic
perl merge.pl $^ > $@
@ -72,9 +66,6 @@ temp-x86_64-generic: temp-x86-64 temp-generic
temp-x86_64-debug-generic: temp-x86-64 temp-debug-generic
perl merge.pl $^ > $@
temp-sparc64-generic: config-sparc64-generic temp-generic
perl merge.pl $^ > $@
temp-powerpc-generic: config-powerpc-generic temp-generic
perl merge.pl $^ > $@
@ -105,9 +96,6 @@ kernel-$(VERSION)-x86_64.config: /dev/null temp-x86_64-generic
kernel-$(VERSION)-x86_64-debug.config: /dev/null temp-x86_64-debug-generic
perl merge.pl $^ x86_64 > $@
kernel-$(VERSION)-sparc64.config: /dev/null temp-sparc64-generic
perl merge.pl $^ sparc64 > $@
kernel-$(VERSION)-ppc64.config: config-powerpc64 temp-powerpc-generic
perl merge.pl $^ powerpc > $@
@ -117,40 +105,19 @@ kernel-$(VERSION)-ppc64-debug.config: config-powerpc64 temp-powerpc-debug-generi
kernel-$(VERSION)-s390x.config: config-s390x temp-s390-generic
perl merge.pl $^ s390 > $@
kernel-$(VERSION)-arm.config: /dev/null temp-arm-generic
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv5tel.config: /dev/null temp-arm-generic
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7hl.config: /dev/null temp-arm-generic
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv5tel-kirkwood.config: /dev/null temp-armv5tel-kirkwood
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7l-imx.config: /dev/null temp-armv7l-imx
kernel-$(VERSION)-armv7l.config: /dev/null temp-armv7
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7l-highbank.config: /dev/null temp-armv7l-highbank
kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7-tegra
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7l-omap.config: /dev/null temp-armv7l-omap-generic
kernel-$(VERSION)-armv7hl.config: /dev/null temp-armv7
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7l-tegra
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7hl-imx.config: /dev/null temp-armv7l-imx
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7hl-highbank.config: /dev/null temp-armv7l-highbank
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7hl-omap.config: /dev/null temp-armv7l-omap-generic
perl merge.pl $^ arm > $@
kernel-$(VERSION)-armv7hl-tegra.config: /dev/null temp-armv7l-tegra
kernel-$(VERSION)-armv7hl-tegra.config: /dev/null temp-armv7-tegra
perl merge.pl $^ arm > $@
kernel-$(VERSION)-ppc.config: /dev/null temp-powerpc32-generic

View File

@ -0,0 +1,153 @@
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Currently, we will correctly optimise away a truncate that doesn't
change the file size. However, in the case of open(O_TRUNC), we
also want to optimise away the time changes.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
fs/nfs/dir.c | 25 +++++++++++++++++++------
fs/nfs/inode.c | 4 ++--
fs/nfs/nfs4proc.c | 10 +++++++---
3 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index fd9a872..bb132a8 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1429,6 +1429,7 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry
}
open_flags = nd->intent.open.flags;
+ attr.ia_valid = 0;
ctx = create_nfs_open_context(dentry, open_flags);
res = ERR_CAST(ctx);
@@ -1437,11 +1438,14 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry
if (nd->flags & LOOKUP_CREATE) {
attr.ia_mode = nd->intent.open.create_mode;
- attr.ia_valid = ATTR_MODE;
+ attr.ia_valid |= ATTR_MODE;
attr.ia_mode &= ~current_umask();
- } else {
+ } else
open_flags &= ~(O_EXCL | O_CREAT);
- attr.ia_valid = 0;
+
+ if (open_flags & O_TRUNC) {
+ attr.ia_valid |= ATTR_SIZE;
+ attr.ia_size = 0;
}
/* Open the file on the server */
@@ -1495,6 +1499,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
struct inode *inode;
struct inode *dir;
struct nfs_open_context *ctx;
+ struct iattr attr;
int openflags, ret = 0;
if (nd->flags & LOOKUP_RCU)
@@ -1523,19 +1528,27 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
/* We cannot do exclusive creation on a positive dentry */
if ((openflags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL))
goto no_open_dput;
- /* We can't create new files, or truncate existing ones here */
- openflags &= ~(O_CREAT|O_EXCL|O_TRUNC);
+ /* We can't create new files here */
+ openflags &= ~(O_CREAT|O_EXCL);
ctx = create_nfs_open_context(dentry, openflags);
ret = PTR_ERR(ctx);
if (IS_ERR(ctx))
goto out;
+
+ attr.ia_valid = 0;
+ if (openflags & O_TRUNC) {
+ attr.ia_valid |= ATTR_SIZE;
+ attr.ia_size = 0;
+ nfs_wb_all(inode);
+ }
+
/*
* Note: we're not holding inode->i_mutex and so may be racing with
* operations that change the directory. We therefore save the
* change attribute *before* we do the RPC call.
*/
- inode = NFS_PROTO(dir)->open_context(dir, ctx, openflags, NULL);
+ inode = NFS_PROTO(dir)->open_context(dir, ctx, openflags, &attr);
if (IS_ERR(inode)) {
ret = PTR_ERR(inode);
switch (ret) {
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index f649fba..57d0abb 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -401,7 +401,7 @@ out_no_inode:
goto out;
}
-#define NFS_VALID_ATTRS (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_SIZE|ATTR_ATIME|ATTR_ATIME_SET|ATTR_MTIME|ATTR_MTIME_SET|ATTR_FILE)
+#define NFS_VALID_ATTRS (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_SIZE|ATTR_ATIME|ATTR_ATIME_SET|ATTR_MTIME|ATTR_MTIME_SET|ATTR_FILE|ATTR_OPEN)
int
nfs_setattr(struct dentry *dentry, struct iattr *attr)
@@ -423,7 +423,7 @@ nfs_setattr(struct dentry *dentry, struct iattr *attr)
/* Optimization: if the end result is no change, don't RPC */
attr->ia_valid &= NFS_VALID_ATTRS;
- if ((attr->ia_valid & ~ATTR_FILE) == 0)
+ if ((attr->ia_valid & ~(ATTR_FILE|ATTR_OPEN)) == 0)
return 0;
/* Write all dirty data */
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 1515e45..c4c6b48 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -833,7 +833,7 @@ static struct nfs4_opendata *nfs4_opendata_alloc(struct dentry *dentry,
p->o_arg.bitmask = server->attr_bitmask;
p->o_arg.dir_bitmask = server->cache_consistency_bitmask;
p->o_arg.claim = NFS4_OPEN_CLAIM_NULL;
- if (flags & O_CREAT) {
+ if (attrs != NULL && attrs->ia_valid != 0) {
u32 *s;
p->o_arg.u.attrs = &p->attrs;
@@ -890,7 +890,7 @@ static int can_open_cached(struct nfs4_state *state, fmode_t mode, int open_mode
{
int ret = 0;
- if (open_mode & O_EXCL)
+ if (open_mode & (O_EXCL|O_TRUNC))
goto out;
switch (mode & (FMODE_READ|FMODE_WRITE)) {
case FMODE_READ:
@@ -1038,7 +1038,7 @@ static struct nfs4_state *nfs4_try_open_cached(struct nfs4_opendata *opendata)
struct nfs4_state *state = opendata->state;
struct nfs_inode *nfsi = NFS_I(state->inode);
struct nfs_delegation *delegation;
- int open_mode = opendata->o_arg.open_flags & O_EXCL;
+ int open_mode = opendata->o_arg.open_flags & (O_EXCL|O_TRUNC);
fmode_t fmode = opendata->o_arg.fmode;
nfs4_stateid stateid;
int ret = -EAGAIN;
@@ -2439,6 +2439,10 @@ nfs4_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
}
}
+ /* Deal with open(O_TRUNC) */
+ if (sattr->ia_valid & ATTR_OPEN)
+ sattr->ia_valid &= ~(ATTR_MTIME|ATTR_CTIME|ATTR_OPEN);
+
status = nfs4_do_setattr(inode, cred, fattr, sattr, state);
if (status == 0)
nfs_setattr_update_inode(inode, sattr);
--
1.7.7.6
_______________________________________________
kernel mailing list
kernel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel

View File

@ -0,0 +1,109 @@
diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c
--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-03-14 13:08:37.462928792 -0400
+++ linux-3.2.noarch/fs/nfs/idmap.c 2012-03-14 13:10:17.076030982 -0400
@@ -365,7 +365,7 @@ struct idmap_hashent {
struct idmap_hashtable {
__u8 h_type;
- struct idmap_hashent h_entries[IDMAP_HASH_SZ];
+ struct idmap_hashent *h_entries;
};
struct idmap {
@@ -420,20 +420,39 @@ nfs_idmap_new(struct nfs_client *clp)
return 0;
}
+static void
+idmap_alloc_hashtable(struct idmap_hashtable *h)
+{
+ if (h->h_entries != NULL)
+ return;
+ h->h_entries = kcalloc(IDMAP_HASH_SZ,
+ sizeof(*h->h_entries),
+ GFP_KERNEL);
+}
+
+static void
+idmap_free_hashtable(struct idmap_hashtable *h)
+{
+ int i;
+
+ if (h->h_entries == NULL)
+ return;
+ for (i = 0; i < IDMAP_HASH_SZ; i++)
+ kfree(h->h_entries[i].ih_name);
+ kfree(h->h_entries);
+}
+
void
nfs_idmap_delete(struct nfs_client *clp)
{
struct idmap *idmap = clp->cl_idmap;
- int i;
if (!idmap)
return;
rpc_unlink(idmap->idmap_dentry);
clp->cl_idmap = NULL;
- for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++)
- kfree(idmap->idmap_user_hash.h_entries[i].ih_name);
- for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++)
- kfree(idmap->idmap_group_hash.h_entries[i].ih_name);
+ idmap_free_hashtable(&idmap->idmap_user_hash);
+ idmap_free_hashtable(&idmap->idmap_group_hash);
kfree(idmap);
}
@@ -443,6 +462,8 @@ nfs_idmap_delete(struct nfs_client *clp)
static inline struct idmap_hashent *
idmap_name_hash(struct idmap_hashtable* h, const char *name, size_t len)
{
+ if (h->h_entries == NULL)
+ return NULL;
return &h->h_entries[fnvhash32(name, len) % IDMAP_HASH_SZ];
}
@@ -451,6 +472,8 @@ idmap_lookup_name(struct idmap_hashtable
{
struct idmap_hashent *he = idmap_name_hash(h, name, len);
+ if (he == NULL)
+ return NULL;
if (he->ih_namelen != len || memcmp(he->ih_name, name, len) != 0)
return NULL;
if (time_after(jiffies, he->ih_expires))
@@ -461,6 +484,8 @@ idmap_lookup_name(struct idmap_hashtable
static inline struct idmap_hashent *
idmap_id_hash(struct idmap_hashtable* h, __u32 id)
{
+ if (h->h_entries == NULL)
+ return NULL;
return &h->h_entries[fnvhash32(&id, sizeof(id)) % IDMAP_HASH_SZ];
}
@@ -468,6 +493,9 @@ static struct idmap_hashent *
idmap_lookup_id(struct idmap_hashtable *h, __u32 id)
{
struct idmap_hashent *he = idmap_id_hash(h, id);
+
+ if (he == NULL)
+ return NULL;
if (he->ih_id != id || he->ih_namelen == 0)
return NULL;
if (time_after(jiffies, he->ih_expires))
@@ -483,12 +511,14 @@ idmap_lookup_id(struct idmap_hashtable *
static inline struct idmap_hashent *
idmap_alloc_name(struct idmap_hashtable *h, char *name, size_t len)
{
+ idmap_alloc_hashtable(h);
return idmap_name_hash(h, name, len);
}
static inline struct idmap_hashent *
idmap_alloc_id(struct idmap_hashtable *h, __u32 id)
{
+ idmap_alloc_hashtable(h);
return idmap_id_hash(h, id);
}

View File

@ -0,0 +1,51 @@
From 14977489ffdb80d4caf5a184ba41b23b02fbacd9 Mon Sep 17 00:00:00 2001
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Tue, 27 Mar 2012 18:31:25 -0400
Subject: [PATCH] NFSv4: Minor cleanups for nfs4_handle_exception and
nfs4_async_handle_error
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
fs/nfs/nfs4proc.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 1933e67..f82bde0 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -270,7 +270,7 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
case 0:
return 0;
case -NFS4ERR_OPENMODE:
- if (nfs_have_delegation(inode, FMODE_READ)) {
+ if (inode && nfs_have_delegation(inode, FMODE_READ)) {
nfs_inode_return_delegation(inode);
exception->retry = 1;
return 0;
@@ -282,10 +282,9 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
case -NFS4ERR_DELEG_REVOKED:
case -NFS4ERR_ADMIN_REVOKED:
case -NFS4ERR_BAD_STATEID:
- if (state != NULL)
- nfs_remove_bad_delegation(state->inode);
if (state == NULL)
break;
+ nfs_remove_bad_delegation(state->inode);
nfs4_schedule_stateid_recovery(server, state);
goto wait_on_recovery;
case -NFS4ERR_EXPIRED:
@@ -3825,8 +3824,9 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server,
case -NFS4ERR_DELEG_REVOKED:
case -NFS4ERR_ADMIN_REVOKED:
case -NFS4ERR_BAD_STATEID:
- if (state != NULL)
- nfs_remove_bad_delegation(state->inode);
+ if (state == NULL)
+ break;
+ nfs_remove_bad_delegation(state->inode);
case -NFS4ERR_OPENMODE:
if (state == NULL)
break;
--
1.7.7.6

View File

@ -0,0 +1,37 @@
From 34d91cfbc163c6e2a136a27c96918fc35de06341 Mon Sep 17 00:00:00 2001
From: William Dauchy <wdauchy@gmail.com>
Date: Wed, 14 Mar 2012 12:32:04 +0100
Subject: [PATCH] NFSv4: Rate limit the state manager for lock reclaim warning
messages
Adding rate limit on `Lock reclaim failed` messages since it could fill
up system logs
Signed-off-by: William Dauchy <wdauchy@gmail.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Conflicts:
fs/nfs/nfs4state.c
---
fs/nfs/nfs4state.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index bacb271..3676b5c 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1247,8 +1247,9 @@ restart:
spin_lock(&state->state_lock);
list_for_each_entry(lock, &state->lock_states, ls_locks) {
if (!(lock->ls_flags & NFS_LOCK_INITIALIZED))
- printk("%s: Lock reclaim failed!\n",
- __func__);
+ pr_warn_ratelimited("NFS: "
+ "%s: Lock reclaim "
+ "failed!\n", __func__);
}
spin_unlock(&state->state_lock);
nfs4_put_open_state(state);
--
1.7.7.6

View File

@ -0,0 +1,46 @@
diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c
--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-02-07 07:12:52.585471833 -0500
+++ linux-3.2.noarch/fs/nfs/idmap.c 2012-03-14 13:08:37.462928792 -0400
@@ -360,7 +360,7 @@ struct idmap_hashent {
unsigned long ih_expires;
__u32 ih_id;
size_t ih_namelen;
- char ih_name[IDMAP_NAMESZ];
+ const char *ih_name;
};
struct idmap_hashtable {
@@ -424,11 +424,16 @@ void
nfs_idmap_delete(struct nfs_client *clp)
{
struct idmap *idmap = clp->cl_idmap;
+ int i;
if (!idmap)
return;
rpc_unlink(idmap->idmap_dentry);
clp->cl_idmap = NULL;
+ for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++)
+ kfree(idmap->idmap_user_hash.h_entries[i].ih_name);
+ for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++)
+ kfree(idmap->idmap_group_hash.h_entries[i].ih_name);
kfree(idmap);
}
@@ -491,9 +496,14 @@ static void
idmap_update_entry(struct idmap_hashent *he, const char *name,
size_t namelen, __u32 id)
{
+ char *str = kmalloc(namelen + 1, GFP_KERNEL);
+ if (str == NULL)
+ return;
+ kfree(he->ih_name);
he->ih_id = id;
- memcpy(he->ih_name, name, namelen);
- he->ih_name[namelen] = '\0';
+ memcpy(str, name, namelen);
+ str[namelen] = '\0';
+ he->ih_name = str;
he->ih_namelen = namelen;
he->ih_expires = jiffies + nfs_idmap_cache_timeout;
}

View File

@ -0,0 +1,69 @@
From: Trond Myklebust <Trond.Myklebust@netapp.com>
If the file wasn't opened for writing, then truncate and ftruncate
need to report the appropriate errors.
Reported-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
---
fs/nfs/dir.c | 4 ++--
fs/nfs/nfs4proc.c | 15 ++++++++++++---
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index bb132a8..51a2686 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1429,7 +1429,7 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry
}
open_flags = nd->intent.open.flags;
- attr.ia_valid = 0;
+ attr.ia_valid = ATTR_OPEN;
ctx = create_nfs_open_context(dentry, open_flags);
res = ERR_CAST(ctx);
@@ -1536,7 +1536,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
if (IS_ERR(ctx))
goto out;
- attr.ia_valid = 0;
+ attr.ia_valid = ATTR_OPEN;
if (openflags & O_TRUNC) {
attr.ia_valid |= ATTR_SIZE;
attr.ia_size = 0;
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index c4c6b48..e2a2893 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1921,10 +1921,19 @@ static int nfs4_do_setattr(struct inode *inode, struct rpc_cred *cred,
};
int err;
do {
- err = nfs4_handle_exception(server,
- _nfs4_do_setattr(inode, cred, fattr, sattr, state),
- &exception);
+ err = _nfs4_do_setattr(inode, cred, fattr, sattr, state);
+ switch (err) {
+ case -NFS4ERR_OPENMODE:
+ if (state && !(state->state & FMODE_WRITE)) {
+ err = -EBADF;
+ if (sattr->ia_valid & ATTR_OPEN)
+ err = -EACCES;
+ goto out;
+ }
+ }
+ err = nfs4_handle_exception(server, err, &exception);
} while (exception.retry);
+out:
return err;
}
--
1.7.7.6
_______________________________________________
kernel mailing list
kernel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/kernel

1
TODO
View File

@ -1,5 +1,6 @@
Config TODOs:
* review & disable a bunch of the I2C, RTC, DVB, SOUND options.
* Re-enable CONFIG_RELOCATABLE for 32bit builds with 3.4
Spec file TODOs:

View File

@ -0,0 +1,58 @@
@@ -, +, @@
VMX: x86: handle host TSC calibration failure
If the host TSC calibration fails, tsc_khz is zero (see tsc_init.c).
Handle such case properly in KVM (instead of dividing by zero).
https://bugzilla.redhat.com/show_bug.cgi?id=859282
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
--- a/arch/x86/kvm/x86.c
+++ a/arch/x86/kvm/x86.c
@@ -1079,6 +1079,10 @@ static void kvm_set_tsc_khz(struct kvm_vcpu *vcpu, u32 this_tsc_khz)
u32 thresh_lo, thresh_hi;
int use_scaling = 0;
+ /* tsc_khz can be zero if TSC calibration fails */
+ if (this_tsc_khz == 0)
+ return;
+
/* Compute a scale to convert nanoseconds in TSC cycles */
kvm_get_time_scale(this_tsc_khz, NSEC_PER_SEC / 1000,
&vcpu->arch.virtual_tsc_shift,
@@ -1156,20 +1160,23 @@ void kvm_write_tsc(struct kvm_vcpu *vcpu, struct msr_data *msr)
ns = get_kernel_ns();
elapsed = ns - kvm->arch.last_tsc_nsec;
- /* n.b - signed multiplication and division required */
- usdiff = data - kvm->arch.last_tsc_write;
+ if (vcpu->arch.virtual_tsc_khz) {
+ /* n.b - signed multiplication and division required */
+ usdiff = data - kvm->arch.last_tsc_write;
#ifdef CONFIG_X86_64
- usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz;
+ usdiff = (usdiff * 1000) / vcpu->arch.virtual_tsc_khz;
#else
- /* do_div() only does unsigned */
- asm("idivl %2; xor %%edx, %%edx"
- : "=A"(usdiff)
- : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz));
+ /* do_div() only does unsigned */
+ asm("idivl %2; xor %%edx, %%edx"
+ : "=A"(usdiff)
+ : "A"(usdiff * 1000), "rm"(vcpu->arch.virtual_tsc_khz));
#endif
- do_div(elapsed, 1000);
- usdiff -= elapsed;
- if (usdiff < 0)
- usdiff = -usdiff;
+ do_div(elapsed, 1000);
+ usdiff -= elapsed;
+ if (usdiff < 0)
+ usdiff = -usdiff;
+ } else
+ usdiff = USEC_PER_SEC; /* disable TSC match window below */
/*
* Special case: TSC write with a small delta (1 second) of virtual

View File

@ -0,0 +1,25 @@
--- linux-2.6.34.noarch/include/acpi/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400
+++ linux-2.6.34.noarch/include/acpi/acconfig.h 2010-07-01 14:49:17.000000000 -0400
@@ -117,7 +117,7 @@
/* Maximum number of While() loop iterations before forced abort */
-#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
+#define ACPI_MAX_LOOP_ITERATIONS 0xFFFFFF
/* Maximum sleep allowed via Sleep() operator */
--- a/drivers/acpi/acpica/dscontrol.c
+++ b/drivers/acpi/acpica/dscontrol.c
@@ -212,6 +212,11 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,
* loop does not implement a timeout.
*/
control_state->control.loop_count++;
+ if ((control_state->control.loop_count > 1) &&
+ (control_state->control.loop_count % 0xffff == 0))
+ printk("ACPI: While loop taking a really long time. loop_count=0x%x\n",
+ control_state->control.loop_count);
+
if (control_state->control.loop_count >
ACPI_MAX_LOOP_ITERATIONS) {
status = AE_AML_INFINITE_LOOP;

View File

@ -1,146 +0,0 @@
From 9a056a5843ff83db987d6e18625f4a2ee64b5450 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg@redhat.com>
Date: Tue, 30 Aug 2011 10:07:24 -0400
Subject: [PATCH] ACPI: Ensure thermal limits match CPU frequencies
The ACPI thermal management code supports slowing down a CPU when it's
overheating. Right now that's done by choosing to run it at 100%, 75%, 50%
or 25% of full speed. However, most CPUs do not allow an arbitrary
frequency to be set and so will run at the first frequency below that value.
This doesn't match the intent of the specification, which is to drop the
frequency state by state until the temperature stabalises. Fix this up
so it uses actual frequencies rather than percentages.
Reported by: Gene Snider <snider6982@comcast.net>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
drivers/acpi/Kconfig | 1 +
drivers/acpi/processor_thermal.c | 45 +++++++++++++++++++++----------------
2 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index de0e3df..7d1bdb5 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -185,6 +185,7 @@ config ACPI_PROCESSOR
tristate "Processor"
select THERMAL
select CPU_IDLE
+ select CPU_FREQ_TABLE
default y
help
This driver installs ACPI as the idle handler for Linux and uses
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
index 870550d..1c4eb60 100644
--- a/drivers/acpi/processor_thermal.c
+++ b/drivers/acpi/processor_thermal.c
@@ -52,10 +52,8 @@ ACPI_MODULE_NAME("processor_thermal");
* _any_ cpufreq driver and not only the acpi-cpufreq driver.
*/
-#define CPUFREQ_THERMAL_MIN_STEP 0
-#define CPUFREQ_THERMAL_MAX_STEP 3
-static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_reduction_pctg);
+static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_limit_state);
static unsigned int acpi_thermal_cpufreq_is_init = 0;
static int cpu_has_cpufreq(unsigned int cpu)
@@ -70,19 +68,19 @@ static int acpi_thermal_cpufreq_notifier(struct notifier_block *nb,
unsigned long event, void *data)
{
struct cpufreq_policy *policy = data;
- unsigned long max_freq = 0;
+ int state = per_cpu(cpufreq_thermal_limit_state, policy->cpu);
+ struct cpufreq_frequency_table *table;
if (event != CPUFREQ_ADJUST)
- goto out;
+ return 0;
+
+ table = cpufreq_frequency_get_table(policy->cpu);
- max_freq = (
- policy->cpuinfo.max_freq *
- (100 - per_cpu(cpufreq_thermal_reduction_pctg, policy->cpu) * 20)
- ) / 100;
+ if (!table)
+ return 0;
- cpufreq_verify_within_limits(policy, 0, max_freq);
+ cpufreq_verify_within_limits(policy, 0, table[state].frequency);
- out:
return 0;
}
@@ -92,10 +90,21 @@ static struct notifier_block acpi_thermal_cpufreq_notifier_block = {
static int cpufreq_get_max_state(unsigned int cpu)
{
+ int count = 0;
+ struct cpufreq_frequency_table *table;
+
if (!cpu_has_cpufreq(cpu))
return 0;
- return CPUFREQ_THERMAL_MAX_STEP;
+ table = cpufreq_frequency_get_table(cpu);
+
+ if (!table)
+ return 0;
+
+ while (table[count].frequency != CPUFREQ_TABLE_END)
+ count++;
+
+ return count;
}
static int cpufreq_get_cur_state(unsigned int cpu)
@@ -103,7 +112,7 @@ static int cpufreq_get_cur_state(unsigned int cpu)
if (!cpu_has_cpufreq(cpu))
return 0;
- return per_cpu(cpufreq_thermal_reduction_pctg, cpu);
+ return per_cpu(cpufreq_thermal_limit_state, cpu);
}
static int cpufreq_set_cur_state(unsigned int cpu, int state)
@@ -111,7 +120,7 @@ static int cpufreq_set_cur_state(unsigned int cpu, int state)
if (!cpu_has_cpufreq(cpu))
return 0;
- per_cpu(cpufreq_thermal_reduction_pctg, cpu) = state;
+ per_cpu(cpufreq_thermal_limit_state, cpu) = state;
cpufreq_update_policy(cpu);
return 0;
}
@@ -122,7 +131,7 @@ void acpi_thermal_cpufreq_init(void)
for (i = 0; i < nr_cpu_ids; i++)
if (cpu_present(i))
- per_cpu(cpufreq_thermal_reduction_pctg, i) = 0;
+ per_cpu(cpufreq_thermal_limit_state, i) = 0;
i = cpufreq_register_notifier(&acpi_thermal_cpufreq_notifier_block,
CPUFREQ_POLICY_NOTIFIER);
@@ -170,15 +179,11 @@ int acpi_processor_get_limit_info(struct acpi_processor *pr)
return 0;
}
-/* thermal coolign device callbacks */
+/* thermal cooling device callbacks */
static int acpi_processor_max_state(struct acpi_processor *pr)
{
int max_state = 0;
- /*
- * There exists four states according to
- * cpufreq_thermal_reduction_ptg. 0, 1, 2, 3
- */
max_state += cpufreq_get_max_state(pr->id);
if (pr->flags.throttling)
max_state += (pr->throttling.state_count -1);
--
1.7.6

View File

@ -0,0 +1,37 @@
From a5cc68f3d63306d0d288f31edfc2ae6ef8ecd887 Mon Sep 17 00:00:00 2001
From: Mathias Krause <minipli@googlemail.com>
Date: Wed, 26 Jun 2013 21:52:30 +0000
Subject: af_key: fix info leaks in notify messages
key_notify_sa_flush() and key_notify_policy_flush() miss to initialize
the sadb_msg_reserved member of the broadcasted message and thereby
leak 2 bytes of heap memory to listeners. Fix that.
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
diff --git a/net/key/af_key.c b/net/key/af_key.c
index c5fbd75..9da8620 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1710,6 +1710,7 @@ static int key_notify_sa_flush(const struct km_event *c)
hdr->sadb_msg_version = PF_KEY_V2;
hdr->sadb_msg_errno = (uint8_t) 0;
hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
+ hdr->sadb_msg_reserved = 0;
pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
@@ -2699,6 +2700,7 @@ static int key_notify_policy_flush(const struct km_event *c)
hdr->sadb_msg_errno = (uint8_t) 0;
hdr->sadb_msg_satype = SADB_SATYPE_UNSPEC;
hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
+ hdr->sadb_msg_reserved = 0;
pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
return 0;
--
cgit v0.9.2

View File

@ -0,0 +1,384 @@
commit 9964e2a108292685fbbf0980493c5e9776eac762
Author: Seth Forshee <seth.forshee@canonical.com>
Date: Fri Mar 16 14:41:21 2012 -0500
apple_bl: Add register/unregister functions
Add functions to allow other modules to enable or disable apple_bl. This
will be used by the gmux driver to disable apple_bl when the gmux is
present, as it is a better and more reliable option for brightness
control.
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
diff --git a/drivers/video/backlight/apple_bl.c b/drivers/video/backlight/apple_bl.c
index be98d15..a523b25 100644
--- a/drivers/video/backlight/apple_bl.c
+++ b/drivers/video/backlight/apple_bl.c
@@ -24,6 +24,7 @@
#include <linux/io.h>
#include <linux/pci.h>
#include <linux/acpi.h>
+#include <linux/atomic.h>
static struct backlight_device *apple_backlight_device;
@@ -221,14 +222,32 @@ static struct acpi_driver apple_bl_driver = {
},
};
+static atomic_t apple_bl_registered = ATOMIC_INIT(0);
+
+int apple_bl_register(void)
+{
+ if (atomic_xchg(&apple_bl_registered, 1) == 0)
+ return acpi_bus_register_driver(&apple_bl_driver);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(apple_bl_register);
+
+void apple_bl_unregister(void)
+{
+ if (atomic_xchg(&apple_bl_registered, 0) == 1)
+ acpi_bus_unregister_driver(&apple_bl_driver);
+}
+EXPORT_SYMBOL_GPL(apple_bl_unregister);
+
static int __init apple_bl_init(void)
{
- return acpi_bus_register_driver(&apple_bl_driver);
+ return apple_bl_register();
}
static void __exit apple_bl_exit(void)
{
- acpi_bus_unregister_driver(&apple_bl_driver);
+ apple_bl_unregister();
}
module_init(apple_bl_init);
diff --git a/include/linux/apple_bl.h b/include/linux/apple_bl.h
new file mode 100644
index 0000000..47bedc0
--- /dev/null
+++ b/include/linux/apple_bl.h
@@ -0,0 +1,26 @@
+/*
+ * apple_bl exported symbols
+ */
+
+#ifndef _LINUX_APPLE_BL_H
+#define _LINUX_APPLE_BL_H
+
+#ifdef CONFIG_BACKLIGHT_APPLE
+
+extern int apple_bl_register(void);
+extern void apple_bl_unregister(void);
+
+#else /* !CONFIG_BACKLIGHT_APPLE */
+
+static inline int apple_bl_register(void)
+{
+ return 0;
+}
+
+static inline void apple_bl_unregister(void)
+{
+}
+
+#endif /* !CONFIG_BACKLIGHT_APPLE */
+
+#endif /* _LINUX_APPLE_BL_H */
commit 89c093937dc8b07db4652251c83ec3710e5f15a2
Author: Seth Forshee <seth.forshee@canonical.com>
Date: Fri Mar 16 14:41:22 2012 -0500
platform/x86: Add driver for Apple gmux device
Apple laptops with hybrid graphics have a device named gmux that
controls the muxing of the LVDS panel between the GPUs as well as screen
brightness. This driver adds support for the gmux device. Only backlight
control is supported initially.
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Tested-by: Grant Likely <grant.likely@secretlab.ca>
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index ce10f03..c5b4bfe 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -752,4 +752,14 @@ config SAMSUNG_Q10
This driver provides support for backlight control on Samsung Q10
and related laptops, including Dell Latitude X200.
+config APPLE_GMUX
+ tristate "Apple Gmux Driver"
+ depends on PNP
+ select BACKLIGHT_CLASS_DEVICE
+ ---help---
+ This driver provides support for the gmux device found on many
+ Apple laptops, which controls the display mux for the hybrid
+ graphics as well as the backlight. Currently only backlight
+ control is supported by the driver.
+
endif # X86_PLATFORM_DEVICES
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index dcfee6b..bf7e4f9 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -49,3 +49,4 @@ obj-$(CONFIG_MXM_WMI) += mxm-wmi.o
obj-$(CONFIG_INTEL_MID_POWER_BUTTON) += intel_mid_powerbtn.o
obj-$(CONFIG_INTEL_OAKTRAIL) += intel_oaktrail.o
obj-$(CONFIG_SAMSUNG_Q10) += samsung-q10.o
+obj-$(CONFIG_APPLE_GMUX) += apple-gmux.o
diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c
new file mode 100644
index 0000000..c81e31f
--- /dev/null
+++ b/drivers/platform/x86/apple-gmux.c
@@ -0,0 +1,242 @@
+/*
+ * Gmux driver for Apple laptops
+ *
+ * Copyright (C) Canonical Ltd. <seth.forshee@canonical.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/backlight.h>
+#include <linux/acpi.h>
+#include <linux/pnp.h>
+#include <linux/apple_bl.h>
+#include <acpi/video.h>
+
+struct apple_gmux_data {
+ unsigned long iostart;
+ unsigned long iolen;
+
+ struct backlight_device *bdev;
+};
+
+/*
+ * gmux port offsets. Many of these are not yet used, but may be in the
+ * future, and it's useful to have them documented here anyhow.
+ */
+#define GMUX_PORT_VERSION_MAJOR 0x04
+#define GMUX_PORT_VERSION_MINOR 0x05
+#define GMUX_PORT_VERSION_RELEASE 0x06
+#define GMUX_PORT_SWITCH_DISPLAY 0x10
+#define GMUX_PORT_SWITCH_GET_DISPLAY 0x11
+#define GMUX_PORT_INTERRUPT_ENABLE 0x14
+#define GMUX_PORT_INTERRUPT_STATUS 0x16
+#define GMUX_PORT_SWITCH_DDC 0x28
+#define GMUX_PORT_SWITCH_EXTERNAL 0x40
+#define GMUX_PORT_SWITCH_GET_EXTERNAL 0x41
+#define GMUX_PORT_DISCRETE_POWER 0x50
+#define GMUX_PORT_MAX_BRIGHTNESS 0x70
+#define GMUX_PORT_BRIGHTNESS 0x74
+
+#define GMUX_MIN_IO_LEN (GMUX_PORT_BRIGHTNESS + 4)
+
+#define GMUX_INTERRUPT_ENABLE 0xff
+#define GMUX_INTERRUPT_DISABLE 0x00
+
+#define GMUX_INTERRUPT_STATUS_ACTIVE 0
+#define GMUX_INTERRUPT_STATUS_DISPLAY (1 << 0)
+#define GMUX_INTERRUPT_STATUS_POWER (1 << 2)
+#define GMUX_INTERRUPT_STATUS_HOTPLUG (1 << 3)
+
+#define GMUX_BRIGHTNESS_MASK 0x00ffffff
+#define GMUX_MAX_BRIGHTNESS GMUX_BRIGHTNESS_MASK
+
+static inline u8 gmux_read8(struct apple_gmux_data *gmux_data, int port)
+{
+ return inb(gmux_data->iostart + port);
+}
+
+static inline void gmux_write8(struct apple_gmux_data *gmux_data, int port,
+ u8 val)
+{
+ outb(val, gmux_data->iostart + port);
+}
+
+static inline u32 gmux_read32(struct apple_gmux_data *gmux_data, int port)
+{
+ return inl(gmux_data->iostart + port);
+}
+
+static int gmux_get_brightness(struct backlight_device *bd)
+{
+ struct apple_gmux_data *gmux_data = bl_get_data(bd);
+ return gmux_read32(gmux_data, GMUX_PORT_BRIGHTNESS) &
+ GMUX_BRIGHTNESS_MASK;
+}
+
+static int gmux_update_status(struct backlight_device *bd)
+{
+ struct apple_gmux_data *gmux_data = bl_get_data(bd);
+ u32 brightness = bd->props.brightness;
+
+ /*
+ * Older gmux versions require writing out lower bytes first then
+ * setting the upper byte to 0 to flush the values. Newer versions
+ * accept a single u32 write, but the old method also works, so we
+ * just use the old method for all gmux versions.
+ */
+ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS, brightness);
+ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 1, brightness >> 8);
+ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 2, brightness >> 16);
+ gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 3, 0);
+
+ return 0;
+}
+
+static const struct backlight_ops gmux_bl_ops = {
+ .get_brightness = gmux_get_brightness,
+ .update_status = gmux_update_status,
+};
+
+static int __devinit gmux_probe(struct pnp_dev *pnp,
+ const struct pnp_device_id *id)
+{
+ struct apple_gmux_data *gmux_data;
+ struct resource *res;
+ struct backlight_properties props;
+ struct backlight_device *bdev;
+ u8 ver_major, ver_minor, ver_release;
+ int ret = -ENXIO;
+
+ gmux_data = kzalloc(sizeof(*gmux_data), GFP_KERNEL);
+ if (!gmux_data)
+ return -ENOMEM;
+ pnp_set_drvdata(pnp, gmux_data);
+
+ res = pnp_get_resource(pnp, IORESOURCE_IO, 0);
+ if (!res) {
+ pr_err("Failed to find gmux I/O resource\n");
+ goto err_free;
+ }
+
+ gmux_data->iostart = res->start;
+ gmux_data->iolen = res->end - res->start;
+
+ if (gmux_data->iolen < GMUX_MIN_IO_LEN) {
+ pr_err("gmux I/O region too small (%lu < %u)\n",
+ gmux_data->iolen, GMUX_MIN_IO_LEN);
+ goto err_free;
+ }
+
+ if (!request_region(gmux_data->iostart, gmux_data->iolen,
+ "Apple gmux")) {
+ pr_err("gmux I/O already in use\n");
+ goto err_free;
+ }
+
+ /*
+ * On some machines the gmux is in ACPI even thought the machine
+ * doesn't really have a gmux. Check for invalid version information
+ * to detect this.
+ */
+ ver_major = gmux_read8(gmux_data, GMUX_PORT_VERSION_MAJOR);
+ ver_minor = gmux_read8(gmux_data, GMUX_PORT_VERSION_MINOR);
+ ver_release = gmux_read8(gmux_data, GMUX_PORT_VERSION_RELEASE);
+ if (ver_major == 0xff && ver_minor == 0xff && ver_release == 0xff) {
+ pr_info("gmux device not present\n");
+ ret = -ENODEV;
+ goto err_release;
+ }
+
+ pr_info("Found gmux version %d.%d.%d\n", ver_major, ver_minor,
+ ver_release);
+
+ memset(&props, 0, sizeof(props));
+ props.type = BACKLIGHT_PLATFORM;
+ props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS);
+
+ /*
+ * Currently it's assumed that the maximum brightness is less than
+ * 2^24 for compatibility with old gmux versions. Cap the max
+ * brightness at this value, but print a warning if the hardware
+ * reports something higher so that it can be fixed.
+ */
+ if (WARN_ON(props.max_brightness > GMUX_MAX_BRIGHTNESS))
+ props.max_brightness = GMUX_MAX_BRIGHTNESS;
+
+ bdev = backlight_device_register("gmux_backlight", &pnp->dev,
+ gmux_data, &gmux_bl_ops, &props);
+ if (IS_ERR(bdev)) {
+ ret = PTR_ERR(bdev);
+ goto err_release;
+ }
+
+ gmux_data->bdev = bdev;
+ bdev->props.brightness = gmux_get_brightness(bdev);
+ backlight_update_status(bdev);
+
+ /*
+ * The backlight situation on Macs is complicated. If the gmux is
+ * present it's the best choice, because it always works for
+ * backlight control and supports more levels than other options.
+ * Disable the other backlight choices.
+ */
+ acpi_video_unregister();
+ apple_bl_unregister();
+
+ return 0;
+
+err_release:
+ release_region(gmux_data->iostart, gmux_data->iolen);
+err_free:
+ kfree(gmux_data);
+ return ret;
+}
+
+static void __devexit gmux_remove(struct pnp_dev *pnp)
+{
+ struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp);
+
+ backlight_device_unregister(gmux_data->bdev);
+ release_region(gmux_data->iostart, gmux_data->iolen);
+ kfree(gmux_data);
+
+ acpi_video_register();
+ apple_bl_register();
+}
+
+static const struct pnp_device_id gmux_device_ids[] = {
+ {"APP000B", 0},
+ {"", 0}
+};
+
+static struct pnp_driver gmux_pnp_driver = {
+ .name = "apple-gmux",
+ .probe = gmux_probe,
+ .remove = __devexit_p(gmux_remove),
+ .id_table = gmux_device_ids,
+};
+
+static int __init apple_gmux_init(void)
+{
+ return pnp_register_driver(&gmux_pnp_driver);
+}
+
+static void __exit apple_gmux_exit(void)
+{
+ pnp_unregister_driver(&gmux_pnp_driver);
+}
+
+module_init(apple_gmux_init);
+module_exit(apple_gmux_exit);
+
+MODULE_AUTHOR("Seth Forshee <seth.forshee@canonical.com>");
+MODULE_DESCRIPTION("Apple Gmux Driver");
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(pnp, gmux_device_ids);

View File

@ -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);

View File

@ -1,42 +0,0 @@
diff -up linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c.fdt linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c
--- linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c.fdt 2011-08-04 16:51:12.034188064 -0500
+++ linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap3beagle.c 2011-08-04 22:13:52.801156923 -0500
@@ -591,6 +591,11 @@ static void __init omap3_beagle_init(voi
beagle_opp_init();
}
+static const char *omap3_beagle_dt_match[] __initdata = {
+ "ti,omap3-beagle",
+ NULL
+};
+
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
.boot_params = 0x80000100,
@@ -600,4 +605,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagl
.init_irq = omap3_beagle_init_irq,
.init_machine = omap3_beagle_init,
.timer = &omap3_secure_timer,
+ .dt_compat = omap3_beagle_dt_match,
MACHINE_END
diff -up linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c.fdt linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c
--- linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c.fdt 2011-08-04 16:51:12.092169023 -0500
+++ linux-2.6.39.armv7l/arch/arm/mach-omap2/board-omap4panda.c 2011-08-04 22:15:29.200157437 -0500
@@ -708,6 +708,11 @@ static void __init omap4_panda_map_io(vo
omap44xx_map_common_io();
}
+static const char *omap4_panda_match[] __initdata = {
+ "ti,omap4-panda",
+ NULL,
+};
+
MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
/* Maintainer: David Anders - Texas Instruments Inc */
.boot_params = 0x80000100,
@@ -717,4 +722,5 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda
.init_irq = gic_init_irq,
.init_machine = omap4_panda_init,
.timer = &omap4_timer,
+ .dt_compat = omap4_panda_match,
MACHINE_END

190
arm-omap-ehci-fix.patch Normal file
View File

@ -0,0 +1,190 @@
From 54a419668b0f27b7982807fb2376d237e0a0ce05 Mon Sep 17 00:00:00 2001
From: Alan Stern <stern@rowland.harvard.edu>
Date: Tue, 12 Mar 2013 10:44:39 +0000
Subject: USB: EHCI: split ehci-omap out to a separate driver
This patch (as1645) converts ehci-omap over to the new "ehci-hcd is a
library" approach, so that it can coexist peacefully with other EHCI
platform drivers and can make use of the private area allocated at
the end of struct ehci_hcd.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index c59a112..62f4e9a 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -155,7 +155,7 @@ config USB_EHCI_MXC
Variation of ARC USB block used in some Freescale chips.
config USB_EHCI_HCD_OMAP
- bool "EHCI support for OMAP3 and later chips"
+ tristate "EHCI support for OMAP3 and later chips"
depends on USB_EHCI_HCD && ARCH_OMAP
default y
---help---
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 001fbff..56de410 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -27,6 +27,7 @@ obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o
obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o
obj-$(CONFIG_USB_EHCI_HCD_PLATFORM) += ehci-platform.o
obj-$(CONFIG_USB_EHCI_MXC) += ehci-mxc.o
+obj-$(CONFIG_USB_EHCI_HCD_OMAP) += ehci-omap.o
obj-$(CONFIG_USB_OXU210HP_HCD) += oxu210hp-hcd.o
obj-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index b416a3f..303b022 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -1252,11 +1252,6 @@ MODULE_LICENSE ("GPL");
#define PLATFORM_DRIVER ehci_hcd_sh_driver
#endif
-#ifdef CONFIG_USB_EHCI_HCD_OMAP
-#include "ehci-omap.c"
-#define PLATFORM_DRIVER ehci_hcd_omap_driver
-#endif
-
#ifdef CONFIG_PPC_PS3
#include "ehci-ps3.c"
#define PS3_SYSTEM_BUS_DRIVER ps3_ehci_driver
@@ -1346,6 +1341,7 @@ MODULE_LICENSE ("GPL");
!IS_ENABLED(CONFIG_USB_EHCI_HCD_PLATFORM) && \
!IS_ENABLED(CONFIG_USB_CHIPIDEA_HOST) && \
!IS_ENABLED(CONFIG_USB_EHCI_MXC) && \
+ !IS_ENABLED(CONFIG_USB_EHCI_HCD_OMAP) && \
!defined(PLATFORM_DRIVER) && \
!defined(PS3_SYSTEM_BUS_DRIVER) && \
!defined(OF_PLATFORM_DRIVER) && \
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index 0555ee4..fa66757 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -36,6 +36,9 @@
* - convert to use hwmod and runtime PM
*/
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/usb/ulpi.h>
@@ -43,6 +46,10 @@
#include <linux/pm_runtime.h>
#include <linux/gpio.h>
#include <linux/clk.h>
+#include <linux/usb.h>
+#include <linux/usb/hcd.h>
+
+#include "ehci.h"
#include <linux/platform_data/usb-omap.h>
@@ -57,9 +64,11 @@
#define EHCI_INSNREG05_ULPI_EXTREGADD_SHIFT 8
#define EHCI_INSNREG05_ULPI_WRDATA_SHIFT 0
-/*-------------------------------------------------------------------------*/
+#define DRIVER_DESC "OMAP-EHCI Host Controller driver"
-static const struct hc_driver ehci_omap_hc_driver;
+static const char hcd_name[] = "ehci-omap";
+
+/*-------------------------------------------------------------------------*/
static inline void ehci_write(void __iomem *base, u32 reg, u32 val)
@@ -166,6 +175,12 @@ static void disable_put_regulator(
/* configure so an HC device and id are always provided */
/* always called with process context; sleeping is OK */
+static struct hc_driver __read_mostly ehci_omap_hc_driver;
+
+static const struct ehci_driver_overrides ehci_omap_overrides __initdata = {
+ .reset = omap_ehci_init,
+};
+
/**
* ehci_hcd_omap_probe - initialize TI-based HCDs
*
@@ -315,56 +330,33 @@ static struct platform_driver ehci_hcd_omap_driver = {
/*.suspend = ehci_hcd_omap_suspend, */
/*.resume = ehci_hcd_omap_resume, */
.driver = {
- .name = "ehci-omap",
+ .name = hcd_name,
}
};
/*-------------------------------------------------------------------------*/
-static const struct hc_driver ehci_omap_hc_driver = {
- .description = hcd_name,
- .product_desc = "OMAP-EHCI Host Controller",
- .hcd_priv_size = sizeof(struct ehci_hcd),
-
- /*
- * generic hardware linkage
- */
- .irq = ehci_irq,
- .flags = HCD_MEMORY | HCD_USB2,
-
- /*
- * basic lifecycle operations
- */
- .reset = omap_ehci_init,
- .start = ehci_run,
- .stop = ehci_stop,
- .shutdown = ehci_shutdown,
-
- /*
- * managing i/o requests and associated device resources
- */
- .urb_enqueue = ehci_urb_enqueue,
- .urb_dequeue = ehci_urb_dequeue,
- .endpoint_disable = ehci_endpoint_disable,
- .endpoint_reset = ehci_endpoint_reset,
+static int __init ehci_omap_init(void)
+{
+ if (usb_disabled())
+ return -ENODEV;
- /*
- * scheduling support
- */
- .get_frame_number = ehci_get_frame,
+ pr_info("%s: " DRIVER_DESC "\n", hcd_name);
- /*
- * root hub support
- */
- .hub_status_data = ehci_hub_status_data,
- .hub_control = ehci_hub_control,
- .bus_suspend = ehci_bus_suspend,
- .bus_resume = ehci_bus_resume,
+ ehci_init_driver(&ehci_omap_hc_driver, &ehci_omap_overrides);
+ return platform_driver_register(&ehci_hcd_omap_driver);
+}
+module_init(ehci_omap_init);
- .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
-};
+static void __exit ehci_omap_cleanup(void)
+{
+ platform_driver_unregister(&ehci_hcd_omap_driver);
+}
+module_exit(ehci_omap_cleanup);
MODULE_ALIAS("platform:ehci-omap");
MODULE_AUTHOR("Texas Instruments, Inc.");
MODULE_AUTHOR("Felipe Balbi <felipe.balbi@nokia.com>");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
--
cgit v0.9.1

View File

@ -1,92 +0,0 @@
From 0b608345e114681f66ca0a3cf9d9434728da62ce Mon Sep 17 00:00:00 2001
From: Ken Cox <ken@coxcampers.net>
Date: Thu, 23 Jun 2011 10:36:43 -0500
Subject: [PATCH] Support reading mac address from device tree.
If CONFIG_OF is enabled, we will try to read the mac address from the device tree. This enables us the ability to have a "static" mac address on arm boards such as the pandaboard and beagleboard which generate random mac addresses.
---
drivers/net/usb/smsc75xx.c | 17 +++++++++++++++++
drivers/net/usb/smsc95xx.c | 18 +++++++++++++++++-
2 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
index 753ee6e..ac0a200 100644
--- a/drivers/net/usb/smsc75xx.c
+++ b/drivers/net/usb/smsc75xx.c
@@ -29,6 +29,7 @@
#include <linux/crc32.h>
#include <linux/usb/usbnet.h>
#include <linux/slab.h>
+#include <linux/of_device.h>
#include "smsc75xx.h"
#define SMSC_CHIPNAME "smsc75xx"
@@ -658,6 +659,22 @@ static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
static void smsc75xx_init_mac_address(struct usbnet *dev)
{
+ void *address;
+#ifdef CONFIG_OF
+ struct device_node *np;
+
+ /* try the device tree */
+ np = of_find_node_by_name(NULL, "smsc75xx");
+ if (np) {
+ address = of_get_property(np, "local-mac-address", NULL);
+ if (address) {
+ memcpy(dev->net->dev_addr, address, ETH_ALEN);
+ netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n");
+ return;
+ }
+ }
+#endif
+
/* try reading mac address from EEPROM */
if (smsc75xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
dev->net->dev_addr) == 0) {
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index bc86f4b..c83942d 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -29,6 +29,7 @@
#include <linux/crc32.h>
#include <linux/usb/usbnet.h>
#include <linux/slab.h>
+#include <linux/of_device.h>
#include "smsc95xx.h"
#define SMSC_CHIPNAME "smsc95xx"
@@ -639,6 +640,22 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
static void smsc95xx_init_mac_address(struct usbnet *dev)
{
+ void *address;
+#ifdef CONFIG_OF
+ struct device_node *np;
+
+ /* try the device tree */
+ np = of_find_node_by_name(NULL, "smsc95xx");
+ if (np) {
+ address = of_get_property(np, "local-mac-address", NULL);
+ if (address) {
+ memcpy(dev->net->dev_addr, address, ETH_ALEN);
+ netif_dbg(dev, ifup, dev->net, "MAC address read from device tree\n");
+ return;
+ }
+ }
+#endif
+
/* try reading mac address from EEPROM */
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
dev->net->dev_addr) == 0) {
@@ -648,7 +665,6 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
return;
}
}
-
/* no eeprom, or eeprom values are invalid. generate random MAC */
random_ether_addr(dev->net->dev_addr);
netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n");
--
1.7.2.3

28
arm-tegra-fixclk.patch Normal file
View File

@ -0,0 +1,28 @@
diff --git a/drivers/clk/tegra/clk-periph.c b/drivers/clk/tegra/clk-periph.c
index 788486e..2f4d0e3 100644
--- a/drivers/clk/tegra/clk-periph.c
+++ b/drivers/clk/tegra/clk-periph.c
@@ -18,6 +18,7 @@
#include <linux/clk-provider.h>
#include <linux/slab.h>
#include <linux/err.h>
+#include <linux/export.h>
#include "clk.h"
@@ -128,6 +129,7 @@ void tegra_periph_reset_deassert(struct clk *c)
tegra_periph_reset(gate, 0);
}
+EXPORT_SYMBOL_GPL(tegra_periph_reset_deassert);
void tegra_periph_reset_assert(struct clk *c)
{
@@ -147,6 +149,7 @@ void tegra_periph_reset_assert(struct clk *c)
tegra_periph_reset(gate, 1);
}
+EXPORT_SYMBOL_GPL(tegra_periph_reset_assert);
const struct clk_ops tegra_clk_periph_ops = {
.get_parent = clk_periph_get_parent,

View File

@ -0,0 +1,16 @@
--- linux-3.3.4-3.fc17.x86_64_orig/drivers/usb/core/hub.c 2012-05-02 20:08:18.421685932 -0400
+++ linux-3.3.4-3.fc17.x86_64/drivers/usb/core/hub.c 2012-05-02 20:30:36.565865425 -0400
@@ -3484,6 +3484,13 @@ static void hub_events(void)
(u16) hub->change_bits[0],
(u16) hub->event_bits[0]);
+ /* Don't disconnect USB-SATA on TrimSlice */
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
+ (hub->event_bits[0] == 0x2))
+ hub->event_bits[0] = 0;
+ }
+
/* Lock the device, then check to see if we were
* disconnected while waiting for the lock to succeed. */
usb_lock_device(hdev);

View File

@ -0,0 +1,72 @@
Memory allocated by vmalloc (including stack) can not be used for DMA,
i.e. data pointer on usb_control_msg() should not point to stack memory.
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=977558
Reported-and-tested-by: Andy Lawrence <dr.diesel@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/bluetooth/ath3k.c | 38 +++++++++++++++++++++++++++++---------
1 file changed, 29 insertions(+), 9 deletions(-)
diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 11f467c..81b636c 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -193,24 +193,44 @@ error:
static int ath3k_get_state(struct usb_device *udev, unsigned char *state)
{
- int pipe = 0;
+ int ret, pipe = 0;
+ char *buf;
+
+ buf = kmalloc(1, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
pipe = usb_rcvctrlpipe(udev, 0);
- return usb_control_msg(udev, pipe, ATH3K_GETSTATE,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
- state, 0x01, USB_CTRL_SET_TIMEOUT);
+ ret = usb_control_msg(udev, pipe, ATH3K_GETSTATE,
+ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
+ buf, 1, USB_CTRL_SET_TIMEOUT);
+
+ *state = *buf;
+ kfree(buf);
+
+ return ret;
}
static int ath3k_get_version(struct usb_device *udev,
struct ath3k_version *version)
{
- int pipe = 0;
+ int ret, pipe = 0;
+ char *buf;
+ const int size = sizeof(struct ath3k_version);
+
+ buf = kmalloc(size, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
pipe = usb_rcvctrlpipe(udev, 0);
- return usb_control_msg(udev, pipe, ATH3K_GETVERSION,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version,
- sizeof(struct ath3k_version),
- USB_CTRL_SET_TIMEOUT);
+ ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION,
+ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
+ buf, size, USB_CTRL_SET_TIMEOUT);
+
+ memcpy(version, buf, size);
+ kfree(buf);
+
+ return ret;
}
static int ath3k_load_fwfile(struct usb_device *udev,
--
1.7.11.7

View File

@ -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,

View File

@ -0,0 +1,159 @@
From 9f00b2e7cf241fa389733d41b615efdaa2cb0f5b Mon Sep 17 00:00:00 2001
From: Cong Wang <amwang@redhat.com>
Date: Tue, 21 May 2013 21:52:55 +0000
Subject: bridge: only expire the mdb entry when query is received
Currently we arm the expire timer when the mdb entry is added,
however, this causes problem when there is no querier sent
out after that.
So we should only arm the timer when a corresponding query is
received, as suggested by Herbert.
And he also mentioned "if there is no querier then group
subscriptions shouldn't expire. There has to be at least one querier
in the network for this thing to work. Otherwise it just degenerates
into a non-snooping switch, which is OK."
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Adam Baker <linux@baker-net.org.uk>
Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
(limited to 'net/bridge')
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 2475147..40bda80 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -617,8 +617,6 @@ rehash:
mp->br = br;
mp->addr = *group;
- setup_timer(&mp->timer, br_multicast_group_expired,
- (unsigned long)mp);
hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]);
mdb->size++;
@@ -656,7 +654,6 @@ static int br_multicast_add_group(struct net_bridge *br,
struct net_bridge_mdb_entry *mp;
struct net_bridge_port_group *p;
struct net_bridge_port_group __rcu **pp;
- unsigned long now = jiffies;
int err;
spin_lock(&br->multicast_lock);
@@ -671,7 +668,6 @@ static int br_multicast_add_group(struct net_bridge *br,
if (!port) {
mp->mglist = true;
- mod_timer(&mp->timer, now + br->multicast_membership_interval);
goto out;
}
@@ -679,7 +675,7 @@ static int br_multicast_add_group(struct net_bridge *br,
(p = mlock_dereference(*pp, br)) != NULL;
pp = &p->next) {
if (p->port == port)
- goto found;
+ goto out;
if ((unsigned long)p->port < (unsigned long)port)
break;
}
@@ -690,8 +686,6 @@ static int br_multicast_add_group(struct net_bridge *br,
rcu_assign_pointer(*pp, p);
br_mdb_notify(br->dev, port, group, RTM_NEWMDB);
-found:
- mod_timer(&p->timer, now + br->multicast_membership_interval);
out:
err = 0;
@@ -1131,6 +1125,10 @@ static int br_ip4_multicast_query(struct net_bridge *br,
if (!mp)
goto out;
+ setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp);
+ mod_timer(&mp->timer, now + br->multicast_membership_interval);
+ mp->timer_armed = true;
+
max_delay *= br->multicast_last_member_count;
if (mp->mglist &&
@@ -1205,6 +1203,10 @@ static int br_ip6_multicast_query(struct net_bridge *br,
if (!mp)
goto out;
+ setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp);
+ mod_timer(&mp->timer, now + br->multicast_membership_interval);
+ mp->timer_armed = true;
+
max_delay *= br->multicast_last_member_count;
if (mp->mglist &&
(timer_pending(&mp->timer) ?
@@ -1263,7 +1265,7 @@ static void br_multicast_leave_group(struct net_bridge *br,
call_rcu_bh(&p->rcu, br_multicast_free_pg);
br_mdb_notify(br->dev, port, group, RTM_DELMDB);
- if (!mp->ports && !mp->mglist &&
+ if (!mp->ports && !mp->mglist && mp->timer_armed &&
netif_running(br->dev))
mod_timer(&mp->timer, jiffies);
}
@@ -1275,30 +1277,12 @@ static void br_multicast_leave_group(struct net_bridge *br,
br->multicast_last_member_interval;
if (!port) {
- if (mp->mglist &&
+ if (mp->mglist && mp->timer_armed &&
(timer_pending(&mp->timer) ?
time_after(mp->timer.expires, time) :
try_to_del_timer_sync(&mp->timer) >= 0)) {
mod_timer(&mp->timer, time);
}
-
- goto out;
- }
-
- for (p = mlock_dereference(mp->ports, br);
- p != NULL;
- p = mlock_dereference(p->next, br)) {
- if (p->port != port)
- continue;
-
- if (!hlist_unhashed(&p->mglist) &&
- (timer_pending(&p->timer) ?
- time_after(p->timer.expires, time) :
- try_to_del_timer_sync(&p->timer) >= 0)) {
- mod_timer(&p->timer, time);
- }
-
- break;
}
out:
@@ -1674,6 +1658,7 @@ void br_multicast_stop(struct net_bridge *br)
hlist_for_each_entry_safe(mp, n, &mdb->mhash[i],
hlist[ver]) {
del_timer(&mp->timer);
+ mp->timer_armed = false;
call_rcu_bh(&mp->rcu, br_multicast_free_group);
}
}
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index e260710..1b0ac95 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -112,6 +112,7 @@ struct net_bridge_mdb_entry
struct timer_list timer;
struct br_ip addr;
bool mglist;
+ bool timer_armed;
};
struct net_bridge_mdb_htable
--
cgit v0.9.2

View File

@ -0,0 +1,57 @@
From 6b7df111ece130fa979a0c4f58e53674c1e47d3e Mon Sep 17 00:00:00 2001
From: Cong Wang <amwang@redhat.com>
Date: Tue, 21 May 2013 21:52:56 +0000
Subject: bridge: send query as soon as leave is received
Continue sending queries when leave is received if the user marks
it as a querier.
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Adam Baker <linux@baker-net.org.uk>
Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
(limited to 'net/bridge')
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 40bda80..37a4676 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1250,6 +1250,32 @@ static void br_multicast_leave_group(struct net_bridge *br,
if (!mp)
goto out;
+ if (br->multicast_querier &&
+ !timer_pending(&br->multicast_querier_timer)) {
+ __br_multicast_send_query(br, port, &mp->addr);
+
+ time = jiffies + br->multicast_last_member_count *
+ br->multicast_last_member_interval;
+ mod_timer(port ? &port->multicast_query_timer :
+ &br->multicast_query_timer, time);
+
+ for (p = mlock_dereference(mp->ports, br);
+ p != NULL;
+ p = mlock_dereference(p->next, br)) {
+ if (p->port != port)
+ continue;
+
+ if (!hlist_unhashed(&p->mglist) &&
+ (timer_pending(&p->timer) ?
+ time_after(p->timer.expires, time) :
+ try_to_del_timer_sync(&p->timer) >= 0)) {
+ mod_timer(&p->timer, time);
+ }
+
+ break;
+ }
+ }
+
if (port && (port->flags & BR_MULTICAST_FAST_LEAVE)) {
struct net_bridge_port_group __rcu **pp;
--
cgit v0.9.2

13
bridge-timer-fix.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index d6448e3..aadb596 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -269,7 +269,7 @@ static void br_multicast_del_pg(struct net_bridge *br,
del_timer(&p->timer);
call_rcu_bh(&p->rcu, br_multicast_free_pg);
- if (!mp->ports && !mp->mglist &&
+ if (!mp->ports && !mp->mglist && mp->timer_armed &&
netif_running(br->dev))
mod_timer(&mp->timer, jiffies);

View File

@ -1,72 +0,0 @@
diff -up compat-wireless-2012-02-05/config.mk.orig compat-wireless-2012-02-05/config.mk
--- compat-wireless-2012-02-05/config.mk.orig 2012-02-05 16:10:31.000000000 -0500
+++ compat-wireless-2012-02-05/config.mk 2012-02-06 11:43:46.142222712 -0500
@@ -14,6 +14,9 @@ else
include $(KLIB_BUILD)/.config
endif
+# Enable SSB module (needs to be visible in compat_autoconf.h)
+CONFIG_SSB=m
+
ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
COMPAT_LATEST_VERSION = 3
diff -up compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile.orig compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile
--- compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile.orig 2012-02-05 16:10:39.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/misc/eeprom/Makefile 2012-02-06 11:43:46.143222699 -0500
@@ -1 +1 @@
-obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
+#obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
diff -up compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile.orig compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile
--- compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile.orig 2012-02-05 16:10:37.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/ethernet/atheros/Makefile 2012-02-06 11:43:46.143222699 -0500
@@ -2,7 +2,7 @@
# Makefile for the Atheros network device drivers.
#
-obj-$(CONFIG_ATL1) += atlx/
-obj-$(CONFIG_ATL2) += atlx/
-obj-$(CONFIG_ATL1E) += atl1e/
-obj-$(CONFIG_ATL1C) += atl1c/
+#obj-$(CONFIG_ATL1) += atlx/
+#obj-$(CONFIG_ATL2) += atlx/
+#obj-$(CONFIG_ATL1E) += atl1e/
+#obj-$(CONFIG_ATL1C) += atl1c/
diff -up compat-wireless-2012-02-05/drivers/net/usb/Makefile.orig compat-wireless-2012-02-05/drivers/net/usb/Makefile
--- compat-wireless-2012-02-05/drivers/net/usb/Makefile.orig 2012-02-05 16:10:39.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/usb/Makefile 2012-02-06 11:45:23.531005184 -0500
@@ -2,6 +2,6 @@
# Makefile for USB Network drivers
#
-obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o
-obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o
-obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o
+#obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o
+#obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o
+#obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o
diff -up compat-wireless-2012-02-05/Makefile.orig compat-wireless-2012-02-05/Makefile
--- compat-wireless-2012-02-05/Makefile.orig 2012-02-05 16:10:31.000000000 -0500
+++ compat-wireless-2012-02-05/Makefile 2012-02-06 11:43:46.145222675 -0500
@@ -10,8 +10,8 @@ export KLIB_BUILD ?= $(KLIB)/build
MODPROBE := /sbin/modprobe
ifneq ($(wildcard $(MODPROBE)),)
-MADWIFI=$(shell $(MODPROBE) -l ath_pci)
-OLD_IWL=$(shell $(MODPROBE) -l iwl4965)
+MADWIFI=""
+OLD_IWL=""
endif
DESTDIR?=
@@ -44,8 +44,8 @@ endif
endif
-obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
-obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/
+#obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
+#obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/
else

View File

@ -1,12 +0,0 @@
diff -up compat-wireless-2011-12-01/Makefile.orig compat-wireless-2011-12-01/Makefile
--- compat-wireless-2011-12-01/Makefile.orig 2011-12-14 09:10:01.377297637 -0500
+++ compat-wireless-2011-12-01/Makefile 2011-12-14 09:47:36.834100534 -0500
@@ -68,7 +68,7 @@ all: modules
modules: $(CREL_CHECK)
@./scripts/check_config.sh
- $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
+ $(MAKE) -C $(KLIB_BUILD) M=$(PWD) INTEGRATED_BUILD=1 modules
@touch $@
bt: $(CREL_CHECK)

View File

@ -1,611 +0,0 @@
diff -up compat-wireless-2012-02-05/compat/crc8.c.orig compat-wireless-2012-02-05/compat/crc8.c
--- compat-wireless-2012-02-05/compat/crc8.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/compat/crc8.c 2012-02-06 11:53:01.617278318 -0500
@@ -14,6 +14,7 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
diff -up compat-wireless-2012-02-05/drivers/bcma/bcma_private.h.orig compat-wireless-2012-02-05/drivers/bcma/bcma_private.h
--- compat-wireless-2012-02-05/drivers/bcma/bcma_private.h.orig 2012-02-05 16:10:33.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/bcma/bcma_private.h 2012-02-06 11:53:01.618278306 -0500
@@ -1,6 +1,7 @@
#ifndef LINUX_BCMA_PRIVATE_H_
#define LINUX_BCMA_PRIVATE_H_
+#undef pr_fmt
#ifndef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#endif
diff -up compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c.orig compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c
--- compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/ethernet/broadcom/b44.c 2012-02-06 11:53:01.620278282 -0500
@@ -10,6 +10,7 @@
* Distribute under GPL.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
--- compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig 2012-02-05 16:10:33.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 2012-02-06 11:53:01.621278269 -0500
@@ -16,6 +16,7 @@
* File contents: support functions for PCI/PCIe
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/delay.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c
--- compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig 2012-02-05 16:10:33.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/brcm80211/brcmsmac/dma.c 2012-02-06 11:53:01.622278256 -0500
@@ -14,6 +14,7 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/slab.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c
--- compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/3945-mac.c 2012-02-06 11:53:01.625278218 -0500
@@ -27,6 +27,7 @@
*
*****************************************************************************/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c
--- compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/iwlegacy/4965-mac.c 2012-02-06 11:53:01.630278156 -0500
@@ -27,6 +27,7 @@
*
*****************************************************************************/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c.orig 2012-02-05 16:10:35.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/cfg.c 2012-02-06 11:53:01.630278156 -0500
@@ -6,6 +6,7 @@
*
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/hardirq.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_cs.c 2012-02-06 11:53:01.631278143 -0500
@@ -21,6 +21,7 @@
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_sdio.c 2012-02-06 11:53:01.631278143 -0500
@@ -26,6 +26,7 @@
* if_sdio_card_to_host() to pad the data.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_spi.c 2012-02-06 11:53:01.631278143 -0500
@@ -17,6 +17,7 @@
* (at your option) any later version.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/hardirq.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c.orig 2012-02-05 16:10:35.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/if_usb.c 2012-02-06 11:53:01.632278130 -0500
@@ -2,6 +2,7 @@
* This file contains functions used in USB interface module.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/delay.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/main.c 2012-02-06 11:53:01.632278130 -0500
@@ -4,6 +4,7 @@
* thread etc..
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/mesh.c 2012-02-06 11:53:01.633278118 -0500
@@ -1,3 +1,4 @@
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/delay.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c.orig 2012-02-05 16:10:35.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas/rx.c 2012-02-06 11:53:01.633278118 -0500
@@ -2,6 +2,7 @@
* This file contains the handling of RX in wlan driver.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/etherdevice.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c.orig 2012-02-05 16:10:36.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/cmd.c 2012-02-06 11:53:01.633278118 -0500
@@ -7,6 +7,7 @@
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/hardirq.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c.orig 2012-02-05 16:10:36.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/if_usb.c 2012-02-06 11:53:01.634278106 -0500
@@ -9,6 +9,7 @@
*/
#define DRV_NAME "lbtf_usb"
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include "libertas_tf.h"
diff -up compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c.orig compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c
--- compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/libertas_tf/main.c 2012-02-06 11:53:01.634278106 -0500
@@ -7,6 +7,7 @@
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/hardirq.h>
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/base.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/base.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/cam.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/cam.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/usb.c.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/usb.c
diff -up compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h.orig compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h
--- compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h.orig 2012-02-06 11:53:38.798813484 -0500
+++ compat-wireless-2012-02-05/drivers/net/wireless/rtlwifi/wifi.h 2012-02-06 11:53:47.489704835 -0500
@@ -30,6 +30,7 @@
#ifndef __RTL_WIFI_H__
#define __RTL_WIFI_H__
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/sched.h>
diff -up compat-wireless-2012-02-05/net/wireless/core.c.orig compat-wireless-2012-02-05/net/wireless/core.c
--- compat-wireless-2012-02-05/net/wireless/core.c.orig 2012-02-05 16:10:38.000000000 -0500
+++ compat-wireless-2012-02-05/net/wireless/core.c 2012-02-06 11:53:01.640278030 -0500
@@ -4,6 +4,7 @@
* Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/if.h>
diff -up compat-wireless-2012-02-05/net/wireless/lib80211.c.orig compat-wireless-2012-02-05/net/wireless/lib80211.c
--- compat-wireless-2012-02-05/net/wireless/lib80211.c.orig 2012-02-05 16:10:31.000000000 -0500
+++ compat-wireless-2012-02-05/net/wireless/lib80211.c 2012-02-06 11:53:01.640278030 -0500
@@ -13,6 +13,7 @@
*
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
diff -up compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c.orig compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c
--- compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c.orig 2012-02-05 16:10:31.000000000 -0500
+++ compat-wireless-2012-02-05/net/wireless/lib80211_crypt_tkip.c 2012-02-06 11:53:01.641278018 -0500
@@ -10,6 +10,7 @@
* more details.
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/err.h>
diff -up compat-wireless-2012-02-05/net/wireless/reg.c.orig compat-wireless-2012-02-05/net/wireless/reg.c
--- compat-wireless-2012-02-05/net/wireless/reg.c.orig 2012-02-05 16:10:31.000000000 -0500
+++ compat-wireless-2012-02-05/net/wireless/reg.c 2012-02-06 11:53:01.641278018 -0500
@@ -42,6 +42,7 @@
*
*/
+#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
diff -up compat-wireless-2012-02-05/patches/98-pr_fmt.patch.orig compat-wireless-2012-02-05/patches/98-pr_fmt.patch
--- compat-wireless-2012-02-05/patches/98-pr_fmt.patch.orig 2012-02-06 11:53:01.641278018 -0500
+++ compat-wireless-2012-02-05/patches/98-pr_fmt.patch 2012-02-06 11:53:01.641278018 -0500
@@ -0,0 +1,346 @@
+The way the compat-* header files are included causes the default
+pr_fmt definition from <linux/kernel.h> to be evaluated for every file.
+Files that define pr_fmt then generate a lot of build SPAM about
+pr_fmt being redefined.
+
+Eliminate the build noise by preemptively undefining pr_fmt in those
+files that define it.
+
+diff -up compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt compat-wireless-3.2-rc1-1/compat/crc8.c
+--- compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt 2011-11-18 15:08:04.497812086 -0500
++++ compat-wireless-3.2-rc1-1/compat/crc8.c 2011-11-18 15:20:09.450522691 -0500
+@@ -14,6 +14,7 @@
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/module.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h
+--- compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt 2011-11-18 15:08:04.522323679 -0500
++++ compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h 2011-11-18 15:20:09.451522757 -0500
+@@ -1,6 +1,7 @@
+ #ifndef LINUX_BCMA_PRIVATE_H_
+ #define LINUX_BCMA_PRIVATE_H_
+
++#undef pr_fmt
+ #ifndef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ #endif
+diff -up compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c
+--- compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt 2011-11-18 15:08:04.529757401 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c 2011-11-18 15:20:09.453522618 -0500
+@@ -10,6 +10,7 @@
+ * Distribute under GPL.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/kernel.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt 2011-11-18 15:08:04.531811389 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c 2011-11-18 15:20:09.455522411 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/kernel.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt 2011-11-18 15:08:04.533811528 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c 2011-11-18 15:20:09.456520247 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/kernel.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c 2011-11-18 15:20:09.456520247 -0500
+@@ -6,6 +6,7 @@
+ *
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/hardirq.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c 2011-11-18 15:20:09.457520945 -0500
+@@ -21,6 +21,7 @@
+
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/module.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt 2011-11-18 15:08:04.535829198 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c 2011-11-18 15:20:09.457520945 -0500
+@@ -26,6 +26,7 @@
+ * if_sdio_card_to_host() to pad the data.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/kernel.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c 2011-11-18 15:20:09.457520945 -0500
+@@ -17,6 +17,7 @@
+ * (at your option) any later version.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/hardirq.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c 2011-11-18 15:20:09.458521084 -0500
+@@ -2,6 +2,7 @@
+ * This file contains functions used in USB interface module.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/delay.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c 2011-11-18 15:20:09.458521084 -0500
+@@ -4,6 +4,7 @@
+ * thread etc..
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/module.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c 2011-11-18 15:20:09.458521084 -0500
+@@ -1,3 +1,4 @@
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/delay.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt 2011-11-18 15:08:04.538812017 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c 2011-11-18 15:20:09.459520455 -0500
+@@ -2,6 +2,7 @@
+ * This file contains the handling of RX in wlan driver.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/etherdevice.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt 2011-11-18 15:08:04.544819700 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c 2011-11-18 15:20:09.459520455 -0500
+@@ -7,6 +7,7 @@
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ */
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/hardirq.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c 2011-11-18 15:20:09.459520455 -0500
+@@ -9,6 +9,7 @@
+ */
+ #define DRV_NAME "lbtf_usb"
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include "libertas_tf.h"
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c 2011-11-18 15:20:09.459520455 -0500
+@@ -7,6 +7,7 @@
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ */
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/hardirq.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt 2011-11-18 15:08:04.565011903 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c 2011-11-18 15:20:55.315644844 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/ip.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c 2011-11-18 15:20:55.322652946 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/export.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2011-11-18 15:20:55.334647078 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/firmware.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2011-11-18 15:20:55.341625637 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include "../wifi.h"
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2011-11-18 15:20:55.342644635 -0500
+@@ -27,6 +27,7 @@
+ *
+ ****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/module.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt 2011-11-18 15:08:04.568814042 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2011-11-18 15:20:55.350617325 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/vmalloc.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt 2011-11-18 15:08:04.569828848 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-11-18 15:20:55.358645682 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include "../wifi.h"
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt 2011-11-18 15:08:04.570818023 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2011-11-18 15:20:55.365635904 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include "../wifi.h"
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2011-11-18 15:20:55.371549230 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include "../wifi.h"
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2011-11-18 15:20:55.379720621 -0500
+@@ -27,6 +27,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/vmalloc.h>
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt 2011-11-18 15:08:04.572718638 -0500
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c 2011-11-18 15:20:55.389173129 -0500
+@@ -25,6 +25,7 @@
+ *
+ *****************************************************************************/
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/usb.h>
+diff -up compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/core.c
+--- compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500
++++ compat-wireless-3.2-rc1-1/net/wireless/core.c 2011-11-18 15:20:55.395647078 -0500
+@@ -4,6 +4,7 @@
+ * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/if.h>
+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211.c
+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500
++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211.c 2011-11-18 15:20:55.405646450 -0500
+@@ -13,6 +13,7 @@
+ *
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/module.h>
+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c
+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt 2011-11-18 15:08:04.574811667 -0500
++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c 2011-11-18 15:20:55.406648475 -0500
+@@ -10,6 +10,7 @@
+ * more details.
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/err.h>
+diff -up compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/reg.c
+--- compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt 2011-11-18 15:08:04.575716473 -0500
++++ compat-wireless-3.2-rc1-1/net/wireless/reg.c 2011-11-18 15:20:55.408647986 -0500
+@@ -33,6 +33,7 @@
+ *
+ */
+
++#undef pr_fmt
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+ #include <linux/kernel.h>

View File

@ -1,62 +1,130 @@
# Generic ARM config. This is common config options that should be
# enabled on all ARM kernels and hence should be added here
#
# FIXME - we need to add debug/nodebug generic build options
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# Generic ARM processor options
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_SMP is not set
# CONFIG_CMDLINE_FORCE is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_ARCH_VERSATILE=y
CONFIG_ARCH_VERSATILE_PB=y
CONFIG_MACH_VERSATILE_AB=y
CONFIG_MACH_VERSATILE_DT=y
CONFIG_HIGHMEM=y
# CONFIG_HIGHPTE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
CONFIG_ZBOOT_ROM_TEXT=0
CONFIG_ZBOOT_ROM_BSS=0
# CONFIG_XIP_KERNEL is not set
CONFIG_ATAGS_PROC=y
# CONFIG_FPE_NWFPE is not set
CONFIG_FPE_FASTFPE=y
CONFIG_VFP=y
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_TRACE is not set
CONFIG_SUSPEND=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_APM_EMULATION=y
CONFIG_ARM_THUMB=y
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
CONFIG_VFP=y
CONFIG_ARM_UNWIND=y
# CONFIG_ARCH_MULTI_V7 is not set
# CONFIG_OABI_COMPAT is not set
# CONFIG_UACCESS_WITH_MEMCPY is not set
CONFIG_SMP=y
CONFIG_NR_CPUS=4
CONFIG_SMP_ON_UP=y
CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/sda1 rootdelay=20"
CONFIG_ARM_ARCH_TIMER=y
CONFIG_CMDLINE=""
# CONFIG_ARM_LPAE is not set
# CONFIG_FPE_NWFPE is not set
CONFIG_FPE_FASTFPE=y
CONFIG_HIGHPTE=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_UACCESS_WITH_MEMCPY=y
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
# Generic ARM Errata
CONFIG_ARM_ERRATA_720789=y
CONFIG_ARM_ERRATA_751472=y
CONFIG_ARM_ERRATA_742230=y
CONFIG_ARM_ERRATA_742231=y
CONFIG_ARM_ERRATA_754327=y
CONFIG_ARM_ERRATA_764369=y
CONFIG_ARM_ERRATA_775420=y
CONFIG_PL310_ERRATA_753970=y
# Generic ARM config options
CONFIG_ZBOOT_ROM_TEXT=0
CONFIG_ZBOOT_ROM_BSS=0
CONFIG_LOCAL_TIMERS=y
CONFIG_ATAGS=y
CONFIG_ATAGS_PROC=y
CONFIG_PL330_DMA=y
CONFIG_AMBA_PL08X=y
CONFIG_PL330_DMA=y
# CONFIG_XIP_KERNEL is not set
# CONFIG_PID_IN_CONTEXTIDR is not set
# Generic options we want for ARM that aren't defualt
CONFIG_EARLY_PRINTK=y
CONFIG_HIGHMEM=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_RCU_FANOUT=32
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_CPU_IDLE is not set
CONFIG_PM=y
CONFIG_PM_STD_PARTITION=""
CONFIG_SUSPEND=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=32768
CONFIG_MTD_AFS_PARTS=y
CONFIG_MTD_ARM_INTEGRATOR=y
CONFIG_MTD_IMPA7=y
# CONFIG_XEN is not set
CONFIG_PINCTRL=y
CONFIG_PINCONF=y
CONFIG_COMMON_CLK=y
CONFIG_THERMAL=y
CONFIG_ETHERNET=y
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
CONFIG_CC_STACKPROTECTOR=y
CONFIG_SECCOMP=y
CONFIG_STRICT_DEVMEM=y
CONFIG_SPARSE_IRQ=y
# Generic HW for all ARM platforms
CONFIG_LEDS_GPIO=m
CONFIG_LBDAF=y
CONFIG_GPIOLIB=y
CONFIG_RFKILL_GPIO=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_PINCTRL_SINGLE=m
CONFIG_POWER_RESET_GPIO=y
CONFIG_USB_ULPI=y
CONFIG_SND_ARM=y
CONFIG_SND_ARMAACI=m
CONFIG_SND_SOC=m
CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_SIMPLE_CARD=m
# CONFIG_SND_SOC_CACHE_LZO is not set
CONFIG_SND_SOC_ALL_CODECS=m
CONFIG_SND_SPI=y
CONFIG_AX88796=m
CONFIG_AX88796_93CX6=y
@ -68,104 +136,317 @@ CONFIG_SMC911X=m
CONFIG_SMSC911X=m
CONFIG_SERIO_AMBAKMI=m
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_I2C_VERSATILE=y
CONFIG_THERMAL=y
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
CONFIG_I2C_NOMADIK=m
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_FB_ARMCLCD=m
CONFIG_SND_ARM=y
CONFIG_SND_ARMAACI=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_CACHE_LZO is not set
# CONFIG_SND_SOC_ALL_CODECS is not set
CONFIG_USB_MUSB_HDRC=y
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_TUSB6010=y
# CONFIG_USB_MUSB_DEBUG is not set
CONFIG_FB_SSD1307=m
CONFIG_MPCORE_WATCHDOG=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_MMC_ARMMMCI=m
CONFIG_MMC_DW=m
# CONFIG_MMC_DW_IDMAC is not set
CONFIG_RTC_DRV_PL030=m
CONFIG_RTC_DRV_PL031=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_LL is not set
CONFIG_ARM_UNWIND=y
CONFIG_RCU_FANOUT=32
# CONFIG_USB_ULPI is not set
# CONFIG_OC_ETM is not set
# CONFIG_MTD_PISMO is not set
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
# CONFIG_MG_DISK is not set
# CONFIG_GPIO_PL061 is not set
CONFIG_CC_STACKPROTECTOR=y
CONFIG_AUTO_ZRELADDR=y
# CONFIG_ARM_CHARLCD is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# CONFIG_ARM_SP805_WATCHDOG is not set
CONFIG_PM_OPP=y
CONFIG_SECCOMP=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_AMBA_PL08X is not set
# CONFIG_HVC_DCC is not set
CONFIG_SPARSE_IRQ=y
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
CONFIG_HWSPINLOCK_OMAP=m
CONFIG_USE_OF=y
CONFIG_PROC_DEVICETREE=y
CONFIG_MTD_PHYSMAP_OF=m
CONFIG_SERIAL_OF_PLATFORM=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SPI=m
CONFIG_MMC_DW=m
CONFIG_MMC_DW_PLTFM=m
CONFIG_MMC_DW_PCI=m
# CONFIG_MMC_DW_EXYNOS is not set
# CONFIG_MMC_DW_IDMAC is not set
CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_PXAV2=m
CONFIG_ARM_APPENDED_DTB=y
CONFIG_MTD_OF_PARTS=y
CONFIG_PL330_DMA=y
# CONFIG_ARM_KPROBES_TEST is not set
# CONFIG_ARM_ATAG_DTB_COMPAT is not set
# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set
# CONFIG_FTGMAC100 is not set
# CONFIG_FTMAC100 is not set
#
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=32768
CONFIG_SPI=y
# Generic GPIO options
CONFIG_GENERIC_GPIO=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_AFS_PARTS is not set
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_MTD_AR7_PARTS is not set
CONFIG_MTD_CFI=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_CFI_UTIL=y
CONFIG_MTD_DOC2000=m
CONFIG_MTD_DOC2001=m
CONFIG_MTD_DOC2001PLUS=m
# CONFIG_MTD_DOCPROBE_ADVANCED is not set
CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_IMPA7=m
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_M25P80=m
CONFIG_M25PXX_USE_FAST_READ=y
CONFIG_MTD_NAND=m
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_IDS=m
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_DENALI is not set
# CONFIG_MTD_NAND_DOCG4 is not set
CONFIG_MTD_NAND_GPIO=m
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_NAND_NANDSIM is not set
CONFIG_MTD_NAND_ORION=m
# CONFIG_MTD_NAND_RICOH is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_OTP is not set
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_PLATRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_DATAFLASH=m
CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
CONFIG_MTD_DATAFLASH_OTP=y
CONFIG_MTD_SST25L=m
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=1
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_DEBUG is not set
CONFIG_MG_DISK=m
CONFIG_MG_DISK_RES=0
# CONFIG_SM_FTL is not set
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_UBIFS_FS=m
CONFIG_UBIFS_FS_XATTR=y
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_FS_DEBUG is not set
# HW crypto and rng
CONFIG_CRYPTO_SHA1_ARM=m
CONFIG_CRYPTO_AES_ARM=m
CONFIG_HW_RANDOM_ATMEL=m
CONFIG_HW_RANDOM_EXYNOS=m
# Device tree
CONFIG_DTC=y
CONFIG_OF=y
CONFIG_USE_OF=y
CONFIG_OF_DEVICE=y
CONFIG_OF_IRQ=y
CONFIG_OF_GPIO=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_PROC_DEVICETREE=y
# CONFIG_OF_SELFTEST is not set
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_OF_GPIO=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_OF_MDIO=m
CONFIG_MDIO_BUS_MUX_GPIO=m
CONFIG_MDIO_BUS_MUX_MMIOREG=m
CONFIG_BPF_JIT=y
CONFIG_RCU_FANOUT_LEAF=16
CONFIG_EDAC=y
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_RTC_DRV_88PM80X=m
CONFIG_RTC_DRV_DS1305=m
CONFIG_RTC_DRV_DS1390=m
CONFIG_RTC_DRV_DS3234=m
CONFIG_RTC_DRV_M41T93=m
CONFIG_RTC_DRV_M41T94=m
CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_MC13XXX=m
CONFIG_RTC_DRV_PCF2123=m
CONFIG_RTC_DRV_PL030=m
CONFIG_RTC_DRV_PL031=m
CONFIG_RTC_DRV_R9701=m
CONFIG_RTC_DRV_RS5C348=m
CONFIG_RTC_DRV_SNVS=m
CONFIG_RFKILL_REGULATOR=m
CONFIG_INPUT_88PM80X_ONKEY=y
CONFIG_INPUT_GP2A=m
CONFIG_INPUT_GPIO_TILT_POLLED=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_SERIAL_AMBA_PL010=m
CONFIG_SERIAL_AMBA_PL011=m
CONFIG_SERIAL_MAX3100=m
CONFIG_SERIAL_MAX310X=y
CONFIG_SERIAL_IFX6X60=m
CONFIG_GPIO_74X164=m
CONFIG_GPIO_ADNP=m
CONFIG_GPIO_ARIZONA=m
CONFIG_GPIO_MAX7301=m
CONFIG_GPIO_MC33880=m
CONFIG_GPIO_MCP23S08=m
CONFIG_GPIO_PL061=y
CONFIG_SPI_ALTERA=m
CONFIG_SPI_BITBANG=m
CONFIG_SPI_BUTTERFLY=m
CONFIG_SPI_DW_MMIO=m
CONFIG_SPI_GPIO=m
CONFIG_SPI_LM70_LLP=m
CONFIG_SPI_OC_TINY=m
CONFIG_SPI_PL022=m
CONFIG_SPI_SC18IS602=m
CONFIG_SPI_XCOMM=m
CONFIG_SPI_XILINX=m
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_TLE62X0=m
CONFIG_BMP085_SPI=m
CONFIG_BMP085_SPI=m
CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_93XX46=m
CONFIG_KS8851=m
CONFIG_MICREL_KS8995MA=m
CONFIG_LIBERTAS_SPI=m
CONFIG_P54_SPI=m
CONFIG_P54_SPI_DEFAULT_EEPROM=y
CONFIG_MFD_CORE=m
CONFIG_MFD_88PM800=m
CONFIG_MFD_88PM805=m
CONFIG_MFD_ARIZONA_SPI=m
CONFIG_MFD_MC13XXX_SPI=m
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WM5102 is not set
# CONFIG_MFD_WM5110 is not set
# CONFIG_MFD_TPS65912_SPI is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_MAX8907 is not set
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
# CONFIG_REGULATOR_DUMMY is not set
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ANATOP=m
CONFIG_REGULATOR_ARIZONA=m
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
CONFIG_REGULATOR_MAX8660=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8973=m
CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_CHARGER_MANAGER=y
CONFIG_EXTCON_GPIO=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_LIS3_SPI=m
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_MRF24J40=m
# CONFIG_ARM_VIRT_EXT is not set
# CONFIG_PINCTRL_EXYNOS4 is not set
# CONFIG_PINCTRL_EXYNOS5440 is not set
# CONFIG_AUTO_ZRELADDR is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_VFIO is not set
# CONFIG_XIP_KERNEL is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_APM_EMULATION is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# CONFIG_SERIAL_8250_EM is not set
# CONFIG_GPIO_EM is not set
# CONFIG_HVC_DCC is not set
# CONFIG_LEDS_RENESAS_TPU is not set
CONFIG_LEDS_DAC124S085=m
CONFIG_LEDS_MC13783=m
# CONFIG_VIRTIO_CONSOLE is not set
# Possibly part of Snowball
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_IRQ_DOMAIN_DEBUG is not set
# CONFIG_COMMON_CLK_DEBUG is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_LL is not set
# CONFIG_ARM_KPROBES_TEST is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_DEBUG_PINCTRL is not set
# HW Disabled because it causes issues on ARM platforms
# disable TPM on arm at least on the trimslices it causes havoc
# CONFIG_TCG_TPM is not set
# CONFIG_IMA is not set
# ERROR: "__bswapsi2" [drivers/staging/crystalhd/crystalhd.ko] undefined!
@ -179,6 +460,7 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_DRM_RADEON is not set
# CONFIG_ATM_HE is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SFC is not set
# these all currently fail due to missing symbols __bad_udelay or
# error: implicit declaration of function iowrite32be
@ -186,26 +468,40 @@ CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_MLX4_EN is not set
CONFIG_TOUCHSCREEN_ADS7846=m
CONFIG_TOUCHSCREEN_AD7877=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_MC13783=m
# drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX is not set
#
# FIXME: Guesses, need checking
# CONFIG_MACH_EUKREA_CPUIMX35SD is not set
CONFIG_ARM_ERRATA_720789=y
CONFIG_ARM_ERRATA_751472=y
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
# CONFIG_PANEL_ACX565AKM is not set
# CONFIG_PANEL_N8X0 is not set
# CONFIG_LCD_L4F00242T03 is not set
# CONFIG_LCD_LMS283GF05 is not set
# CONFIG_LCD_LTV350QV is not set
# CONFIG_LCD_ILI9320 is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
# CONFIG_LCD_S6E63M0 is not set
# CONFIG_LCD_LD9040 is not set
# CONFIG_LCD_AMS369FG06 is not set
# CONFIG_FB_MX3 is not set
# CONFIG_MX3_IPU is not set
# CONFIG_MX3_IPU_IRQS is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_CS89x0 is not set
# CONFIG_DVB_USB_PCTV452E is not set
# CONFIG_PINCTRL_EXYNOS is not set
# CONFIG_OF_SELFTEST is not set
# CONFIG_MACH_IMX51_DT is not set
# CONFIG_MACH_IMX53_DT is not set
# CONFIG_MACH_MX53_EVK is not set
# CONFIG_MACH_MX53_SMD is not set
# CONFIG_MACH_MX53_LOCO is not set
# CONFIG_MACH_MX53_ARD is not set
# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_EXTCON_ARIZONA is not set

View File

@ -1,16 +0,0 @@
ONFIG_ARCH_HIGHBANK=y
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEBUG=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y

View File

@ -1,104 +0,0 @@
CONFIG_ARCH_MXC=y
CONFIG_ARCH_MX51=y
CONFIG_MACH_MX51_BABBAGE=y
CONFIG_MACH_MX51_3DS=y
CONFIG_MACH_EUKREA_CPUIMX51=y
CONFIG_VFP=y
CONFIG_NEON=y
CONFIG_MACH_EUKREA_CPUIMX51SD=y
CONFIG_MACH_MX51_EFIKAMX=y
CONFIG_MACH_MX51_EFIKASB=y
# CONFIG_SWP_EMULATE is not set
# CONFIG_THUMB2_KERNEL is not set
CONFIG_CPU_FREQ_IMX=y
CONFIG_W1_MASTER_MXC=m
CONFIG_IMX_SDMA=y
CONFIG_MACH_MX31ADS=y
CONFIG_MACH_MX31LILLY=y
CONFIG_MACH_MX31LITE=y
CONFIG_MACH_PCM037=y
CONFIG_MACH_MX31_3DS=y
CONFIG_MACH_MX31MOBOARD=y
CONFIG_MACH_QONG=y
CONFIG_MACH_ARMADILLO5X0=y
CONFIG_MACH_KZM_ARM11_01=y
CONFIG_MACH_BUG=y
CONFIG_MACH_PCM043=y
CONFIG_MACH_MX35_3DS=y
CONFIG_MACH_EUKREA_CPUIMX35=y
CONFIG_MACH_VPR200=y
CONFIG_SOC_IMX6Q=y
CONFIG_MXC_IRQ_PRIOR=y
CONFIG_MXC_PWM=m
CONFIG_MXC_DEBUG_BOARD=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_CACHE_L2X0=y
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_ARM_ERRATA_411920=y
CONFIG_PL310_ERRATA_588369=y
CONFIG_PL310_ERRATA_727915=y
CONFIG_ARM_ERRATA_364296=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_RFKILL_GPIO=m
CONFIG_PATA_IMX=m
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_FREESCALE=y
CONFIG_FEC=y
CONFIG_KEYBOARD_IMX=m
CONFIG_SERIAL_IMX=y
CONFIG_HW_RANDOM_MXC_RNGA=m
CONFIG_I2C_IMX=m
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_MCP23S08=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_PLL=m
CONFIG_SND_IMX_SOC=m
CONFIG_USB_EHCI_MXC=y
# CONFIG_USB_IMX21_HCD is not set
CONFIG_MMC_SDHCI_ESDHC_IMX=m
CONFIG_MMC_MXC=m
CONFIG_RTC_MXC=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_LEDS_PWM=m
CONFIG_MACH_PCM037_EET=y
# CONFIG_MACH_MX31_3DS_MXC_NAND_USE_BBT is not set
CONFIG_MXC_USE_EPIT=y
CONFIG_ARM_THUMBEE=y
CONFIG_ARM_ERRATA_430973=y
CONFIG_ARM_ERRATA_458693=y
CONFIG_ARM_ERRATA_460075=y
CONFIG_ARM_ERRATA_743622=y
CONFIG_ARM_ERRATA_754322=y
CONFIG_CAN_FLEXCAN=m
CONFIG_MTD_NAND_MXC=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_SERIAL_IMX_CONSOLE=y
CONFIG_IMX2_WDT=m
CONFIG_SND_SOC_PHYCORE_AC97=m
CONFIG_SND_SOC_EUKREA_TLV320=m
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEBUG=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_PL310_ERRATA_769419=y
CONFIG_LEDS_RENESAS_TPU=y
# CONFIG_ARM_LPAE is not set
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_TILT_POLLED is not set

View File

@ -1,26 +1,48 @@
CONFIG_ARCH_KIRKWOOD=y
CONFIG_ARCH_KIRKWOOD_DT=y
# CONFIG_SMP is not set
# CONFIG_VFP is not set
CONFIG_MACH_D2NET_V2=y
CONFIG_MACH_DB88F6281_BP=y
CONFIG_MACH_RD88F6192_NAS=y
CONFIG_MACH_RD88F6281=y
CONFIG_MACH_MV88F6281GTW_GE=y
CONFIG_MACH_SHEEVAPLUG=y
CONFIG_MACH_ESATA_SHEEVAPLUG=y
CONFIG_MACH_GURUPLUG=y
CONFIG_MACH_DOCKSTAR=y
CONFIG_MACH_TS219=y
CONFIG_MACH_TS41X=y
CONFIG_MACH_DOCKSTAR_DT=y
CONFIG_MACH_DREAMPLUG_DT=y
CONFIG_MACH_ESATA_SHEEVAPLUG=y
CONFIG_MACH_DLINK_KIRKWOOD_DT=y
CONFIG_MACH_GOFLEXNET_DT=y
CONFIG_MACH_GURUPLUG=y
CONFIG_MACH_GURUPLUG_DT=y
CONFIG_MACH_ICONNECT_DT=y
CONFIG_MACH_IB62X0_DT=y
CONFIG_MACH_INETSPACE_V2=y
CONFIG_MACH_INETSPACE_V2_DT=y
CONFIG_MACH_IOMEGA_IX2_200_DT=y
CONFIG_MACH_KM_KIRKWOOD_DT=y
CONFIG_MACH_LSXL_DT=y
CONFIG_MACH_MPLCEC4_DT=y
CONFIG_MACH_MV88F6281GTW_GE=y
CONFIG_MACH_NETSPACE_LITE_V2_DT=y
CONFIG_MACH_NETSPACE_MAX_V2=y
CONFIG_MACH_NETSPACE_MAX_V2_DT=y
CONFIG_MACH_NETSPACE_MINI_V2_DT=y
CONFIG_MACH_NETSPACE_V2=y
CONFIG_MACH_NETSPACE_V2_DT=y
CONFIG_MACH_NET2BIG_V2=y
CONFIG_MACH_NET5BIG_V2=y
CONFIG_MACH_NSA310_DT=y
CONFIG_MACH_OPENBLOCKS_A6_DT=y
CONFIG_MACH_OPENRD_BASE=y
CONFIG_MACH_OPENRD_CLIENT=y
CONFIG_MACH_OPENRD_ULTIMATE=y
CONFIG_MACH_NETSPACE_V2=y
CONFIG_MACH_INETSPACE_V2=y
CONFIG_MACH_NETSPACE_MAX_V2=y
CONFIG_MACH_D2NET_V2=y
CONFIG_MACH_NET2BIG_V2=y
CONFIG_MACH_NET5BIG_V2=y
CONFIG_MACH_RD88F6192_NAS=y
CONFIG_MACH_RD88F6281=y
CONFIG_MACH_SHEEVAPLUG=y
CONFIG_MACH_TOPKICK_DT=y
CONFIG_MACH_TS219=y
CONFIG_MACH_TS219_DT=y
CONFIG_MACH_TS41X=y
CONFIG_MACH_T5325=y
# CONFIG_CPU_FEROCEON_OLD_ID is not set
CONFIG_CACHE_FEROCEON_L2=y
CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH=y
@ -36,11 +58,29 @@ CONFIG_SND_KIRKWOOD_SOC_T5325=m
CONFIG_MMC_MVSDIO=m
CONFIG_LEDS_NS2=m
CONFIG_LEDS_NETXBIG=m
CONFIG_RTC_DRV_MV=m
CONFIG_RTC_DRV_MV=y
CONFIG_MV_XOR=y
CONFIG_CRYPTO_DEV_MV_CESA=m
# CONFIG_PINCTRL_EXYNOS is not set
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_KIRKWOOD=y
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_CPU_IDLE_KIRKWOOD is not set
CONFIG_POWER_RESET_QNAP=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_KIRKWOOD_THERMAL=m
CONFIG_REGULATOR_LP8755=m
# CONFIG_DRM_TILCDC is not set
CONFIG_OF_DISPLAY_TIMING=y
CONFIG_OF_VIDEOMODE=y
CONFIG_SND_ATMEL_SOC=m
# CONFIG_CPU_FEROCEON_OLD_ID is not set
# CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
# CONFIG_HIGHPTE is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_EDAC is not set
# CONFIG_SPI is not set
CONFIG_FB_XGI=m

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,47 @@
CONFIG_ARCH_TEGRA=y
CONFIG_MACH_HARMONY=y
CONFIG_ARCH_TEGRA_2x_SOC=y
# CONFIG_ARCH_TEGRA_3x_SOC is not set
# CONFIG_ARM_LPAE is not set
CONFIG_VFP=y
CONFIG_VFPv3=y
# CONFIG_MACH_HARMONY is not set
CONFIG_MACH_KAEN=y
CONFIG_MACH_PAZ00=y
CONFIG_MACH_SEABOARD=y
CONFIG_MACH_TEGRA_DT=y
CONFIG_MACH_TRIMSLICE=y
CONFIG_MACH_WARIO=y
CONFIG_MACH_TEGRA_DT=y
CONFIG_MACH_VENTANA=y
CONFIG_TEGRA_DEBUG_UARTD=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_I2C_TEGRA=y
CONFIG_TEGRA_PCI=y
CONFIG_TEGRA_IOMMU_GART=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_I2C_TEGRA=m
# This block is temporary until we work out why the MMC modules don't work as modules
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF=y
CONFIG_MMC_SPI=y
CONFIG_MMC_SDHCI_TEGRA=y
# CONFIG_RCU_BOOST is not set
CONFIG_TEGRA_SYSTEM_DMA=y
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
CONFIG_TEGRA_AHB=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_SPI_TEGRA20_SFLASH=m
CONFIG_SPI_TEGRA20_SLINK=m
CONFIG_ARM_THUMBEE=y
CONFIG_SWP_EMULATE=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
@ -43,62 +61,66 @@ CONFIG_ARM_ERRATA_720789=y
# CONFIG_ARM_ERRATA_754322 is not set
# CONFIG_ARM_ERRATA_754327 is not set
# CONFIG_ARM_ERRATA_764369 is not set
CONFIG_SMP_ON_UP=y
CONFIG_LOCAL_TIMERS=y
# CONFIG_THUMB2_KERNEL is not set
CONFIG_HW_PERF_EVENTS=y
# CONFIG_NEON is not set
# CONFIG_RFKILL_GPIO is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_MCP23S08 is not set
CONFIG_KEYBOARD_TEGRA=y
# CONFIG_MPCORE_WATCHDOG is not set
# CONFIG_KEYBOARD_TEGRA is not set
CONFIG_PINCTRL_TEGRA=y
CONFIG_PINCTRL_TEGRA20=y
CONFIG_USB_EHCI_TEGRA=y
CONFIG_RTC_DRV_TEGRA=m
CONFIG_RTC_DRV_TEGRA=y
CONFIG_SND_SOC_TEGRA=m
CONFIG_SND_SOC_TEGRA_ALC5632=m
CONFIG_SND_SOC_TEGRA_WM8753=m
CONFIG_SND_SOC_TEGRA_WM8903=m
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
CONFIG_SND_SOC_TEGRA30_AHUB=m
CONFIG_SND_SOC_TEGRA30_I2S=m
CONFIG_MFD_NVEC=y
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
# CONFIG_PREEMPT_TRACER is not set
# AC100 (PAZ00)
# CONFIG_MFD_NVEC is not set
CONFIG_MFD_TPS80031=y
CONFIG_KEYBOARD_NVEC=y
CONFIG_SERIO_NVEC_PS2=y
CONFIG_NVEC_POWER=y
CONFIG_POWER_SUPPLY=y
CONFIG_NVEC_LEDS=y
CONFIG_NVEC_PAZ00=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEBUG=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_MFD_TPS6586X is not set
# CONFIG_RTC_DRV_TPS6586X is not set
CONFIG_CRYSTALHD=m
CONFIG_PWM_TEGRA=m
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
CONFIG_CMA_SIZE_MBYTES=16
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_DRM_TEGRA=m
CONFIG_CPU_PM=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_CRYPTO_DEV_TEGRA_AES=m
CONFIG_MACH_VENTANA=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_LEDS_RENESAS_TPU=y
# CONFIG_ARCH_TEGRA_2x_SOC is not set
# CONFIG_ARCH_TEGRA_3x_SOC is not set
# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set
# CONFIG_ETHERNET is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
# CONFIG_DVB_TDA1004X is not set
# CONFIG_DVB_PLL is not set
# CONFIG_SND_SOC_TEGRA_ALC5632 is not set
CONFIG_OF=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_OF_GPIO=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
# CONFIG_DRM_TEGRA_DEBUG is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_SPI_TOPCLIFF_PCH is not set
# CONFIG_SPI_DW_PCI is not set

501
config-armv7 Normal file
View File

@ -0,0 +1,501 @@
# ARM unified arch kernel
CONFIG_CPU_V7=y
# CONFIG_ARCH_MULTI_V4 is not set
# CONFIG_ARCH_MULTI_V4T is not set
# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V6_V7=y
CONFIG_ARCH_MULTI_V7=y
# This is V6 so we'll eventually support it in v5 unified kernels
# CONFIG_ARCH_BCM is not set
CONFIG_ARCH_HIGHBANK=y
CONFIG_ARCH_MVEBU=y
# CONFIG_ARCH_MXC is not set
CONFIG_ARCH_OMAP2PLUS=y
CONFIG_ARCH_PICOXCELL=y
CONFIG_ARCH_SOCFPGA=y
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_VEXPRESS_CA9X4=y
CONFIG_ARCH_VEXPRESS_DT=y
CONFIG_ARCH_VIRT=y
# CONFIG_ARCH_WM8850 is not set
CONFIG_ARCH_ZYNQ=y
# These are supported in the LPAE kernel
# CONFIG_ARM_LPAE is not set
# CONFIG_XEN is not set
# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_ARM_VIRT_EXT is not set
# highbank
# 2013/04/19 - stability issues
# CONFIG_CPU_IDLE_CALXEDA is not set
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_SATA_HIGHBANK=m
CONFIG_ARM_HIGHBANK_CPUFREQ=m
# versatile
CONFIG_VEXPRESS_CONFIG=y
CONFIG_FB=y
CONFIG_FB_ARMCLCD=m
CONFIG_FB_CFB_COPYAREA=m
CONFIG_FB_CFB_FILLRECT=m
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_TOUCHSCREEN_ADS7846=m
CONFIG_OC_ETM=y
CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
# mvebu
CONFIG_MACH_ARMADA_370_XP=y
CONFIG_MACH_ARMADA_370=y
CONFIG_MACH_ARMADA_XP=y
CONFIG_CACHE_TAUROS2=y
CONFIG_MV_XOR=y
CONFIG_CRYPTO_DEV_MV_CESA=m
CONFIG_MV643XX_ETH=m
CONFIG_I2C_MV64XXX=m
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_ARMADA_370=y
CONFIG_PINCTRL_ARMADA_XP=y
CONFIG_PINCTRL_DOVE=y
CONFIG_EDAC_MV64X60=m
CONFIG_RTC_DRV_S35390A=m
CONFIG_RTC_DRV_88PM80X=m
CONFIG_RTC_DRV_MV=m
CONFIG_MVNETA=m
CONFIG_GPIO_MVEBU=y
CONFIG_MVEBU_CLK_CORE=y
CONFIG_MVEBU_CLK_GATING=y
CONFIG_MMC_MVSDIO=m
CONFIG_SPI_ORION=m
CONFIG_USB_MV_UDC=m
# omap
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
# CONFIG_ARCH_OMAP2 is not set
CONFIG_ARCH_OMAP3=y
CONFIG_ARCH_OMAP4=y
# CONFIG_SOC_OMAP5 is not set
# CONFIG_SOC_OMAP2420 is not set
# CONFIG_SOC_OMAP2430 is not set
CONFIG_SOC_OMAP3430=y
CONFIG_SOC_TI81XX=y
CONFIG_SOC_AM33XX=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_MACH_OMAP3_BEAGLE=y
CONFIG_MACH_DEVKIT8000=y
CONFIG_MACH_OMAP_LDP=y
CONFIG_MACH_OMAP3530_LV_SOM=y
CONFIG_MACH_OMAP3_TORPEDO=y
CONFIG_MACH_OVERO=y
CONFIG_MACH_OMAP3EVM=y
CONFIG_MACH_OMAP3517EVM=y
CONFIG_MACH_CRANEBOARD=y
CONFIG_MACH_OMAP3_PANDORA=y
CONFIG_MACH_TOUCHBOOK=y
CONFIG_MACH_OMAP_3430SDP=y
# CONFIG_MACH_NOKIA_N8X0 is not set
# CONFIG_MACH_NOKIA_RM680 is not set
# CONFIG_MACH_NOKIA_RX51 is not set
CONFIG_MACH_OMAP_ZOOM2=y
CONFIG_MACH_OMAP_ZOOM3=y
CONFIG_MACH_CM_T35=y
CONFIG_MACH_CM_T3517=y
CONFIG_MACH_IGEP0030=y
CONFIG_MACH_SBC3530=y
CONFIG_MACH_OMAP_3630SDP=y
CONFIG_MACH_TI8168EVM=y
CONFIG_MACH_TI8148EVM=y
CONFIG_MACH_OMAP_4430SDP=y
CONFIG_MACH_OMAP4_PANDA=y
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MUX=y
CONFIG_OMAP_MUX_WARNINGS=y
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
CONFIG_OMAP_MCBSP=y
CONFIG_OMAP_MBOX_FWK=m
CONFIG_OMAP_MBOX_KFIFO_SIZE=256
CONFIG_OMAP_DM_TIMER=y
CONFIG_OMAP_PM_NOOP=y
CONFIG_OMAP_IOMMU=y
CONFIG_OMAP_IOVMM=m
CONFIG_OMAP3_EMU=y
# CONFIG_OMAP3_SDRC_AC_TIMING is not set
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
CONFIG_TI_ST=m
CONFIG_TI_DAC7512=m
CONFIG_TI_DAVINCI_EMAC=m
CONFIG_TI_DAVINCI_MDIO=m
CONFIG_TI_DAVINCI_CPDMA=m
CONFIG_TI_CPSW=m
CONFIG_TI_CPTS=y
CONFIG_TI_EMIF=m
CONFIG_MFD_TPS65217=m
CONFIG_REGULATOR_TPS65217=m
CONFIG_BACKLIGHT_TPS65217=m
CONFIG_SERIAL_OMAP=y
CONFIG_SERIAL_OMAP_CONSOLE=y
CONFIG_GPIO_TWL4030=m
CONFIG_GPIO_TWL6040=m
CONFIG_I2C_OMAP=m
CONFIG_CHARGER_TWL4030=m
CONFIG_OMAP_WATCHDOG=m
CONFIG_TWL4030_CORE=y
CONFIG_TWL4030_MADC=m
CONFIG_TWL4030_POWER=y
CONFIG_TWL4030_CODEC=y
CONFIG_TWL4030_WATCHDOG=m
CONFIG_TWL4030_USB=m
CONFIG_TWL6030_USB=m
CONFIG_TWL6030_PWM=m
CONFIG_TWL6040_CORE=y
CONFIG_CLK_TWL6040=m
CONFIG_OMAP_INTERCONNECT=m
# CONFIG_MFD_TPS80031 is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_MFD_OMAP_USB_HOST=y
CONFIG_MTD_ONENAND_OMAP2=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_REGULATOR_TWL4030=y
CONFIG_BACKLIGHT_PANDORA=m
CONFIG_OMAP_OCP2SCP=m
CONFIG_USB_EHCI_HCD_OMAP=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD_OMAP3=y
CONFIG_USB_MUSB_AM35X=m
CONFIG_USB_MUSB_OMAP2PLUS=m
CONFIG_USB_MUSB_HDRC=m
CONFIG_USB_GADGET_MUSB_HDRC=m
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_MUSB_DEBUG is not set
CONFIG_OMAP_CONTROL_USB=m
CONFIG_NOP_USB_XCEIV=m
CONFIG_MMC_OMAP=y
CONFIG_MMC_OMAP_HS=y
CONFIG_RTC_DRV_MAX8907=m
# CONFIG_RTC_DRV_TWL92330 is not set
CONFIG_RTC_DRV_TWL4030=m
CONFIG_RTC_DRV_OMAP=m
# Note needs to be compiled in until we build MMC modular
CONFIG_DMA_OMAP=y
CONFIG_OMAP_IOVMM=m
CONFIG_HWSPINLOCK_OMAP=m
CONFIG_SENSORS_TWL4030_MADC=m
CONFIG_WL_TI=y
CONFIG_WLCORE_SDIO=m
CONFIG_WLCORE_SPI=m
CONFIG_WL1251_SPI=m
CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO_TEST=m
CONFIG_WL18XX=m
CONFIG_WILINK_PLATFORM_DATA=y
CONFIG_MFD_WL1273_CORE=m
CONFIG_NFC_WILINK=m
CONFIG_MTD_NAND_OMAP2=y
CONFIG_MTD_NAND_OMAP_PREFETCH=y
CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y
CONFIG_SPI_DAVINCI=m
CONFIG_SPI_OMAP24XX=y
CONFIG_MFD_TI_SSP=m
CONFIG_SPI_TI_SSP=m
CONFIG_INPUT_TWL4030_PWRBUTTON=m
CONFIG_INPUT_TWL4030_VIBRA=m
CONFIG_INPUT_TWL6040_VIBRA=m
CONFIG_KEYBOARD_OMAP4=m
CONFIG_KEYBOARD_TWL4030=m
CONFIG_TOUCHSCREEN_TI_TSCADC=m
# OMAP thermal temp. Can likely be built as module but doesn't autoload so build in to ensure performance on PandaES
CONFIG_OMAP_BANDGAP=y
CONFIG_OMAP4_THERMAL=y
CONFIG_OMAP5_THERMAL=y
# OMAP3 thermal/power
CONFIG_POWER_AVS=y
CONFIG_POWER_AVS_OMAP=y
CONFIG_POWER_AVS_OMAP_CLASS3=y
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
CONFIG_PWM_TIECAP=m
CONFIG_PWM_TIEHRPWM=m
CONFIG_PWM_TWL=m
CONFIG_PWM_TWL_LED=m
CONFIG_CRYPTO_DEV_OMAP_SHAM=m
CONFIG_CRYPTO_DEV_OMAP_AES=m
CONFIG_HW_RANDOM_OMAP=m
# CONFIG_DRM_TILCDC is not set
CONFIG_DRM_OMAP=m
CONFIG_DRM_OMAP_NUM_CRTCS=2
CONFIG_OMAP2_VRAM=y
CONFIG_OMAP2_VRAM_SIZE=0
CONFIG_OMAP2_VRFB=y
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
# CONFIG_FB_OMAP_LCD_VGA is not set
# CONFIG_FB_OMAP2 is not set
# CONFIG_FB_DA8XX is not set
CONFIG_OMAP2_DSS=m
CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
CONFIG_OMAP2_DSS_DPI=y
CONFIG_OMAP2_DSS_RFBI=y
CONFIG_OMAP2_DSS_VENC=y
CONFIG_OMAP4_DSS_HDMI=y
CONFIG_OMAP2_DSS_SDI=y
CONFIG_OMAP2_DSS_DSI=y
# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET=y
CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
CONFIG_PANEL_GENERIC_DPI=m
CONFIG_PANEL_TFP410=m
CONFIG_PANEL_SHARP_LS037V7DW01=m
CONFIG_PANEL_PICODLP=m
CONFIG_PANEL_TAAL=m
CONFIG_PANEL_NEC_NL8048HL11_01B=m
CONFIG_PANEL_TPO_TD043MTEA1=m
CONFIG_PANEL_LGPHILIPS_LB035Q02=m
CONFIG_PANEL_ACX565AKM=m
# CONFIG_PANEL_N8X0 is not set
# Enable V4L2 drivers for OMAP2+
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_V4L_PLATFORM_DRIVERS=y
# CONFIG_VIDEO_OMAP2_VOUT is not set
# CONFIG_VIDEO_OMAP3 is not set
# CONFIG_VIDEO_VPFE_CAPTURE is not set
# The ones below are for TI Davinci
# CONFIG_VIDEO_VPSS_SYSTEM is not set
# CONFIG_VIDEO_DM6446_CCDC is not set
# CONFIG_VIDEO_DM644X_VPBE is not set
# CONFIG_VIDEO_DM355_CCDC is not set
# CONFIG_VIDEO_ISIF is not set
# Also enable vivi driver - useful for testing a full kernelspace V4L2 driver
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_VIDEO_VIVI=m
CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
CONFIG_SND_OMAP_SOC_OMAP_HDMI=m
CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
CONFIG_SND_OMAP_SOC=m
CONFIG_SND_SOC_I2C_AND_SPI=m
CONFIG_SND_OMAP_SOC_AM3517EVM=m
CONFIG_SND_OMAP_SOC_DMIC=m
CONFIG_SND_OMAP_SOC_IGEP0020=m
CONFIG_SND_OMAP_SOC_MCBSP=m
CONFIG_SND_OMAP_SOC_MCPDM=m
CONFIG_SND_OMAP_SOC_OMAP_HDMI=m
CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
CONFIG_SND_OMAP_SOC_OMAP3EVM=m
CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m
CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
CONFIG_SND_OMAP_SOC_OVERO=m
# CONFIG_SND_OMAP_SOC_RX51 is not set
CONFIG_SND_OMAP_SOC_SDP4430=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
CONFIG_RADIO_WL128X=m
# CONFIG_OMAP_REMOTEPROC is not set
# CONFIG_TIDSPBRIDGE is not set
# CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000
# CONFIG_TIDSPBRIDGE_DEBUG is not set
# CONFIG_TIDSPBRIDGE_RECOVERY=y
# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set
# CONFIG_TIDSPBRIDGE_WDT3=y
# CONFIG_TIDSPBRIDGE_WDT_TIMEOUT=5
# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set
# CONFIG_TIDSPBRIDGE_BACKTRACE is not set
# CONFIG_OMAP2_DSS_DEBUGFS is not set
# CONFIG_OMAP_IOMMU_DEBUG is not set
# CONFIG_OMAP_MUX_DEBUG is not set
# CONFIG_VIDEO_OMAP3_DEBUG is not set
# Allwinner a1x
CONFIG_PINCTRL_SUNXI=y
# CONFIG_SUNXI_RFKILL=y
# CONFIG_SUNXI_NAND=y
# CONFIG_SUNXI_DBGREG=m
# CONFIG_WEMAC_SUN4I=y
# CONFIG_KEYBOARD_SUN4IKEYPAD=m
# CONFIG_KEYBOARD_SUN4I_KEYBOARD=m
# CONFIG_IR_SUN4I=m
# CONFIG_TOUCHSCREEN_SUN4I_TS=m
# CONFIG_SUN4I_G2D=y
# CONFIG_I2C_SUN4I=y
# CONFIG_DRM_MALI=m
# CONFIG_MALI=m
# CONFIG_FB_SUNXI=m
# CONFIG_FB_SUNXI_UMP=y
# CONFIG_FB_SUNXI_LCD=m
# CONFIG_FB_SUNXI_HDMI=m
# CONFIG_SOUND_SUN4I=y
# CONFIG_SND_SUN4I_SOC_CODEC=y
# CONFIG_SND_SUN4I_SOC_HDMIAUDIO=y
# CONFIG_SND_SUN4I_SOC_SPDIF=m
# CONFIG_SND_SUN4I_SOC_I2S_INTERFACE=m
# CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_USB_SW_SUN4I_HCD=y
# CONFIG_USB_SW_SUN4I_HCD0=y
# CONFIG_USB_SW_SUN4I_HCI=y
# CONFIG_USB_SW_SUN4I_EHCI0=y
# CONFIG_USB_SW_SUN4I_EHCI1=y
# CONFIG_USB_SW_SUN4I_OHCI0=y
# CONFIG_USB_SW_SUN4I_OHCI1=y
# CONFIG_USB_SW_SUN4I_USB=y
# CONFIG_USB_SW_SUN4I_USB_MANAGER=y
# CONFIG_MMC_SUNXI_POWER_CONTROL=y
# CONFIG_MMC_SUNXI=y
# CONFIG_RTC_DRV_SUN4I=y
# imx
# CONFIG_BACKLIGHT_PWM is not set
# CONFIG_DRM_IMX is not set
# CONFIG_DRM_IMX_FB_HELPER=m
# CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
# CONFIG_DRM_IMX_IPUV3_CORE=m
# CONFIG_DRM_IMX_IPUV3=m
# CONFIG_VIDEO_CODA is not set
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_88PM80X_ONKEY=m
# exynos
# CONFIG_DRM_EXYNOS is not set
# CONFIG_PINCTRL_EXYNOS5440 is not set
# CONFIG_PINCTRL_EXYNOS is not set
# picoxcell
CONFIG_CRYPTO_DEV_PICOXCELL=m
CONFIG_HW_RANDOM_PICOXCELL=m
# ST Ericsson
# CONFIG_I2C_NOMADIK is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# ZYNQ
CONFIG_LATTICE_ECP3_CONFIG=m
# MMC/SD
CONFIG_MMC_TMIO=m
CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_PXAV2=m
# Multi function devices
CONFIG_MFD_CORE=m
CONFIG_MFD_SYSCON=y
CONFIG_MFD_88PM800=m
CONFIG_MFD_88PM805=m
CONFIG_MFD_T7L66XB=y
CONFIG_MFD_TC6387XB=y
# Regulator drivers
CONFIG_REGULATOR_FAN53555=m
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_REGULATOR_DUMMY is not set
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
CONFIG_RFKILL_REGULATOR=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
CONFIG_REGULATOR_MAX8660=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8973=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_MAX8907=m
CONFIG_REGULATOR_LP872X=y
CONFIG_REGULATOR_LP8755=m
# Needs work/investigation
# CONFIG_ARM_CHARLCD is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# CONFIG_ARM_KPROBES_TEST is not set
# Defined config options we don't use yet
# CONFIG_PINCTRL_IMX35 is not set
# CONFIG_DRM_IMX_FB_HELPER is not set
# CONFIG_DRM_IMX_PARALLEL_DISPLAY is not set
# CONFIG_DRM_IMX_IPUV3_CORE is not set
# CONFIG_DRM_IMX_IPUV3 is not set
# CONFIG_REGULATOR_ANATOP is not set
# CONFIG_BATTERY_RX51 is not set
# CONFIG_IR_RX51 is not set
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_DVB_USB_PCTV452E is not set
# We need to fix these as they should be either generic includes or kconfig fixes
# drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX is not set
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_POWER_RESET_QNAP is not set
# CONFIG_POWER_RESET_RESTART is not set
# CONFIG_OMAP2_DSS_DEBUG is not set

469
config-armv7-generic Normal file
View File

@ -0,0 +1,469 @@
# arm configs for sharing between armv7 and armv7-lpae
# Generic ARM config options
CONFIG_ARM=y
CONFIG_CMDLINE=""
CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_HAVE_ARM_TWD=y
CONFIG_AEABI=y
CONFIG_VFP=y
CONFIG_VFPv3=y
CONFIG_NEON=y
CONFIG_ARM_UNWIND=y
CONFIG_ARM_THUMB=y
CONFIG_ARM_THUMBEE=y
CONFIG_ARM_GIC=y
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_SWP_EMULATE=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_PL310=y
CONFIG_HIGHPTE=y
CONFIG_AUTO_ZRELADDR=y
CONFIG_EARLY_PRINTK=y
CONFIG_ATAGS=y
CONFIG_ATAGS_PROC=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_FPE_NWFPE is not set
# CONFIG_FPE_FASTFPE is not set
# CONFIG_APM_EMULATION is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
# CONFIG_DMA_CACHE_RWFO is not set
# CONFIG_THUMB2_KERNEL is not set
# CONFIG_HVC_DCC is not set
# CONFIG_XIP_KERNEL is not set
# CONFIG_ARM_VIRT_EXT is not set
# errata
# v5/v6
# CONFIG_ARM_ERRATA_326103 is not set
# CONFIG_ARM_ERRATA_411920 is not set
# Cortex-A8
CONFIG_ARM_ERRATA_430973=y
CONFIG_ARM_ERRATA_458693=y
CONFIG_ARM_ERRATA_460075=y
# Cortex-A9
CONFIG_ARM_ERRATA_643719=y
CONFIG_ARM_ERRATA_720789=y
CONFIG_ARM_ERRATA_742230=y
CONFIG_ARM_ERRATA_742231=y
CONFIG_ARM_ERRATA_743622=y
CONFIG_ARM_ERRATA_751472=y
CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_754327=y
CONFIG_ARM_ERRATA_764369=y
CONFIG_ARM_ERRATA_775420=y
# Disabled due to causing highbank to crash
# CONFIG_PL310_ERRATA_588369 is not set
# CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y
# Cortex-A15
CONFIG_ARM_ERRATA_798181=y
# generic that deviates from or should be merged into config-generic
CONFIG_SMP=y
CONFIG_NR_CPUS=8
CONFIG_SMP_ON_UP=y
CONFIG_HIGHMEM=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
# 2013/04/19 - disable due to stability issues in 3.9 for the moment
# CONFIG_CPU_IDLE is not set
## CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_MENU is not set
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=32768
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_SECCOMP=y
CONFIG_STRICT_DEVMEM=y
CONFIG_XZ_DEC_ARM=y
CONFIG_OC_ETM=y
CONFIG_PM=y
CONFIG_PM_STD_PARTITION=""
CONFIG_SUSPEND=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_LOCAL_TIMERS=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_CC_STACKPROTECTOR=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# Root as NFS, different from mainline
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_LBDAF=y
CONFIG_COMMON_CLK=y
# Device tree
CONFIG_DTC=y
CONFIG_OF=y
CONFIG_USE_OF=y
CONFIG_OF_DEVICE=y
CONFIG_OF_IRQ=y
CONFIG_DMA_OF=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_PROC_DEVICETREE=y
# CONFIG_OF_SELFTEST is not set
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
CONFIG_OF_GPIO=y
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_OF_MDIO=m
CONFIG_OF_DISPLAY_TIMING=y
CONFIG_OF_VIDEOMODE=y
# General vexpress ARM drivers
CONFIG_ARM_AMBA=y
CONFIG_ARM_TIMER_SP804=y
CONFIG_SERIO_AMBAKMI=m
CONFIG_SERIAL_AMBA_PL010=y
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_RTC_DRV_PL030=y
CONFIG_RTC_DRV_PL031=y
# disable because it's currently broken on highbank :-/
# CONFIG_PL330_DMA is not set
CONFIG_AMBA_PL08X=y
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_I2C_VERSATILE=m
CONFIG_GPIO_PL061=y
CONFIG_SENSORS_VEXPRESS=m
CONFIG_FB_ARMCLCD=m
CONFIG_REGULATOR_VEXPRESS=m
# usb
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_ULPI=y
CONFIG_AX88796=m
CONFIG_AX88796_93CX6=y
CONFIG_SMC91X=m
CONFIG_SMC911X=m
CONFIG_SMSC911X=m
CONFIG_USB_ISP1760_HCD=m
# Multifunction Devices
CONFIG_MFD_SYSCON=y
CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_MC13XXX_SPI is not set
# Pin stuff
CONFIG_PINMUX=y
CONFIG_PINCONF=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_SINGLE=m
# CONFIG_PINCTRL_SAMSUNG is not set
# CONFIG_PINCTRL_EXYNOS4 is not set
# GPIO
CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_EXTCON_GPIO=m
CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIO_EM is not set
CONFIG_GPIO_ADNP=m
CONFIG_GPIO_MCP23S08=m
CONFIG_POWER_RESET_GPIO=y
CONFIG_RFKILL_GPIO=m
CONFIG_SERIAL_8250_EM=m
CONFIG_INPUT_GPIO_TILT_POLLED=m
CONFIG_MDIO_BUS_MUX_GPIO=m
CONFIG_MDIO_BUS_MUX_MMIOREG=m
CONFIG_LEDS_GPIO=m
CONFIG_GPIOLIB=y
CONFIG_GPIO_MAX7301=m
CONFIG_GPIO_MC33880=m
CONFIG_GPIO_74X164=m
CONFIG_GPIO_TPS65912=m
CONFIG_W1_MASTER_GPIO=m
CONFIG_CHARGER_GPIO=m
CONFIG_SPI=y
CONFIG_SPI_GPIO=m
CONFIG_SPI_BITBANG=m
CONFIG_SPI_PL022=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_ALTERA=m
CONFIG_SPI_BUTTERFLY=m
CONFIG_SPI_LM70_LLP=m
CONFIG_SPI_OC_TINY=m
CONFIG_SPI_S3C64XX=m
CONFIG_SPI_SC18IS602=m
CONFIG_SPI_XCOMM=m
CONFIG_SPI_XILINX=m
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_TLE62X0=m
# HW crypto and rng
CONFIG_CRYPTO_SHA1_ARM=m
CONFIG_CRYPTO_AES_ARM=m
# EDAC
CONFIG_EDAC=y
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_LEGACY_SYSFS=y
# Watchdog
CONFIG_MPCORE_WATCHDOG=m
# Thermal / powersaving
CONFIG_THERMAL=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_ARM_PSCI=y
# MTD
CONFIG_MTD_OF_PARTS=y
# CONFIG_MG_DISK is not set
CONFIG_MTD_DATAFLASH=m
CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
CONFIG_MTD_DATAFLASH_OTP=y
CONFIG_MTD_M25P80=m
CONFIG_MTD_SST25L=m
CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_93XX46=m
# MMC/SD
CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_SPI=m
CONFIG_MMC_DW=m
CONFIG_MMC_DW_PLTFM=m
CONFIG_MMC_DW_PCI=m
CONFIG_SPI_DW_MMIO=m
# CONFIG_MMC_DW_EXYNOS is not set
# CONFIG_MMC_DW_IDMAC is not set
# Sound
CONFIG_SND_ARM=y
CONFIG_SND_ARMAACI=m
CONFIG_SND_SOC=m
CONFIG_SND_SPI=y
CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SOC_CACHE_LZO=y
CONFIG_SND_SOC_ALL_CODECS=m
# CONFIG_SND_ATMEL_SOC is not set
# Displays
CONFIG_FB_SSD1307=m
# PWM
CONFIG_PWM=y
CONFIG_BACKLIGHT_PWM=m
# RTC
CONFIG_RTC_DRV_M41T93=m
CONFIG_RTC_DRV_M41T94=m
CONFIG_RTC_DRV_DS1305=m
CONFIG_RTC_DRV_DS1390=m
CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_R9701=m
CONFIG_RTC_DRV_RS5C348=m
CONFIG_RTC_DRV_DS3234=m
CONFIG_RTC_DRV_PCF2123=m
CONFIG_RTC_DRV_RX4581=m
# Regulators
CONFIG_REGULATOR=y
CONFIG_RFKILL_REGULATOR=m
CONFIG_CHARGER_MANAGER=y
# CONFIG_REGULATOR_DUMMY is not set
CONFIG_REGULATOR_FIXED_VOLTAGE=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_ANATOP=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
CONFIG_REGULATOR_MAX8660=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8973=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_LP8755=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS65912=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_LIS3_SPI=m
CONFIG_SENSORS_GPIO_FAN=m
CONFIG_LCD_L4F00242T03=m
CONFIG_LCD_LMS283GF05=m
CONFIG_LCD_LTV350QV=m
CONFIG_LCD_ILI9320=m
CONFIG_LCD_TDO24M=m
CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_S6E63M0=m
CONFIG_LCD_LD9040=m
CONFIG_LCD_AMS369FG06=m
CONFIG_LCD_LMS501KF03=m
CONFIG_LCD_HX8357=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GP2A=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_TOUCHSCREEN_ADS7846=m
CONFIG_TOUCHSCREEN_AD7877=m
CONFIG_TOUCHSCREEN_MC13783=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_LEDS_DAC124S085=m
CONFIG_LEDS_PWM=m
CONFIG_BMP085_SPI=m
# Ethernet
CONFIG_KS8851=m
CONFIG_ENC28J60=m
CONFIG_LIBERTAS_SPI=m
CONFIG_P54_SPI=m
CONFIG_P54_SPI_DEFAULT_EEPROM=n
CONFIG_MICREL_KS8995MA=m
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_MRF24J40=m
CONFIG_ARM_KPROBES_TEST=m
# jffs2
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_JFFS2_FS_SECURITY=y
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
CONFIG_JFFS2_RUBIN=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_ZLIB=y
CONFIG_UBIFS_FS=m
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_FS_DEBUG is not set
# Should be in generic
CONFIG_ETHERNET=y
CONFIG_BPF_JIT=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_PATA_PLATFORM is not set
CONFIG_PERF_EVENTS=y
# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_DRM_EXYNOS is not set
# CONFIG_DRM_TILCDC is not set
# CONFIG_DRM_IMX is not set
# CONFIG_MMC_SDHCI_PXAV3 is not set
# CONFIG_MMC_SDHCI_PXAV2 is not set
# CONFIG_CS89x0 is not set
# CONFIG_DM9000 is not set
# CONFIG_HW_RANDOM_ATMEL is not set
# CONFIG_HW_RANDOM_EXYNOS is not set
# CONFIG_I2C_NOMADIK is not set
# CONFIG_LEDS_RENESAS_TPU is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_EZX_PCAP is not set
# Needs work/investigation
# CONFIG_ARM_CHARLCD is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_M25PXX_USE_FAST_READ is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_IFX6X60 is not set
# these modules all fail with missing __bad_udelay
# http://www.spinics.net/lists/arm/msg15615.html provides some background
# CONFIG_SUNGEM is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_RADEON is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_ATM_HE is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SFC is not set
# these all currently fail due to missing symbols __bad_udelay or
# error: implicit declaration of function iowrite32be
# CONFIG_SND_ALI5451 is not set
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_MLX4_EN is not set
# Debug options. We need to deal with them at some point like x86
# CONFIG_COMMON_CLK_DEBUG is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_LL is not set
# CONFIG_IRQ_DOMAIN_DEBUG is not set
# CONFIG_DEBUG_PINCTRL is not set

108
config-armv7-tegra Normal file
View File

@ -0,0 +1,108 @@
CONFIG_ARCH_TEGRA=y
CONFIG_ARCH_TEGRA_2x_SOC=y
# CONFIG_ARCH_TEGRA_3x_SOC is not set
# CONFIG_ARCH_TEGRA_114_SOC is not set
# CONFIG_NEON is not set
# These are supported in the LPAE kernel
# CONFIG_ARM_LPAE is not set
# CONFIG_XEN is not set
# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_ARM_VIRT_EXT is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_MACH_HARMONY is not set
CONFIG_MACH_KAEN=y
CONFIG_MACH_PAZ00=y
CONFIG_MACH_SEABOARD=y
CONFIG_MACH_TEGRA_DT=y
CONFIG_MACH_TRIMSLICE=y
CONFIG_MACH_WARIO=y
CONFIG_MACH_VENTANA=y
CONFIG_TEGRA_PCI=y
CONFIG_TEGRA_IOMMU_GART=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_I2C_TEGRA=m
# This block is temporary until we work out why the MMC modules don't work as modules
CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF=y
CONFIG_MMC_SDHCI_TEGRA=y
CONFIG_TEGRA_SYSTEM_DMA=y
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
CONFIG_TEGRA_AHB=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_SPI_TEGRA20_SFLASH=m
CONFIG_SPI_TEGRA20_SLINK=m
CONFIG_KEYBOARD_TEGRA=m
CONFIG_PINCTRL_TEGRA=y
CONFIG_PINCTRL_TEGRA20=y
CONFIG_PINCTRL_TEGRA30=y
CONFIG_USB_EHCI_TEGRA=y
CONFIG_RTC_DRV_TEGRA=y
CONFIG_SND_SOC_TEGRA=m
CONFIG_SND_SOC_TEGRA_ALC5632=m
CONFIG_SND_SOC_TEGRA_WM8753=m
CONFIG_SND_SOC_TEGRA_WM8903=m
CONFIG_SND_SOC_TEGRA_WM9712=m
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
CONFIG_SND_SOC_TEGRA30_AHUB=m
CONFIG_SND_SOC_TEGRA30_I2S=m
CONFIG_SND_SOC_TEGRA20_AC97=m
# AC100 (PAZ00)
CONFIG_MFD_NVEC=y
CONFIG_MFD_TPS80031=y
CONFIG_KEYBOARD_NVEC=y
CONFIG_SERIO_NVEC_PS2=y
CONFIG_NVEC_POWER=y
CONFIG_POWER_SUPPLY=y
CONFIG_NVEC_LEDS=y
CONFIG_NVEC_PAZ00=y
# CONFIG_MFD_TPS6586X is not set
# CONFIG_RTC_DRV_TPS6586X is not set
CONFIG_PWM_TEGRA=m
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
CONFIG_CMA_SIZE_MBYTES=16
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_DRM_TEGRA=m
CONFIG_CRYPTO_DEV_TEGRA_AES=m
CONFIG_LEDS_RENESAS_TPU=y
CONFIG_OF=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_TEGRA=y
CONFIG_OF_GPIO=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
# CONFIG_DRM_TEGRA_DEBUG is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_SPI_TOPCLIFF_PCH is not set
# CONFIG_SPI_DW_PCI is not set
# CONFIG_SPI_PXA2XX is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_PINCTRL_EXYNOS is not set
# CONFIG_PINCTRL_EXYNOS5440 is not set

View File

@ -1,24 +0,0 @@
# CONFIG_CFG80211 is not set
# CONFIG_LIB80211 is not set
# CONFIG_MAC80211 is not set
# CONFIG_BCMA is not set
#
# ssb and b44 share infrastructure with b43
#
# CONFIG_SSB is not set
# CONFIG_B44 is not set
#
# Prevent b43 and brcmsmac from competing
#
# CONFIG_B43_BCMA is not set
#
# These have to be turned-on again since compat-wireless does not
# provide them...
#
CONFIG_CRC7=m
CONFIG_AVERAGE=y

View File

@ -8,7 +8,6 @@ CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_PROVE_RCU=y
# CONFIG_PROVE_RCU_REPEATEDLY is not set
@ -73,6 +72,8 @@ CONFIG_DEBUG_PERF_USE_VMALLOC=y
CONFIG_JBD2_DEBUG=y
CONFIG_NFSD_FAULT_INJECTION=y
CONFIG_DEBUG_BLK_CGROUP=y
CONFIG_DRBD_FAULT_INJECTION=y
@ -95,6 +96,7 @@ CONFIG_PCI_DEFAULT_USE_CRS=y
CONFIG_KGDB_KDB=y
CONFIG_KDB_KEYBOARD=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
CONFIG_TEST_LIST_SORT=y
@ -110,3 +112,8 @@ CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_MAC80211_MESSAGE_TRACING=y
CONFIG_EDAC_DEBUG=y
CONFIG_LATENCYTOP=y
CONFIG_SCHEDSTATS=y

File diff suppressed because it is too large Load Diff

View File

@ -2,111 +2,120 @@ CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_PCM_XRUN_DEBUG=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_PROVE_RCU=y
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_PROVE_RCU is not set
# CONFIG_PROVE_RCU_REPEATEDLY is not set
CONFIG_DEBUG_PER_CPU_MAPS=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_CPUMASK_OFFSTACK=y
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MMC_REQUEST=y
# CONFIG_FAULT_INJECTION is not set
# CONFIG_FAILSLAB is not set
# CONFIG_FAIL_PAGE_ALLOC is not set
# CONFIG_FAIL_MAKE_REQUEST is not set
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
# CONFIG_FAIL_IO_TIMEOUT is not set
# CONFIG_FAIL_MMC_REQUEST is not set
CONFIG_SLUB_DEBUG_ON=y
# CONFIG_SLUB_DEBUG_ON is not set
CONFIG_LOCK_STAT=y
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_DEBUG_SG=y
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_DEBUG_WRITECOUNT=y
CONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
CONFIG_DEBUG_OBJECTS_FREE=y
CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
# CONFIG_DEBUG_OBJECTS_FREE is not set
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
CONFIG_X86_PTDUMP=y
# CONFIG_X86_PTDUMP is not set
CONFIG_CAN_DEBUG_DEVICES=y
# CONFIG_CAN_DEBUG_DEVICES is not set
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_DEBUG_NOTIFIERS=y
# CONFIG_DEBUG_NOTIFIERS is not set
CONFIG_DMA_API_DEBUG=y
# CONFIG_DMA_API_DEBUG is not set
CONFIG_MMIOTRACE=y
# CONFIG_MMIOTRACE is not set
CONFIG_DEBUG_CREDENTIALS=y
# CONFIG_DEBUG_CREDENTIALS is not set
# off in both production debug and nodebug builds,
# on in rawhide nodebug builds
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_EXT4_DEBUG=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_DEBUG_PERF_USE_VMALLOC=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_JBD2_DEBUG=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_DEBUG_BLK_CGROUP=y
# CONFIG_NFSD_FAULT_INJECTION is not set
CONFIG_DRBD_FAULT_INJECTION=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_ATH_DEBUG=y
CONFIG_CARL9170_DEBUGFS=y
CONFIG_IWLWIFI_DEVICE_TRACING=y
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_DEBUG_OBJECTS_WORK=y
# CONFIG_ATH_DEBUG is not set
# CONFIG_CARL9170_DEBUGFS is not set
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES_VDEBUG=y
# CONFIG_DEBUG_OBJECTS_WORK is not set
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
CONFIG_PM_ADVANCED_DEBUG=y
CONFIG_CEPH_LIB_PRETTYDEBUG=y
CONFIG_QUOTA_DEBUG=y
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_QUOTA_DEBUG is not set
CONFIG_PCI_DEFAULT_USE_CRS=y
CONFIG_KGDB_KDB=y
CONFIG_KDB_KEYBOARD=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
CONFIG_TEST_LIST_SORT=y
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
# CONFIG_TEST_LIST_SORT is not set
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_EDAC_DEBUG is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SCHEDSTATS is not set

View File

@ -159,9 +159,15 @@ CONFIG_IDE_TASK_IOCTL=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
CONFIG_BLK_DEV_IDE_PMAC=m
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
# CONFIG_BLK_DEV_IDE_PMAC is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_DELKIN=m
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_TC86C001 is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_HD is not set
# CONFIG_USB_STORAGE_ISD200 is not set
CONFIG_MTD_PHYSMAP_OF=m
@ -175,11 +181,11 @@ CONFIG_PMAC_APM_EMU=m
CONFIG_HW_RANDOM_PASEMI=m
CONFIG_EDAC=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_PASEMI=m
CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_AMD8111=m
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_AXON_RAM is not set
# CONFIG_OPROFILE_CELL is not set
@ -307,7 +313,7 @@ CONFIG_SPARSE_IRQ=y
# CONFIG_PPC_MPC5200_LPBFIFO is not set
# CONFIG_CAN_MSCAN is not set
# CONFIG_CAN_MPC5XXX is not set
CONFIG_PATA_MACIO=m
CONFIG_PATA_MACIO=y
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_88PM8607 is not set
@ -339,6 +345,7 @@ CONFIG_I2C_MPC=m
CONFIG_RFKILL_GPIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
# CONFIG_CRYPTO_SHA1_PPC is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_MCP23S08 is not set
@ -350,9 +357,6 @@ CONFIG_RFKILL_GPIO=m
# CONFIG_NET_VENDOR_PASEMI is not set
# CONFIG_NET_VENDOR_TOSHIBA is not set
# Disable btrfs until it is shown to work with 64k pages (rhbz 747079)
# CONFIG_BTRFS_FS is not set
#
# CONFIG_CPU_IDLE is not set
# CONFIG_OF_SELFTEST is not set
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
@ -360,3 +364,30 @@ CONFIG_RFKILL_GPIO=m
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_IRQ_DOMAIN_DEBUG is not set
# CONFIG_MPIC_MSGR is not set
# CONFIG_FA_DUMP is not set
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_FAIL_IOMMU is not set
# CONFIG_PPC_DENORMALISATION is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_OF_DISPLAY_TIMING is not set
# CONFIG_OF_VIDEOMODE is not set
CONFIG_POWER_RESET_GPIO=y
CONFIG_FB_SSD1307=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=n
CONFIG_XZ_DEC_POWERPC=y

View File

@ -33,6 +33,8 @@ CONFIG_SCSI_MESH=m
CONFIG_SCSI_MESH_SYNC_RATE=5
CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
CONFIG_LBDAF=y
CONFIG_SCSI_MAC53C94=m
CONFIG_ADB_CUDA=y
CONFIG_ADB_MACIO=y
@ -45,7 +47,7 @@ CONFIG_NET_VENDOR_APPLE=y
CONFIG_BMAC=m
CONFIG_MACE=m
# CONFIG_MACE_AAUI_PORT is not set
CONFIG_MV643XX_ETH=m
# CONFIG_MV643XX_ETH is not set
CONFIG_I2C_HYDRA=m
CONFIG_I2C_MPC=m
CONFIG_THERM_WINDTUNNEL=m

View File

@ -1,6 +1,9 @@
CONFIG_WINDFARM_PM81=y
CONFIG_WINDFARM_PM91=y
CONFIG_WINDFARM_PM121=y
CONFIG_WINDFARM_PM72=y
CONFIG_WINDFARM_RM31=y
CONFIG_PPC_PMAC64=y
CONFIG_PPC_MAPLE=y
# CONFIG_PPC_CELL is not set
@ -139,8 +142,7 @@ CONFIG_PERF_EVENTS=y
CONFIG_EVENT_PROFILE=y
CONFIG_KVM_BOOK3S_64=m
#-- Enable _HV once publicly available POWER7 hardware can use it
# CONFIG_KVM_BOOK3S_64_HV is not set
CONFIG_KVM_BOOK3S_64_HV=y
# CONFIG_KVM_EXIT_TIMING is not set
#-- bz#607175
@ -154,12 +156,29 @@ CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_PSERIES_ENERGY=m
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_PSERIES_IDLE=y
CONFIG_PPC_ICSWX=y
CONFIG_IO_EVENT_IRQ=y
CONFIG_HW_RANDOM_AMD=m
CONFIG_UIO_PDRV=m
CONFIG_HW_RANDOM_PSERIES=m
CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
CONFIG_BPF_JIT=y
# CONFIG_PPC_ICSWX_PID is not set
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PPC_TRANSACTIONAL_MEM is not set
# CONFIG_SND_HDA_INTEL is not set
CONFIG_BLK_DEV_RSXX=m

View File

@ -197,6 +197,7 @@ CONFIG_QETH_L3=m
CONFIG_CRYPTO_SHA512_S390=m
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
# CONFIG_KVM_S390_UCONTROL is not set
CONFIG_S390_GUEST=y
@ -210,6 +211,7 @@ CONFIG_CHSC_SCH=m
CONFIG_HVC_IUCV=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
CONFIG_SECCOMP=y
@ -239,3 +241,34 @@ CONFIG_STRICT_DEVMEM=y
CONFIG_CRYPTO_GHASH_S390=m
CONFIG_NET_CORE=y
CONFIG_ETHERNET=y
CONFIG_BPF_JIT=y
# CONFIG_TRANSPARENT_HUGEPAGE is not set
CONFIG_SCM_BUS=y
CONFIG_EADM_SCH=m
CONFIG_SCM_BLOCK=m
CONFIG_SCM_BLOCK_CLUSTER_WRITE=y
# CONFIG_S390_PTDUMP is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
CONFIG_PCI_NR_FUNCTIONS=64
CONFIG_HOTPLUG_PCI=m
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
CONFIG_HOTPLUG_PCI_S390=m
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_MEDIA_SUPPORT is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_DRM is not set
# CONFIG_SOUND is not set
# CONFIG_DW_DMAC is not set
# CONFIG_I2C_SMBUS is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_HELPER_AUTO is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_NFORCE2 is not set

View File

@ -1,198 +0,0 @@
CONFIG_SMP=y
CONFIG_SPARC=y
CONFIG_SPARC64=y
CONFIG_SECCOMP=y
CONFIG_HZ_100=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_US3_FREQ=m
CONFIG_US2E_FREQ=m
CONFIG_SUN_LDOMS=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_64BIT=y
# CONFIG_BBC_I2C is not set
CONFIG_HUGETLB_PAGE_SIZE_4MB=y
# CONFIG_HUGETLB_PAGE_SIZE_512K is not set
# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
CONFIG_NR_CPUS=256
CONFIG_US3_FREQ=m
CONFIG_US2E_FREQ=m
CONFIG_SUN_OPENPROMFS=m
CONFIG_COMPAT=y
CONFIG_UID16=y
CONFIG_BINFMT_ELF32=y
CONFIG_ENVCTRL=m
CONFIG_DISPLAY7SEG=m
CONFIG_WATCHDOG_CP1XXX=m
CONFIG_WATCHDOG_RIO=m
# CONFIG_CMDLINE_BOOL is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV_FD is not set
# CONFIG_LIRC_PARALLEL is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_SIMTEC is not set
CONFIG_I2C_ALI1535=m
# CONFIG_VGASTATE is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BW2 is not set
# CONFIG_FB_GRVGA is not set
CONFIG_FB_CG3=y
CONFIG_FB_CG6=y
# CONFIG_FB_RIVA is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
CONFIG_FB_ATY=y
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
CONFIG_FB_SBUS=y
CONFIG_FB_FFB=y
# CONFIG_FB_TCX is not set
# CONFIG_FB_CG14 is not set
CONFIG_FB_PM2=y
CONFIG_FB_P9100=y
# CONFIG_FB_LEO is not set
CONFIG_FB_XVR500=y
CONFIG_FB_XVR2500=y
# CONFIG_VGASTATE is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_KYRO is not set
# CONFIG_AGP is not set
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_MDA_CONSOLE is not set
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
CONFIG_FONT_SUN8x16=y
CONFIG_FONT_SUN12x22=y
# CONFIG_LOGO_LINUX_CLUT224 is not set
# CONFIG_SERIAL_8250 is not set
CONFIG_SERIAL_SUNZILOG=y
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
CONFIG_SERIAL_SUNSU=y
CONFIG_SERIAL_SUNSU_CONSOLE=y
CONFIG_SERIAL_SUNSAB=y
CONFIG_SERIAL_SUNSAB_CONSOLE=y
CONFIG_SERIAL_SUNHV=y
CONFIG_SUN_OPENPROMIO=y
CONFIG_OBP_FLASH=m
# CONFIG_SERIO_SERPORT is not set
CONFIG_BLK_DEV_FD=y
CONFIG_SUNVDC=m
CONFIG_SUNVNET=m
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
CONFIG_SCSI_QLOGICPTI=m
CONFIG_SCSI_SUNESP=m
CONFIG_SUNLANCE=m
CONFIG_SUNBMAC=m
CONFIG_SUNQE=m
# CONFIG_DM9102 is not set
# CONFIG_HAMACHI is not set
# CONFIG_R8169 is not set
CONFIG_ATM_FORE200E_USE_TASKLET=y
CONFIG_ATM_FORE200E_DEBUG=0
CONFIG_ATM_FORE200E_TX_RETRY=16
# CONFIG_DRM_TDFX is not set
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_SUNKBD=y
# CONFIG_INPUT_PCSPKR is not set
CONFIG_INPUT_SPARCSPKR=m
# CONFIG_SOUND_PRIME is not set
# CONFIG_SND_SUN_AMD7930 is not set
CONFIG_SND_SUN_CS4231=m
# CONFIG_SND_SUN_DBRI is not set
CONFIG_PARPORT_SUNBPP=m
CONFIG_LOGO_SUN_CLUT224=y
CONFIG_MTD_SUN_UFLASH=m
CONFIG_MYRI_SBUS=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_IEEE1394_SBP2 is not set
# CONFIG_USB_NET2280 is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_DCFLUSH is not set
# CONFIG_DEBUG_BOOTMEM is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_LOCKDEP is not set
# CONFIG_STACK_DEBUG is not set
CONFIG_SPARSEMEM_VMEMMAP=y
# CONFIG_THERMAL is not set
CONFIG_FRAME_WARN=2048
CONFIG_NUMA=y
CONFIG_SND_SPARC=y
CONFIG_HW_RANDOM_N2RNG=m
# drivers/isdn/hardware/mISDN/hfcmulti.c:5255:2: error: #error "not running on big endian machines now"
# CONFIG_MISDN_HFCMULTI is not set
CONFIG_US3_MC=y
CONFIG_SENSORS_ULTRA45=m
CONFIG_LEDS_SUNFIRE=m
CONFIG_TADPOLE_TS102_UCTRL=m
CONFIG_RCU_FANOUT=64
CONFIG_LIRC_ENE0100=m
# CONFIG_BATTERY_DS2782 is not set
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
CONFIG_LSM_MMAP_MIN_ADDR=65536
CONFIG_PERF_COUNTERS=y
CONFIG_PERF_EVENTS=y
CONFIG_EVENT_PROFILE=y
CONFIG_EARLYFB=y
CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
CONFIG_GRETH=m
CONFIG_FB_XVR1000=y
CONFIG_CRYPTO_DEV_NIAGARA2=y
# CONFIG_MTD_OF_PARTS is not set
# CONFIG_MTD_PHYSMAP_OF is not set
# CONFIG_MMC_SDHCI_OF is not set
# CONFIG_OF_SELFTEST is not set

View File

@ -3,6 +3,7 @@
CONFIG_X86_32_NON_STANDARD=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
CONFIG_X86_BIGSMP=y
@ -27,6 +28,7 @@ CONFIG_M686=y
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_STA2X11 is not set
CONFIG_NR_CPUS=32
CONFIG_X86_GENERIC=y
@ -52,6 +54,8 @@ CONFIG_FB_GEODE_LX=y
CONFIG_FB_GEODE_GX=y
# CONFIG_FB_GEODE_GX1 is not set
CONFIG_FB_SSD1307=m
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
# CONFIG_PCI_GOMMCONFIG is not set
@ -93,6 +97,8 @@ CONFIG_X86_TRAMPOLINE=y
CONFIG_PCI_DIRECT=y
# CONFIG_TRANSPARENT_HUGEPAGE is not set
# SHPC has half-arsed PCI probing, which makes it load on too many systems
# CONFIG_HOTPLUG_PCI_SHPC is not set
@ -137,6 +143,8 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=8
CONFIG_MTD_NAND_CAFE=m
CONFIG_LBDAF=y
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
@ -176,6 +184,7 @@ CONFIG_XO1_RFKILL=m
CONFIG_X86_32_IRIS=m
CONFIG_POWER_RESET_GPIO=y
CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_PHYSMAP_OF=m
@ -187,6 +196,7 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
# CONFIG_X86_INTEL_MID is not set
CONFIG_MFD_CS5535=m
# CONFIG_MFD_SYSCON is not set
# I2O enabled only for 32-bit x86, disabled for PAE kernel
CONFIG_I2O=m
@ -197,6 +207,8 @@ CONFIG_I2O_CONFIG=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_BACKLIGHT_PWM=m
# CONFIG_EDAC_SBRIDGE is not set
@ -205,3 +217,13 @@ CONFIG_I2O_BUS=m
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
# CONFIG_GEOS is not set
# CONFIG_NET5501 is not set
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
# CONFIG_GPIO_SODAVILLE is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_BACKLIGHT_OT200 is not set
# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_OF_DISPLAY_TIMING is not set
# CONFIG_OF_VIDEOMODE is not set

View File

@ -14,6 +14,7 @@ CONFIG_I8K=m
CONFIG_SONYPI_COMPAT=y
CONFIG_MICROCODE=m
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_INTEL_EARLY=y
CONFIG_MICROCODE_AMD=y
CONFIG_X86_MSR=y
@ -28,7 +29,7 @@ CONFIG_PNP=y
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_X86_PM_TIMER=y
@ -36,6 +37,8 @@ CONFIG_X86_PM_TIMER=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_PCDP=y
CONFIG_FB_EFI=y
@ -67,7 +70,7 @@ CONFIG_ACPI_AC=y
# CONFIG_ACPI_ASUS is not set
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_NUMA=y
@ -78,6 +81,7 @@ CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
# FIXME: Next two are deprecated. Remove them when they disappear upstream
# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_PROC_EVENT is not set
@ -91,11 +95,14 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
# CONFIG_ACPI_APEI_EINJ is not set
CONFIG_ACPI_IPMI=m
CONFIG_ACPI_CUSTOM_METHOD=m
CONFIG_ACPI_BGRT=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_PCC_CPUFREQ=y
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_P4_CLOCKMOD=y
# CONFIG_X86_INTEL_PSTATE is not set
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_P4_CLOCKMOD=m
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
#
@ -139,6 +146,7 @@ CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_PIIX4=m
@ -150,7 +158,6 @@ CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_EDAC=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_AMD8111=m
@ -171,6 +178,7 @@ CONFIG_EDAC_R82600=m
CONFIG_EDAC_X38=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_SCHED_MC=y
@ -187,10 +195,13 @@ CONFIG_HW_RANDOM_VIA=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_AMILO_RFKILL=m
CONFIG_ASUS_LAPTOP=m
CONFIG_COMPAL_LAPTOP=m
CONFIG_DELL_LAPTOP=m
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_EEEPC_LAPTOP=m
CONFIG_FUJITSU_TABLET=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
CONFIG_IDEAPAD_LAPTOP=m
@ -200,6 +211,7 @@ CONFIG_SAMSUNG_LAPTOP=m
CONFIG_SONY_LAPTOP=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_ACPI_WMI=m
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@ -212,6 +224,7 @@ CONFIG_DELL_WMI_AIO=m
CONFIG_EEEPC_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
CONFIG_APPLE_GMUX=m
CONFIG_XO15_EBOOK=m
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
@ -219,6 +232,7 @@ CONFIG_XO15_EBOOK=m
# CONFIG_SMSC37B787_WDT is not set
CONFIG_W83697HF_WDT=m
CONFIG_VIA_WDT=m
CONFIG_IE6XX_WDT=m
CONFIG_CRASH_DUMP=y
CONFIG_PROC_VMCORE=y
@ -249,6 +263,7 @@ CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
@ -266,6 +281,7 @@ CONFIG_XEN_GNTDEV=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_XEN_SELFBALLOONING=y
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_ACPI_PROCESSOR=m
CONFIG_MTD_ESB2ROM=m
CONFIG_MTD_CK804XROM=m
@ -273,6 +289,7 @@ CONFIG_MTD_CK804XROM=m
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
@ -310,7 +327,8 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_NO_BOOTMEM is not set
# CONFIG_MEMTEST is not set
CONFIG_MAXSMP=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_MAXSMP is not set
CONFIG_HP_ILO=m
@ -334,7 +352,7 @@ CONFIG_PERF_EVENTS=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_MCE_INJECT=m
CONFIG_SFI=y
@ -349,6 +367,10 @@ CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_VGA_SWITCHEROO=y
CONFIG_LPC_SCH=m
CONFIG_LPC_ICH=m
CONFIG_GPIO_ICH=m
# CONFIG_GPIO_LYNXPOINT is not set
CONFIG_PCI_CNB20LE_QUIRK=y
@ -372,13 +394,14 @@ CONFIG_VIDEO_VIA_CAMERA=m
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_X86_RESERVE_LOW=64
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_PCH_GBE=m
CONFIG_PCH_PHUB=m
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_HP_ACCEL=m
@ -391,15 +414,34 @@ CONFIG_SCHED_SMT=y
CONFIG_CC_STACKPROTECTOR=y
CONFIG_RELOCATABLE=y
# CONFIG_HYPERV is not set
CONFIG_HYPERV=m
CONFIG_HYPERV_UTILS=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HYPERV_NET=m
CONFIG_HYPERV_STORAGE=m
CONFIG_HYPERV_BALLOON=m
# Depends on HOTPLUG_PCI_PCIE
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
# CONFIG_DRM_GMA3600 is not set
CONFIG_DRM_GMA3600=y
CONFIG_RCU_FANOUT_LEAF=16
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=y
# Maybe enable in debug kernels?
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_INTEL_LPSS is not set
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_VMWARE_VMCI=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VMXNET3=m
CONFIG_VFIO_PCI_VGA=y

View File

@ -1,5 +1,6 @@
CONFIG_64BIT=y
# CONFIG_X86_X32 is not set
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
CONFIG_GENERIC_CPU=y
@ -12,8 +13,10 @@ CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
# CONFIG_NUMA_EMU is not set
# CONFIG_X86_NUMACHIP is not set
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_NUMA_BALANCING=y
CONFIG_NR_CPUS=64
CONFIG_NR_CPUS=128
CONFIG_PHYSICAL_START=0x1000000
CONFIG_IA32_EMULATION=y
@ -26,6 +29,8 @@ CONFIG_AMD_IOMMU_V2=m
CONFIG_SWIOTLB=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_KEXEC_JUMP=y
CONFIG_ACPI_BLACKLIST_YEAR=0
@ -44,6 +49,12 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
CONFIG_CRYPTO_CAST6_AVX_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
@ -63,6 +74,7 @@ CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP=y
# CONFIG_MOVABLE_NODE is not set
# CONFIG_MEMORY_HOTPLUG is not set
# CONFIG_MEMORY_HOTREMOVE is not set
@ -84,6 +96,7 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=128
# CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
# CONFIG_XEN_MCE_LOG is not set
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
@ -102,6 +115,7 @@ CONFIG_X86_X2APIC=y
CONFIG_SPARSE_IRQ=y
CONFIG_RCU_FANOUT=64
# CONFIG_RCU_USER_QS is not set
CONFIG_INTEL_TXT=y
@ -116,3 +130,21 @@ CONFIG_BPF_JIT=y
# Should be 32bit only, but lacks KConfig depends
# CONFIG_XO15_EBOOK is not set
CONFIG_NTB=m
CONFIG_NTB_NETDEV=m
# 10GigE
#
CONFIG_IP1000=m
CONFIG_MLX4_EN=m
CONFIG_MLX4_EN_DCB=y
# CONFIG_MLX4_DEBUG is not set
CONFIG_SFC=m
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_SRIOV=y
CONFIG_SFC_PTP=y
CONFIG_SFC_MTD=y
# Override MTD stuff because SFC_MTD needs it
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLOCK=m

View File

@ -0,0 +1,27 @@
diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
index 639d26b..2b94403 100644
--- a/drivers/block/cpqarray.c
+++ b/drivers/block/cpqarray.c
@@ -1193,6 +1193,7 @@ out_passthru:
ida_pci_info_struct pciinfo;
if (!arg) return -EINVAL;
+ memset(&pciinfo, 0, sizeof(pciinfo));
pciinfo.bus = host->pci_dev->bus->number;
pciinfo.dev_fn = host->pci_dev->devfn;
pciinfo.board_id = host->board_id;
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 6374dc1..34971aa 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -1201,6 +1201,7 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode,
int err;
u32 cp;
+ memset(&arg64, 0, sizeof(arg64));
err = 0;
err |=
copy_from_user(&arg64.LUN_info, &arg32->LUN_info,

66
debug-bad-pte-dmi.patch Normal file
View File

@ -0,0 +1,66 @@
--- linux.orig/include/asm-generic/bug.h
+++ linux/include/asm-generic/bug.h
@@ -55,6 +55,8 @@ struct bug_entry {
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
#endif
+void print_hardware_dmi_name(void);
+
/*
* WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report
* significant issues that need prompt attention if they should ever
--- linux.orig/kernel/panic.c
+++ linux/kernel/panic.c
@@ -391,6 +391,15 @@ void oops_exit(void)
kmsg_dump(KMSG_DUMP_OOPS);
}
+void print_hardware_dmi_name(void)
+{
+ const char *board;
+
+ board = dmi_get_system_info(DMI_PRODUCT_NAME);
+ if (board)
+ printk(KERN_WARNING "Hardware name: %s\n", board);
+}
+
#ifdef WANT_WARN_ON_SLOWPATH
struct slowpath_args {
const char *fmt;
@@ -400,13 +409,10 @@ struct slowpath_args {
static void warn_slowpath_common(const char *file, int line, void *caller,
unsigned taint, struct slowpath_args *args)
{
- const char *board;
-
printk(KERN_WARNING "------------[ cut here ]------------\n");
printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller);
- board = dmi_get_system_info(DMI_PRODUCT_NAME);
- if (board)
- printk(KERN_WARNING "Hardware name: %s\n", board);
+
+ print_hardware_dmi_name();
if (args)
vprintk(args->fmt, args->args);
--- linux.orig/mm/memory.c
+++ linux/mm/memory.c
@@ -706,6 +706,8 @@ static void print_bad_pte(struct vm_area
"BUG: Bad page map in process %s pte:%08llx pmd:%08llx\n",
current->comm,
(long long)pte_val(pte), (long long)pmd_val(*pmd));
+ print_hardware_dmi_name();
+
if (page)
dump_page(page);
printk(KERN_ALERT
--- linux.orig/mm/page_alloc.c
+++ linux/mm/page_alloc.c
@@ -321,6 +321,7 @@ static void bad_page(struct page *page)
current->comm, page_to_pfn(page));
dump_page(page);
+ print_hardware_dmi_name();
print_modules();
dump_stack();
out:

View File

@ -0,0 +1,21 @@
diff -durpN '--exclude-from=/home/davej/.exclude' /home/davej/src/kernel/git-trees/linux/mm/memory.c linux-dj/mm/memory.c
--- /home/davej/src/kernel/git-trees/linux/mm/memory.c 2013-02-26 14:41:18.591116577 -0500
+++ linux-dj/mm/memory.c 2013-02-28 20:04:37.678304092 -0500
@@ -57,6 +57,7 @@
#include <linux/swapops.h>
#include <linux/elf.h>
#include <linux/gfp.h>
+#include <linux/module.h>
#include <linux/migrate.h>
#include <linux/string.h>
--- linux-3.9.0-200.fc18.x86_64/mm/memory.c~ 2013-05-06 15:04:30.324416922 -0400
+++ linux-3.9.0-200.fc18.x86_64/mm/memory.c 2013-05-06 15:04:43.933398227 -0400
@@ -723,6 +723,7 @@ static void print_bad_pte(struct vm_area
if (vma->vm_file && vma->vm_file->f_op)
print_symbol(KERN_ALERT "vma->vm_file->f_op->mmap: %s\n",
(unsigned long)vma->vm_file->f_op->mmap);
+ print_modules();
dump_stack();
add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
}

View File

@ -16,7 +16,7 @@ index 4789f8e..5923914 100644
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x006a, quirk_calpella_no_shadow_gtt);
+/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */
+static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev)
+static void quirk_ricoh_multifunction(struct pci_dev *dev)
+{
+ dmar_disabled = 1;
+}

53
drm-i915-dp-stfu.patch Normal file
View File

@ -0,0 +1,53 @@
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 296cfc2..516e1e2 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -350,7 +350,7 @@ intel_dp_check_edp(struct intel_dp *intel_dp)
if (!is_edp(intel_dp))
return;
if (!ironlake_edp_have_panel_power(intel_dp) && !ironlake_edp_have_panel_vdd(intel_dp)) {
- WARN(1, "eDP powered off while attempting aux channel communication.\n");
+ DRM_ERROR("eDP powered off while attempting aux channel communication.\n");
DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n",
I915_READ(PCH_PP_STATUS),
I915_READ(PCH_PP_CONTROL));
@@ -447,7 +447,7 @@ intel_dp_aux_ch(struct intel_dp *intel_d
}
if (try == 3) {
- WARN(1, "dp_aux_ch not started status 0x%08x\n",
+ DRM_ERROR("dp_aux_ch not started status 0x%08x\n",
I915_READ(ch_ctl));
ret = -EBUSY;
goto out;
@@ -1024,8 +1024,8 @@ static void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp)
return;
DRM_DEBUG_KMS("Turn eDP VDD on\n");
- WARN(intel_dp->want_panel_vdd,
- "eDP VDD already requested on\n");
+ if (intel_dp->want_panel_vdd)
+ DRM_ERROR("eDP VDD already requested on\n");
intel_dp->want_panel_vdd = true;
@@ -1090,7 +1090,8 @@ static void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
return;
DRM_DEBUG_KMS("Turn eDP VDD off %d\n", intel_dp->want_panel_vdd);
- WARN(!intel_dp->want_panel_vdd, "eDP VDD not forced on");
+ if (!intel_dp->want_panel_vdd)
+ DRM_ERROR("eDP VDD not forced on");
intel_dp->want_panel_vdd = false;
@@ -1160,7 +1161,8 @@ static void ironlake_edp_panel_off(struct intel_dp *intel_dp)
DRM_DEBUG_KMS("Turn eDP power off\n");
- WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
+ if (!intel_dp->want_panel_vdd)
+ DRM_ERROR("Need VDD to turn off panel\n");
pp = ironlake_get_pp_control(dev_priv);
pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);

View File

@ -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;

492
drm-vgem.patch Normal file
View File

@ -0,0 +1,492 @@
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 2418429..566c468 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -159,6 +159,14 @@ config DRM_SAVAGE
Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
chipset. If M is selected the module will be called savage.
+config DRM_VGEM
+ tristate "Virtual GEM provider"
+ depends on DRM
+ help
+ Choose this option to get a virtual graphics memory manager,
+ as used by Mesa's software renderer for enhanced performance.
+ If M is selected the module will be called vgem.
+
source "drivers/gpu/drm/exynos/Kconfig"
source "drivers/gpu/drm/vmwgfx/Kconfig"
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index 0cde1b8..021bf8a 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -34,6 +34,7 @@ obj-$(CONFIG_DRM_SIS) += sis/
obj-$(CONFIG_DRM_SAVAGE)+= savage/
obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
obj-$(CONFIG_DRM_VIA) +=via/
+obj-$(CONFIG_DRM_VGEM) += vgem/
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
obj-$(CONFIG_DRM_EXYNOS) +=exynos/
obj-$(CONFIG_DRM_GMA500) += gma500/
diff --git a/drivers/gpu/drm/vgem/Makefile b/drivers/gpu/drm/vgem/Makefile
new file mode 100644
index 0000000..3f4c7b8
--- /dev/null
+++ b/drivers/gpu/drm/vgem/Makefile
@@ -0,0 +1,4 @@
+ccflags-y := -Iinclude/drm
+vgem-y := vgem_drv.o
+
+obj-$(CONFIG_DRM_VGEM) += vgem.o
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
new file mode 100644
index 0000000..16f88ee
--- /dev/null
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -0,0 +1,377 @@
+/*
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software")
+ * to deal in the software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * them Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTIBILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Adam Jackson <ajax@redhat.com>
+ */
+
+/**
+ * This is vgem, a (non-hardware-backed) GEM service. This is used by Mesa's
+ * software renderer and the X server for efficient buffer sharing.
+ */
+
+#include "drmP.h"
+#include "drm.h"
+#include "vgem_drm.h"
+#include <linux/module.h>
+#include <linux/ramfs.h>
+#include <linux/shmem_fs.h>
+
+#define DRIVER_NAME "vgem"
+#define DRIVER_DESC "Virtual GEM provider"
+#define DRIVER_DATE "20120112"
+#define DRIVER_MAJOR 1
+#define DRIVER_MINOR 0
+
+#define to_vgem_bo(x) container_of(x, struct drm_vgem_gem_object, base)
+
+struct drm_vgem_gem_object {
+ struct drm_gem_object base;
+ struct page **pages;
+};
+
+static int vgem_load(struct drm_device *dev, unsigned long flags)
+{
+ return 0;
+}
+
+static int vgem_unload(struct drm_device *dev)
+{
+ return 0;
+}
+
+static void vgem_preclose(struct drm_device *dev, struct drm_file *file)
+{
+}
+
+static void vgem_lastclose(struct drm_device *dev)
+{
+}
+
+static int vgem_gem_init_object(struct drm_gem_object *obj)
+{
+ return 0;
+}
+
+static void vgem_gem_put_pages(struct drm_vgem_gem_object *obj)
+{
+ int num_pages = obj->base.size / PAGE_SIZE;
+ int i;
+
+ for (i = 0; i < num_pages; i++) {
+ page_cache_release(obj->pages[i]);
+ }
+
+ drm_free_large(obj->pages);
+ obj->pages = NULL;
+}
+
+static void vgem_gem_free_object(struct drm_gem_object *obj)
+{
+ struct drm_vgem_gem_object *vgem_obj = to_vgem_bo(obj);
+
+ if (obj)
+ drm_gem_free_mmap_offset(obj);
+
+ drm_gem_object_release(obj);
+
+ if (vgem_obj->pages)
+ vgem_gem_put_pages(vgem_obj);
+
+ kfree(vgem_obj);
+}
+
+static int vgem_gem_get_pages(struct drm_vgem_gem_object *obj)
+{
+ struct address_space *mapping;
+ gfp_t gfpmask = __GFP_NORETRY | __GFP_NOWARN;
+ int num_pages, i, ret = 0;
+
+ num_pages = obj->base.size / PAGE_SIZE;
+
+ if (!obj->pages) {
+ obj->pages = drm_malloc_ab(num_pages, sizeof(struct page *));
+ if (obj->pages == NULL)
+ return -ENOMEM;
+ }
+
+ mapping = obj->base.filp->f_path.dentry->d_inode->i_mapping;
+ gfpmask |= mapping_gfp_mask(mapping);
+
+ if (WARN_ON(mapping == NULL))
+ return VM_FAULT_SIGBUS;
+
+ for (i = 0; i < num_pages; i++) {
+ struct page *page;
+ page = shmem_read_mapping_page_gfp(mapping, i, gfpmask);
+ if (IS_ERR(page)) {
+ ret = PTR_ERR(page);
+ goto err_out;
+ }
+ obj->pages[i] = page;
+ }
+
+ return ret;
+
+err_out:
+ while (i--)
+ page_cache_release(obj->pages[i]);
+ drm_free_large(obj->pages);
+ obj->pages = NULL;
+ return ret;
+}
+
+static int vgem_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+{
+ struct drm_vgem_gem_object *obj = to_vgem_bo(vma->vm_private_data);
+ loff_t num_pages;
+ pgoff_t page_offset;
+ int ret;
+
+ /* We don't use vmf->pgoff since that has the fake offset */
+ page_offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >>
+ PAGE_SHIFT;
+
+ num_pages = obj->base.size / PAGE_SIZE;
+
+ if (WARN_ON(page_offset > num_pages))
+ return VM_FAULT_SIGBUS;
+
+ ret = vgem_gem_get_pages(obj);
+ if (ret)
+ return ret;
+
+ ret = vm_insert_page(vma, (unsigned long)vmf->virtual_address,
+ obj->pages[page_offset]);
+
+ /* Pretty dumb handler for now */
+ switch (ret) {
+ case 0:
+ case -ERESTARTSYS:
+ case -EINTR:
+ return VM_FAULT_NOPAGE;
+ default:
+ return VM_FAULT_SIGBUS;
+ }
+}
+
+static const struct vm_operations_struct vgem_gem_vm_ops = {
+ .fault = vgem_gem_fault,
+ .open = drm_gem_vm_open,
+ .close = drm_gem_vm_close,
+};
+
+/* ioctls */
+
+static struct drm_gem_object *vgem_gem_create(struct drm_device *dev,
+ struct drm_file *file,
+ unsigned int *handle,
+ unsigned long size)
+{
+ struct drm_vgem_gem_object *obj;
+ struct drm_gem_object *gem_object;
+ int err;
+
+ size = roundup(size, PAGE_SIZE);
+
+ obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+ if (!obj)
+ return ERR_PTR(-ENOMEM);
+
+ gem_object = &obj->base;
+
+ if ((err = drm_gem_object_init(dev, gem_object, size)))
+ goto out;
+
+ if ((err = drm_gem_create_mmap_offset(gem_object)))
+ goto mmap_out;
+
+ if ((err = drm_gem_handle_create(file, gem_object, handle)))
+ goto handle_out;
+
+ drm_gem_object_unreference_unlocked(gem_object);
+
+ return gem_object;
+
+handle_out:
+ drm_gem_free_mmap_offset(gem_object);
+
+mmap_out:
+ drm_gem_object_release(gem_object);
+
+out:
+ kfree(gem_object);
+
+ return ERR_PTR(err);
+}
+
+static int vgem_gem_create_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file)
+{
+ struct vgem_gem_create *args = data;
+ struct drm_gem_object *gem_object;
+
+ gem_object = vgem_gem_create(dev, file, &args->handle, args->size);
+
+ if (IS_ERR(gem_object))
+ return PTR_ERR(gem_object);
+
+ return 0;
+}
+
+static int vgem_gem_mmap_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file)
+{
+ struct vgem_gem_mmap *args = data;
+ struct drm_gem_object *obj;
+
+ obj = drm_gem_object_lookup(dev, file, args->handle);
+ if (!obj)
+ return -ENOENT;
+
+ obj->filp->private_data = obj;
+
+ BUG_ON(!obj->map_list.map);
+
+ args->mapped = (uint64_t)obj->map_list.hash.key << PAGE_SHIFT;
+
+ drm_gem_object_unreference_unlocked(obj);
+
+ return 0;
+}
+
+static int vgem_gem_getparam_ioctl(struct drm_device *dev, void *data,
+ struct drm_file *file)
+{
+ struct vgem_gem_getparam *args = data;
+ int value=0, ret;
+
+ switch (args->param) {
+ case VGEM_PARAM_IS_VGEM:
+ value = 1;
+ }
+
+ ret = copy_to_user(args->value, &value, sizeof(int));
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
+
+static struct drm_ioctl_desc vgem_ioctls[] = {
+ DRM_IOCTL_DEF_DRV(VGEM_GEM_CREATE, vgem_gem_create_ioctl,
+ DRM_UNLOCKED | DRM_AUTH),
+ DRM_IOCTL_DEF_DRV(VGEM_GEM_MMAP, vgem_gem_mmap_ioctl,
+ DRM_UNLOCKED | DRM_AUTH),
+ DRM_IOCTL_DEF_DRV(VGEM_GEM_GETPARAM, vgem_gem_getparam_ioctl,
+ DRM_UNLOCKED),
+};
+
+static const struct file_operations vgem_driver_fops = {
+ .owner = THIS_MODULE,
+ .open = drm_open,
+ .mmap = drm_gem_mmap,
+ .poll = drm_poll,
+ .read = drm_read,
+ .unlocked_ioctl = drm_ioctl,
+ .release = drm_release,
+};
+
+static struct drm_driver vgem_driver = {
+ .driver_features = DRIVER_BUS_PLATFORM | DRIVER_GEM,
+ .load = vgem_load,
+ .unload = vgem_unload,
+ .preclose = vgem_preclose,
+ .lastclose = vgem_lastclose,
+ .gem_init_object = vgem_gem_init_object,
+ .gem_free_object = vgem_gem_free_object,
+ .gem_vm_ops = &vgem_gem_vm_ops,
+ .ioctls = vgem_ioctls,
+ .fops = &vgem_driver_fops,
+ .name = DRIVER_NAME,
+ .desc = DRIVER_DESC,
+ .date = DRIVER_DATE,
+ .major = DRIVER_MAJOR,
+ .minor = DRIVER_MINOR,
+};
+
+static int vgem_platform_probe(struct platform_device *pdev)
+{
+ vgem_driver.num_ioctls = DRM_ARRAY_SIZE(vgem_ioctls);
+
+ return drm_platform_init(&vgem_driver, pdev);
+}
+
+static int vgem_platform_remove(struct platform_device *pdev)
+{
+ drm_platform_exit(&vgem_driver, pdev);
+
+ return 0;
+}
+
+static struct platform_driver vgem_platform_driver = {
+ .probe = vgem_platform_probe,
+ .remove = __devexit_p(vgem_platform_remove),
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = DRIVER_NAME,
+ },
+};
+
+static struct platform_device *vgem_device;
+
+static int __init vgem_init(void)
+{
+ int ret;
+
+ if ((ret = platform_driver_register(&vgem_platform_driver)))
+ return ret;
+
+ vgem_device = platform_device_alloc("vgem", -1);
+ if (!vgem_device) {
+ ret = -ENOMEM;
+ goto out;
+ }
+
+ ret = platform_device_add(vgem_device);
+ if (!ret)
+ return 0;
+
+out:
+ platform_device_put(vgem_device);
+ platform_driver_unregister(&vgem_platform_driver);
+
+ return ret;
+}
+
+static void __exit vgem_exit(void)
+{
+ platform_device_unregister(vgem_device);
+ platform_driver_unregister(&vgem_platform_driver);
+}
+
+module_init(vgem_init);
+module_exit(vgem_exit);
+
+MODULE_AUTHOR("Red Hat, Inc.");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL and additional rights");
diff --git a/include/drm/vgem_drm.h b/include/drm/vgem_drm.h
new file mode 100644
index 0000000..df83503
--- /dev/null
+++ b/include/drm/vgem_drm.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software")
+ * to deal in the software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * them Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTIBILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef VGEM_DRM_H
+#define VGEM_DRM_H
+
+/* Bare API largely ripped off from exynos driver */
+
+struct vgem_gem_create {
+ unsigned int size;
+ unsigned int flags;
+ unsigned int handle;
+};
+
+struct vgem_gem_mmap {
+ unsigned int handle;
+ unsigned int size;
+ uint64_t mapped;
+};
+
+struct vgem_gem_getparam {
+#define VGEM_PARAM_IS_VGEM 1
+ unsigned int param;
+ unsigned int *value;
+};
+
+#define DRM_VGEM_GEM_CREATE 0x00
+#define DRM_VGEM_GEM_MMAP 0x01
+#define DRM_VGEM_GEM_GETPARAM 0x02
+
+#define DRM_IOCTL_VGEM_GEM_CREATE \
+ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_CREATE, \
+ struct vgem_gem_create)
+
+#define DRM_IOCTL_VGEM_GEM_MMAP \
+ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_MMAP, \
+ struct vgem_gem_mmap)
+
+#define DRM_IOCTL_VGEM_GEM_GETPARAM \
+ DRM_IOWR(DRM_COMMAND_BASE + DRM_VGEM_GEM_GETPARAM, \
+ struct vgem_gem_getparam)
+
+#endif

View File

@ -0,0 +1,45 @@
commit 9b989ae8a30f5a430fabbf911e0643bca96c3fd1
Author: Matthew Garrett <mjg@redhat.com>
Date: Thu Apr 26 17:35:58 2012 -0400
efifb: Skip DMI checks if the bootloader knows what it's doing
The majority of the DMI checks in efifb are for cases where the bootloader
has provided invalid information. However, on some machines the overrides
may do more harm than good due to configuration differences between machines
with the same machine identifier. It turns out that it's possible for the
bootloader to get the correct information on GOP-based systems, but we
can't guarantee that the kernel's being booted with one that's been updated
to do so. Add support for a capabilities flag that can be set by the
bootloader, and skip the DMI checks in that case.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
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;

View File

@ -0,0 +1,118 @@
From 20ae2081584450e552735a3df968ce5b5946a607 Mon Sep 17 00:00:00 2001
From: Kees Cook <keescook@chromium.org>
Date: Mon, 26 Nov 2012 08:56:37 -0500
Subject: [PATCH 1/2] exec: do not leave bprm->interp on stack
If a series of scripts are executed, each triggering module loading via
unprintable bytes in the script header, kernel stack contents can leak
into the command line.
Normally execution of binfmt_script and binfmt_misc happens recursively.
However, when modules are enabled, and unprintable bytes exist in the
bprm->buf, execution will restart after attempting to load matching binfmt
modules. Unfortunately, the logic in binfmt_script and binfmt_misc does
not expect to get restarted. They leave bprm->interp pointing to their
local stack. This means on restart bprm->interp is left pointing into
unused stack memory which can then be copied into the userspace argv
areas.
After additional study, it seems that both recursion and restart remains
the desirable way to handle exec with scripts, misc, and modules. As
such, we need to protect the changes to interp.
This changes the logic to require allocation for any changes to the
bprm->interp. To avoid adding a new kmalloc to every exec, the default
value is left as-is. Only when passing through binfmt_script or
binfmt_misc does an allocation take place.
For a proof of concept, see DoTest.sh from:
http://www.halfdog.net/Security/2012/LinuxKernelBinfmtScriptStackDataDisclosure/
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: halfdog <me@halfdog.net>
Cc: P J P <ppandit@redhat.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/binfmt_misc.c | 5 ++++-
fs/binfmt_script.c | 4 +++-
fs/exec.c | 15 +++++++++++++++
include/linux/binfmts.h | 1 +
4 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index 790b3cd..772428d 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -176,7 +176,10 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs)
goto _error;
bprm->argc ++;
- bprm->interp = iname; /* for binfmt_script */
+ /* Update interp in case binfmt_script needs it. */
+ retval = bprm_change_interp(iname, bprm);
+ if (retval < 0)
+ goto _error;
interp_file = open_exec (iname);
retval = PTR_ERR (interp_file);
diff --git a/fs/binfmt_script.c b/fs/binfmt_script.c
index d3b8c1f..df49d48 100644
--- a/fs/binfmt_script.c
+++ b/fs/binfmt_script.c
@@ -82,7 +82,9 @@ static int load_script(struct linux_binprm *bprm,struct pt_regs *regs)
retval = copy_strings_kernel(1, &i_name, bprm);
if (retval) return retval;
bprm->argc++;
- bprm->interp = interp;
+ retval = bprm_change_interp(interp, bprm);
+ if (retval < 0)
+ return retval;
/*
* OK, now restart the process with the interpreter's dentry.
diff --git a/fs/exec.c b/fs/exec.c
index fab2c6d..59896ae 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1202,9 +1202,24 @@ void free_bprm(struct linux_binprm *bprm)
mutex_unlock(&current->signal->cred_guard_mutex);
abort_creds(bprm->cred);
}
+ /* If a binfmt changed the interp, free it. */
+ if (bprm->interp != bprm->filename)
+ kfree(bprm->interp);
kfree(bprm);
}
+int bprm_change_interp(char *interp, struct linux_binprm *bprm)
+{
+ /* If a binfmt changed the interp, free it first. */
+ if (bprm->interp != bprm->filename)
+ kfree(bprm->interp);
+ bprm->interp = kstrdup(interp, GFP_KERNEL);
+ if (!bprm->interp)
+ return -ENOMEM;
+ return 0;
+}
+EXPORT_SYMBOL(bprm_change_interp);
+
/*
* install the new credentials for this executable
*/
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
index 366422b..eb53e15 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -128,6 +128,7 @@ extern int setup_arg_pages(struct linux_binprm * bprm,
unsigned long stack_top,
int executable_stack);
extern int bprm_mm_init(struct linux_binprm *bprm);
+extern int bprm_change_interp(char *interp, struct linux_binprm *bprm);
extern int copy_strings_kernel(int argc, const char *const *argv,
struct linux_binprm *bprm);
extern int prepare_bprm_creds(struct linux_binprm *bprm);
--
1.8.0

View File

@ -1,51 +0,0 @@
From ea75f7357e3a881bd1bd0db5e483fc6a8681567b Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@redhat.com>
Date: Tue, 10 Jan 2012 09:39:02 -0500
Subject: [PATCH] ext4: Support "check=none" "nocheck" mount options
The ext2/ext3 filesystems supported "check=none" and "nocheck" as mount options
even though that was already the default behavior and it essentially did
nothing. When using ext4 to mount ext2/ext3 filesystems, that mount option
causes the mount to fail. That isn't as backward compatible as it could be,
so add support to ext4 to accept the option.
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
---
fs/ext4/super.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 3e1329e..5ff09e7 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1333,7 +1333,7 @@ enum {
Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity,
Opt_inode_readahead_blks, Opt_journal_ioprio,
Opt_dioread_nolock, Opt_dioread_lock,
- Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
+ Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, Opt_nocheck,
};
static const match_table_t tokens = {
@@ -1409,6 +1409,8 @@ static const match_table_t tokens = {
{Opt_init_itable, "init_itable=%u"},
{Opt_init_itable, "init_itable"},
{Opt_noinit_itable, "noinit_itable"},
+ {Opt_nocheck, "check=none"},
+ {Opt_nocheck, "nocheck"},
{Opt_err, NULL},
};
@@ -1905,6 +1907,9 @@ set_qf_format:
case Opt_noinit_itable:
clear_opt(sb, INIT_INODE_TABLE);
break;
+ case Opt_nocheck:
+ /* ext2/ext3 used to "support" this option. Silently eat it */
+ break;
default:
ext4_msg(sb, KERN_ERR,
"Unrecognized mount option \"%s\" "
--
1.7.7.5

View File

@ -0,0 +1,14 @@
diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
index 6c80083..77cc85d 100644
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -122,6 +122,7 @@ static int fill_event_metadata(struct fsnotify_group *group,
metadata->event_len = FAN_EVENT_METADATA_LEN;
metadata->metadata_len = FAN_EVENT_METADATA_LEN;
metadata->vers = FANOTIFY_METADATA_VERSION;
+ metadata->reserved = 0;
metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
metadata->pid = pid_vnr(event->tgid);
if (unlikely(event->mask & FAN_Q_OVERFLOW))

View File

@ -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/

207
fix-ext4-overflows.patch Normal file
View File

@ -0,0 +1,207 @@
From 93f6b57df5d9dd8c0327cebc01f6c00dbcd6d2ff Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Fri, 31 May 2013 19:33:42 -0400
Subject: [PATCH 1/4] ext4: fix data offset overflow on 32-bit archs in
ext4_inline_data_fiemap()
On 32-bit archs when sector_t is defined as 32-bit the logic computing
data offset in ext4_inline_data_fiemap(). Fix that by properly typing
the shifted value.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
fs/ext4/inline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index c0fd1a1..c46a01e 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -1702,7 +1702,7 @@ int ext4_inline_data_fiemap(struct inode *inode,
if (error)
goto out;
- physical = iloc.bh->b_blocknr << inode->i_sb->s_blocksize_bits;
+ physical = (__u64)iloc.bh->b_blocknr << inode->i_sb->s_blocksize_bits;
physical += (char *)ext4_raw_inode(&iloc) - iloc.bh->b_data;
physical += offsetof(struct ext4_inode, i_block);
length = i_size_read(inode);
--
1.8.3.1
From 4d2cedb535bae3ada76a335540657e948f99d9c0 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Fri, 31 May 2013 19:37:56 -0400
Subject: [PATCH 2/4] ext4: fix overflows in SEEK_HOLE, SEEK_DATA
implementations
ext4_lblk_t is just u32 so multiplying it by blocksize can easily
overflow for files larger than 4 GB. Fix that by properly typing the
block offsets before shifting.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
---
fs/ext4/file.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 64848b5..b47ccf9 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -311,7 +311,7 @@ static int ext4_find_unwritten_pgoff(struct inode *inode,
blkbits = inode->i_sb->s_blocksize_bits;
startoff = *offset;
lastoff = startoff;
- endoff = (map->m_lblk + map->m_len) << blkbits;
+ endoff = (loff_t)(map->m_lblk + map->m_len) << blkbits;
index = startoff >> PAGE_CACHE_SHIFT;
end = endoff >> PAGE_CACHE_SHIFT;
@@ -456,7 +456,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize)
ret = ext4_map_blocks(NULL, inode, &map, 0);
if (ret > 0 && !(map.m_flags & EXT4_MAP_UNWRITTEN)) {
if (last != start)
- dataoff = last << blkbits;
+ dataoff = (loff_t)last << blkbits;
break;
}
@@ -467,7 +467,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize)
ext4_es_find_delayed_extent(inode, last, &es);
if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) {
if (last != start)
- dataoff = last << blkbits;
+ dataoff = (loff_t)last << blkbits;
break;
}
@@ -485,7 +485,7 @@ static loff_t ext4_seek_data(struct file *file, loff_t offset, loff_t maxsize)
}
last++;
- dataoff = last << blkbits;
+ dataoff = (loff_t)last << blkbits;
} while (last <= end);
mutex_unlock(&inode->i_mutex);
@@ -539,7 +539,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize)
ret = ext4_map_blocks(NULL, inode, &map, 0);
if (ret > 0 && !(map.m_flags & EXT4_MAP_UNWRITTEN)) {
last += ret;
- holeoff = last << blkbits;
+ holeoff = (loff_t)last << blkbits;
continue;
}
@@ -550,7 +550,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize)
ext4_es_find_delayed_extent(inode, last, &es);
if (es.es_len != 0 && in_range(last, es.es_lblk, es.es_len)) {
last = es.es_lblk + es.es_len;
- holeoff = last << blkbits;
+ holeoff = (loff_t)last << blkbits;
continue;
}
@@ -565,7 +565,7 @@ static loff_t ext4_seek_hole(struct file *file, loff_t offset, loff_t maxsize)
&map, &holeoff);
if (!unwritten) {
last += ret;
- holeoff = last << blkbits;
+ holeoff = (loff_t)last << blkbits;
continue;
}
}
--
1.8.3.1
From 114fe3b7fc9ca3ca00f774dd8705e8c802f39f14 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Fri, 31 May 2013 19:38:56 -0400
Subject: [PATCH 3/4] ext4: fix data offset overflow in ext4_xattr_fiemap() on
32-bit archs
On 32-bit architectures with 32-bit sector_t computation of data offset
in ext4_xattr_fiemap() can overflow resulting in reporting bogus data
location. Fix the problem by typing block number to proper type before
shifting.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
fs/ext4/extents.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 9c6d06d..6bb303c 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4605,7 +4605,7 @@ static int ext4_xattr_fiemap(struct inode *inode,
error = ext4_get_inode_loc(inode, &iloc);
if (error)
return error;
- physical = iloc.bh->b_blocknr << blockbits;
+ physical = (__u64)iloc.bh->b_blocknr << blockbits;
offset = EXT4_GOOD_OLD_INODE_SIZE +
EXT4_I(inode)->i_extra_isize;
physical += offset;
@@ -4613,7 +4613,7 @@ static int ext4_xattr_fiemap(struct inode *inode,
flags |= FIEMAP_EXTENT_DATA_INLINE;
brelse(iloc.bh);
} else { /* external block */
- physical = EXT4_I(inode)->i_file_acl << blockbits;
+ physical = (__u64)EXT4_I(inode)->i_file_acl << blockbits;
length = inode->i_sb->s_blocksize;
}
--
1.8.3.1
From aeb72ff4b7fe084b4373d4a91d77d3bea8089627 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack@suse.cz>
Date: Fri, 31 May 2013 19:39:56 -0400
Subject: [PATCH 4/4] ext4: fix overflow when counting used blocks on 32-bit
architectures
The arithmetics adding delalloc blocks to the number of used blocks in
ext4_getattr() can easily overflow on 32-bit archs as we first multiply
number of blocks by blocksize and then divide back by 512. Make the
arithmetics more clever and also use proper type (unsigned long long
instead of unsigned long).
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
fs/ext4/inode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index d69e954..e33e2d2 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4616,7 +4616,7 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry,
struct kstat *stat)
{
struct inode *inode;
- unsigned long delalloc_blocks;
+ unsigned long long delalloc_blocks;
inode = dentry->d_inode;
generic_fillattr(inode, stat);
@@ -4634,7 +4634,7 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry,
delalloc_blocks = EXT4_C2B(EXT4_SB(inode->i_sb),
EXT4_I(inode)->i_reserved_data_blocks);
- stat->blocks += (delalloc_blocks << inode->i_sb->s_blocksize_bits)>>9;
+ stat->blocks += delalloc_blocks << (inode->i_sb->s_blocksize_bits-9);
return 0;
}
--
1.8.3.1

View File

@ -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

View File

@ -1,107 +0,0 @@
From 5c21b39ab123ada8ce248efc733420bd8c9ea255 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@redhat.com>
Date: Fri, 28 Oct 2011 15:38:06 -0400
Subject: [PATCH] floppy: Remove _hlt related functions
It's close enough to 2012 and the WARN_ONCE is causing things like abrt to
auto-file bugs that aren't really bugs.
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index d5ac362..df1e87c 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -6,14 +6,6 @@ be removed from this file.
---------------------------
-What: x86 floppy disable_hlt
-When: 2012
-Why: ancient workaround of dubious utility clutters the
- code used by everybody else.
-Who: Len Brown <len.brown@intel.com>
-
----------------------------
-
What: CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle
When: 2012
Why: This optional sub-feature of APM is of dubious reliability,
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 9955a53..40bf4c2 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -1032,37 +1032,6 @@ static int fd_wait_for_completion(unsigned long delay, timeout_fn function)
return 0;
}
-static DEFINE_SPINLOCK(floppy_hlt_lock);
-static int hlt_disabled;
-static void floppy_disable_hlt(void)
-{
- unsigned long flags;
-
- WARN_ONCE(1, "floppy_disable_hlt() scheduled for removal in 2012");
- spin_lock_irqsave(&floppy_hlt_lock, flags);
- if (!hlt_disabled) {
- hlt_disabled = 1;
-#ifdef HAVE_DISABLE_HLT
- disable_hlt();
-#endif
- }
- spin_unlock_irqrestore(&floppy_hlt_lock, flags);
-}
-
-static void floppy_enable_hlt(void)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&floppy_hlt_lock, flags);
- if (hlt_disabled) {
- hlt_disabled = 0;
-#ifdef HAVE_DISABLE_HLT
- enable_hlt();
-#endif
- }
- spin_unlock_irqrestore(&floppy_hlt_lock, flags);
-}
-
static void setup_DMA(void)
{
unsigned long f;
@@ -1107,7 +1076,6 @@ static void setup_DMA(void)
fd_enable_dma();
release_dma_lock(f);
#endif
- floppy_disable_hlt();
}
static void show_floppy(void);
@@ -1709,7 +1677,6 @@ irqreturn_t floppy_interrupt(int irq, void *dev_id)
fd_disable_dma();
release_dma_lock(f);
- floppy_enable_hlt();
do_floppy = NULL;
if (fdc >= N_FDC || FDCS->address == -1) {
/* we don't even know which FDC is the culprit */
@@ -1858,8 +1825,6 @@ static void floppy_shutdown(unsigned long data)
show_floppy();
cancel_activity();
- floppy_enable_hlt();
-
flags = claim_dma_lock();
fd_disable_dma();
release_dma_lock(flags);
@@ -4504,7 +4469,6 @@ static void floppy_release_irq_and_dma(void)
#if N_FDC > 1
set_dor(1, ~8, 0);
#endif
- floppy_enable_hlt();
if (floppy_track_buffer && max_buffer_sectors) {
tmpsize = max_buffer_sectors * 1024;
--
1.7.6.4

View File

@ -0,0 +1,12 @@
diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c
index 927cbd1..f060f28 100644
--- a/fs/proc/proc_devtree.c
+++ b/fs/proc/proc_devtree.c
@@ -233,6 +233,7 @@ void __init proc_device_tree_init(void)
return;
root = of_find_node_by_path("/");
if (root == NULL) {
+ remove_proc_entry("device-tree", NULL);
pr_debug("/proc/device-tree: can't find root\n");
return;
}

View File

@ -1,26 +0,0 @@
The finder_info block in the hfsplus volume header is currently defined as
an array of 8 bit values, but TN1150 defines it as being an array of 32 bit
values. Fix for convenience.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
fs/hfsplus/hfsplus_raw.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/hfsplus/hfsplus_raw.h b/fs/hfsplus/hfsplus_raw.h
index 927cdd6..921967e 100644
--- a/fs/hfsplus/hfsplus_raw.h
+++ b/fs/hfsplus/hfsplus_raw.h
@@ -117,7 +117,7 @@ struct hfsplus_vh {
__be32 write_count;
__be64 encodings_bmp;
- u8 finder_info[32];
+ u32 finder_info[8];
struct hfsplus_fork_raw alloc_file;
struct hfsplus_fork_raw ext_file;
--
1.7.7.1

View File

@ -0,0 +1,39 @@
From f3922382ce930e76773fb06416a7a6081a8702ad Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg@redhat.com>
Date: Tue, 13 Mar 2012 12:10:34 -0400
Subject: [PATCH] hfsplus: initialise userflags
The userflags field was being written to the filesystem without being
initialised. Make sure it's clear, since otherwise files end up with
garbage attributes.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
fs/hfsplus/inode.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c
index 6643b24..82b69ee 100644
--- a/fs/hfsplus/inode.c
+++ b/fs/hfsplus/inode.c
@@ -193,6 +193,7 @@ static struct dentry *hfsplus_file_lookup(struct inode *dir,
mutex_init(&hip->extents_lock);
hip->extent_state = 0;
hip->flags = 0;
+ hip->userflags = 0;
set_bit(HFSPLUS_I_RSRC, &hip->flags);
err = hfs_find_init(HFSPLUS_SB(sb)->cat_tree, &fd);
@@ -400,6 +401,7 @@ struct inode *hfsplus_new_inode(struct super_block *sb, umode_t mode)
atomic_set(&hip->opencnt, 0);
hip->extent_state = 0;
hip->flags = 0;
+ hip->userflags = 0;
memset(hip->first_extents, 0, sizeof(hfsplus_extent_rec));
memset(hip->cached_extents, 0, sizeof(hfsplus_extent_rec));
hip->alloc_blocks = 0;
--
1.7.7.6

View File

@ -0,0 +1,287 @@
commit b94887bbc0621e1e8402e7f0ec4bc3adf46c9a6e
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date: Fri Feb 17 12:42:08 2012 -0500
Freeze all filesystems during system suspend and (kernel-driven)
hibernation by calling freeze_supers() for all superblocks and thaw
them during the subsequent resume with the help of thaw_supers().
This makes filesystems stay in a consistent state in case something
goes wrong between system suspend (or hibernation) and the subsequent
resume (e.g. journal replays won't be necessary in those cases). In
particular, this should help to solve a long-standing issue that, in
some cases, during resume from hibernation the boot loader causes the
journal to be replied for the filesystem containing the kernel image
and/or initrd causing it to become inconsistent with the information
stored in the hibernation image.
The user-space-driven hibernation (s2disk) is not covered by this
change, because the freezing of filesystems prevents s2disk from
accessing device special files it needs to do its job.
This change is based on earlier work by Nigel Cunningham.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Rebased to 3.3-rc3 by Josh Boyer <jwboyer@redhat.com>
diff --git a/fs/super.c b/fs/super.c
index 6015c02..c8057fa 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -594,6 +594,79 @@ void iterate_supers_type(struct file_system_type *type,
EXPORT_SYMBOL(iterate_supers_type);
/**
+ * thaw_supers - call thaw_super() for all superblocks
+ */
+void thaw_supers(void)
+{
+ struct super_block *sb, *p = NULL;
+
+ spin_lock(&sb_lock);
+ list_for_each_entry(sb, &super_blocks, s_list) {
+ if (hlist_unhashed(&sb->s_instances))
+ continue;
+ sb->s_count++;
+ spin_unlock(&sb_lock);
+
+ if (sb->s_flags & MS_FROZEN) {
+ thaw_super(sb);
+ sb->s_flags &= ~MS_FROZEN;
+ }
+
+ spin_lock(&sb_lock);
+ if (p)
+ __put_super(p);
+ p = sb;
+ }
+ if (p)
+ __put_super(p);
+ spin_unlock(&sb_lock);
+}
+
+/**
+ * freeze_supers - call freeze_super() for all superblocks
+ */
+int freeze_supers(void)
+{
+ struct super_block *sb, *p = NULL;
+ int error = 0;
+
+ spin_lock(&sb_lock);
+ /*
+ * Freeze in reverse order so filesystems depending on others are
+ * frozen in the right order (eg. loopback on ext3).
+ */
+ list_for_each_entry_reverse(sb, &super_blocks, s_list) {
+ if (hlist_unhashed(&sb->s_instances))
+ continue;
+ sb->s_count++;
+ spin_unlock(&sb_lock);
+
+ if (sb->s_root && sb->s_frozen != SB_FREEZE_TRANS
+ && !(sb->s_flags & MS_RDONLY)) {
+ error = freeze_super(sb);
+ if (!error)
+ sb->s_flags |= MS_FROZEN;
+ }
+
+ spin_lock(&sb_lock);
+ if (error)
+ break;
+ if (p)
+ __put_super(p);
+ p = sb;
+ }
+ if (p)
+ __put_super(p);
+ spin_unlock(&sb_lock);
+
+ if (error)
+ thaw_supers();
+
+ return error;
+}
+
+
+/**
* get_super - get the superblock of a device
* @bdev: device to get the superblock for
*
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 386da09..a164f4a 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -210,6 +210,7 @@ struct inodes_stat_t {
#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
#define MS_I_VERSION (1<<23) /* Update inode I_version field */
#define MS_STRICTATIME (1<<24) /* Always perform atime updates */
+#define MS_FROZEN (1<<25) /* Frozen filesystem */
#define MS_NOSEC (1<<28)
#define MS_BORN (1<<29)
#define MS_ACTIVE (1<<30)
@@ -2501,6 +2502,8 @@ extern void drop_super(struct super_block *sb);
extern void iterate_supers(void (*)(struct super_block *, void *), void *);
extern void iterate_supers_type(struct file_system_type *,
void (*)(struct super_block *, void *), void *);
+extern int freeze_supers(void);
+extern void thaw_supers(void);
extern int dcache_dir_open(struct inode *, struct file *);
extern int dcache_dir_close(struct inode *, struct file *);
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 6d6d288..492fc62 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -626,12 +626,17 @@ int hibernate(void)
if (error)
goto Finish;
- error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
+ error = freeze_supers();
if (error)
goto Thaw;
+
+ error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
+ if (error)
+ goto Thaw_fs;
+
if (freezer_test_done) {
freezer_test_done = false;
- goto Thaw;
+ goto Thaw_fs;
}
if (in_suspend) {
@@ -655,6 +660,8 @@ int hibernate(void)
pr_debug("PM: Image restored successfully.\n");
}
+ Thaw_fs:
+ thaw_supers();
Thaw:
thaw_processes();
Finish:
diff --git a/kernel/power/power.h b/kernel/power/power.h
index 21724ee..40d6f64 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -1,3 +1,4 @@
+#include <linux/fs.h>
#include <linux/suspend.h>
#include <linux/suspend_ioctls.h>
#include <linux/utsname.h>
@@ -227,45 +228,3 @@ enum {
#define TEST_MAX (__TEST_AFTER_LAST - 1)
extern int pm_test_level;
-
-#ifdef CONFIG_SUSPEND_FREEZER
-static inline int suspend_freeze_processes(void)
-{
- int error;
-
- error = freeze_processes();
-
- /*
- * freeze_processes() automatically thaws every task if freezing
- * fails. So we need not do anything extra upon error.
- */
- if (error)
- goto Finish;
-
- error = freeze_kernel_threads();
-
- /*
- * freeze_kernel_threads() thaws only kernel threads upon freezing
- * failure. So we have to thaw the userspace tasks ourselves.
- */
- if (error)
- thaw_processes();
-
- Finish:
- return error;
-}
-
-static inline void suspend_thaw_processes(void)
-{
- thaw_processes();
-}
-#else
-static inline int suspend_freeze_processes(void)
-{
- return 0;
-}
-
-static inline void suspend_thaw_processes(void)
-{
-}
-#endif
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 4fd51be..5f51fc7 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -29,6 +29,62 @@
#include "power.h"
+#ifdef CONFIG_SUSPEND_FREEZER
+
+static inline int suspend_freeze_processes(void)
+{
+ int error;
+
+ error = freeze_processes();
+
+ /*
+ * freeze_processes() automatically thaws every task if freezing
+ * fails. So we need not do anything extra upon error.
+ */
+
+ if (error)
+ goto Finish;
+
+ error = freeze_supers();
+ if (error) {
+ thaw_processes();
+ goto Finish;
+ }
+
+ error = freeze_kernel_threads();
+
+ /*
+ * freeze_kernel_threads() thaws only kernel threads upon freezing
+ * failure. So we have to thaw the userspace tasks ourselves.
+ */
+ if (error) {
+ thaw_supers();
+ thaw_processes();
+ }
+
+Finish:
+ return error;
+}
+
+static inline void suspend_thaw_processes(void)
+{
+ thaw_supers();
+ thaw_processes();
+}
+
+#else /* !CONFIG_SUSPEND_FREEZER */
+
+static inline int suspend_freeze_processes(void)
+{
+ return 0;
+}
+
+static inline void suspend_thaw_processes(void)
+{
+}
+
+#endif /* !CONFIG_SUSPEND_FREEZER */
+
const char *const pm_states[PM_SUSPEND_MAX] = {
[PM_SUSPEND_STANDBY] = "standby",
[PM_SUSPEND_MEM] = "mem",

View File

@ -0,0 +1,108 @@
commit 8ed5b5d41168a98cffa63e2f6c51c3243e159706
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date: Wed Mar 13 22:56:33 2013 -0300
i7300_edac: Fix memory detection in single mode
When the machine is on single mode, only branch 0 channel 0
is valid. However, the code is not honouring it:
[ 1952.639341] EDAC DEBUG: i7300_get_mc_regs: Memory controller operating on single mode
...
[ 1952.639351] EDAC DEBUG: i7300_init_csrows: AMB-present CH0 = 0x1:
[ 1952.639353] EDAC DEBUG: i7300_init_csrows: AMB-present CH1 = 0x0:
[ 1952.639355] EDAC DEBUG: i7300_init_csrows: AMB-present CH2 = 0x0:
[ 1952.639358] EDAC DEBUG: i7300_init_csrows: AMB-present CH3 = 0x0:
...
[ 1952.639360] EDAC DEBUG: decode_mtr: MTR0 CH0: DIMMs are Present (mtr)
[ 1952.639362] EDAC DEBUG: decode_mtr: WIDTH: x8
[ 1952.639363] EDAC DEBUG: decode_mtr: ELECTRICAL THROTTLING is enabled
[ 1952.639364] EDAC DEBUG: decode_mtr: NUMBANK: 4 bank(s)
[ 1952.639366] EDAC DEBUG: decode_mtr: NUMRANK: single
[ 1952.639367] EDAC DEBUG: decode_mtr: NUMROW: 16,384 - 14 rows
[ 1952.639368] EDAC DEBUG: decode_mtr: NUMCOL: 1,024 - 10 columns
[ 1952.639370] EDAC DEBUG: decode_mtr: SIZE: 512 MB
[ 1952.639371] EDAC DEBUG: decode_mtr: ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639373] EDAC DEBUG: decode_mtr: Scrub algorithm for x8 is on enhanced mode
[ 1952.639374] EDAC DEBUG: decode_mtr: MTR0 CH1: DIMMs are Present (mtr)
[ 1952.639376] EDAC DEBUG: decode_mtr: WIDTH: x8
[ 1952.639377] EDAC DEBUG: decode_mtr: ELECTRICAL THROTTLING is enabled
[ 1952.639379] EDAC DEBUG: decode_mtr: NUMBANK: 4 bank(s)
[ 1952.639380] EDAC DEBUG: decode_mtr: NUMRANK: single
[ 1952.639381] EDAC DEBUG: decode_mtr: NUMROW: 16,384 - 14 rows
[ 1952.639383] EDAC DEBUG: decode_mtr: NUMCOL: 1,024 - 10 columns
[ 1952.639384] EDAC DEBUG: decode_mtr: SIZE: 512 MB
[ 1952.639385] EDAC DEBUG: decode_mtr: ECC code is 8-byte-over-32-byte SECDED+ code
[ 1952.639387] EDAC DEBUG: decode_mtr: Scrub algorithm for x8 is on enhanced mode
...
[ 1952.639449] EDAC DEBUG: print_dimm_size: channel 0 | channel 1 | channel 2 | channel 3 |
[ 1952.639451] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------
[ 1952.639453] EDAC DEBUG: print_dimm_size: csrow/SLOT 0 512 MB | 512 MB | 0 MB | 0 MB |
[ 1952.639456] EDAC DEBUG: print_dimm_size: csrow/SLOT 1 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639458] EDAC DEBUG: print_dimm_size: csrow/SLOT 2 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639460] EDAC DEBUG: print_dimm_size: csrow/SLOT 3 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639462] EDAC DEBUG: print_dimm_size: csrow/SLOT 4 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639464] EDAC DEBUG: print_dimm_size: csrow/SLOT 5 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639466] EDAC DEBUG: print_dimm_size: csrow/SLOT 6 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639468] EDAC DEBUG: print_dimm_size: csrow/SLOT 7 0 MB | 0 MB | 0 MB | 0 MB |
[ 1952.639470] EDAC DEBUG: print_dimm_size: -------------------------------------------------------------
Instead of detecting a single memory at channel 0, it is showing
twice the memory.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c
index 087c27b..9004c64 100644
--- a/drivers/edac/i7300_edac.c
+++ b/drivers/edac/i7300_edac.c
@@ -750,15 +750,23 @@ static int i7300_init_csrows(struct mem_ctl_info *mci)
struct i7300_dimm_info *dinfo;
int rc = -ENODEV;
int mtr;
- int ch, branch, slot, channel;
+ int ch, branch, slot, channel, max_channel, max_branch;
struct dimm_info *dimm;
pvt = mci->pvt_info;
edac_dbg(2, "Memory Technology Registers:\n");
+ if (IS_SINGLE_MODE(pvt->mc_settings_a)) {
+ max_branch = 1;
+ max_channel = 1;
+ } else {
+ max_branch = MAX_BRANCHES;
+ max_channel = MAX_CH_PER_BRANCH;
+ }
+
/* Get the AMB present registers for the four channels */
- for (branch = 0; branch < MAX_BRANCHES; branch++) {
+ for (branch = 0; branch < max_branch; branch++) {
/* Read and dump branch 0's MTRs */
channel = to_channel(0, branch);
pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch],
@@ -767,6 +775,9 @@ static int i7300_init_csrows(struct mem_ctl_info *mci)
edac_dbg(2, "\t\tAMB-present CH%d = 0x%x:\n",
channel, pvt->ambpresent[channel]);
+ if (max_channel == 1)
+ continue;
+
channel = to_channel(1, branch);
pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch],
AMBPRESENT_1,
@@ -778,11 +789,11 @@ static int i7300_init_csrows(struct mem_ctl_info *mci)
/* Get the set of MTR[0-7] regs by each branch */
for (slot = 0; slot < MAX_SLOTS; slot++) {
int where = mtr_regs[slot];
- for (branch = 0; branch < MAX_BRANCHES; branch++) {
+ for (branch = 0; branch < max_branch; branch++) {
pci_read_config_word(pvt->pci_dev_2x_0_fbd_branch[branch],
where,
&pvt->mtr[slot][branch]);
- for (ch = 0; ch < MAX_CH_PER_BRANCH; ch++) {
+ for (ch = 0; ch < max_channel; ch++) {
int channel = to_channel(ch, branch);
dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms,

View File

@ -1,32 +1,20 @@
From b2c6d55b2351152696aafb8c9bf3ec8968acf77c Mon Sep 17 00:00:00 2001
From: Kyle McMartin <kyle@phobos.i.jkkm.org>
Date: Mon, 29 Mar 2010 23:59:58 -0400
Subject: linux-2.6-input-kill-stupid-messages
---
drivers/input/keyboard/atkbd.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index d358ef8..38db098 100644
index add5ffd..5eb2f03 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -425,11 +426,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
@@ -430,11 +430,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
goto out;
case ATKBD_RET_ACK:
case ATKBD_RET_NAK:
+#if 0
+# if 0
+ /* Quite a few key switchers and other tools trigger this
+ * and it confuses people who can do nothing about it */
if (printk_ratelimit())
dev_warn(&serio->dev,
"Spurious %s on %s. "
"Some program might be trying access hardware directly.\n",
"Some program might be trying to access hardware directly.\n",
data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys);
+#endif
goto out;
case ATKBD_RET_ERR:
atkbd->err_count++;
--
1.7.0.1

View File

@ -0,0 +1,25 @@
This triggers on a MacBook Pro.
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
https://bugzilla.redhat.com/show_bug.cgi?id=948262
---
drivers/iommu/intel_irq_remapping.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index f3b8f23..a7e0ad1 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -654,8 +654,7 @@ error:
*/
if (x2apic_present)
- WARN(1, KERN_WARNING
- "Failed to enable irq remapping. You are vulnerable to irq-injection attacks.\n");
+ pr_warn("Failed to enable irq remapping. You are vulnerable to irq-injection attacks.\n");
return -1;
}
--
1.8.1.4

15
ips-noirq.patch Normal file
View File

@ -0,0 +1,15 @@
--- a/drivers/platform/x86/intel_ips.c
+++ a/drivers/platform/x86/intel_ips.c
@@ -1603,6 +1603,12 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
goto error_unmap;
}
+ /* No IRQ assigned is a BIOS failure... */
+ if (dev->irq <= 0) {
+ ret = -ENODEV;
+ goto error_unmap;
+ }
+
/*
* IRQ handler for ME interaction
* Note: don't use MSI here as the PCH has bugs.

View File

@ -0,0 +1,52 @@
From a963a37d384d71ad43b3e9e79d68d42fbe0901f3 Mon Sep 17 00:00:00 2001
From: Eric Dumazet <edumazet@google.com>
Date: Wed, 26 Jun 2013 04:15:07 -0700
Subject: [PATCH] ipv6: ip6_sk_dst_check() must not assume ipv6 dst
It's possible to use AF_INET6 sockets and to connect to an IPv4
destination. After this, socket dst cache is a pointer to a rtable,
not rt6_info.
ip6_sk_dst_check() should check the socket dst cache is IPv6, or else
various corruptions/crashes can happen.
Dave Jones can reproduce immediate crash with
trinity -q -l off -n -c sendmsg -c connect
With help from Hannes Frederic Sowa
Reported-by: Dave Jones <davej@redhat.com>
Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/ipv6/ip6_output.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 95703ba..d5d20cd 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -821,11 +821,17 @@ static struct dst_entry *ip6_sk_dst_check(struct sock *sk,
const struct flowi6 *fl6)
{
struct ipv6_pinfo *np = inet6_sk(sk);
- struct rt6_info *rt = (struct rt6_info *)dst;
+ struct rt6_info *rt;
if (!dst)
goto out;
+ if (dst->ops->family != AF_INET6) {
+ dst_release(dst);
+ return NULL;
+ }
+
+ rt = (struct rt6_info *)dst;
/* Yes, checking route validity in not connected
* case is not very simple. Take into account,
* that we do not support routing by source, TOS,
--
1.8.2.1

View File

@ -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)

View File

@ -0,0 +1,65 @@
4965 version of Eric patch "iwl3945: better skb management in rx path".
It fixes several problems :
1) skb->truesize is underestimated.
We really consume PAGE_SIZE bytes for a fragment,
not the frame length.
2) 128 bytes of initial headroom is a bit low and forces reallocations.
3) We can avoid consuming a full page for small enough frames.
Signed-off-by: Stanislaw Gruszka <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

View File

@ -0,0 +1,32 @@
From 7b29fdb8cd8f92e31f550611a8c031986dba2e8f Mon Sep 17 00:00:00 2001
From: Johannes Berg <johannes.berg@intel.com>
Date: Fri, 03 May 2013 16:58:16 +0000
Subject: iwlwifi: dvm: don't send BT_CONFIG on devices w/o Bluetooth
The BT_CONFIG command that is sent to the device during
startup will enable BT coex unless the module parameter
turns it off, but on devices without Bluetooth this may
cause problems, as reported in Redhat BZ 885407.
Fix this by sending the BT_CONFIG command only when the
device has Bluetooth.
Cc: stable@vger.kernel.org
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
index 3952ddf..1531a4f 100644
--- a/drivers/net/wireless/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/iwlwifi/dvm/main.c
@@ -758,7 +758,7 @@ int iwl_alive_start(struct iwl_priv *priv)
BT_COEX_PRIO_TBL_EVT_INIT_CALIB2);
if (ret)
return ret;
- } else {
+ } else if (priv->cfg->bt_params) {
/*
* default is 2-wire BT coexexistence support
*/
--
cgit v0.9.2

View File

@ -0,0 +1,56 @@
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
When a queue is disabled, it frees all its entries. Later,
the op_mode might still get notifications from the firmware
that triggers to free entries in the tx queue. The transport
should be prepared for these races and know to ignore
reclaim calls on queues that have been disabled and whose
entries have been freed.
Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/iwlwifi/pcie/tx.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index cb5c679..faaf77c 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -578,9 +578,12 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id)
spin_lock_bh(&txq->lock);
while (q->write_ptr != q->read_ptr) {
+ IWL_DEBUG_TX_REPLY(trans, "Q %d Free %d\n",
+ txq_id, q->read_ptr);
iwl_pcie_txq_free_tfd(trans, txq);
q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd);
}
+ txq->active = false;
spin_unlock_bh(&txq->lock);
}
@@ -929,6 +932,12 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
spin_lock_bh(&txq->lock);
+ if (!txq->active) {
+ IWL_DEBUG_TX_QUEUES(trans, "Q %d inactive - ignoring idx %d\n",
+ txq_id, ssn);
+ goto out;
+ }
+
if (txq->q.read_ptr == tfd_num)
goto out;
@@ -1105,6 +1114,7 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, int fifo,
(fifo << SCD_QUEUE_STTS_REG_POS_TXF) |
(1 << SCD_QUEUE_STTS_REG_POS_WSL) |
SCD_QUEUE_STTS_REG_MSK);
+ trans_pcie->txq[txq_id].active = true;
IWL_DEBUG_TX_QUEUES(trans, "Activate queue %d on FIFO %d WrPtr: %d\n",
txq_id, fifo, ssn & 0xff);
}
--
1.7.11.7

View File

@ -0,0 +1,35 @@
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
When the queue is unmapped while it was so loaded that
mac80211's was stopped, we need to wake the queue after
having freed all the packets in the queue.
Not doing so can result in weird stuff like:
* run lots of traffic (mac80211's queue gets stopped)
* RFKILL
* de-assert RFKILL
* no traffic
Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
drivers/net/wireless/iwlwifi/pcie/tx.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index faaf77c..4e7b8d4 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -585,6 +585,9 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id)
}
txq->active = false;
spin_unlock_bh(&txq->lock);
+
+ /* just in case - this queue may have been stopped */
+ iwl_wake_queue(trans, txq);
}
/*
--
1.7.11.7

File diff suppressed because it is too large Load Diff

View File

@ -1,251 +0,0 @@
Before:
Heap randomisation test (PIE) : 16 bits (guessed)
Main executable randomisation (PIE) : 8 bits (guessed)
after:
Heap randomisation test (PIE) : 19 bits (guessed)
Main executable randomisation (PIE) : 12 bits (guessed)
--- b/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -397,6 +397,10 @@
extern unsigned long
arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
unsigned long, unsigned long);
+
+extern unsigned long
+arch_get_unmapped_exec_area(struct file *, unsigned long, unsigned long,
+ unsigned long, unsigned long);
extern unsigned long
arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
unsigned long len, unsigned long pgoff,
--- b/mm/mmap.c
+++ b/mm/mmap.c
@@ -28,6 +28,7 @@
#include <linux/perf_event.h>
#include <linux/audit.h>
#include <linux/khugepaged.h>
+#include <linux/random.h>
#include <asm/uaccess.h>
#include <asm/cacheflush.h>
@@ -1000,7 +1001,8 @@
/* Obtain the address to map to. we verify (or select) it and ensure
* that it represents a valid section of the address space.
*/
- addr = get_unmapped_area(file, addr, len, pgoff, flags);
+ addr = get_unmapped_area_prot(file, addr, len, pgoff, flags,
+ prot & PROT_EXEC);
if (addr & ~PAGE_MASK)
return addr;
@@ -1552,8 +1554,8 @@
}
unsigned long
-get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
- unsigned long pgoff, unsigned long flags)
+get_unmapped_area_prot(struct file *file, unsigned long addr, unsigned long len,
+ unsigned long pgoff, unsigned long flags, int exec)
{
unsigned long (*get_area)(struct file *, unsigned long,
unsigned long, unsigned long, unsigned long);
@@ -1566,7 +1568,11 @@
if (len > TASK_SIZE)
return -ENOMEM;
- get_area = current->mm->get_unmapped_area;
+ if (exec && current->mm->get_unmapped_exec_area)
+ get_area = current->mm->get_unmapped_exec_area;
+ else
+ get_area = current->mm->get_unmapped_area;
+
if (file && file->f_op && file->f_op->get_unmapped_area)
get_area = file->f_op->get_unmapped_area;
addr = get_area(file, addr, len, pgoff, flags);
@@ -1580,8 +1586,83 @@
return arch_rebalance_pgtables(addr, len);
}
+EXPORT_SYMBOL(get_unmapped_area_prot);
+
+static bool should_randomize(void)
+{
+ return (current->flags & PF_RANDOMIZE) &&
+ !(current->personality & ADDR_NO_RANDOMIZE);
+}
+
+#define SHLIB_BASE 0x00110000
+
+unsigned long
+arch_get_unmapped_exec_area(struct file *filp, unsigned long addr0,
+ unsigned long len0, unsigned long pgoff, unsigned long flags)
+{
+ unsigned long addr = addr0, len = len0;
+ struct mm_struct *mm = current->mm;
+ struct vm_area_struct *vma;
+ unsigned long tmp;
+
+ if (len > TASK_SIZE)
+ return -ENOMEM;
+
+ if (flags & MAP_FIXED)
+ return addr;
+
+ if (!addr)
+ addr = !should_randomize() ? SHLIB_BASE :
+ randomize_range(SHLIB_BASE, 0x01000000, len);
+
+ if (addr) {
+ addr = PAGE_ALIGN(addr);
+ vma = find_vma(mm, addr);
+ if (TASK_SIZE - len >= addr &&
+ (!vma || addr + len <= vma->vm_start))
+ return addr;
+ }
+
+ addr = SHLIB_BASE;
+ for (vma = find_vma(mm, addr); ; vma = vma->vm_next) {
+ /* At this point: (!vma || addr < vma->vm_end). */
+ if (TASK_SIZE - len < addr)
+ return -ENOMEM;
+
+ if (!vma || addr + len <= vma->vm_start) {
+ /*
+ * Must not let a PROT_EXEC mapping get into the
+ * brk area:
+ */
+ if (addr + len > mm->brk)
+ goto failed;
+
+ /*
+ * Up until the brk area we randomize addresses
+ * as much as possible:
+ */
+ if (addr >= 0x01000000 && should_randomize()) {
+ tmp = randomize_range(0x01000000,
+ PAGE_ALIGN(max(mm->start_brk,
+ (unsigned long)0x08000000)), len);
+ vma = find_vma(mm, tmp);
+ if (TASK_SIZE - len >= tmp &&
+ (!vma || tmp + len <= vma->vm_start))
+ return tmp;
+ }
+ /*
+ * Ok, randomization didnt work out - return
+ * the result of the linear search:
+ */
+ return addr;
+ }
+ addr = vma->vm_end;
+ }
+
+failed:
+ return current->mm->get_unmapped_area(filp, addr0, len0, pgoff, flags);
+}
-EXPORT_SYMBOL(get_unmapped_area);
/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -124,13 +124,19 @@ static unsigned long mmap_legacy_base(void)
*/
void arch_pick_mmap_layout(struct mm_struct *mm)
{
if (mmap_is_legacy()) {
mm->mmap_base = mmap_legacy_base();
mm->get_unmapped_area = arch_get_unmapped_area;
mm->unmap_area = arch_unmap_area;
} else {
mm->mmap_base = mmap_base();
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+#ifdef CONFIG_X86_32
+ if (!(current->personality & READ_IMPLIES_EXEC)
+ && !(__supported_pte_mask & _PAGE_NX)
+ && mmap_is_ia32())
+ mm->get_unmapped_exec_area = arch_get_unmapped_exec_area;
+#endif
mm->unmap_area = arch_unmap_area_topdown;
}
}
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -331,7 +331,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
if (compat)
addr = VDSO_HIGH_BASE;
else {
- addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0);
+ addr = get_unmapped_area_prot(NULL, 0, PAGE_SIZE, 0, 0, 1);
if (IS_ERR_VALUE(addr)) {
ret = addr;
goto up_fail;
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1263,7 +1263,13 @@ extern int install_special_mapping(struct mm_struct *mm,
unsigned long addr, unsigned long len,
unsigned long flags, struct page **pages);
-extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
+extern unsigned long get_unmapped_area_prot(struct file *, unsigned long, unsigned long, unsigned long, unsigned long, int);
+
+static inline unsigned long get_unmapped_area(struct file *file, unsigned long addr,
+ unsigned long len, unsigned long pgoff, unsigned long flags)
+{
+ return get_unmapped_area_prot(file, addr, len, pgoff, flags, 0);
+}
extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot,
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -227,6 +227,9 @@ struct mm_struct {
unsigned long (*get_unmapped_area) (struct file *filp,
unsigned long addr, unsigned long len,
unsigned long pgoff, unsigned long flags);
+ unsigned long (*get_unmapped_exec_area) (struct file *filp,
+ unsigned long addr, unsigned long len,
+ unsigned long pgoff, unsigned long flags);
void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
#endif
unsigned long mmap_base; /* base of mmap area */
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -487,10 +487,10 @@ unsigned long do_mremap(unsigned long addr,
if (vma->vm_flags & VM_MAYSHARE)
map_flags |= MAP_SHARED;
- new_addr = get_unmapped_area(vma->vm_file, 0, new_len,
+ new_addr = get_unmapped_area_prot(vma->vm_file, 0, new_len,
vma->vm_pgoff +
((addr - vma->vm_start) >> PAGE_SHIFT),
- map_flags);
+ map_flags, vma->vm_flags & VM_EXEC);
if (new_addr & ~PAGE_MASK) {
ret = new_addr;
goto out;
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 57d1868..29c0c35 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -669,6 +669,16 @@ unsigned long arch_align_stack(unsigned long sp)
unsigned long arch_randomize_brk(struct mm_struct *mm)
{
unsigned long range_end = mm->brk + 0x02000000;
- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+ unsigned long bump = 0;
+#ifdef CONFIG_X86_32
+ /* in the case of NX emulation, shove the brk segment way out of the
+ way of the exec randomization area, since it can collide with
+ future allocations if not. */
+ if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) &&
+ (mm->brk < 0x08000000) ) {
+ bump = (TASK_SIZE/6);
+ }
+#endif
+ return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk);
}

View File

@ -1,5 +1,5 @@
--- linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400
+++ linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h 2010-07-01 14:49:17.000000000 -0400
--- linux-2.6.34.noarch/include/acpi/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400
+++ linux-2.6.34.noarch/include/acpi/acconfig.h 2010-07-01 14:49:17.000000000 -0400
@@ -117,7 +117,7 @@
/* Maximum number of While() loop iterations before forced abort */

View File

@ -1,12 +0,0 @@
diff -up linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg linux-2.6.30.noarch/drivers/pci/pcie/aspm.c
--- linux-2.6.30.noarch/drivers/pci/pcie/aspm.c.mjg 2009-07-16 22:01:11.000000000 +0100
+++ linux-2.6.30.noarch/drivers/pci/pcie/aspm.c 2009-07-16 22:01:30.000000000 +0100
@@ -65,7 +65,7 @@ static LIST_HEAD(link_list);
#define POLICY_DEFAULT 0 /* BIOS default setting */
#define POLICY_PERFORMANCE 1 /* high performance */
#define POLICY_POWERSAVE 2 /* high power saving */
-static int aspm_policy;
+static int aspm_policy = POLICY_POWERSAVE;
static const char *policy_str[] = {
[POLICY_DEFAULT] = "default",
[POLICY_PERFORMANCE] = "performance",

View File

@ -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

View File

@ -1,594 +0,0 @@
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -5,6 +5,7 @@
#include <asm/ldt.h>
#include <asm/mmu.h>
+#include <linux/mm_types.h>
#include <linux/smp.h>
static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *info)
@@ -97,6 +98,9 @@ static inline int desc_empty(const void *ptr)
#define load_TLS(t, cpu) native_load_tls(t, cpu)
#define set_ldt native_set_ldt
+#ifdef CONFIG_X86_32
+#define load_user_cs_desc native_load_user_cs_desc
+#endif /*CONFIG_X86_32*/
#define write_ldt_entry(dt, entry, desc) native_write_ldt_entry(dt, entry, desc)
#define write_gdt_entry(dt, entry, desc, type) native_write_gdt_entry(dt, entry, desc, type)
@@ -392,4 +396,25 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
_set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
}
+#ifdef CONFIG_X86_32
+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
+{
+ limit = (limit - 1) / PAGE_SIZE;
+ desc->a = limit & 0xffff;
+ desc->b = (limit & 0xf0000) | 0x00c0fb00;
+}
+
+static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm)
+{
+ get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs;
+}
+
+#define arch_add_exec_range arch_add_exec_range
+#define arch_remove_exec_range arch_remove_exec_range
+#define arch_flush_exec_range arch_flush_exec_range
+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
+extern void arch_flush_exec_range(struct mm_struct *mm);
+#endif /* CONFIG_X86_32 */
+
#endif /* _ASM_X86_DESC_H */
--- a/arch/x86/include/asm/mmu.h
+++ b/arch/x86/include/asm/mmu.h
@@ -7,6 +7,9 @@
/*
* The x86 doesn't have a mmu context, but
* we put the segment information here.
+ *
+ * exec_limit is used to track the range PROT_EXEC
+ * mappings span.
*/
typedef struct {
void *ldt;
@@ -19,6 +22,11 @@ typedef struct {
struct mutex lock;
void *vdso;
+
+#ifdef CONFIG_X86_32
+ struct desc_struct user_cs;
+ unsigned long exec_limit;
+#endif
} mm_context_t;
#ifdef CONFIG_SMP
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -289,6 +289,12 @@ static inline void set_ldt(const void *addr, unsigned entries)
{
PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries);
}
+#ifdef CONFIG_X86_32
+static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm)
+{
+ PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm);
+}
+#endif /*CONFIG_X86_32*/
static inline void store_gdt(struct desc_ptr *dtr)
{
PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr);
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -118,6 +118,9 @@ struct pv_cpu_ops {
void (*store_gdt)(struct desc_ptr *);
void (*store_idt)(struct desc_ptr *);
void (*set_ldt)(const void *desc, unsigned entries);
+#ifdef CONFIG_X86_32
+ void (*load_user_cs_desc)(int cpu, struct mm_struct *mm);
+#endif
unsigned long (*store_tr)(void);
void (*load_tls)(struct thread_struct *t, unsigned int cpu);
#ifdef CONFIG_X86_64
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -802,6 +802,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
/* Filter out anything that depends on CPUID levels we don't have */
filter_cpuid_features(c, true);
+#ifdef CONFIG_X86_32
+ /*
+ * emulation of NX with segment limits unfortunately means
+ * we have to disable the fast system calls, due to the way that
+ * sysexit clears the segment limits on return.
+ * If we have either disabled exec-shield on the boot command line,
+ * or we have NX, then we don't need to do this.
+ */
+ if (!disable_nx) {
+#ifdef CONFIG_X86_PAE
+ if (!test_cpu_cap(c, X86_FEATURE_NX))
+#endif
+ clear_cpu_cap(c, X86_FEATURE_SEP);
+ }
+#endif
+
/* If the model name is still unset, do table lookup. */
if (!c->x86_model_id[0]) {
const char *p;
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -345,6 +345,9 @@ struct pv_cpu_ops pv_cpu_ops = {
.read_tscp = native_read_tscp,
.load_tr_desc = native_load_tr_desc,
.set_ldt = native_set_ldt,
+#ifdef CONFIG_X86_32
+ .load_user_cs_desc = native_load_user_cs_desc,
+#endif /*CONFIG_X86_32*/
.load_gdt = native_load_gdt,
.load_idt = native_load_idt,
.store_gdt = native_store_gdt,
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -243,7 +243,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
void
start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
{
+ int cpu;
+
set_user_gs(regs, 0);
+
regs->fs = 0;
regs->ds = __USER_DS;
regs->es = __USER_DS;
@@ -252,6 +255,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
regs->cs = __USER_CS;
regs->ip = new_ip;
regs->sp = new_sp;
+
+ cpu = get_cpu();
+ load_user_cs_desc(cpu, current->mm);
+ put_cpu();
+
/*
* Free the old FP and other extended state
*/
@@ -311,6 +319,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
if (preload_fpu)
prefetch(next->fpu.state);
+ if (next_p->mm)
+ load_user_cs_desc(cpu, next_p->mm);
+
/*
* Reload esp0.
*/
@@ -404,3 +415,40 @@ unsigned long get_wchan(struct task_struct *p)
return 0;
}
+static void modify_cs(struct mm_struct *mm, unsigned long limit)
+{
+ mm->context.exec_limit = limit;
+ set_user_cs(&mm->context.user_cs, limit);
+ if (mm == current->mm) {
+ int cpu;
+
+ cpu = get_cpu();
+ load_user_cs_desc(cpu, mm);
+ put_cpu();
+ }
+}
+
+void arch_add_exec_range(struct mm_struct *mm, unsigned long limit)
+{
+ if (limit > mm->context.exec_limit)
+ modify_cs(mm, limit);
+}
+
+void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end)
+{
+ struct vm_area_struct *vma;
+ unsigned long limit = PAGE_SIZE;
+
+ if (old_end == mm->context.exec_limit) {
+ for (vma = mm->mmap; vma; vma = vma->vm_next)
+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ modify_cs(mm, limit);
+ }
+}
+
+void arch_flush_exec_range(struct mm_struct *mm)
+{
+ mm->context.exec_limit = 0;
+ set_user_cs(&mm->context.user_cs, 0);
+}
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -109,6 +109,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
dec_preempt_count();
}
+#ifdef CONFIG_X86_32
+static inline int
+__compare_user_cs_desc(const struct desc_struct *desc1,
+ const struct desc_struct *desc2)
+{
+ return ((desc1->limit0 != desc2->limit0) ||
+ (desc1->limit != desc2->limit) ||
+ (desc1->base0 != desc2->base0) ||
+ (desc1->base1 != desc2->base1) ||
+ (desc1->base2 != desc2->base2));
+}
+
+/*
+ * lazy-check for CS validity on exec-shield binaries:
+ *
+ * the original non-exec stack patch was written by
+ * Solar Designer <solar at openwall.com>. Thanks!
+ */
+static int
+check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code)
+{
+ struct desc_struct *desc1, *desc2;
+ struct vm_area_struct *vma;
+ unsigned long limit;
+
+ if (current->mm == NULL)
+ return 0;
+
+ limit = -1UL;
+ if (current->mm->context.exec_limit != -1UL) {
+ limit = PAGE_SIZE;
+ spin_lock(&current->mm->page_table_lock);
+ for (vma = current->mm->mmap; vma; vma = vma->vm_next)
+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ vma = get_gate_vma(current->mm);
+ if (vma && (vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ spin_unlock(&current->mm->page_table_lock);
+ if (limit >= TASK_SIZE)
+ limit = -1UL;
+ current->mm->context.exec_limit = limit;
+ }
+ set_user_cs(&current->mm->context.user_cs, limit);
+
+ desc1 = &current->mm->context.user_cs;
+ desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS;
+
+ if (__compare_user_cs_desc(desc1, desc2)) {
+ /*
+ * The CS was not in sync - reload it and retry the
+ * instruction. If the instruction still faults then
+ * we won't hit this branch next time around.
+ */
+ if (print_fatal_signals >= 2) {
+ printk(KERN_ERR "#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n",
+ error_code, error_code/8, regs->ip,
+ smp_processor_id());
+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x, CPU_cs: %08x/%08x.\n",
+ current->mm->context.exec_limit,
+ desc1->a, desc1->b, desc2->a, desc2->b);
+ }
+
+ load_user_cs_desc(cpu, current->mm);
+
+ return 1;
+ }
+
+ return 0;
+}
+#endif
+
static void __kprobes
do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
long error_code, siginfo_t *info)
@@ -265,6 +337,29 @@ do_general_protection(struct pt_regs *regs, long error_code)
if (!user_mode(regs))
goto gp_in_kernel;
+#ifdef CONFIG_X86_32
+{
+ int cpu;
+ int ok;
+
+ cpu = get_cpu();
+ ok = check_lazy_exec_limit(cpu, regs, error_code);
+ put_cpu();
+
+ if (ok)
+ return;
+
+ if (print_fatal_signals) {
+ printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n",
+ error_code, error_code/8, regs->ip, smp_processor_id());
+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n",
+ current->mm->context.exec_limit,
+ current->mm->context.user_cs.a,
+ current->mm->context.user_cs.b);
+ }
+}
+#endif /*CONFIG_X86_32*/
+
tsk->thread.error_code = error_code;
tsk->thread.trap_no = 13;
@@ -792,19 +887,37 @@ do_device_not_available(struct pt_regs *regs, long error_code)
}
#ifdef CONFIG_X86_32
+/*
+ * The fixup code for errors in iret jumps to here (iret_exc). It loses
+ * the original trap number and erorr code. The bogus trap 32 and error
+ * code 0 are what the vanilla kernel delivers via:
+ * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1)
+ *
+ * NOTE: Because of the final "1" in the macro we need to enable interrupts.
+ *
+ * In case of a general protection fault in the iret instruction, we
+ * need to check for a lazy CS update for exec-shield.
+ */
dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
{
- siginfo_t info;
+ int ok;
+ int cpu;
+
local_irq_enable();
- info.si_signo = SIGILL;
- info.si_errno = 0;
- info.si_code = ILL_BADSTK;
- info.si_addr = NULL;
- if (notify_die(DIE_TRAP, "iret exception",
- regs, error_code, 32, SIGILL) == NOTIFY_STOP)
- return;
- do_trap(32, SIGILL, "iret exception", regs, error_code, &info);
+ cpu = get_cpu();
+ ok = check_lazy_exec_limit(cpu, regs, error_code);
+ put_cpu();
+
+ if (!ok && notify_die(DIE_TRAP, "iret exception", regs,
+ error_code, 32, SIGSEGV) != NOTIFY_STOP) {
+ siginfo_t info;
+ info.si_signo = SIGSEGV;
+ info.si_errno = 0;
+ info.si_code = ILL_BADSTK;
+ info.si_addr = 0;
+ do_trap(32, SIGSEGV, "iret exception", regs, error_code, &info);
+ }
}
#endif
--- a/arch/x86/mm/setup_nx.c
+++ b/arch/x86/mm/setup_nx.c
@@ -1,3 +1,4 @@
+#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/errno.h>
#include <linux/init.h>
@@ -6,7 +6,7 @@
#include <asm/pgtable.h>
#include <asm/proto.h>
-static int disable_nx __cpuinitdata;
+int disable_nx __cpuinitdata;
/*
* noexec = on|off
@@ -40,6 +42,10 @@ void __cpuinit x86_configure_nx(void)
void __init x86_report_nx(void)
{
if (!cpu_has_nx) {
+ if (!disable_nx)
+ printk(KERN_INFO "Using x86 segment limits to approximate NX protection\n");
+ else
+
printk(KERN_NOTICE "Notice: NX (Execute Disable) protection "
"missing in CPU!\n");
} else {
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -6,6 +6,7 @@
#include <linux/module.h>
#include <linux/cpu.h>
+#include <asm/desc.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/cache.h>
@@ -131,6 +132,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
union smp_flush_state *f;
cpu = smp_processor_id();
+
+#ifdef CONFIG_X86_32
+ if (current->active_mm)
+ load_user_cs_desc(cpu, current->active_mm);
+#endif
+
/*
* orig_rax contains the negated interrupt vector.
* Use that to determine where the sender put the data.
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -335,6 +335,24 @@ static void xen_set_ldt(const void *addr, unsigned entries)
xen_mc_issue(PARAVIRT_LAZY_CPU);
}
+#ifdef CONFIG_X86_32
+static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm)
+{
+ void *gdt;
+ xmaddr_t mgdt;
+ u64 descriptor;
+ struct desc_struct user_cs;
+
+ gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS];
+ mgdt = virt_to_machine(gdt);
+
+ user_cs = mm->context.user_cs;
+ descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32;
+
+ HYPERVISOR_update_descriptor(mgdt.maddr, descriptor);
+}
+#endif /*CONFIG_X86_32*/
+
static void xen_load_gdt(const struct desc_ptr *dtr)
{
unsigned long va = dtr->address;
@@ -961,6 +979,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
.load_tr_desc = paravirt_nop,
.set_ldt = xen_set_ldt,
+#ifdef CONFIG_X86_32
+ .load_user_cs_desc = xen_load_user_cs_desc,
+#endif /*CONFIG_X86_32*/
.load_gdt = xen_load_gdt,
.load_idt = xen_load_idt,
.load_tls = xen_load_tls,
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -717,6 +722,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
if (retval)
goto out_free_dentry;
+#ifdef CONFIG_X86_32
+ /*
+ * Turn off the CS limit completely if exec-shield disabled or
+ * NX active:
+ */
+ if (disable_nx || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX))
+ arch_add_exec_range(current->mm, -1);
+#endif
+
/* OK, This is the point of no return */
current->flags &= ~PF_FORKNOEXEC;
current->mm->def_flags = def_flags;
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -101,6 +101,9 @@ struct bio_list;
struct perf_event_context;
struct blk_plug;
+extern int disable_nx;
+extern int print_fatal_signals;
+
/*
* List of flags we want to share for kernel threads,
* if only because they are not used by them anyway.
--- b/mm/mmap.c
+++ b/mm/mmap.c
@@ -44,6 +45,18 @@
#define arch_rebalance_pgtables(addr, len) (addr)
#endif
+/* No sane architecture will #define these to anything else */
+#ifndef arch_add_exec_range
+#define arch_add_exec_range(mm, limit) do { ; } while (0)
+#endif
+#ifndef arch_flush_exec_range
+#define arch_flush_exec_range(mm) do { ; } while (0)
+#endif
+#ifndef arch_remove_exec_range
+#define arch_remove_exec_range(mm, limit) do { ; } while (0)
+#endif
+
+
static void unmap_region(struct mm_struct *mm,
struct vm_area_struct *vma, struct vm_area_struct *prev,
unsigned long start, unsigned long end);
@@ -432,6 +432,8 @@ __vma_link(struct mm_struct *mm, struct vm_area_struct *vma,
struct vm_area_struct *prev, struct rb_node **rb_link,
struct rb_node *rb_parent)
{
+ if (vma->vm_flags & VM_EXEC)
+ arch_add_exec_range(mm, vma->vm_end);
__vma_link_list(mm, vma, prev, rb_parent);
__vma_link_rb(mm, vma, rb_link, rb_parent);
}
@@ -489,6 +504,8 @@
rb_erase(&vma->vm_rb, &mm->mm_rb);
if (mm->mmap_cache == vma)
mm->mmap_cache = prev;
+ if (vma->vm_flags & VM_EXEC)
+ arch_remove_exec_range(mm, vma->vm_end);
}
/*
@@ -790,6 +807,8 @@
} else /* cases 2, 5, 7 */
err = vma_adjust(prev, prev->vm_start,
end, prev->vm_pgoff, NULL);
+ if (prev->vm_flags & VM_EXEC)
+ arch_add_exec_range(mm, prev->vm_end);
if (err)
return NULL;
return prev;
@@ -1966,10 +2075,14 @@
if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new);
- if (new_below)
+ if (new_below) {
+ unsigned long old_end = vma->vm_end;
+
err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff +
((addr - new->vm_start) >> PAGE_SHIFT), new);
- else
+ if (vma->vm_flags & VM_EXEC)
+ arch_remove_exec_range(mm, old_end);
+ } else
err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
/* Success. */
@@ -2254,6 +2367,7 @@
free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0);
tlb_finish_mmu(&tlb, 0, end);
+ arch_flush_exec_range(mm);
/*
* Walk the list again, actually closing and freeing it,
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -25,9 +25,14 @@
#include <linux/perf_event.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
+#include <asm/pgalloc.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
+#ifndef arch_remove_exec_range
+#define arch_remove_exec_range(mm, limit) do { ; } while (0)
+#endif
+
#ifndef pgprot_modify
static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
{
@@ -138,7 +143,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
struct mm_struct *mm = vma->vm_mm;
unsigned long oldflags = vma->vm_flags;
long nrpages = (end - start) >> PAGE_SHIFT;
- unsigned long charged = 0;
+ unsigned long charged = 0, old_end = vma->vm_end;
pgoff_t pgoff;
int error;
int dirty_accountable = 0;
@@ -203,6 +208,9 @@ success:
dirty_accountable = 1;
}
+ if (oldflags & VM_EXEC)
+ arch_remove_exec_range(current->mm, old_end);
+
mmu_notifier_invalidate_range_start(mm, start, end);
if (is_vm_hugetlb_page(vma))
hugetlb_change_protection(vma, start, end, vma->vm_page_prot);

View File

@ -1,110 +0,0 @@
diff -up linux-3.1.x86_64/Documentation/networking/dns_resolver.txt.orig linux-3.1.x86_64/Documentation/networking/dns_resolver.txt
--- linux-3.1.x86_64/Documentation/networking/dns_resolver.txt.orig 2011-10-24 03:10:05.000000000 -0400
+++ linux-3.1.x86_64/Documentation/networking/dns_resolver.txt 2011-12-13 15:09:35.705766078 -0500
@@ -102,6 +102,10 @@ implemented in the module can be called
If _expiry is non-NULL, the expiry time (TTL) of the result will be
returned also.
+The kernel maintains an internal keyring in which it caches looked up keys.
+This can be cleared by any process that has the CAP_SYS_ADMIN capability by
+the use of KEYCTL_KEYRING_CLEAR on the keyring ID.
+
===============================
READING DNS KEYS FROM USERSPACE
diff -up linux-3.1.x86_64/Documentation/security/keys.txt.orig linux-3.1.x86_64/Documentation/security/keys.txt
--- linux-3.1.x86_64/Documentation/security/keys.txt.orig 2011-10-24 03:10:05.000000000 -0400
+++ linux-3.1.x86_64/Documentation/security/keys.txt 2011-12-13 15:09:35.706766099 -0500
@@ -554,6 +554,10 @@ The keyctl syscall functions are:
process must have write permission on the keyring, and it must be a
keyring (or else error ENOTDIR will result).
+ This function can also be used to clear special kernel keyrings if they
+ are appropriately marked if the user has CAP_SYS_ADMIN capability. The
+ DNS resolver cache keyring is an example of this.
+
(*) Link a key into a keyring:
diff -up linux-3.1.x86_64/fs/cifs/cifsacl.c.orig linux-3.1.x86_64/fs/cifs/cifsacl.c
--- linux-3.1.x86_64/fs/cifs/cifsacl.c.orig 2011-12-13 12:54:12.221145867 -0500
+++ linux-3.1.x86_64/fs/cifs/cifsacl.c 2011-12-13 15:09:35.707766122 -0500
@@ -556,6 +556,7 @@ init_cifs_idmap(void)
/* instruct request_key() to use this special keyring as a cache for
* the results it looks up */
+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags);
cred->thread_keyring = keyring;
cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING;
root_cred = cred;
diff -up linux-3.1.x86_64/fs/nfs/idmap.c.orig linux-3.1.x86_64/fs/nfs/idmap.c
--- linux-3.1.x86_64/fs/nfs/idmap.c.orig 2011-12-13 12:54:14.657203507 -0500
+++ linux-3.1.x86_64/fs/nfs/idmap.c 2011-12-13 15:10:14.731681691 -0500
@@ -115,6 +115,7 @@ int nfs_idmap_init(void)
if (ret < 0)
goto failed_put_key;
+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags);
cred->thread_keyring = keyring;
cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING;
id_resolver_cache = cred;
@@ -185,7 +186,7 @@ static ssize_t nfs_idmap_request_key(con
}
rcu_read_lock();
- rkey->perm |= KEY_USR_VIEW;
+ rkey->perm |= KEY_USR_VIEW|KEY_USR_WRITE;
ret = key_validate(rkey);
if (ret < 0)
diff -up linux-3.1.x86_64/include/linux/key.h.orig linux-3.1.x86_64/include/linux/key.h
--- linux-3.1.x86_64/include/linux/key.h.orig 2011-10-24 03:10:05.000000000 -0400
+++ linux-3.1.x86_64/include/linux/key.h 2011-12-13 15:09:35.748767078 -0500
@@ -155,6 +155,7 @@ struct key {
#define KEY_FLAG_IN_QUOTA 3 /* set if key consumes quota */
#define KEY_FLAG_USER_CONSTRUCT 4 /* set if key is being constructed in userspace */
#define KEY_FLAG_NEGATIVE 5 /* set if key is negative */
+#define KEY_FLAG_ROOT_CAN_CLEAR 6 /* set if key can be cleared by root without permission */
/* the description string
* - this is used to match a key against search criteria
diff -up linux-3.1.x86_64/net/dns_resolver/dns_key.c.orig linux-3.1.x86_64/net/dns_resolver/dns_key.c
--- linux-3.1.x86_64/net/dns_resolver/dns_key.c.orig 2011-10-24 03:10:05.000000000 -0400
+++ linux-3.1.x86_64/net/dns_resolver/dns_key.c 2011-12-13 15:09:35.748767078 -0500
@@ -281,6 +281,7 @@ static int __init init_dns_resolver(void
/* instruct request_key() to use this special keyring as a cache for
* the results it looks up */
+ set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags);
cred->thread_keyring = keyring;
cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING;
dns_resolver_cache = cred;
diff -up linux-3.1.x86_64/security/keys/keyctl.c.orig linux-3.1.x86_64/security/keys/keyctl.c
--- linux-3.1.x86_64/security/keys/keyctl.c.orig 2011-12-13 12:54:30.322571289 -0500
+++ linux-3.1.x86_64/security/keys/keyctl.c 2011-12-13 15:09:35.756767271 -0500
@@ -388,11 +388,24 @@ long keyctl_keyring_clear(key_serial_t r
keyring_ref = lookup_user_key(ringid, KEY_LOOKUP_CREATE, KEY_WRITE);
if (IS_ERR(keyring_ref)) {
ret = PTR_ERR(keyring_ref);
+
+ /* Root is permitted to invalidate certain special keyrings */
+ if (capable(CAP_SYS_ADMIN)) {
+ keyring_ref = lookup_user_key(ringid, 0, 0);
+ if (IS_ERR(keyring_ref))
+ goto error;
+ if (test_bit(KEY_FLAG_ROOT_CAN_CLEAR,
+ &key_ref_to_ptr(keyring_ref)->flags))
+ goto clear;
+ goto error_put;
+ }
+
goto error;
}
+clear:
ret = keyring_clear(key_ref_to_ptr(keyring_ref));
-
+error_put:
key_ref_put(keyring_ref);
error:
return ret;

View File

@ -0,0 +1,217 @@
commit e6499c6f4b5f56a16f8b8ef60529c1da28b13aea
Author: Bryan Schumaker <bjschuma@netapp.com>
Date: Thu Jan 26 16:54:23 2012 -0500
NFS: Fall back on old idmapper if request_key() fails
This patch removes the CONFIG_NFS_USE_NEW_IDMAPPER compile option.
First, the idmapper will attempt to map the id using /sbin/request-key
and nfsidmap. If this fails (if /etc/request-key.conf is not configured
properly) then the idmapper will call the legacy code to perform the
mapping. I left a comment stating where the legacy code begins to make
it easier for somebody to remove in the future.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c
--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-01-27 10:07:07.209851446 -0500
+++ linux-3.2.noarch/fs/nfs/idmap.c 2012-01-27 10:15:42.914563082 -0500
@@ -142,8 +142,6 @@ static int nfs_map_numeric_to_string(__u
return snprintf(buf, buflen, "%u", id);
}
-#ifdef CONFIG_NFS_USE_NEW_IDMAPPER
-
#include <linux/cred.h>
#include <linux/sunrpc/sched.h>
#include <linux/nfs4.h>
@@ -328,43 +326,7 @@ static int nfs_idmap_lookup_id(const cha
return ret;
}
-int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid)
-{
- if (nfs_map_string_to_numeric(name, namelen, uid))
- return 0;
- return nfs_idmap_lookup_id(name, namelen, "uid", uid);
-}
-
-int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *gid)
-{
- if (nfs_map_string_to_numeric(name, namelen, gid))
- return 0;
- return nfs_idmap_lookup_id(name, namelen, "gid", gid);
-}
-
-int nfs_map_uid_to_name(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen)
-{
- int ret = -EINVAL;
-
- if (!(server->caps & NFS_CAP_UIDGID_NOMAP))
- ret = nfs_idmap_lookup_name(uid, "user", buf, buflen);
- if (ret < 0)
- ret = nfs_map_numeric_to_string(uid, buf, buflen);
- return ret;
-}
-int nfs_map_gid_to_group(const struct nfs_server *server, __u32 gid, char *buf, size_t buflen)
-{
- int ret = -EINVAL;
-
- if (!(server->caps & NFS_CAP_UIDGID_NOMAP))
- ret = nfs_idmap_lookup_name(gid, "group", buf, buflen);
- if (ret < 0)
- ret = nfs_map_numeric_to_string(gid, buf, buflen);
- return ret;
-}
-
-#else /* CONFIG_NFS_USE_NEW_IDMAPPER not defined */
-
+/* idmap classic begins here */
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/init.h>
@@ -796,19 +758,27 @@ static unsigned int fnvhash32(const void
int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid)
{
struct idmap *idmap = server->nfs_client->cl_idmap;
+ int ret = -EINVAL;
if (nfs_map_string_to_numeric(name, namelen, uid))
return 0;
- return nfs_idmap_id(idmap, &idmap->idmap_user_hash, name, namelen, uid);
+ ret = nfs_idmap_lookup_id(name, namelen, "uid", uid);
+ if (ret < 0)
+ ret = nfs_idmap_id(idmap, &idmap->idmap_user_hash, name, namelen, uid);
+ return ret;
}
-int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *uid)
+int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size_t namelen, __u32 *gid)
{
struct idmap *idmap = server->nfs_client->cl_idmap;
+ int ret = -EINVAL;
- if (nfs_map_string_to_numeric(name, namelen, uid))
+ if (nfs_map_string_to_numeric(name, namelen, gid))
return 0;
- return nfs_idmap_id(idmap, &idmap->idmap_group_hash, name, namelen, uid);
+ ret = nfs_idmap_lookup_id(name, namelen, "gid", gid);
+ if (ret < 0)
+ ret = nfs_idmap_id(idmap, &idmap->idmap_group_hash, name, namelen, gid);
+ return ret;
}
int nfs_map_uid_to_name(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen)
@@ -816,22 +786,26 @@ int nfs_map_uid_to_name(const struct nfs
struct idmap *idmap = server->nfs_client->cl_idmap;
int ret = -EINVAL;
- if (!(server->caps & NFS_CAP_UIDGID_NOMAP))
- ret = nfs_idmap_name(idmap, &idmap->idmap_user_hash, uid, buf);
+ if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) {
+ ret = nfs_idmap_lookup_name(uid, "user", buf, buflen);
+ if (ret < 0)
+ ret = nfs_idmap_name(idmap, &idmap->idmap_user_hash, uid, buf);
+ }
if (ret < 0)
ret = nfs_map_numeric_to_string(uid, buf, buflen);
return ret;
}
-int nfs_map_gid_to_group(const struct nfs_server *server, __u32 uid, char *buf, size_t buflen)
+int nfs_map_gid_to_group(const struct nfs_server *server, __u32 gid, char *buf, size_t buflen)
{
struct idmap *idmap = server->nfs_client->cl_idmap;
int ret = -EINVAL;
- if (!(server->caps & NFS_CAP_UIDGID_NOMAP))
- ret = nfs_idmap_name(idmap, &idmap->idmap_group_hash, uid, buf);
+ if (!(server->caps & NFS_CAP_UIDGID_NOMAP)) {
+ ret = nfs_idmap_lookup_name(gid, "group", buf, buflen);
+ if (ret < 0)
+ ret = nfs_idmap_name(idmap, &idmap->idmap_group_hash, gid, buf);
+ }
if (ret < 0)
- ret = nfs_map_numeric_to_string(uid, buf, buflen);
+ ret = nfs_map_numeric_to_string(gid, buf, buflen);
return ret;
}
-
-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */
diff -up linux-3.2.noarch/fs/nfs/Kconfig.orig linux-3.2.noarch/fs/nfs/Kconfig
--- linux-3.2.noarch/fs/nfs/Kconfig.orig 2012-01-04 18:55:44.000000000 -0500
+++ linux-3.2.noarch/fs/nfs/Kconfig 2012-01-27 10:15:42.913562572 -0500
@@ -132,14 +132,3 @@ config NFS_USE_KERNEL_DNS
select DNS_RESOLVER
select KEYS
default y
-
-config NFS_USE_NEW_IDMAPPER
- bool "Use the new idmapper upcall routine"
- depends on NFS_V4 && KEYS
- help
- Say Y here if you want NFS to use the new idmapper upcall functions.
- You will need /sbin/request-key (usually provided by the keyutils
- package). For details, read
- <file:Documentation/filesystems/nfs/idmapper.txt>.
-
- If you are unsure, say N.
diff -up linux-3.2.noarch/fs/nfs/sysctl.c.orig linux-3.2.noarch/fs/nfs/sysctl.c
--- linux-3.2.noarch/fs/nfs/sysctl.c.orig 2012-01-04 18:55:44.000000000 -0500
+++ linux-3.2.noarch/fs/nfs/sysctl.c 2012-01-27 10:15:42.914563082 -0500
@@ -32,7 +32,6 @@ static ctl_table nfs_cb_sysctls[] = {
.extra1 = (int *)&nfs_set_port_min,
.extra2 = (int *)&nfs_set_port_max,
},
-#ifndef CONFIG_NFS_USE_NEW_IDMAPPER
{
.procname = "idmap_cache_timeout",
.data = &nfs_idmap_cache_timeout,
@@ -40,7 +39,6 @@ static ctl_table nfs_cb_sysctls[] = {
.mode = 0644,
.proc_handler = proc_dointvec_jiffies,
},
-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */
#endif
{
.procname = "nfs_mountpoint_timeout",
diff -up linux-3.2.noarch/include/linux/nfs_idmap.h.orig linux-3.2.noarch/include/linux/nfs_idmap.h
--- linux-3.2.noarch/include/linux/nfs_idmap.h.orig 2012-01-27 10:06:46.783643915 -0500
+++ linux-3.2.noarch/include/linux/nfs_idmap.h 2012-01-27 10:15:42.915563594 -0500
@@ -69,36 +69,11 @@ struct nfs_server;
struct nfs_fattr;
struct nfs4_string;
-#ifdef CONFIG_NFS_USE_NEW_IDMAPPER
-
int nfs_idmap_init(void);
void nfs_idmap_quit(void);
-
-static inline int nfs_idmap_new(struct nfs_client *clp)
-{
- return 0;
-}
-
-static inline void nfs_idmap_delete(struct nfs_client *clp)
-{
-}
-
-#else /* CONFIG_NFS_USE_NEW_IDMAPPER not set */
-
-static inline int nfs_idmap_init(void)
-{
- return 0;
-}
-
-static inline void nfs_idmap_quit(void)
-{
-}
-
int nfs_idmap_new(struct nfs_client *);
void nfs_idmap_delete(struct nfs_client *);
-#endif /* CONFIG_NFS_USE_NEW_IDMAPPER */
-
void nfs_fattr_init_names(struct nfs_fattr *fattr,
struct nfs4_string *owner_name,
struct nfs4_string *group_name);

View File

@ -0,0 +1,97 @@
commit 3cd0f37a2cc9e4d6188df10041a2441eaa41d991
Author: Bryan Schumaker <bjschuma@netapp.com>
Date: Thu Jan 26 16:54:24 2012 -0500
NFS: Keep idmapper include files in one place
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
diff -up linux-3.2.noarch/fs/nfs/idmap.c.orig linux-3.2.noarch/fs/nfs/idmap.c
--- linux-3.2.noarch/fs/nfs/idmap.c.orig 2012-01-27 10:15:42.914563082 -0500
+++ linux-3.2.noarch/fs/nfs/idmap.c 2012-01-27 10:19:22.711401559 -0500
@@ -39,6 +39,36 @@
#include <linux/slab.h>
#include <linux/nfs_idmap.h>
#include <linux/nfs_fs.h>
+#include <linux/cred.h>
+#include <linux/sunrpc/sched.h>
+#include <linux/nfs4.h>
+#include <linux/nfs_fs_sb.h>
+#include <linux/keyctl.h>
+#include <linux/key-type.h>
+#include <linux/rcupdate.h>
+#include <linux/err.h>
+#include <keys/user-type.h>
+
+/* include files needed by legacy idmapper */
+#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/init.h>
+#include <linux/socket.h>
+#include <linux/in.h>
+#include <linux/sched.h>
+#include <linux/sunrpc/clnt.h>
+#include <linux/workqueue.h>
+#include <linux/sunrpc/rpc_pipe_fs.h>
+#include <linux/nfs_fs.h>
+#include "nfs4_fs.h"
+
+#define NFS_UINT_MAXLEN 11
+#define IDMAP_HASH_SZ 128
+
+/* Default cache timeout is 10 minutes */
+unsigned int nfs_idmap_cache_timeout = 600 * HZ;
+const struct cred *id_resolver_cache;
+
/**
* nfs_fattr_init_names - initialise the nfs_fattr owner_name/group_name fields
@@ -142,21 +172,6 @@ static int nfs_map_numeric_to_string(__u
return snprintf(buf, buflen, "%u", id);
}
-#include <linux/cred.h>
-#include <linux/sunrpc/sched.h>
-#include <linux/nfs4.h>
-#include <linux/nfs_fs_sb.h>
-#include <linux/keyctl.h>
-#include <linux/key-type.h>
-#include <linux/rcupdate.h>
-#include <linux/err.h>
-
-#include <keys/user-type.h>
-
-#define NFS_UINT_MAXLEN 11
-
-const struct cred *id_resolver_cache;
-
struct key_type key_type_id_resolver = {
.name = "id_resolver",
.instantiate = user_instantiate,
@@ -327,25 +342,6 @@ static int nfs_idmap_lookup_id(const cha
}
/* idmap classic begins here */
-#include <linux/module.h>
-#include <linux/mutex.h>
-#include <linux/init.h>
-#include <linux/socket.h>
-#include <linux/in.h>
-#include <linux/sched.h>
-#include <linux/sunrpc/clnt.h>
-#include <linux/workqueue.h>
-#include <linux/sunrpc/rpc_pipe_fs.h>
-
-#include <linux/nfs_fs.h>
-
-#include "nfs4_fs.h"
-
-#define IDMAP_HASH_SZ 128
-
-/* Default cache timeout is 10 minutes */
-unsigned int nfs_idmap_cache_timeout = 600 * HZ;
-
static int param_set_idmap_timeout(const char *val, struct kernel_param *kp)
{
char *endp;

Some files were not shown because too many files have changed in this diff Show More