diff options
59 files changed, 316 insertions, 118 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 58848125b8bf..db3d0f5061f9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -5336,6 +5336,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git | |||
| 5336 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git | 5336 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git |
| 5337 | S: Maintained | 5337 | S: Maintained |
| 5338 | F: arch/sparc/ | 5338 | F: arch/sparc/ |
| 5339 | F: drivers/sbus | ||
| 5339 | 5340 | ||
| 5340 | SPARC SERIAL DRIVERS | 5341 | SPARC SERIAL DRIVERS |
| 5341 | M: "David S. Miller" <davem@davemloft.net> | 5342 | M: "David S. Miller" <davem@davemloft.net> |
| @@ -1,7 +1,7 @@ | |||
| 1 | VERSION = 2 | 1 | VERSION = 2 |
| 2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
| 3 | SUBLEVEL = 35 | 3 | SUBLEVEL = 35 |
| 4 | EXTRAVERSION = -rc5 | 4 | EXTRAVERSION = -rc6 |
| 5 | NAME = Sheep on Meth | 5 | NAME = Sheep on Meth |
| 6 | 6 | ||
| 7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index abdf321c2d41..c5555ca13d00 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
| @@ -175,6 +175,10 @@ static void __init rx51_add_gpio_keys(void) | |||
| 175 | #endif /* CONFIG_KEYBOARD_GPIO || CONFIG_KEYBOARD_GPIO_MODULE */ | 175 | #endif /* CONFIG_KEYBOARD_GPIO || CONFIG_KEYBOARD_GPIO_MODULE */ |
| 176 | 176 | ||
| 177 | static int board_keymap[] = { | 177 | static int board_keymap[] = { |
| 178 | /* | ||
| 179 | * Note that KEY(x, 8, KEY_XXX) entries represent "entrire row | ||
| 180 | * connected to the ground" matrix state. | ||
| 181 | */ | ||
| 178 | KEY(0, 0, KEY_Q), | 182 | KEY(0, 0, KEY_Q), |
| 179 | KEY(0, 1, KEY_O), | 183 | KEY(0, 1, KEY_O), |
| 180 | KEY(0, 2, KEY_P), | 184 | KEY(0, 2, KEY_P), |
| @@ -182,6 +186,7 @@ static int board_keymap[] = { | |||
| 182 | KEY(0, 4, KEY_BACKSPACE), | 186 | KEY(0, 4, KEY_BACKSPACE), |
| 183 | KEY(0, 6, KEY_A), | 187 | KEY(0, 6, KEY_A), |
| 184 | KEY(0, 7, KEY_S), | 188 | KEY(0, 7, KEY_S), |
| 189 | |||
| 185 | KEY(1, 0, KEY_W), | 190 | KEY(1, 0, KEY_W), |
| 186 | KEY(1, 1, KEY_D), | 191 | KEY(1, 1, KEY_D), |
| 187 | KEY(1, 2, KEY_F), | 192 | KEY(1, 2, KEY_F), |
| @@ -190,6 +195,7 @@ static int board_keymap[] = { | |||
| 190 | KEY(1, 5, KEY_J), | 195 | KEY(1, 5, KEY_J), |
| 191 | KEY(1, 6, KEY_K), | 196 | KEY(1, 6, KEY_K), |
| 192 | KEY(1, 7, KEY_L), | 197 | KEY(1, 7, KEY_L), |
| 198 | |||
| 193 | KEY(2, 0, KEY_E), | 199 | KEY(2, 0, KEY_E), |
| 194 | KEY(2, 1, KEY_DOT), | 200 | KEY(2, 1, KEY_DOT), |
| 195 | KEY(2, 2, KEY_UP), | 201 | KEY(2, 2, KEY_UP), |
| @@ -197,6 +203,8 @@ static int board_keymap[] = { | |||
| 197 | KEY(2, 5, KEY_Z), | 203 | KEY(2, 5, KEY_Z), |
| 198 | KEY(2, 6, KEY_X), | 204 | KEY(2, 6, KEY_X), |
| 199 | KEY(2, 7, KEY_C), | 205 | KEY(2, 7, KEY_C), |
| 206 | KEY(2, 8, KEY_F9), | ||
| 207 | |||
| 200 | KEY(3, 0, KEY_R), | 208 | KEY(3, 0, KEY_R), |
| 201 | KEY(3, 1, KEY_V), | 209 | KEY(3, 1, KEY_V), |
| 202 | KEY(3, 2, KEY_B), | 210 | KEY(3, 2, KEY_B), |
| @@ -205,20 +213,23 @@ static int board_keymap[] = { | |||
| 205 | KEY(3, 5, KEY_SPACE), | 213 | KEY(3, 5, KEY_SPACE), |
| 206 | KEY(3, 6, KEY_SPACE), | 214 | KEY(3, 6, KEY_SPACE), |
| 207 | KEY(3, 7, KEY_LEFT), | 215 | KEY(3, 7, KEY_LEFT), |
| 216 | |||
| 208 | KEY(4, 0, KEY_T), | 217 | KEY(4, 0, KEY_T), |
| 209 | KEY(4, 1, KEY_DOWN), | 218 | KEY(4, 1, KEY_DOWN), |
| 210 | KEY(4, 2, KEY_RIGHT), | 219 | KEY(4, 2, KEY_RIGHT), |
| 211 | KEY(4, 4, KEY_LEFTCTRL), | 220 | KEY(4, 4, KEY_LEFTCTRL), |
| 212 | KEY(4, 5, KEY_RIGHTALT), | 221 | KEY(4, 5, KEY_RIGHTALT), |
| 213 | KEY(4, 6, KEY_LEFTSHIFT), | 222 | KEY(4, 6, KEY_LEFTSHIFT), |
| 223 | KEY(4, 8, KEY_10), | ||
| 224 | |||
| 214 | KEY(5, 0, KEY_Y), | 225 | KEY(5, 0, KEY_Y), |
| 226 | KEY(5, 8, KEY_11), | ||
| 227 | |||
| 215 | KEY(6, 0, KEY_U), | 228 | KEY(6, 0, KEY_U), |
| 229 | |||
| 216 | KEY(7, 0, KEY_I), | 230 | KEY(7, 0, KEY_I), |
| 217 | KEY(7, 1, KEY_F7), | 231 | KEY(7, 1, KEY_F7), |
| 218 | KEY(7, 2, KEY_F8), | 232 | KEY(7, 2, KEY_F8), |
| 219 | KEY(0xff, 2, KEY_F9), | ||
| 220 | KEY(0xff, 4, KEY_F10), | ||
| 221 | KEY(0xff, 5, KEY_F11), | ||
| 222 | }; | 233 | }; |
| 223 | 234 | ||
| 224 | static struct matrix_keymap_data board_map_data = { | 235 | static struct matrix_keymap_data board_map_data = { |
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig index 259e3fd50993..1dc07a0014c1 100644 --- a/arch/sparc/configs/sparc64_defconfig +++ b/arch/sparc/configs/sparc64_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.34-rc3 | 3 | # Linux kernel version: 2.6.34 |
| 4 | # Sat Apr 3 15:49:56 2010 | 4 | # Wed May 26 21:14:01 2010 |
| 5 | # | 5 | # |
| 6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
| 7 | CONFIG_SPARC=y | 7 | CONFIG_SPARC=y |
| @@ -107,10 +107,9 @@ CONFIG_PERF_COUNTERS=y | |||
| 107 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | 107 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set |
| 108 | CONFIG_VM_EVENT_COUNTERS=y | 108 | CONFIG_VM_EVENT_COUNTERS=y |
| 109 | CONFIG_PCI_QUIRKS=y | 109 | CONFIG_PCI_QUIRKS=y |
| 110 | CONFIG_SLUB_DEBUG=y | ||
| 111 | # CONFIG_COMPAT_BRK is not set | 110 | # CONFIG_COMPAT_BRK is not set |
| 112 | # CONFIG_SLAB is not set | 111 | CONFIG_SLAB=y |
| 113 | CONFIG_SLUB=y | 112 | # CONFIG_SLUB is not set |
| 114 | # CONFIG_SLOB is not set | 113 | # CONFIG_SLOB is not set |
| 115 | CONFIG_PROFILING=y | 114 | CONFIG_PROFILING=y |
| 116 | CONFIG_TRACEPOINTS=y | 115 | CONFIG_TRACEPOINTS=y |
| @@ -239,6 +238,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | |||
| 239 | CONFIG_SPARSEMEM_VMEMMAP=y | 238 | CONFIG_SPARSEMEM_VMEMMAP=y |
| 240 | CONFIG_PAGEFLAGS_EXTENDED=y | 239 | CONFIG_PAGEFLAGS_EXTENDED=y |
| 241 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 240 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 241 | # CONFIG_COMPACTION is not set | ||
| 242 | CONFIG_MIGRATION=y | 242 | CONFIG_MIGRATION=y |
| 243 | CONFIG_PHYS_ADDR_T_64BIT=y | 243 | CONFIG_PHYS_ADDR_T_64BIT=y |
| 244 | CONFIG_ZONE_DMA_FLAG=0 | 244 | CONFIG_ZONE_DMA_FLAG=0 |
| @@ -351,6 +351,7 @@ CONFIG_IPV6_TUNNEL=m | |||
| 351 | # CONFIG_RDS is not set | 351 | # CONFIG_RDS is not set |
| 352 | # CONFIG_TIPC is not set | 352 | # CONFIG_TIPC is not set |
| 353 | # CONFIG_ATM is not set | 353 | # CONFIG_ATM is not set |
| 354 | # CONFIG_L2TP is not set | ||
| 354 | # CONFIG_BRIDGE is not set | 355 | # CONFIG_BRIDGE is not set |
| 355 | # CONFIG_NET_DSA is not set | 356 | # CONFIG_NET_DSA is not set |
| 356 | CONFIG_VLAN_8021Q=m | 357 | CONFIG_VLAN_8021Q=m |
| @@ -367,6 +368,7 @@ CONFIG_VLAN_8021Q=m | |||
| 367 | # CONFIG_IEEE802154 is not set | 368 | # CONFIG_IEEE802154 is not set |
| 368 | # CONFIG_NET_SCHED is not set | 369 | # CONFIG_NET_SCHED is not set |
| 369 | # CONFIG_DCB is not set | 370 | # CONFIG_DCB is not set |
| 371 | CONFIG_RPS=y | ||
| 370 | 372 | ||
| 371 | # | 373 | # |
| 372 | # Network testing | 374 | # Network testing |
| @@ -386,9 +388,14 @@ CONFIG_WIRELESS=y | |||
| 386 | # | 388 | # |
| 387 | # CFG80211 needs to be enabled for MAC80211 | 389 | # CFG80211 needs to be enabled for MAC80211 |
| 388 | # | 390 | # |
| 391 | |||
| 392 | # | ||
| 393 | # Some wireless drivers require a rate control algorithm | ||
| 394 | # | ||
| 389 | # CONFIG_WIMAX is not set | 395 | # CONFIG_WIMAX is not set |
| 390 | # CONFIG_RFKILL is not set | 396 | # CONFIG_RFKILL is not set |
| 391 | # CONFIG_NET_9P is not set | 397 | # CONFIG_NET_9P is not set |
| 398 | # CONFIG_CAIF is not set | ||
| 392 | 399 | ||
| 393 | # | 400 | # |
| 394 | # Device Drivers | 401 | # Device Drivers |
| @@ -658,6 +665,7 @@ CONFIG_PHYLIB=m | |||
| 658 | # CONFIG_NATIONAL_PHY is not set | 665 | # CONFIG_NATIONAL_PHY is not set |
| 659 | # CONFIG_STE10XP is not set | 666 | # CONFIG_STE10XP is not set |
| 660 | # CONFIG_LSI_ET1011C_PHY is not set | 667 | # CONFIG_LSI_ET1011C_PHY is not set |
| 668 | # CONFIG_MICREL_PHY is not set | ||
| 661 | # CONFIG_MDIO_BITBANG is not set | 669 | # CONFIG_MDIO_BITBANG is not set |
| 662 | CONFIG_NET_ETHERNET=y | 670 | CONFIG_NET_ETHERNET=y |
| 663 | CONFIG_MII=m | 671 | CONFIG_MII=m |
| @@ -734,6 +742,8 @@ CONFIG_NETDEV_10000=y | |||
| 734 | # CONFIG_CHELSIO_T1 is not set | 742 | # CONFIG_CHELSIO_T1 is not set |
| 735 | CONFIG_CHELSIO_T3_DEPENDS=y | 743 | CONFIG_CHELSIO_T3_DEPENDS=y |
| 736 | # CONFIG_CHELSIO_T3 is not set | 744 | # CONFIG_CHELSIO_T3 is not set |
| 745 | CONFIG_CHELSIO_T4_DEPENDS=y | ||
| 746 | # CONFIG_CHELSIO_T4 is not set | ||
| 737 | # CONFIG_ENIC is not set | 747 | # CONFIG_ENIC is not set |
| 738 | # CONFIG_IXGBE is not set | 748 | # CONFIG_IXGBE is not set |
| 739 | # CONFIG_IXGBEVF is not set | 749 | # CONFIG_IXGBEVF is not set |
| @@ -766,6 +776,7 @@ CONFIG_NIU=m | |||
| 766 | # CONFIG_USB_PEGASUS is not set | 776 | # CONFIG_USB_PEGASUS is not set |
| 767 | # CONFIG_USB_RTL8150 is not set | 777 | # CONFIG_USB_RTL8150 is not set |
| 768 | # CONFIG_USB_USBNET is not set | 778 | # CONFIG_USB_USBNET is not set |
| 779 | # CONFIG_USB_IPHETH is not set | ||
| 769 | # CONFIG_WAN is not set | 780 | # CONFIG_WAN is not set |
| 770 | # CONFIG_FDDI is not set | 781 | # CONFIG_FDDI is not set |
| 771 | # CONFIG_HIPPI is not set | 782 | # CONFIG_HIPPI is not set |
| @@ -778,7 +789,6 @@ CONFIG_PPP_DEFLATE=m | |||
| 778 | CONFIG_PPP_BSDCOMP=m | 789 | CONFIG_PPP_BSDCOMP=m |
| 779 | CONFIG_PPP_MPPE=m | 790 | CONFIG_PPP_MPPE=m |
| 780 | CONFIG_PPPOE=m | 791 | CONFIG_PPPOE=m |
| 781 | # CONFIG_PPPOL2TP is not set | ||
| 782 | # CONFIG_SLIP is not set | 792 | # CONFIG_SLIP is not set |
| 783 | CONFIG_SLHC=m | 793 | CONFIG_SLHC=m |
| 784 | # CONFIG_NET_FC is not set | 794 | # CONFIG_NET_FC is not set |
| @@ -816,6 +826,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
| 816 | CONFIG_KEYBOARD_ATKBD=y | 826 | CONFIG_KEYBOARD_ATKBD=y |
| 817 | # CONFIG_QT2160 is not set | 827 | # CONFIG_QT2160 is not set |
| 818 | CONFIG_KEYBOARD_LKKBD=m | 828 | CONFIG_KEYBOARD_LKKBD=m |
| 829 | # CONFIG_KEYBOARD_TCA6416 is not set | ||
| 819 | # CONFIG_KEYBOARD_MAX7359 is not set | 830 | # CONFIG_KEYBOARD_MAX7359 is not set |
| 820 | # CONFIG_KEYBOARD_NEWTON is not set | 831 | # CONFIG_KEYBOARD_NEWTON is not set |
| 821 | # CONFIG_KEYBOARD_OPENCORES is not set | 832 | # CONFIG_KEYBOARD_OPENCORES is not set |
| @@ -840,6 +851,7 @@ CONFIG_MOUSE_SERIAL=y | |||
| 840 | # CONFIG_INPUT_TABLET is not set | 851 | # CONFIG_INPUT_TABLET is not set |
| 841 | # CONFIG_INPUT_TOUCHSCREEN is not set | 852 | # CONFIG_INPUT_TOUCHSCREEN is not set |
| 842 | CONFIG_INPUT_MISC=y | 853 | CONFIG_INPUT_MISC=y |
| 854 | # CONFIG_INPUT_AD714X is not set | ||
| 843 | CONFIG_INPUT_SPARCSPKR=y | 855 | CONFIG_INPUT_SPARCSPKR=y |
| 844 | # CONFIG_INPUT_ATI_REMOTE is not set | 856 | # CONFIG_INPUT_ATI_REMOTE is not set |
| 845 | # CONFIG_INPUT_ATI_REMOTE2 is not set | 857 | # CONFIG_INPUT_ATI_REMOTE2 is not set |
| @@ -848,6 +860,7 @@ CONFIG_INPUT_SPARCSPKR=y | |||
| 848 | # CONFIG_INPUT_YEALINK is not set | 860 | # CONFIG_INPUT_YEALINK is not set |
| 849 | # CONFIG_INPUT_CM109 is not set | 861 | # CONFIG_INPUT_CM109 is not set |
| 850 | # CONFIG_INPUT_UINPUT is not set | 862 | # CONFIG_INPUT_UINPUT is not set |
| 863 | # CONFIG_INPUT_PCF8574 is not set | ||
| 851 | 864 | ||
| 852 | # | 865 | # |
| 853 | # Hardware I/O ports | 866 | # Hardware I/O ports |
| @@ -871,6 +884,7 @@ CONFIG_HW_CONSOLE=y | |||
| 871 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 884 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
| 872 | # CONFIG_DEVKMEM is not set | 885 | # CONFIG_DEVKMEM is not set |
| 873 | # CONFIG_SERIAL_NONSTANDARD is not set | 886 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 887 | # CONFIG_N_GSM is not set | ||
| 874 | # CONFIG_NOZOMI is not set | 888 | # CONFIG_NOZOMI is not set |
| 875 | 889 | ||
| 876 | # | 890 | # |
| @@ -893,6 +907,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
| 893 | # CONFIG_SERIAL_JSM is not set | 907 | # CONFIG_SERIAL_JSM is not set |
| 894 | # CONFIG_SERIAL_TIMBERDALE is not set | 908 | # CONFIG_SERIAL_TIMBERDALE is not set |
| 895 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | 909 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set |
| 910 | # CONFIG_SERIAL_ALTERA_JTAGUART is not set | ||
| 911 | # CONFIG_SERIAL_ALTERA_UART is not set | ||
| 896 | CONFIG_UNIX98_PTYS=y | 912 | CONFIG_UNIX98_PTYS=y |
| 897 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 913 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
| 898 | # CONFIG_LEGACY_PTYS is not set | 914 | # CONFIG_LEGACY_PTYS is not set |
| @@ -1306,11 +1322,14 @@ CONFIG_USB_HIDDEV=y | |||
| 1306 | CONFIG_HID_A4TECH=y | 1322 | CONFIG_HID_A4TECH=y |
| 1307 | CONFIG_HID_APPLE=y | 1323 | CONFIG_HID_APPLE=y |
| 1308 | CONFIG_HID_BELKIN=y | 1324 | CONFIG_HID_BELKIN=y |
| 1325 | # CONFIG_HID_CANDO is not set | ||
| 1309 | CONFIG_HID_CHERRY=y | 1326 | CONFIG_HID_CHERRY=y |
| 1310 | CONFIG_HID_CHICONY=y | 1327 | CONFIG_HID_CHICONY=y |
| 1328 | # CONFIG_HID_PRODIKEYS is not set | ||
| 1311 | CONFIG_HID_CYPRESS=y | 1329 | CONFIG_HID_CYPRESS=y |
| 1312 | CONFIG_HID_DRAGONRISE=y | 1330 | CONFIG_HID_DRAGONRISE=y |
| 1313 | # CONFIG_DRAGONRISE_FF is not set | 1331 | # CONFIG_DRAGONRISE_FF is not set |
| 1332 | # CONFIG_HID_EGALAX is not set | ||
| 1314 | CONFIG_HID_EZKEY=y | 1333 | CONFIG_HID_EZKEY=y |
| 1315 | CONFIG_HID_KYE=y | 1334 | CONFIG_HID_KYE=y |
| 1316 | CONFIG_HID_GYRATION=y | 1335 | CONFIG_HID_GYRATION=y |
| @@ -1328,7 +1347,9 @@ CONFIG_HID_ORTEK=y | |||
| 1328 | CONFIG_HID_PANTHERLORD=y | 1347 | CONFIG_HID_PANTHERLORD=y |
| 1329 | # CONFIG_PANTHERLORD_FF is not set | 1348 | # CONFIG_PANTHERLORD_FF is not set |
| 1330 | CONFIG_HID_PETALYNX=y | 1349 | CONFIG_HID_PETALYNX=y |
| 1350 | # CONFIG_HID_PICOLCD is not set | ||
| 1331 | # CONFIG_HID_QUANTA is not set | 1351 | # CONFIG_HID_QUANTA is not set |
| 1352 | # CONFIG_HID_ROCCAT_KONE is not set | ||
| 1332 | CONFIG_HID_SAMSUNG=y | 1353 | CONFIG_HID_SAMSUNG=y |
| 1333 | CONFIG_HID_SONY=y | 1354 | CONFIG_HID_SONY=y |
| 1334 | # CONFIG_HID_STANTUM is not set | 1355 | # CONFIG_HID_STANTUM is not set |
| @@ -1342,6 +1363,7 @@ CONFIG_HID_THRUSTMASTER=y | |||
| 1342 | # CONFIG_THRUSTMASTER_FF is not set | 1363 | # CONFIG_THRUSTMASTER_FF is not set |
| 1343 | CONFIG_HID_ZEROPLUS=y | 1364 | CONFIG_HID_ZEROPLUS=y |
| 1344 | # CONFIG_ZEROPLUS_FF is not set | 1365 | # CONFIG_ZEROPLUS_FF is not set |
| 1366 | # CONFIG_HID_ZYDACRON is not set | ||
| 1345 | CONFIG_USB_SUPPORT=y | 1367 | CONFIG_USB_SUPPORT=y |
| 1346 | CONFIG_USB_ARCH_HAS_HCD=y | 1368 | CONFIG_USB_ARCH_HAS_HCD=y |
| 1347 | CONFIG_USB_ARCH_HAS_OHCI=y | 1369 | CONFIG_USB_ARCH_HAS_OHCI=y |
| @@ -1356,7 +1378,6 @@ CONFIG_USB=y | |||
| 1356 | # CONFIG_USB_DEVICEFS is not set | 1378 | # CONFIG_USB_DEVICEFS is not set |
| 1357 | # CONFIG_USB_DEVICE_CLASS is not set | 1379 | # CONFIG_USB_DEVICE_CLASS is not set |
| 1358 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1380 | # CONFIG_USB_DYNAMIC_MINORS is not set |
| 1359 | # CONFIG_USB_OTG is not set | ||
| 1360 | # CONFIG_USB_MON is not set | 1381 | # CONFIG_USB_MON is not set |
| 1361 | # CONFIG_USB_WUSB is not set | 1382 | # CONFIG_USB_WUSB is not set |
| 1362 | # CONFIG_USB_WUSB_CBAF is not set | 1383 | # CONFIG_USB_WUSB_CBAF is not set |
| @@ -1521,10 +1542,6 @@ CONFIG_RTC_DRV_STARFIRE=y | |||
| 1521 | # CONFIG_DMADEVICES is not set | 1542 | # CONFIG_DMADEVICES is not set |
| 1522 | # CONFIG_AUXDISPLAY is not set | 1543 | # CONFIG_AUXDISPLAY is not set |
| 1523 | # CONFIG_UIO is not set | 1544 | # CONFIG_UIO is not set |
| 1524 | |||
| 1525 | # | ||
| 1526 | # TI VLYNQ | ||
| 1527 | # | ||
| 1528 | # CONFIG_STAGING is not set | 1545 | # CONFIG_STAGING is not set |
| 1529 | 1546 | ||
| 1530 | # | 1547 | # |
| @@ -1706,8 +1723,8 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | |||
| 1706 | CONFIG_SCHEDSTATS=y | 1723 | CONFIG_SCHEDSTATS=y |
| 1707 | # CONFIG_TIMER_STATS is not set | 1724 | # CONFIG_TIMER_STATS is not set |
| 1708 | # CONFIG_DEBUG_OBJECTS is not set | 1725 | # CONFIG_DEBUG_OBJECTS is not set |
| 1709 | # CONFIG_SLUB_DEBUG_ON is not set | 1726 | # CONFIG_DEBUG_SLAB is not set |
| 1710 | # CONFIG_SLUB_STATS is not set | 1727 | # CONFIG_DEBUG_KMEMLEAK is not set |
| 1711 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1728 | # CONFIG_DEBUG_RT_MUTEXES is not set |
| 1712 | # CONFIG_RT_MUTEX_TESTER is not set | 1729 | # CONFIG_RT_MUTEX_TESTER is not set |
| 1713 | # CONFIG_DEBUG_SPINLOCK is not set | 1730 | # CONFIG_DEBUG_SPINLOCK is not set |
| @@ -1742,6 +1759,9 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y | |||
| 1742 | # CONFIG_DEBUG_PAGEALLOC is not set | 1759 | # CONFIG_DEBUG_PAGEALLOC is not set |
| 1743 | CONFIG_NOP_TRACER=y | 1760 | CONFIG_NOP_TRACER=y |
| 1744 | CONFIG_HAVE_FUNCTION_TRACER=y | 1761 | CONFIG_HAVE_FUNCTION_TRACER=y |
| 1762 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
| 1763 | CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y | ||
| 1764 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | ||
| 1745 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1765 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
| 1746 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1766 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| 1747 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y | 1767 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
| @@ -1769,12 +1789,12 @@ CONFIG_BLK_DEV_IO_TRACE=y | |||
| 1769 | # CONFIG_RING_BUFFER_BENCHMARK is not set | 1789 | # CONFIG_RING_BUFFER_BENCHMARK is not set |
| 1770 | # CONFIG_DYNAMIC_DEBUG is not set | 1790 | # CONFIG_DYNAMIC_DEBUG is not set |
| 1771 | # CONFIG_DMA_API_DEBUG is not set | 1791 | # CONFIG_DMA_API_DEBUG is not set |
| 1792 | # CONFIG_ATOMIC64_SELFTEST is not set | ||
| 1772 | # CONFIG_SAMPLES is not set | 1793 | # CONFIG_SAMPLES is not set |
| 1773 | CONFIG_HAVE_ARCH_KGDB=y | 1794 | CONFIG_HAVE_ARCH_KGDB=y |
| 1774 | # CONFIG_KGDB is not set | 1795 | # CONFIG_KGDB is not set |
| 1775 | # CONFIG_DEBUG_STACK_USAGE is not set | 1796 | # CONFIG_DEBUG_STACK_USAGE is not set |
| 1776 | # CONFIG_DEBUG_DCFLUSH is not set | 1797 | # CONFIG_DEBUG_DCFLUSH is not set |
| 1777 | # CONFIG_STACK_DEBUG is not set | ||
| 1778 | # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set | 1798 | # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set |
| 1779 | 1799 | ||
| 1780 | # | 1800 | # |
| @@ -1895,6 +1915,7 @@ CONFIG_CRYPTO_DEFLATE=y | |||
| 1895 | # | 1915 | # |
| 1896 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1916 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 1897 | CONFIG_CRYPTO_HW=y | 1917 | CONFIG_CRYPTO_HW=y |
| 1918 | # CONFIG_CRYPTO_DEV_NIAGARA2 is not set | ||
| 1898 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1919 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
| 1899 | CONFIG_BINARY_PRINTF=y | 1920 | CONFIG_BINARY_PRINTF=y |
| 1900 | 1921 | ||
diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h index 0588b8c7faa2..69358b590c91 100644 --- a/arch/sparc/include/asm/cache.h +++ b/arch/sparc/include/asm/cache.h | |||
| @@ -11,7 +11,6 @@ | |||
| 11 | 11 | ||
| 12 | #define L1_CACHE_SHIFT 5 | 12 | #define L1_CACHE_SHIFT 5 |
| 13 | #define L1_CACHE_BYTES 32 | 13 | #define L1_CACHE_BYTES 32 |
| 14 | #define L1_CACHE_ALIGN(x) ((((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))) | ||
| 15 | 14 | ||
| 16 | #ifdef CONFIG_SPARC32 | 15 | #ifdef CONFIG_SPARC32 |
| 17 | #define SMP_CACHE_BYTES_SHIFT 5 | 16 | #define SMP_CACHE_BYTES_SHIFT 5 |
diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h index 77f906d8cc21..0ece77f47753 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h | |||
| @@ -142,13 +142,12 @@ BTFIXUPDEF_CALL_CONST(unsigned long, pgd_page_vaddr, pgd_t) | |||
| 142 | #define pmd_page(pmd) BTFIXUP_CALL(pmd_page)(pmd) | 142 | #define pmd_page(pmd) BTFIXUP_CALL(pmd_page)(pmd) |
| 143 | #define pgd_page_vaddr(pgd) BTFIXUP_CALL(pgd_page_vaddr)(pgd) | 143 | #define pgd_page_vaddr(pgd) BTFIXUP_CALL(pgd_page_vaddr)(pgd) |
| 144 | 144 | ||
| 145 | BTFIXUPDEF_SETHI(none_mask) | ||
| 146 | BTFIXUPDEF_CALL_CONST(int, pte_present, pte_t) | 145 | BTFIXUPDEF_CALL_CONST(int, pte_present, pte_t) |
| 147 | BTFIXUPDEF_CALL(void, pte_clear, pte_t *) | 146 | BTFIXUPDEF_CALL(void, pte_clear, pte_t *) |
| 148 | 147 | ||
| 149 | static inline int pte_none(pte_t pte) | 148 | static inline int pte_none(pte_t pte) |
| 150 | { | 149 | { |
| 151 | return !(pte_val(pte) & ~BTFIXUP_SETHI(none_mask)); | 150 | return !pte_val(pte); |
| 152 | } | 151 | } |
| 153 | 152 | ||
| 154 | #define pte_present(pte) BTFIXUP_CALL(pte_present)(pte) | 153 | #define pte_present(pte) BTFIXUP_CALL(pte_present)(pte) |
| @@ -160,7 +159,7 @@ BTFIXUPDEF_CALL(void, pmd_clear, pmd_t *) | |||
| 160 | 159 | ||
| 161 | static inline int pmd_none(pmd_t pmd) | 160 | static inline int pmd_none(pmd_t pmd) |
| 162 | { | 161 | { |
| 163 | return !(pmd_val(pmd) & ~BTFIXUP_SETHI(none_mask)); | 162 | return !pmd_val(pmd); |
| 164 | } | 163 | } |
| 165 | 164 | ||
| 166 | #define pmd_bad(pmd) BTFIXUP_CALL(pmd_bad)(pmd) | 165 | #define pmd_bad(pmd) BTFIXUP_CALL(pmd_bad)(pmd) |
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 0ec92c8861dd..44faabc3c02c 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c | |||
| @@ -657,6 +657,7 @@ static u64 maybe_change_configuration(struct cpu_hw_events *cpuc, u64 pcr) | |||
| 657 | cpuc->current_idx[i] = idx; | 657 | cpuc->current_idx[i] = idx; |
| 658 | 658 | ||
| 659 | enc = perf_event_get_enc(cpuc->events[i]); | 659 | enc = perf_event_get_enc(cpuc->events[i]); |
| 660 | pcr &= ~mask_for_index(idx); | ||
| 660 | pcr |= event_encoding(enc, idx); | 661 | pcr |= event_encoding(enc, idx); |
| 661 | } | 662 | } |
| 662 | out: | 663 | out: |
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c index ab036a72de5a..e11b4612dabb 100644 --- a/arch/sparc/kernel/sun4d_irq.c +++ b/arch/sparc/kernel/sun4d_irq.c | |||
| @@ -183,7 +183,7 @@ void sun4d_free_irq(unsigned int irq, void *dev_id) | |||
| 183 | goto out_unlock; | 183 | goto out_unlock; |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | if (action && tmp) | 186 | if (tmp) |
| 187 | tmp->next = action->next; | 187 | tmp->next = action->next; |
| 188 | else | 188 | else |
| 189 | *actionp = action->next; | 189 | *actionp = action->next; |
diff --git a/arch/sparc/kernel/ttable.S b/arch/sparc/kernel/ttable.S index 76d837fc47d3..c6dfdaa29e20 100644 --- a/arch/sparc/kernel/ttable.S +++ b/arch/sparc/kernel/ttable.S | |||
| @@ -64,7 +64,7 @@ tl0_irq6: TRAP_IRQ(smp_call_function_single_client, 6) | |||
| 64 | tl0_irq6: BTRAP(0x46) | 64 | tl0_irq6: BTRAP(0x46) |
| 65 | #endif | 65 | #endif |
| 66 | tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7) | 66 | tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7) |
| 67 | #ifdef CONFIG_KGDB | 67 | #if defined(CONFIG_KGDB) && defined(CONFIG_SMP) |
| 68 | tl0_irq8: TRAP_IRQ(smp_kgdb_capture_client, 8) | 68 | tl0_irq8: TRAP_IRQ(smp_kgdb_capture_client, 8) |
| 69 | #else | 69 | #else |
| 70 | tl0_irq8: BTRAP(0x48) | 70 | tl0_irq8: BTRAP(0x48) |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index f5f75a58e0b3..b0b43aa5e45a 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
| @@ -2215,8 +2215,6 @@ void __init ld_mmu_srmmu(void) | |||
| 2215 | BTFIXUPSET_CALL(pmd_page, srmmu_pmd_page, BTFIXUPCALL_NORM); | 2215 | BTFIXUPSET_CALL(pmd_page, srmmu_pmd_page, BTFIXUPCALL_NORM); |
| 2216 | BTFIXUPSET_CALL(pgd_page_vaddr, srmmu_pgd_page, BTFIXUPCALL_NORM); | 2216 | BTFIXUPSET_CALL(pgd_page_vaddr, srmmu_pgd_page, BTFIXUPCALL_NORM); |
| 2217 | 2217 | ||
| 2218 | BTFIXUPSET_SETHI(none_mask, 0xF0000000); | ||
| 2219 | |||
| 2220 | BTFIXUPSET_CALL(pte_present, srmmu_pte_present, BTFIXUPCALL_NORM); | 2218 | BTFIXUPSET_CALL(pte_present, srmmu_pte_present, BTFIXUPCALL_NORM); |
| 2221 | BTFIXUPSET_CALL(pte_clear, srmmu_pte_clear, BTFIXUPCALL_SWAPO0G0); | 2219 | BTFIXUPSET_CALL(pte_clear, srmmu_pte_clear, BTFIXUPCALL_SWAPO0G0); |
| 2222 | 2220 | ||
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index cf38846753dd..4289f90f8697 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
| @@ -2087,9 +2087,6 @@ void __init ld_mmu_sun4c(void) | |||
| 2087 | 2087 | ||
| 2088 | BTFIXUPSET_CALL(set_pte, sun4c_set_pte, BTFIXUPCALL_STO1O0); | 2088 | BTFIXUPSET_CALL(set_pte, sun4c_set_pte, BTFIXUPCALL_STO1O0); |
| 2089 | 2089 | ||
| 2090 | /* The 2.4.18 code does not set this on sun4c, how does it work? XXX */ | ||
| 2091 | /* BTFIXUPSET_SETHI(none_mask, 0x00000000); */ /* Defaults to zero? */ | ||
| 2092 | |||
| 2093 | BTFIXUPSET_CALL(pte_pfn, sun4c_pte_pfn, BTFIXUPCALL_NORM); | 2090 | BTFIXUPSET_CALL(pte_pfn, sun4c_pte_pfn, BTFIXUPCALL_NORM); |
| 2094 | #if 0 /* PAGE_SHIFT <= 12 */ /* Eek. Investigate. XXX */ | 2091 | #if 0 /* PAGE_SHIFT <= 12 */ /* Eek. Investigate. XXX */ |
| 2095 | BTFIXUPSET_CALL(pmd_page, sun4c_pmd_page, BTFIXUPCALL_ANDNINT(PAGE_SIZE - 1)); | 2092 | BTFIXUPSET_CALL(pmd_page, sun4c_pmd_page, BTFIXUPCALL_ANDNINT(PAGE_SIZE - 1)); |
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c index 2e837f5080fe..fb7a5f052e2b 100644 --- a/arch/x86/kernel/acpi/cstate.c +++ b/arch/x86/kernel/acpi/cstate.c | |||
| @@ -145,6 +145,15 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu, | |||
| 145 | percpu_entry->states[cx->index].eax = cx->address; | 145 | percpu_entry->states[cx->index].eax = cx->address; |
| 146 | percpu_entry->states[cx->index].ecx = MWAIT_ECX_INTERRUPT_BREAK; | 146 | percpu_entry->states[cx->index].ecx = MWAIT_ECX_INTERRUPT_BREAK; |
| 147 | } | 147 | } |
| 148 | |||
| 149 | /* | ||
| 150 | * For _CST FFH on Intel, if GAS.access_size bit 1 is cleared, | ||
| 151 | * then we should skip checking BM_STS for this C-state. | ||
| 152 | * ref: "Intel Processor Vendor-Specific ACPI Interface Specification" | ||
| 153 | */ | ||
| 154 | if ((c->x86_vendor == X86_VENDOR_INTEL) && !(reg->access_size & 0x2)) | ||
| 155 | cx->bm_sts_skip = 1; | ||
| 156 | |||
| 148 | return retval; | 157 | return retval; |
| 149 | } | 158 | } |
| 150 | EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe); | 159 | EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe); |
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index 0697ff139837..4db7c4d12ffa 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
| @@ -571,8 +571,8 @@ auditsys: | |||
| 571 | * masked off. | 571 | * masked off. |
| 572 | */ | 572 | */ |
| 573 | sysret_audit: | 573 | sysret_audit: |
| 574 | movq %rax,%rsi /* second arg, syscall return value */ | 574 | movq RAX-ARGOFFSET(%rsp),%rsi /* second arg, syscall return value */ |
| 575 | cmpq $0,%rax /* is it < 0? */ | 575 | cmpq $0,%rsi /* is it < 0? */ |
| 576 | setl %al /* 1 if so, 0 if not */ | 576 | setl %al /* 1 if so, 0 if not */ |
| 577 | movzbl %al,%edi /* zero-extend that into %edi */ | 577 | movzbl %al,%edi /* zero-extend that into %edi */ |
| 578 | inc %edi /* first arg, 0->1(AUDITSC_SUCCESS), 1->2(AUDITSC_FAILURE) */ | 578 | inc %edi /* first arg, 0->1(AUDITSC_SUCCESS), 1->2(AUDITSC_FAILURE) */ |
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c index 690c2c09faf3..a60df9ae6454 100644 --- a/arch/x86/kernel/setup_percpu.c +++ b/arch/x86/kernel/setup_percpu.c | |||
| @@ -239,7 +239,7 @@ void __init setup_per_cpu_areas(void) | |||
| 239 | per_cpu(x86_cpu_to_node_map, cpu) = | 239 | per_cpu(x86_cpu_to_node_map, cpu) = |
| 240 | early_per_cpu_map(x86_cpu_to_node_map, cpu); | 240 | early_per_cpu_map(x86_cpu_to_node_map, cpu); |
| 241 | /* | 241 | /* |
| 242 | * Ensure taht the boot cpu numa_node is correct when the boot | 242 | * Ensure that the boot cpu numa_node is correct when the boot |
| 243 | * cpu is on a node that doesn't have memory installed. | 243 | * cpu is on a node that doesn't have memory installed. |
| 244 | * Also cpu_up() will call cpu_to_node() for APs when | 244 | * Also cpu_up() will call cpu_to_node() for APs when |
| 245 | * MEMORY_HOTPLUG is defined, before per_cpu(numa_node) is set | 245 | * MEMORY_HOTPLUG is defined, before per_cpu(numa_node) is set |
diff --git a/drivers/acpi/acpica/evxfevnt.c b/drivers/acpi/acpica/evxfevnt.c index d97b8dce1668..18b3f1468b7d 100644 --- a/drivers/acpi/acpica/evxfevnt.c +++ b/drivers/acpi/acpica/evxfevnt.c | |||
| @@ -70,6 +70,7 @@ acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info, | |||
| 70 | acpi_status acpi_enable(void) | 70 | acpi_status acpi_enable(void) |
| 71 | { | 71 | { |
| 72 | acpi_status status; | 72 | acpi_status status; |
| 73 | int retry; | ||
| 73 | 74 | ||
| 74 | ACPI_FUNCTION_TRACE(acpi_enable); | 75 | ACPI_FUNCTION_TRACE(acpi_enable); |
| 75 | 76 | ||
| @@ -98,16 +99,18 @@ acpi_status acpi_enable(void) | |||
| 98 | 99 | ||
| 99 | /* Sanity check that transition succeeded */ | 100 | /* Sanity check that transition succeeded */ |
| 100 | 101 | ||
| 101 | if (acpi_hw_get_mode() != ACPI_SYS_MODE_ACPI) { | 102 | for (retry = 0; retry < 30000; ++retry) { |
| 102 | ACPI_ERROR((AE_INFO, | 103 | if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) { |
| 103 | "Hardware did not enter ACPI mode")); | 104 | if (retry != 0) |
| 104 | return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE); | 105 | ACPI_WARNING((AE_INFO, |
| 106 | "Platform took > %d00 usec to enter ACPI mode", retry)); | ||
| 107 | return_ACPI_STATUS(AE_OK); | ||
| 108 | } | ||
| 109 | acpi_os_stall(100); /* 100 usec */ | ||
| 105 | } | 110 | } |
| 106 | 111 | ||
| 107 | ACPI_DEBUG_PRINT((ACPI_DB_INIT, | 112 | ACPI_ERROR((AE_INFO, "Hardware did not enter ACPI mode")); |
| 108 | "Transition to ACPI mode successful\n")); | 113 | return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE); |
| 109 | |||
| 110 | return_ACPI_STATUS(AE_OK); | ||
| 111 | } | 114 | } |
| 112 | 115 | ||
| 113 | ACPI_EXPORT_SYMBOL(acpi_enable) | 116 | ACPI_EXPORT_SYMBOL(acpi_enable) |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 3026e3fa83ef..dc58402b0a17 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
| @@ -868,9 +868,15 @@ static void acpi_battery_remove_fs(struct acpi_device *device) | |||
| 868 | static void acpi_battery_notify(struct acpi_device *device, u32 event) | 868 | static void acpi_battery_notify(struct acpi_device *device, u32 event) |
| 869 | { | 869 | { |
| 870 | struct acpi_battery *battery = acpi_driver_data(device); | 870 | struct acpi_battery *battery = acpi_driver_data(device); |
| 871 | #ifdef CONFIG_ACPI_SYSFS_POWER | ||
| 872 | struct device *old; | ||
| 873 | #endif | ||
| 871 | 874 | ||
| 872 | if (!battery) | 875 | if (!battery) |
| 873 | return; | 876 | return; |
| 877 | #ifdef CONFIG_ACPI_SYSFS_POWER | ||
| 878 | old = battery->bat.dev; | ||
| 879 | #endif | ||
| 874 | acpi_battery_update(battery); | 880 | acpi_battery_update(battery); |
| 875 | acpi_bus_generate_proc_event(device, event, | 881 | acpi_bus_generate_proc_event(device, event, |
| 876 | acpi_battery_present(battery)); | 882 | acpi_battery_present(battery)); |
| @@ -879,7 +885,7 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event) | |||
| 879 | acpi_battery_present(battery)); | 885 | acpi_battery_present(battery)); |
| 880 | #ifdef CONFIG_ACPI_SYSFS_POWER | 886 | #ifdef CONFIG_ACPI_SYSFS_POWER |
| 881 | /* acpi_battery_update could remove power_supply object */ | 887 | /* acpi_battery_update could remove power_supply object */ |
| 882 | if (battery->bat.dev) | 888 | if (old && battery->bat.dev) |
| 883 | power_supply_changed(&battery->bat); | 889 | power_supply_changed(&battery->bat); |
| 884 | #endif | 890 | #endif |
| 885 | } | 891 | } |
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index 01381be05e96..2bb28b9d91c4 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c | |||
| @@ -214,7 +214,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 214 | .ident = "Sony VGN-SR290J", | 214 | .ident = "Sony VGN-SR290J", |
| 215 | .matches = { | 215 | .matches = { |
| 216 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | 216 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), |
| 217 | DMI_MATCH(DMI_PRODUCT_NAME, "Sony VGN-SR290J"), | 217 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR290J"), |
| 218 | }, | 218 | }, |
| 219 | }, | 219 | }, |
| 220 | { | 220 | { |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index 51284351418f..e9699aaed109 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
| @@ -223,7 +223,7 @@ static bool processor_physically_present(acpi_handle handle) | |||
| 223 | type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0; | 223 | type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0; |
| 224 | cpuid = acpi_get_cpuid(handle, type, acpi_id); | 224 | cpuid = acpi_get_cpuid(handle, type, acpi_id); |
| 225 | 225 | ||
| 226 | if (cpuid == -1) | 226 | if ((cpuid == -1) && (num_possible_cpus() > 1)) |
| 227 | return false; | 227 | return false; |
| 228 | 228 | ||
| 229 | return true; | 229 | return true; |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index d0035946b6b9..e9a8026d39f0 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
| @@ -76,6 +76,8 @@ static unsigned int max_cstate __read_mostly = ACPI_PROCESSOR_MAX_POWER; | |||
| 76 | module_param(max_cstate, uint, 0000); | 76 | module_param(max_cstate, uint, 0000); |
| 77 | static unsigned int nocst __read_mostly; | 77 | static unsigned int nocst __read_mostly; |
| 78 | module_param(nocst, uint, 0000); | 78 | module_param(nocst, uint, 0000); |
| 79 | static int bm_check_disable __read_mostly; | ||
| 80 | module_param(bm_check_disable, uint, 0000); | ||
| 79 | 81 | ||
| 80 | static unsigned int latency_factor __read_mostly = 2; | 82 | static unsigned int latency_factor __read_mostly = 2; |
| 81 | module_param(latency_factor, uint, 0644); | 83 | module_param(latency_factor, uint, 0644); |
| @@ -766,6 +768,9 @@ static int acpi_idle_bm_check(void) | |||
| 766 | { | 768 | { |
| 767 | u32 bm_status = 0; | 769 | u32 bm_status = 0; |
| 768 | 770 | ||
| 771 | if (bm_check_disable) | ||
| 772 | return 0; | ||
| 773 | |||
| 769 | acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_STATUS, &bm_status); | 774 | acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_STATUS, &bm_status); |
| 770 | if (bm_status) | 775 | if (bm_status) |
| 771 | acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_STATUS, 1); | 776 | acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_STATUS, 1); |
| @@ -950,7 +955,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 950 | if (acpi_idle_suspend) | 955 | if (acpi_idle_suspend) |
| 951 | return(acpi_idle_enter_c1(dev, state)); | 956 | return(acpi_idle_enter_c1(dev, state)); |
| 952 | 957 | ||
| 953 | if (acpi_idle_bm_check()) { | 958 | if (!cx->bm_sts_skip && acpi_idle_bm_check()) { |
| 954 | if (dev->safe_state) { | 959 | if (dev->safe_state) { |
| 955 | dev->last_state = dev->safe_state; | 960 | dev->last_state = dev->safe_state; |
| 956 | return dev->safe_state->enter(dev, dev->safe_state); | 961 | return dev->safe_state->enter(dev, dev->safe_state); |
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c index 5d64e3acb000..878ac0c2cc68 100644 --- a/drivers/char/sysrq.c +++ b/drivers/char/sysrq.c | |||
| @@ -493,7 +493,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p) | |||
| 493 | sysrq_key_table[i] = op_p; | 493 | sysrq_key_table[i] = op_p; |
| 494 | } | 494 | } |
| 495 | 495 | ||
| 496 | static void __handle_sysrq(int key, struct tty_struct *tty, int check_mask) | 496 | void __handle_sysrq(int key, struct tty_struct *tty, int check_mask) |
| 497 | { | 497 | { |
| 498 | struct sysrq_key_op *op_p; | 498 | struct sysrq_key_op *op_p; |
| 499 | int orig_log_level; | 499 | int orig_log_level; |
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index 637c105f53d2..bd78acf3c365 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c | |||
| @@ -1183,10 +1183,14 @@ static size_t sg_copy_end_to_buffer(struct scatterlist *sgl, unsigned int nents, | |||
| 1183 | /* Copy part of this segment */ | 1183 | /* Copy part of this segment */ |
| 1184 | ignore = skip - offset; | 1184 | ignore = skip - offset; |
| 1185 | len = miter.length - ignore; | 1185 | len = miter.length - ignore; |
| 1186 | if (boffset + len > buflen) | ||
| 1187 | len = buflen - boffset; | ||
| 1186 | memcpy(buf + boffset, miter.addr + ignore, len); | 1188 | memcpy(buf + boffset, miter.addr + ignore, len); |
| 1187 | } else { | 1189 | } else { |
| 1188 | /* Copy all of this segment */ | 1190 | /* Copy all of this segment (up to buflen) */ |
| 1189 | len = miter.length; | 1191 | len = miter.length; |
| 1192 | if (boffset + len > buflen) | ||
| 1193 | len = buflen - boffset; | ||
| 1190 | memcpy(buf + boffset, miter.addr, len); | 1194 | memcpy(buf + boffset, miter.addr, len); |
| 1191 | } | 1195 | } |
| 1192 | boffset += len; | 1196 | boffset += len; |
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c index 010963d4570f..345a75a03c96 100644 --- a/drivers/gpu/drm/radeon/evergreen_cs.c +++ b/drivers/gpu/drm/radeon/evergreen_cs.c | |||
| @@ -333,7 +333,6 @@ static int evergreen_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 333 | header = radeon_get_ib_value(p, h_idx); | 333 | header = radeon_get_ib_value(p, h_idx); |
| 334 | crtc_id = radeon_get_ib_value(p, h_idx + 2 + 7 + 1); | 334 | crtc_id = radeon_get_ib_value(p, h_idx + 2 + 7 + 1); |
| 335 | reg = CP_PACKET0_GET_REG(header); | 335 | reg = CP_PACKET0_GET_REG(header); |
| 336 | mutex_lock(&p->rdev->ddev->mode_config.mutex); | ||
| 337 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); | 336 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); |
| 338 | if (!obj) { | 337 | if (!obj) { |
| 339 | DRM_ERROR("cannot find crtc %d\n", crtc_id); | 338 | DRM_ERROR("cannot find crtc %d\n", crtc_id); |
| @@ -368,7 +367,6 @@ static int evergreen_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 368 | } | 367 | } |
| 369 | } | 368 | } |
| 370 | out: | 369 | out: |
| 371 | mutex_unlock(&p->rdev->ddev->mode_config.mutex); | ||
| 372 | return r; | 370 | return r; |
| 373 | } | 371 | } |
| 374 | 372 | ||
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index aab5ba040bd6..a89a15ab524d 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c | |||
| @@ -1230,7 +1230,6 @@ int r100_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 1230 | header = radeon_get_ib_value(p, h_idx); | 1230 | header = radeon_get_ib_value(p, h_idx); |
| 1231 | crtc_id = radeon_get_ib_value(p, h_idx + 5); | 1231 | crtc_id = radeon_get_ib_value(p, h_idx + 5); |
| 1232 | reg = CP_PACKET0_GET_REG(header); | 1232 | reg = CP_PACKET0_GET_REG(header); |
| 1233 | mutex_lock(&p->rdev->ddev->mode_config.mutex); | ||
| 1234 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); | 1233 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); |
| 1235 | if (!obj) { | 1234 | if (!obj) { |
| 1236 | DRM_ERROR("cannot find crtc %d\n", crtc_id); | 1235 | DRM_ERROR("cannot find crtc %d\n", crtc_id); |
| @@ -1264,7 +1263,6 @@ int r100_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 1264 | ib[h_idx + 3] |= RADEON_ENG_DISPLAY_SELECT_CRTC1; | 1263 | ib[h_idx + 3] |= RADEON_ENG_DISPLAY_SELECT_CRTC1; |
| 1265 | } | 1264 | } |
| 1266 | out: | 1265 | out: |
| 1267 | mutex_unlock(&p->rdev->ddev->mode_config.mutex); | ||
| 1268 | return r; | 1266 | return r; |
| 1269 | } | 1267 | } |
| 1270 | 1268 | ||
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c index c39c1bc13016..144c32d37136 100644 --- a/drivers/gpu/drm/radeon/r600_cs.c +++ b/drivers/gpu/drm/radeon/r600_cs.c | |||
| @@ -585,7 +585,7 @@ static int r600_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 585 | header = radeon_get_ib_value(p, h_idx); | 585 | header = radeon_get_ib_value(p, h_idx); |
| 586 | crtc_id = radeon_get_ib_value(p, h_idx + 2 + 7 + 1); | 586 | crtc_id = radeon_get_ib_value(p, h_idx + 2 + 7 + 1); |
| 587 | reg = CP_PACKET0_GET_REG(header); | 587 | reg = CP_PACKET0_GET_REG(header); |
| 588 | mutex_lock(&p->rdev->ddev->mode_config.mutex); | 588 | |
| 589 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); | 589 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); |
| 590 | if (!obj) { | 590 | if (!obj) { |
| 591 | DRM_ERROR("cannot find crtc %d\n", crtc_id); | 591 | DRM_ERROR("cannot find crtc %d\n", crtc_id); |
| @@ -620,7 +620,6 @@ static int r600_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
| 620 | ib[h_idx + 4] = AVIVO_D2MODE_VLINE_STATUS >> 2; | 620 | ib[h_idx + 4] = AVIVO_D2MODE_VLINE_STATUS >> 2; |
| 621 | } | 621 | } |
| 622 | out: | 622 | out: |
| 623 | mutex_unlock(&p->rdev->ddev->mode_config.mutex); | ||
| 624 | return r; | 623 | return r; |
| 625 | } | 624 | } |
| 626 | 625 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index d1c1d8dd93ce..2417d7b06fdb 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c | |||
| @@ -3050,6 +3050,14 @@ void radeon_combios_asic_init(struct drm_device *dev) | |||
| 3050 | rdev->pdev->subsystem_device == 0x308b) | 3050 | rdev->pdev->subsystem_device == 0x308b) |
| 3051 | return; | 3051 | return; |
| 3052 | 3052 | ||
| 3053 | /* quirk for rs4xx HP dv5000 laptop to make it resume | ||
| 3054 | * - it hangs on resume inside the dynclk 1 table. | ||
| 3055 | */ | ||
| 3056 | if (rdev->family == CHIP_RS480 && | ||
| 3057 | rdev->pdev->subsystem_vendor == 0x103c && | ||
| 3058 | rdev->pdev->subsystem_device == 0x30a4) | ||
| 3059 | return; | ||
| 3060 | |||
| 3053 | /* DYN CLK 1 */ | 3061 | /* DYN CLK 1 */ |
| 3054 | table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE); | 3062 | table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE); |
| 3055 | if (table) | 3063 | if (table) |
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c index 6a70c0dc7f92..ab389f89fa8d 100644 --- a/drivers/gpu/drm/radeon/radeon_kms.c +++ b/drivers/gpu/drm/radeon/radeon_kms.c | |||
| @@ -128,7 +128,8 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) | |||
| 128 | for (i = 0, found = 0; i < rdev->num_crtc; i++) { | 128 | for (i = 0, found = 0; i < rdev->num_crtc; i++) { |
| 129 | crtc = (struct drm_crtc *)minfo->crtcs[i]; | 129 | crtc = (struct drm_crtc *)minfo->crtcs[i]; |
| 130 | if (crtc && crtc->base.id == value) { | 130 | if (crtc && crtc->base.id == value) { |
| 131 | value = i; | 131 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); |
| 132 | value = radeon_crtc->crtc_id; | ||
| 132 | found = 1; | 133 | found = 1; |
| 133 | break; | 134 | break; |
| 134 | } | 135 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index bad77f40a9da..5688a0cf6bbe 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c | |||
| @@ -108,6 +108,7 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
| 108 | udelay(panel_pwr_delay * 1000); | 108 | udelay(panel_pwr_delay * 1000); |
| 109 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); | 109 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); |
| 110 | WREG32_PLL(RADEON_PIXCLKS_CNTL, pixclks_cntl); | 110 | WREG32_PLL(RADEON_PIXCLKS_CNTL, pixclks_cntl); |
| 111 | udelay(panel_pwr_delay * 1000); | ||
| 111 | break; | 112 | break; |
| 112 | } | 113 | } |
| 113 | 114 | ||
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c index 1f32b460adce..ca904799f018 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c | |||
| @@ -40,13 +40,13 @@ | |||
| 40 | #include <linux/slab.h> | 40 | #include <linux/slab.h> |
| 41 | 41 | ||
| 42 | #include <asm/atomic.h> | 42 | #include <asm/atomic.h> |
| 43 | #ifdef TTM_HAS_AGP | ||
| 44 | #include <asm/agp.h> | ||
| 45 | #endif | ||
| 46 | 43 | ||
| 47 | #include "ttm/ttm_bo_driver.h" | 44 | #include "ttm/ttm_bo_driver.h" |
| 48 | #include "ttm/ttm_page_alloc.h" | 45 | #include "ttm/ttm_page_alloc.h" |
| 49 | 46 | ||
| 47 | #ifdef TTM_HAS_AGP | ||
| 48 | #include <asm/agp.h> | ||
| 49 | #endif | ||
| 50 | 50 | ||
| 51 | #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *)) | 51 | #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *)) |
| 52 | #define SMALL_ALLOCATION 16 | 52 | #define SMALL_ALLOCATION 16 |
| @@ -394,7 +394,7 @@ static int ttm_pool_get_num_unused_pages(void) | |||
| 394 | /** | 394 | /** |
| 395 | * Callback for mm to request pool to reduce number of page held. | 395 | * Callback for mm to request pool to reduce number of page held. |
| 396 | */ | 396 | */ |
| 397 | static int ttm_pool_mm_shrink(int shrink_pages, gfp_t gfp_mask) | 397 | static int ttm_pool_mm_shrink(struct shrinker *shrink, int shrink_pages, gfp_t gfp_mask) |
| 398 | { | 398 | { |
| 399 | static atomic_t start_pool = ATOMIC_INIT(0); | 399 | static atomic_t start_pool = ATOMIC_INIT(0); |
| 400 | unsigned i; | 400 | unsigned i; |
diff --git a/drivers/input/joystick/gamecon.c b/drivers/input/joystick/gamecon.c index fbd62abb66f9..0ffaf2c77a19 100644 --- a/drivers/input/joystick/gamecon.c +++ b/drivers/input/joystick/gamecon.c | |||
| @@ -89,7 +89,6 @@ struct gc_pad { | |||
| 89 | struct gc { | 89 | struct gc { |
| 90 | struct pardevice *pd; | 90 | struct pardevice *pd; |
| 91 | struct gc_pad pads[GC_MAX_DEVICES]; | 91 | struct gc_pad pads[GC_MAX_DEVICES]; |
| 92 | struct input_dev *dev[GC_MAX_DEVICES]; | ||
| 93 | struct timer_list timer; | 92 | struct timer_list timer; |
| 94 | int pad_count[GC_MAX]; | 93 | int pad_count[GC_MAX]; |
| 95 | int used; | 94 | int used; |
| @@ -387,7 +386,7 @@ static void gc_nes_process_packet(struct gc *gc) | |||
| 387 | for (i = 0; i < GC_MAX_DEVICES; i++) { | 386 | for (i = 0; i < GC_MAX_DEVICES; i++) { |
| 388 | 387 | ||
| 389 | pad = &gc->pads[i]; | 388 | pad = &gc->pads[i]; |
| 390 | dev = gc->dev[i]; | 389 | dev = pad->dev; |
| 391 | s = gc_status_bit[i]; | 390 | s = gc_status_bit[i]; |
| 392 | 391 | ||
| 393 | switch (pad->type) { | 392 | switch (pad->type) { |
| @@ -579,7 +578,7 @@ static void gc_psx_command(struct gc *gc, int b, unsigned char *data) | |||
| 579 | read = parport_read_status(port) ^ 0x80; | 578 | read = parport_read_status(port) ^ 0x80; |
| 580 | 579 | ||
| 581 | for (j = 0; j < GC_MAX_DEVICES; j++) { | 580 | for (j = 0; j < GC_MAX_DEVICES; j++) { |
| 582 | struct gc_pad *pad = &gc->pads[i]; | 581 | struct gc_pad *pad = &gc->pads[j]; |
| 583 | 582 | ||
| 584 | if (pad->type == GC_PSX || pad->type == GC_DDR) | 583 | if (pad->type == GC_PSX || pad->type == GC_DDR) |
| 585 | data[j] |= (read & gc_status_bit[j]) ? (1 << i) : 0; | 584 | data[j] |= (read & gc_status_bit[j]) ? (1 << i) : 0; |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 3525f533e186..1ba25145b333 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
| @@ -124,7 +124,7 @@ config KEYBOARD_ATKBD_RDI_KEYCODES | |||
| 124 | right-hand column will be interpreted as the key shown in the | 124 | right-hand column will be interpreted as the key shown in the |
| 125 | left-hand column. | 125 | left-hand column. |
| 126 | 126 | ||
| 127 | config QT2160 | 127 | config KEYBOARD_QT2160 |
| 128 | tristate "Atmel AT42QT2160 Touch Sensor Chip" | 128 | tristate "Atmel AT42QT2160 Touch Sensor Chip" |
| 129 | depends on I2C && EXPERIMENTAL | 129 | depends on I2C && EXPERIMENTAL |
| 130 | help | 130 | help |
diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c index 7aa59e07b689..fb16b5e5ea13 100644 --- a/drivers/input/keyboard/twl4030_keypad.c +++ b/drivers/input/keyboard/twl4030_keypad.c | |||
| @@ -51,8 +51,12 @@ | |||
| 51 | */ | 51 | */ |
| 52 | #define TWL4030_MAX_ROWS 8 /* TWL4030 hard limit */ | 52 | #define TWL4030_MAX_ROWS 8 /* TWL4030 hard limit */ |
| 53 | #define TWL4030_MAX_COLS 8 | 53 | #define TWL4030_MAX_COLS 8 |
| 54 | #define TWL4030_ROW_SHIFT 3 | 54 | /* |
| 55 | #define TWL4030_KEYMAP_SIZE (TWL4030_MAX_ROWS * TWL4030_MAX_COLS) | 55 | * Note that we add space for an extra column so that we can handle |
| 56 | * row lines connected to the gnd (see twl4030_col_xlate()). | ||
| 57 | */ | ||
| 58 | #define TWL4030_ROW_SHIFT 4 | ||
| 59 | #define TWL4030_KEYMAP_SIZE (TWL4030_MAX_ROWS << TWL4030_ROW_SHIFT) | ||
| 56 | 60 | ||
| 57 | struct twl4030_keypad { | 61 | struct twl4030_keypad { |
| 58 | unsigned short keymap[TWL4030_KEYMAP_SIZE]; | 62 | unsigned short keymap[TWL4030_KEYMAP_SIZE]; |
| @@ -182,7 +186,7 @@ static int twl4030_read_kp_matrix_state(struct twl4030_keypad *kp, u16 *state) | |||
| 182 | return ret; | 186 | return ret; |
| 183 | } | 187 | } |
| 184 | 188 | ||
| 185 | static int twl4030_is_in_ghost_state(struct twl4030_keypad *kp, u16 *key_state) | 189 | static bool twl4030_is_in_ghost_state(struct twl4030_keypad *kp, u16 *key_state) |
| 186 | { | 190 | { |
| 187 | int i; | 191 | int i; |
| 188 | u16 check = 0; | 192 | u16 check = 0; |
| @@ -191,12 +195,12 @@ static int twl4030_is_in_ghost_state(struct twl4030_keypad *kp, u16 *key_state) | |||
| 191 | u16 col = key_state[i]; | 195 | u16 col = key_state[i]; |
| 192 | 196 | ||
| 193 | if ((col & check) && hweight16(col) > 1) | 197 | if ((col & check) && hweight16(col) > 1) |
| 194 | return 1; | 198 | return true; |
| 195 | 199 | ||
| 196 | check |= col; | 200 | check |= col; |
| 197 | } | 201 | } |
| 198 | 202 | ||
| 199 | return 0; | 203 | return false; |
| 200 | } | 204 | } |
| 201 | 205 | ||
| 202 | static void twl4030_kp_scan(struct twl4030_keypad *kp, bool release_all) | 206 | static void twl4030_kp_scan(struct twl4030_keypad *kp, bool release_all) |
| @@ -225,7 +229,8 @@ static void twl4030_kp_scan(struct twl4030_keypad *kp, bool release_all) | |||
| 225 | if (!changed) | 229 | if (!changed) |
| 226 | continue; | 230 | continue; |
| 227 | 231 | ||
| 228 | for (col = 0; col < kp->n_cols; col++) { | 232 | /* Extra column handles "all gnd" rows */ |
| 233 | for (col = 0; col < kp->n_cols + 1; col++) { | ||
| 229 | int code; | 234 | int code; |
| 230 | 235 | ||
| 231 | if (!(changed & (1 << col))) | 236 | if (!(changed & (1 << col))) |
diff --git a/drivers/input/keyboard/w90p910_keypad.c b/drivers/input/keyboard/w90p910_keypad.c index 4ef764cc493c..ee2bf6bcf291 100644 --- a/drivers/input/keyboard/w90p910_keypad.c +++ b/drivers/input/keyboard/w90p910_keypad.c | |||
| @@ -258,7 +258,7 @@ static struct platform_driver w90p910_keypad_driver = { | |||
| 258 | .probe = w90p910_keypad_probe, | 258 | .probe = w90p910_keypad_probe, |
| 259 | .remove = __devexit_p(w90p910_keypad_remove), | 259 | .remove = __devexit_p(w90p910_keypad_remove), |
| 260 | .driver = { | 260 | .driver = { |
| 261 | .name = "nuc900-keypad", | 261 | .name = "nuc900-kpi", |
| 262 | .owner = THIS_MODULE, | 262 | .owner = THIS_MODULE, |
| 263 | }, | 263 | }, |
| 264 | }; | 264 | }; |
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index 9ba9c4a17e15..705589dc9ac5 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c | |||
| @@ -141,8 +141,13 @@ static int synaptics_capability(struct psmouse *psmouse) | |||
| 141 | priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2]; | 141 | priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2]; |
| 142 | priv->ext_cap = priv->ext_cap_0c = 0; | 142 | priv->ext_cap = priv->ext_cap_0c = 0; |
| 143 | 143 | ||
| 144 | if (!SYN_CAP_VALID(priv->capabilities)) | 144 | /* |
| 145 | * Older firmwares had submodel ID fixed to 0x47 | ||
| 146 | */ | ||
| 147 | if (SYN_ID_FULL(priv->identity) < 0x705 && | ||
| 148 | SYN_CAP_SUBMODEL_ID(priv->capabilities) != 0x47) { | ||
| 145 | return -1; | 149 | return -1; |
| 150 | } | ||
| 146 | 151 | ||
| 147 | /* | 152 | /* |
| 148 | * Unless capExtended is set the rest of the flags should be ignored | 153 | * Unless capExtended is set the rest of the flags should be ignored |
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h index 7d4d5e12c0df..b6aa7d20d8a3 100644 --- a/drivers/input/mouse/synaptics.h +++ b/drivers/input/mouse/synaptics.h | |||
| @@ -47,7 +47,7 @@ | |||
| 47 | #define SYN_CAP_FOUR_BUTTON(c) ((c) & (1 << 3)) | 47 | #define SYN_CAP_FOUR_BUTTON(c) ((c) & (1 << 3)) |
| 48 | #define SYN_CAP_MULTIFINGER(c) ((c) & (1 << 1)) | 48 | #define SYN_CAP_MULTIFINGER(c) ((c) & (1 << 1)) |
| 49 | #define SYN_CAP_PALMDETECT(c) ((c) & (1 << 0)) | 49 | #define SYN_CAP_PALMDETECT(c) ((c) & (1 << 0)) |
| 50 | #define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47) | 50 | #define SYN_CAP_SUBMODEL_ID(c) (((c) & 0x00ff00) >> 8) |
| 51 | #define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20) | 51 | #define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20) |
| 52 | #define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12) | 52 | #define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12) |
| 53 | #define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16) | 53 | #define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16) |
| @@ -66,6 +66,7 @@ | |||
| 66 | #define SYN_ID_MODEL(i) (((i) >> 4) & 0x0f) | 66 | #define SYN_ID_MODEL(i) (((i) >> 4) & 0x0f) |
| 67 | #define SYN_ID_MAJOR(i) ((i) & 0x0f) | 67 | #define SYN_ID_MAJOR(i) ((i) & 0x0f) |
| 68 | #define SYN_ID_MINOR(i) (((i) >> 16) & 0xff) | 68 | #define SYN_ID_MINOR(i) (((i) >> 16) & 0xff) |
| 69 | #define SYN_ID_FULL(i) ((SYN_ID_MAJOR(i) << 8) | SYN_ID_MINOR(i)) | ||
| 69 | #define SYN_ID_IS_SYNAPTICS(i) ((((i) >> 8) & 0xff) == 0x47) | 70 | #define SYN_ID_IS_SYNAPTICS(i) ((((i) >> 8) & 0xff) == 0x47) |
| 70 | 71 | ||
| 71 | /* synaptics special commands */ | 72 | /* synaptics special commands */ |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 81003c4739f4..ed7ad7416b24 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
| @@ -170,6 +170,13 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = { | |||
| 170 | }, | 170 | }, |
| 171 | }, | 171 | }, |
| 172 | { | 172 | { |
| 173 | /* Gigabyte Spring Peak - defines wrong chassis type */ | ||
| 174 | .matches = { | ||
| 175 | DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), | ||
| 176 | DMI_MATCH(DMI_PRODUCT_NAME, "Spring Peak"), | ||
| 177 | }, | ||
| 178 | }, | ||
| 179 | { | ||
| 173 | .matches = { | 180 | .matches = { |
| 174 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | 181 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), |
| 175 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv9700"), | 182 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv9700"), |
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c index 29f91fac1dff..a4cd9adfcbc0 100644 --- a/drivers/pcmcia/pcmcia_resource.c +++ b/drivers/pcmcia/pcmcia_resource.c | |||
| @@ -857,8 +857,10 @@ void pcmcia_disable_device(struct pcmcia_device *p_dev) | |||
| 857 | { | 857 | { |
| 858 | pcmcia_release_configuration(p_dev); | 858 | pcmcia_release_configuration(p_dev); |
| 859 | pcmcia_release_io(p_dev, &p_dev->io); | 859 | pcmcia_release_io(p_dev, &p_dev->io); |
| 860 | if (p_dev->_irq) | 860 | if (p_dev->_irq) { |
| 861 | free_irq(p_dev->irq, p_dev->priv); | 861 | free_irq(p_dev->irq, p_dev->priv); |
| 862 | p_dev->_irq = 0; | ||
| 863 | } | ||
| 862 | if (p_dev->win) | 864 | if (p_dev->win) |
| 863 | pcmcia_release_window(p_dev, p_dev->win); | 865 | pcmcia_release_window(p_dev, p_dev->win); |
| 864 | } | 866 | } |
diff --git a/drivers/sbus/char/openprom.c b/drivers/sbus/char/openprom.c index d53e62ab09da..aacbe14e2e7a 100644 --- a/drivers/sbus/char/openprom.c +++ b/drivers/sbus/char/openprom.c | |||
| @@ -554,7 +554,7 @@ static int opiocgetnext(unsigned int cmd, void __user *argp) | |||
| 554 | static int openprom_bsd_ioctl(struct file * file, | 554 | static int openprom_bsd_ioctl(struct file * file, |
| 555 | unsigned int cmd, unsigned long arg) | 555 | unsigned int cmd, unsigned long arg) |
| 556 | { | 556 | { |
| 557 | DATA *data = (DATA *) file->private_data; | 557 | DATA *data = file->private_data; |
| 558 | void __user *argp = (void __user *)arg; | 558 | void __user *argp = (void __user *)arg; |
| 559 | int err; | 559 | int err; |
| 560 | 560 | ||
| @@ -601,7 +601,7 @@ static int openprom_bsd_ioctl(struct file * file, | |||
| 601 | static long openprom_ioctl(struct file * file, | 601 | static long openprom_ioctl(struct file * file, |
| 602 | unsigned int cmd, unsigned long arg) | 602 | unsigned int cmd, unsigned long arg) |
| 603 | { | 603 | { |
| 604 | DATA *data = (DATA *) file->private_data; | 604 | DATA *data = file->private_data; |
| 605 | 605 | ||
| 606 | switch (cmd) { | 606 | switch (cmd) { |
| 607 | case OPROMGETOPT: | 607 | case OPROMGETOPT: |
diff --git a/drivers/serial/suncore.c b/drivers/serial/suncore.c index ed7d958b0a01..544f2e25d0e5 100644 --- a/drivers/serial/suncore.c +++ b/drivers/serial/suncore.c | |||
| @@ -71,7 +71,9 @@ int sunserial_console_match(struct console *con, struct device_node *dp, | |||
| 71 | 71 | ||
| 72 | con->index = line; | 72 | con->index = line; |
| 73 | drv->cons = con; | 73 | drv->cons = con; |
| 74 | add_preferred_console(con->name, line, NULL); | 74 | |
| 75 | if (!console_set_on_cmdline) | ||
| 76 | add_preferred_console(con->name, line, NULL); | ||
| 75 | 77 | ||
| 76 | return 1; | 78 | return 1; |
| 77 | } | 79 | } |
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 234459c2f012..ffbf4553f665 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
| @@ -1500,20 +1500,25 @@ out_unmap: | |||
| 1500 | static int __devexit su_remove(struct of_device *op) | 1500 | static int __devexit su_remove(struct of_device *op) |
| 1501 | { | 1501 | { |
| 1502 | struct uart_sunsu_port *up = dev_get_drvdata(&op->dev); | 1502 | struct uart_sunsu_port *up = dev_get_drvdata(&op->dev); |
| 1503 | bool kbdms = false; | ||
| 1503 | 1504 | ||
| 1504 | if (up->su_type == SU_PORT_MS || | 1505 | if (up->su_type == SU_PORT_MS || |
| 1505 | up->su_type == SU_PORT_KBD) { | 1506 | up->su_type == SU_PORT_KBD) |
| 1507 | kbdms = true; | ||
| 1508 | |||
| 1509 | if (kbdms) { | ||
| 1506 | #ifdef CONFIG_SERIO | 1510 | #ifdef CONFIG_SERIO |
| 1507 | serio_unregister_port(&up->serio); | 1511 | serio_unregister_port(&up->serio); |
| 1508 | #endif | 1512 | #endif |
| 1509 | kfree(up); | 1513 | } else if (up->port.type != PORT_UNKNOWN) |
| 1510 | } else if (up->port.type != PORT_UNKNOWN) { | ||
| 1511 | uart_remove_one_port(&sunsu_reg, &up->port); | 1514 | uart_remove_one_port(&sunsu_reg, &up->port); |
| 1512 | } | ||
| 1513 | 1515 | ||
| 1514 | if (up->port.membase) | 1516 | if (up->port.membase) |
| 1515 | of_iounmap(&op->resource[0], up->port.membase, up->reg_size); | 1517 | of_iounmap(&op->resource[0], up->port.membase, up->reg_size); |
| 1516 | 1518 | ||
| 1519 | if (kbdms) | ||
| 1520 | kfree(up); | ||
| 1521 | |||
| 1517 | dev_set_drvdata(&op->dev, NULL); | 1522 | dev_set_drvdata(&op->dev, NULL); |
| 1518 | 1523 | ||
| 1519 | return 0; | 1524 | return 0; |
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c index d69eccf5f197..2aaa0f75c6cf 100644 --- a/drivers/usb/gadget/f_fs.c +++ b/drivers/usb/gadget/f_fs.c | |||
| @@ -136,7 +136,7 @@ struct ffs_data { | |||
| 136 | * handling setup requests immidiatelly user space may be so | 136 | * handling setup requests immidiatelly user space may be so |
| 137 | * slow that another setup will be sent to the gadget but this | 137 | * slow that another setup will be sent to the gadget but this |
| 138 | * time not to us but another function and then there could be | 138 | * time not to us but another function and then there could be |
| 139 | * a race. Is taht the case? Or maybe we can use cdev->req | 139 | * a race. Is that the case? Or maybe we can use cdev->req |
| 140 | * after all, maybe we just need some spinlock for that? */ | 140 | * after all, maybe we just need some spinlock for that? */ |
| 141 | struct usb_request *ep0req; /* P: mutex */ | 141 | struct usb_request *ep0req; /* P: mutex */ |
| 142 | struct completion ep0req_completion; /* P: mutex */ | 142 | struct completion ep0req_completion; /* P: mutex */ |
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c index 515cf1978d19..c4e17642d9c5 100644 --- a/drivers/video/aty/radeon_pm.c +++ b/drivers/video/aty/radeon_pm.c | |||
| @@ -2872,7 +2872,7 @@ void radeonfb_pm_init(struct radeonfb_info *rinfo, int dynclk, int ignore_devlis | |||
| 2872 | } | 2872 | } |
| 2873 | 2873 | ||
| 2874 | #if 0 | 2874 | #if 0 |
| 2875 | /* Power down TV DAC, taht saves a significant amount of power, | 2875 | /* Power down TV DAC, that saves a significant amount of power, |
| 2876 | * we'll have something better once we actually have some TVOut | 2876 | * we'll have something better once we actually have some TVOut |
| 2877 | * support | 2877 | * support |
| 2878 | */ | 2878 | */ |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 484e52bb40bb..2cb1a70214d7 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
| @@ -923,7 +923,7 @@ init_cifs(void) | |||
| 923 | goto out_unregister_filesystem; | 923 | goto out_unregister_filesystem; |
| 924 | #endif | 924 | #endif |
| 925 | #ifdef CONFIG_CIFS_DFS_UPCALL | 925 | #ifdef CONFIG_CIFS_DFS_UPCALL |
| 926 | rc = register_key_type(&key_type_dns_resolver); | 926 | rc = cifs_init_dns_resolver(); |
| 927 | if (rc) | 927 | if (rc) |
| 928 | goto out_unregister_key_type; | 928 | goto out_unregister_key_type; |
| 929 | #endif | 929 | #endif |
| @@ -935,7 +935,7 @@ init_cifs(void) | |||
| 935 | 935 | ||
| 936 | out_unregister_resolver_key: | 936 | out_unregister_resolver_key: |
| 937 | #ifdef CONFIG_CIFS_DFS_UPCALL | 937 | #ifdef CONFIG_CIFS_DFS_UPCALL |
| 938 | unregister_key_type(&key_type_dns_resolver); | 938 | cifs_exit_dns_resolver(); |
| 939 | out_unregister_key_type: | 939 | out_unregister_key_type: |
| 940 | #endif | 940 | #endif |
| 941 | #ifdef CONFIG_CIFS_UPCALL | 941 | #ifdef CONFIG_CIFS_UPCALL |
| @@ -961,7 +961,7 @@ exit_cifs(void) | |||
| 961 | cifs_proc_clean(); | 961 | cifs_proc_clean(); |
| 962 | #ifdef CONFIG_CIFS_DFS_UPCALL | 962 | #ifdef CONFIG_CIFS_DFS_UPCALL |
| 963 | cifs_dfs_release_automount_timer(); | 963 | cifs_dfs_release_automount_timer(); |
| 964 | unregister_key_type(&key_type_dns_resolver); | 964 | cifs_exit_dns_resolver(); |
| 965 | #endif | 965 | #endif |
| 966 | #ifdef CONFIG_CIFS_UPCALL | 966 | #ifdef CONFIG_CIFS_UPCALL |
| 967 | unregister_key_type(&cifs_spnego_key_type); | 967 | unregister_key_type(&cifs_spnego_key_type); |
diff --git a/fs/cifs/dns_resolve.c b/fs/cifs/dns_resolve.c index 4db2c5e7283f..49315cbf742d 100644 --- a/fs/cifs/dns_resolve.c +++ b/fs/cifs/dns_resolve.c | |||
| @@ -24,12 +24,16 @@ | |||
| 24 | */ | 24 | */ |
| 25 | 25 | ||
| 26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
| 27 | #include <linux/keyctl.h> | ||
| 28 | #include <linux/key-type.h> | ||
| 27 | #include <keys/user-type.h> | 29 | #include <keys/user-type.h> |
| 28 | #include "dns_resolve.h" | 30 | #include "dns_resolve.h" |
| 29 | #include "cifsglob.h" | 31 | #include "cifsglob.h" |
| 30 | #include "cifsproto.h" | 32 | #include "cifsproto.h" |
| 31 | #include "cifs_debug.h" | 33 | #include "cifs_debug.h" |
| 32 | 34 | ||
| 35 | static const struct cred *dns_resolver_cache; | ||
| 36 | |||
| 33 | /* Checks if supplied name is IP address | 37 | /* Checks if supplied name is IP address |
| 34 | * returns: | 38 | * returns: |
| 35 | * 1 - name is IP | 39 | * 1 - name is IP |
| @@ -94,6 +98,7 @@ struct key_type key_type_dns_resolver = { | |||
| 94 | int | 98 | int |
| 95 | dns_resolve_server_name_to_ip(const char *unc, char **ip_addr) | 99 | dns_resolve_server_name_to_ip(const char *unc, char **ip_addr) |
| 96 | { | 100 | { |
| 101 | const struct cred *saved_cred; | ||
| 97 | int rc = -EAGAIN; | 102 | int rc = -EAGAIN; |
| 98 | struct key *rkey = ERR_PTR(-EAGAIN); | 103 | struct key *rkey = ERR_PTR(-EAGAIN); |
| 99 | char *name; | 104 | char *name; |
| @@ -133,8 +138,15 @@ dns_resolve_server_name_to_ip(const char *unc, char **ip_addr) | |||
| 133 | goto skip_upcall; | 138 | goto skip_upcall; |
| 134 | } | 139 | } |
| 135 | 140 | ||
| 141 | saved_cred = override_creds(dns_resolver_cache); | ||
| 136 | rkey = request_key(&key_type_dns_resolver, name, ""); | 142 | rkey = request_key(&key_type_dns_resolver, name, ""); |
| 143 | revert_creds(saved_cred); | ||
| 137 | if (!IS_ERR(rkey)) { | 144 | if (!IS_ERR(rkey)) { |
| 145 | if (!(rkey->perm & KEY_USR_VIEW)) { | ||
| 146 | down_read(&rkey->sem); | ||
| 147 | rkey->perm |= KEY_USR_VIEW; | ||
| 148 | up_read(&rkey->sem); | ||
| 149 | } | ||
| 138 | len = rkey->type_data.x[0]; | 150 | len = rkey->type_data.x[0]; |
| 139 | data = rkey->payload.data; | 151 | data = rkey->payload.data; |
| 140 | } else { | 152 | } else { |
| @@ -165,4 +177,61 @@ out: | |||
| 165 | return rc; | 177 | return rc; |
| 166 | } | 178 | } |
| 167 | 179 | ||
| 180 | int __init cifs_init_dns_resolver(void) | ||
| 181 | { | ||
| 182 | struct cred *cred; | ||
| 183 | struct key *keyring; | ||
| 184 | int ret; | ||
| 185 | |||
| 186 | printk(KERN_NOTICE "Registering the %s key type\n", | ||
| 187 | key_type_dns_resolver.name); | ||
| 188 | |||
| 189 | /* create an override credential set with a special thread keyring in | ||
| 190 | * which DNS requests are cached | ||
| 191 | * | ||
| 192 | * this is used to prevent malicious redirections from being installed | ||
| 193 | * with add_key(). | ||
| 194 | */ | ||
| 195 | cred = prepare_kernel_cred(NULL); | ||
| 196 | if (!cred) | ||
| 197 | return -ENOMEM; | ||
| 198 | |||
| 199 | keyring = key_alloc(&key_type_keyring, ".dns_resolver", 0, 0, cred, | ||
| 200 | (KEY_POS_ALL & ~KEY_POS_SETATTR) | | ||
| 201 | KEY_USR_VIEW | KEY_USR_READ, | ||
| 202 | KEY_ALLOC_NOT_IN_QUOTA); | ||
| 203 | if (IS_ERR(keyring)) { | ||
| 204 | ret = PTR_ERR(keyring); | ||
| 205 | goto failed_put_cred; | ||
| 206 | } | ||
| 207 | |||
| 208 | ret = key_instantiate_and_link(keyring, NULL, 0, NULL, NULL); | ||
| 209 | if (ret < 0) | ||
| 210 | goto failed_put_key; | ||
| 211 | |||
| 212 | ret = register_key_type(&key_type_dns_resolver); | ||
| 213 | if (ret < 0) | ||
| 214 | goto failed_put_key; | ||
| 215 | |||
| 216 | /* instruct request_key() to use this special keyring as a cache for | ||
| 217 | * the results it looks up */ | ||
| 218 | cred->thread_keyring = keyring; | ||
| 219 | cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; | ||
| 220 | dns_resolver_cache = cred; | ||
| 221 | return 0; | ||
| 222 | |||
| 223 | failed_put_key: | ||
| 224 | key_put(keyring); | ||
| 225 | failed_put_cred: | ||
| 226 | put_cred(cred); | ||
| 227 | return ret; | ||
| 228 | } | ||
| 168 | 229 | ||
| 230 | void __exit cifs_exit_dns_resolver(void) | ||
| 231 | { | ||
| 232 | key_revoke(dns_resolver_cache->thread_keyring); | ||
| 233 | unregister_key_type(&key_type_dns_resolver); | ||
| 234 | put_cred(dns_resolver_cache); | ||
| 235 | printk(KERN_NOTICE "Unregistered %s key type\n", | ||
| 236 | key_type_dns_resolver.name); | ||
| 237 | } | ||
diff --git a/fs/cifs/dns_resolve.h b/fs/cifs/dns_resolve.h index 966e9288930b..26b9eaa9f5ee 100644 --- a/fs/cifs/dns_resolve.h +++ b/fs/cifs/dns_resolve.h | |||
| @@ -24,8 +24,8 @@ | |||
| 24 | #define _DNS_RESOLVE_H | 24 | #define _DNS_RESOLVE_H |
| 25 | 25 | ||
| 26 | #ifdef __KERNEL__ | 26 | #ifdef __KERNEL__ |
| 27 | #include <linux/key-type.h> | 27 | extern int __init cifs_init_dns_resolver(void); |
| 28 | extern struct key_type key_type_dns_resolver; | 28 | extern void __exit cifs_exit_dns_resolver(void); |
| 29 | extern int dns_resolve_server_name_to_ip(const char *unc, char **ip_addr); | 29 | extern int dns_resolve_server_name_to_ip(const char *unc, char **ip_addr); |
| 30 | #endif /* KERNEL */ | 30 | #endif /* KERNEL */ |
| 31 | 31 | ||
diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index a2d58c96f1b4..d258e261bdc7 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c | |||
| @@ -626,7 +626,7 @@ void jffs2_xattr_free_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *i | |||
| 626 | 626 | ||
| 627 | static int check_xattr_ref_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic) | 627 | static int check_xattr_ref_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic) |
| 628 | { | 628 | { |
| 629 | /* success of check_xattr_ref_inode() means taht inode (ic) dose not have | 629 | /* success of check_xattr_ref_inode() means that inode (ic) dose not have |
| 630 | * duplicate name/value pairs. If duplicate name/value pair would be found, | 630 | * duplicate name/value pairs. If duplicate name/value pair would be found, |
| 631 | * one will be removed. | 631 | * one will be removed. |
| 632 | */ | 632 | */ |
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index da565a48240e..a68ca8a11a53 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
| @@ -48,7 +48,7 @@ struct acpi_power_register { | |||
| 48 | u8 space_id; | 48 | u8 space_id; |
| 49 | u8 bit_width; | 49 | u8 bit_width; |
| 50 | u8 bit_offset; | 50 | u8 bit_offset; |
| 51 | u8 reserved; | 51 | u8 access_size; |
| 52 | u64 address; | 52 | u64 address; |
| 53 | } __attribute__ ((packed)); | 53 | } __attribute__ ((packed)); |
| 54 | 54 | ||
| @@ -63,6 +63,7 @@ struct acpi_processor_cx { | |||
| 63 | u32 power; | 63 | u32 power; |
| 64 | u32 usage; | 64 | u32 usage; |
| 65 | u64 time; | 65 | u64 time; |
| 66 | u8 bm_sts_skip; | ||
| 66 | char desc[ACPI_CX_DESC_LEN]; | 67 | char desc[ACPI_CX_DESC_LEN]; |
| 67 | }; | 68 | }; |
| 68 | 69 | ||
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h index 4496322e28dd..609e8ca5f534 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h | |||
| @@ -45,6 +45,7 @@ struct sysrq_key_op { | |||
| 45 | */ | 45 | */ |
| 46 | 46 | ||
| 47 | void handle_sysrq(int key, struct tty_struct *tty); | 47 | void handle_sysrq(int key, struct tty_struct *tty); |
| 48 | void __handle_sysrq(int key, struct tty_struct *tty, int check_mask); | ||
| 48 | int register_sysrq_key(int key, struct sysrq_key_op *op); | 49 | int register_sysrq_key(int key, struct sysrq_key_op *op); |
| 49 | int unregister_sysrq_key(int key, struct sysrq_key_op *op); | 50 | int unregister_sysrq_key(int key, struct sysrq_key_op *op); |
| 50 | struct sysrq_key_op *__sysrq_get_key_op(int key); | 51 | struct sysrq_key_op *__sysrq_get_key_op(int key); |
diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index fd882261225e..9696a5e2c437 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h | |||
| @@ -799,7 +799,7 @@ do { \ | |||
| 799 | X##_e -= (_FP_W_TYPE_SIZE - rsize); \ | 799 | X##_e -= (_FP_W_TYPE_SIZE - rsize); \ |
| 800 | X##_e = rsize - X##_e - 1; \ | 800 | X##_e = rsize - X##_e - 1; \ |
| 801 | \ | 801 | \ |
| 802 | if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs < X##_e) \ | 802 | if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs <= X##_e) \ |
| 803 | __FP_FRAC_SRS_1(ur_, (X##_e - _FP_WFRACBITS_##fs + 1), rsize);\ | 803 | __FP_FRAC_SRS_1(ur_, (X##_e - _FP_WFRACBITS_##fs + 1), rsize);\ |
| 804 | _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \ | 804 | _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \ |
| 805 | if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \ | 805 | if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \ |
diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index 5cb7cd1de10c..8bc5eeffec8a 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c | |||
| @@ -605,13 +605,13 @@ cpu_master_loop: | |||
| 605 | if (dbg_kdb_mode) { | 605 | if (dbg_kdb_mode) { |
| 606 | kgdb_connected = 1; | 606 | kgdb_connected = 1; |
| 607 | error = kdb_stub(ks); | 607 | error = kdb_stub(ks); |
| 608 | kgdb_connected = 0; | ||
| 608 | } else { | 609 | } else { |
| 609 | error = gdb_serial_stub(ks); | 610 | error = gdb_serial_stub(ks); |
| 610 | } | 611 | } |
| 611 | 612 | ||
| 612 | if (error == DBG_PASS_EVENT) { | 613 | if (error == DBG_PASS_EVENT) { |
| 613 | dbg_kdb_mode = !dbg_kdb_mode; | 614 | dbg_kdb_mode = !dbg_kdb_mode; |
| 614 | kgdb_connected = 0; | ||
| 615 | } else if (error == DBG_SWITCH_CPU_EVENT) { | 615 | } else if (error == DBG_SWITCH_CPU_EVENT) { |
| 616 | dbg_cpu_switch(cpu, dbg_switch_cpu); | 616 | dbg_cpu_switch(cpu, dbg_switch_cpu); |
| 617 | goto cpu_loop; | 617 | goto cpu_loop; |
diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c index 4b17b3269525..e8fd6868682d 100644 --- a/kernel/debug/gdbstub.c +++ b/kernel/debug/gdbstub.c | |||
| @@ -621,10 +621,8 @@ static void gdb_cmd_query(struct kgdb_state *ks) | |||
| 621 | switch (remcom_in_buffer[1]) { | 621 | switch (remcom_in_buffer[1]) { |
| 622 | case 's': | 622 | case 's': |
| 623 | case 'f': | 623 | case 'f': |
| 624 | if (memcmp(remcom_in_buffer + 2, "ThreadInfo", 10)) { | 624 | if (memcmp(remcom_in_buffer + 2, "ThreadInfo", 10)) |
| 625 | error_packet(remcom_out_buffer, -EINVAL); | ||
| 626 | break; | 625 | break; |
| 627 | } | ||
| 628 | 626 | ||
| 629 | i = 0; | 627 | i = 0; |
| 630 | remcom_out_buffer[0] = 'm'; | 628 | remcom_out_buffer[0] = 'm'; |
| @@ -665,10 +663,9 @@ static void gdb_cmd_query(struct kgdb_state *ks) | |||
| 665 | pack_threadid(remcom_out_buffer + 2, thref); | 663 | pack_threadid(remcom_out_buffer + 2, thref); |
| 666 | break; | 664 | break; |
| 667 | case 'T': | 665 | case 'T': |
| 668 | if (memcmp(remcom_in_buffer + 1, "ThreadExtraInfo,", 16)) { | 666 | if (memcmp(remcom_in_buffer + 1, "ThreadExtraInfo,", 16)) |
| 669 | error_packet(remcom_out_buffer, -EINVAL); | ||
| 670 | break; | 667 | break; |
| 671 | } | 668 | |
| 672 | ks->threadid = 0; | 669 | ks->threadid = 0; |
| 673 | ptr = remcom_in_buffer + 17; | 670 | ptr = remcom_in_buffer + 17; |
| 674 | kgdb_hex2long(&ptr, &ks->threadid); | 671 | kgdb_hex2long(&ptr, &ks->threadid); |
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 184cd8209c36..ebe4a287419e 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c | |||
| @@ -1820,9 +1820,8 @@ static int kdb_sr(int argc, const char **argv) | |||
| 1820 | { | 1820 | { |
| 1821 | if (argc != 1) | 1821 | if (argc != 1) |
| 1822 | return KDB_ARGCOUNT; | 1822 | return KDB_ARGCOUNT; |
| 1823 | sysrq_toggle_support(1); | ||
| 1824 | kdb_trap_printk++; | 1823 | kdb_trap_printk++; |
| 1825 | handle_sysrq(*argv[1], NULL); | 1824 | __handle_sysrq(*argv[1], NULL, 0); |
| 1826 | kdb_trap_printk--; | 1825 | kdb_trap_printk--; |
| 1827 | 1826 | ||
| 1828 | return 0; | 1827 | return 0; |
| @@ -1883,6 +1882,7 @@ static int kdb_lsmod(int argc, const char **argv) | |||
| 1883 | kdb_printf(" (Loading)"); | 1882 | kdb_printf(" (Loading)"); |
| 1884 | else | 1883 | else |
| 1885 | kdb_printf(" (Live)"); | 1884 | kdb_printf(" (Live)"); |
| 1885 | kdb_printf(" 0x%p", mod->module_core); | ||
| 1886 | 1886 | ||
| 1887 | #ifdef CONFIG_MODULE_UNLOAD | 1887 | #ifdef CONFIG_MODULE_UNLOAD |
| 1888 | { | 1888 | { |
| @@ -2291,6 +2291,9 @@ static int kdb_ll(int argc, const char **argv) | |||
| 2291 | while (va) { | 2291 | while (va) { |
| 2292 | char buf[80]; | 2292 | char buf[80]; |
| 2293 | 2293 | ||
| 2294 | if (KDB_FLAG(CMD_INTERRUPT)) | ||
| 2295 | return 0; | ||
| 2296 | |||
| 2294 | sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va); | 2297 | sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va); |
| 2295 | diag = kdb_parse(buf); | 2298 | diag = kdb_parse(buf); |
| 2296 | if (diag) | 2299 | if (diag) |
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c index 73affb8624fa..8dc47f1d0001 100644 --- a/net/sunrpc/auth.c +++ b/net/sunrpc/auth.c | |||
| @@ -267,7 +267,7 @@ rpcauth_prune_expired(struct list_head *free, int nr_to_scan) | |||
| 267 | * Run memory cache shrinker. | 267 | * Run memory cache shrinker. |
| 268 | */ | 268 | */ |
| 269 | static int | 269 | static int |
| 270 | rpcauth_cache_shrinker(int nr_to_scan, gfp_t gfp_mask) | 270 | rpcauth_cache_shrinker(struct shrinker *shrink, int nr_to_scan, gfp_t gfp_mask) |
| 271 | { | 271 | { |
| 272 | LIST_HEAD(free); | 272 | LIST_HEAD(free); |
| 273 | int res; | 273 | int res; |
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 31ac5538fe7e..5da30eb6ad00 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig | |||
| @@ -83,8 +83,8 @@ config SND_SOC_ALL_CODECS | |||
| 83 | 83 | ||
| 84 | config SND_SOC_WM_HUBS | 84 | config SND_SOC_WM_HUBS |
| 85 | tristate | 85 | tristate |
| 86 | default y if SND_SOC_WM8993=y | 86 | default y if SND_SOC_WM8993=y || SND_SOC_WM8994=y |
| 87 | default m if SND_SOC_WM8993=m | 87 | default m if SND_SOC_WM8993=m || SND_SOC_WM8994=m |
| 88 | 88 | ||
| 89 | config SND_SOC_AC97_CODEC | 89 | config SND_SOC_AC97_CODEC |
| 90 | tristate | 90 | tristate |
diff --git a/sound/soc/codecs/wm8727.c b/sound/soc/codecs/wm8727.c index 1072621e93fd..9d1df2628136 100644 --- a/sound/soc/codecs/wm8727.c +++ b/sound/soc/codecs/wm8727.c | |||
| @@ -127,6 +127,8 @@ static __devinit int wm8727_platform_probe(struct platform_device *pdev) | |||
| 127 | goto err_codec; | 127 | goto err_codec; |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | return 0; | ||
| 131 | |||
| 130 | err_codec: | 132 | err_codec: |
| 131 | snd_soc_unregister_codec(codec); | 133 | snd_soc_unregister_codec(codec); |
| 132 | err: | 134 | err: |
diff --git a/sound/soc/codecs/wm8776.c b/sound/soc/codecs/wm8776.c index 7e4a627b4c7e..4e212ed62ea6 100644 --- a/sound/soc/codecs/wm8776.c +++ b/sound/soc/codecs/wm8776.c | |||
| @@ -94,7 +94,6 @@ SOC_DAPM_SINGLE("Bypass Switch", WM8776_OUTMUX, 2, 1, 0), | |||
| 94 | 94 | ||
| 95 | static const struct snd_soc_dapm_widget wm8776_dapm_widgets[] = { | 95 | static const struct snd_soc_dapm_widget wm8776_dapm_widgets[] = { |
| 96 | SND_SOC_DAPM_INPUT("AUX"), | 96 | SND_SOC_DAPM_INPUT("AUX"), |
| 97 | SND_SOC_DAPM_INPUT("AUX"), | ||
| 98 | 97 | ||
| 99 | SND_SOC_DAPM_INPUT("AIN1"), | 98 | SND_SOC_DAPM_INPUT("AIN1"), |
| 100 | SND_SOC_DAPM_INPUT("AIN2"), | 99 | SND_SOC_DAPM_INPUT("AIN2"), |
diff --git a/sound/soc/codecs/wm8988.c b/sound/soc/codecs/wm8988.c index 0417dae32e6f..19ad590ca0b3 100644 --- a/sound/soc/codecs/wm8988.c +++ b/sound/soc/codecs/wm8988.c | |||
| @@ -885,7 +885,6 @@ static int wm8988_register(struct wm8988_priv *wm8988, | |||
| 885 | ret = snd_soc_register_dai(&wm8988_dai); | 885 | ret = snd_soc_register_dai(&wm8988_dai); |
| 886 | if (ret != 0) { | 886 | if (ret != 0) { |
| 887 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); | 887 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); |
| 888 | snd_soc_unregister_codec(codec); | ||
| 889 | goto err_codec; | 888 | goto err_codec; |
| 890 | } | 889 | } |
| 891 | 890 | ||
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c index 3396a0db06ba..ec4acac49ebd 100644 --- a/sound/soc/sh/fsi.c +++ b/sound/soc/sh/fsi.c | |||
| @@ -683,20 +683,15 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream, | |||
| 683 | 683 | ||
| 684 | /* clock inversion (CKG2) */ | 684 | /* clock inversion (CKG2) */ |
| 685 | data = 0; | 685 | data = 0; |
| 686 | switch (SH_FSI_INVERSION_MASK & flags) { | 686 | if (SH_FSI_LRM_INV & flags) |
| 687 | case SH_FSI_LRM_INV: | 687 | data |= 1 << 12; |
| 688 | data = 1 << 12; | 688 | if (SH_FSI_BRM_INV & flags) |
| 689 | break; | 689 | data |= 1 << 8; |
| 690 | case SH_FSI_BRM_INV: | 690 | if (SH_FSI_LRS_INV & flags) |
| 691 | data = 1 << 8; | 691 | data |= 1 << 4; |
| 692 | break; | 692 | if (SH_FSI_BRS_INV & flags) |
| 693 | case SH_FSI_LRS_INV: | 693 | data |= 1 << 0; |
| 694 | data = 1 << 4; | 694 | |
| 695 | break; | ||
| 696 | case SH_FSI_BRS_INV: | ||
| 697 | data = 1 << 0; | ||
| 698 | break; | ||
| 699 | } | ||
| 700 | fsi_reg_write(fsi, CKG2, data); | 695 | fsi_reg_write(fsi, CKG2, data); |
| 701 | 696 | ||
| 702 | /* do fmt, di fmt */ | 697 | /* do fmt, di fmt */ |
| @@ -726,15 +721,15 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream, | |||
| 726 | break; | 721 | break; |
| 727 | case SH_FSI_FMT_TDM: | 722 | case SH_FSI_FMT_TDM: |
| 728 | msg = "TDM"; | 723 | msg = "TDM"; |
| 729 | data = CR_FMT(CR_TDM) | (fsi->chan - 1); | ||
| 730 | fsi->chan = is_play ? | 724 | fsi->chan = is_play ? |
| 731 | SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags); | 725 | SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags); |
| 726 | data = CR_FMT(CR_TDM) | (fsi->chan - 1); | ||
| 732 | break; | 727 | break; |
| 733 | case SH_FSI_FMT_TDM_DELAY: | 728 | case SH_FSI_FMT_TDM_DELAY: |
| 734 | msg = "TDM Delay"; | 729 | msg = "TDM Delay"; |
| 735 | data = CR_FMT(CR_TDM_D) | (fsi->chan - 1); | ||
| 736 | fsi->chan = is_play ? | 730 | fsi->chan = is_play ? |
| 737 | SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags); | 731 | SH_FSI_GET_CH_O(flags) : SH_FSI_GET_CH_I(flags); |
| 732 | data = CR_FMT(CR_TDM_D) | (fsi->chan - 1); | ||
| 738 | break; | 733 | break; |
| 739 | default: | 734 | default: |
| 740 | dev_err(dai->dev, "unknown format.\n"); | 735 | dev_err(dai->dev, "unknown format.\n"); |
diff --git a/tools/perf/arch/sparc/Makefile b/tools/perf/arch/sparc/Makefile new file mode 100644 index 000000000000..15130b50dfe3 --- /dev/null +++ b/tools/perf/arch/sparc/Makefile | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | ifndef NO_DWARF | ||
| 2 | PERF_HAVE_DWARF_REGS := 1 | ||
| 3 | LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/dwarf-regs.o | ||
| 4 | endif | ||
diff --git a/tools/perf/arch/sparc/util/dwarf-regs.c b/tools/perf/arch/sparc/util/dwarf-regs.c new file mode 100644 index 000000000000..0ab88483720c --- /dev/null +++ b/tools/perf/arch/sparc/util/dwarf-regs.c | |||
| @@ -0,0 +1,43 @@ | |||
| 1 | /* | ||
| 2 | * Mapping of DWARF debug register numbers into register names. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 David S. Miller <davem@davemloft.net> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License | ||
| 8 | * as published by the Free Software Foundation; either version | ||
| 9 | * 2 of the License, or (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #include <libio.h> | ||
| 13 | #include <dwarf-regs.h> | ||
| 14 | |||
| 15 | #define SPARC_MAX_REGS 96 | ||
| 16 | |||
| 17 | const char *sparc_regs_table[SPARC_MAX_REGS] = { | ||
| 18 | "%g0", "%g1", "%g2", "%g3", "%g4", "%g5", "%g6", "%g7", | ||
| 19 | "%o0", "%o1", "%o2", "%o3", "%o4", "%o5", "%sp", "%o7", | ||
| 20 | "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7", | ||
| 21 | "%i0", "%i1", "%i2", "%i3", "%i4", "%i5", "%fp", "%i7", | ||
| 22 | "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7", | ||
| 23 | "%f8", "%f9", "%f10", "%f11", "%f12", "%f13", "%f14", "%f15", | ||
| 24 | "%f16", "%f17", "%f18", "%f19", "%f20", "%f21", "%f22", "%f23", | ||
| 25 | "%f24", "%f25", "%f26", "%f27", "%f28", "%f29", "%f30", "%f31", | ||
| 26 | "%f32", "%f33", "%f34", "%f35", "%f36", "%f37", "%f38", "%f39", | ||
| 27 | "%f40", "%f41", "%f42", "%f43", "%f44", "%f45", "%f46", "%f47", | ||
| 28 | "%f48", "%f49", "%f50", "%f51", "%f52", "%f53", "%f54", "%f55", | ||
| 29 | "%f56", "%f57", "%f58", "%f59", "%f60", "%f61", "%f62", "%f63", | ||
| 30 | }; | ||
| 31 | |||
| 32 | /** | ||
| 33 | * get_arch_regstr() - lookup register name from it's DWARF register number | ||
| 34 | * @n: the DWARF register number | ||
| 35 | * | ||
| 36 | * get_arch_regstr() returns the name of the register in struct | ||
| 37 | * regdwarfnum_table from it's DWARF register number. If the register is not | ||
| 38 | * found in the table, this returns NULL; | ||
| 39 | */ | ||
| 40 | const char *get_arch_regstr(unsigned int n) | ||
| 41 | { | ||
| 42 | return (n <= SPARC_MAX_REGS) ? sparc_regs_table[n] : NULL; | ||
| 43 | } | ||
