diff options
30 files changed, 449 insertions, 227 deletions
diff --git a/Documentation/HOWTO b/Documentation/HOWTO index d6f3dd1a3464..8d51c148f721 100644 --- a/Documentation/HOWTO +++ b/Documentation/HOWTO | |||
@@ -395,6 +395,26 @@ bugme-janitor mailing list (every change in the bugzilla is mailed here) | |||
395 | 395 | ||
396 | 396 | ||
397 | 397 | ||
398 | Managing bug reports | ||
399 | -------------------- | ||
400 | |||
401 | One of the best ways to put into practice your hacking skills is by fixing | ||
402 | bugs reported by other people. Not only you will help to make the kernel | ||
403 | more stable, you'll learn to fix real world problems and you will improve | ||
404 | your skills, and other developers will be aware of your presence. Fixing | ||
405 | bugs is one of the best ways to get merits among other developers, because | ||
406 | not many people like wasting time fixing other people's bugs. | ||
407 | |||
408 | To work in the already reported bug reports, go to http://bugzilla.kernel.org. | ||
409 | If you want to be advised of the future bug reports, you can subscribe to the | ||
410 | bugme-new mailing list (only new bug reports are mailed here) or to the | ||
411 | bugme-janitor mailing list (every change in the bugzilla is mailed here) | ||
412 | |||
413 | http://lists.osdl.org/mailman/listinfo/bugme-new | ||
414 | http://lists.osdl.org/mailman/listinfo/bugme-janitors | ||
415 | |||
416 | |||
417 | |||
398 | Mailing lists | 418 | Mailing lists |
399 | ------------- | 419 | ------------- |
400 | 420 | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 24f3c63b3017..1ac3c74646e3 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -255,7 +255,7 @@ Who: Stephen Hemminger <shemminger@osdl.org> | |||
255 | 255 | ||
256 | 256 | ||
257 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment | 257 | What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment |
258 | When: Oktober 2008 | 258 | When: October 2008 |
259 | Why: The stacking of class devices makes these values misleading and | 259 | Why: The stacking of class devices makes these values misleading and |
260 | inconsistent. | 260 | inconsistent. |
261 | Class devices should not carry any of these properties, and bus | 261 | Class devices should not carry any of these properties, and bus |
diff --git a/Documentation/s390/CommonIO b/Documentation/s390/CommonIO index 59d1166d41ee..d684a6ac69a8 100644 --- a/Documentation/s390/CommonIO +++ b/Documentation/s390/CommonIO | |||
@@ -66,7 +66,7 @@ Command line parameters | |||
66 | 66 | ||
67 | When a device is un-ignored, device recognition and sensing is performed and | 67 | When a device is un-ignored, device recognition and sensing is performed and |
68 | the device driver will be notified if possible, so the device will become | 68 | the device driver will be notified if possible, so the device will become |
69 | available to the system. | 69 | available to the system. Note that un-ignoring is performed asynchronously. |
70 | 70 | ||
71 | You can also add ranges of devices to be ignored by piping to | 71 | You can also add ranges of devices to be ignored by piping to |
72 | /proc/cio_ignore; "add <device range>, <device range>, ..." will ignore the | 72 | /proc/cio_ignore; "add <device range>, <device range>, ..." will ignore the |
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt index d80e5733827d..32a96cc39215 100644 --- a/Documentation/s390/cds.txt +++ b/Documentation/s390/cds.txt | |||
@@ -174,14 +174,10 @@ read_dev_chars() - Read Device Characteristics | |||
174 | 174 | ||
175 | This routine returns the characteristics for the device specified. | 175 | This routine returns the characteristics for the device specified. |
176 | 176 | ||
177 | The function is meant to be called with an irq handler in place; that is, | 177 | The function is meant to be called with the device already enabled; that is, |
178 | at earliest during set_online() processing. | 178 | at earliest during set_online() processing. |
179 | 179 | ||
180 | While the request is processed synchronously, the device interrupt | 180 | The ccw_device must not be locked prior to calling read_dev_chars(). |
181 | handler is called for final ending status. In case of error situations the | ||
182 | interrupt handler may recover appropriately. The device irq handler can | ||
183 | recognize the corresponding interrupts by the interruption parameter be | ||
184 | 0x00524443. The ccw_device must not be locked prior to calling read_dev_chars(). | ||
185 | 181 | ||
186 | The function may be called enabled or disabled. | 182 | The function may be called enabled or disabled. |
187 | 183 | ||
@@ -410,26 +406,7 @@ individual flag meanings. | |||
410 | 406 | ||
411 | Usage Notes : | 407 | Usage Notes : |
412 | 408 | ||
413 | Prior to call ccw_device_start() the device driver must assure disabled state, | 409 | ccw_device_start() must be called disabled and with the ccw device lock held. |
414 | i.e. the I/O mask value in the PSW must be disabled. This can be accomplished | ||
415 | by calling local_save_flags( flags). The current PSW flags are preserved and | ||
416 | can be restored by local_irq_restore( flags) at a later time. | ||
417 | |||
418 | If the device driver violates this rule while running in a uni-processor | ||
419 | environment an interrupt might be presented prior to the ccw_device_start() | ||
420 | routine returning to the device driver main path. In this case we will end in a | ||
421 | deadlock situation as the interrupt handler will try to obtain the irq | ||
422 | lock the device driver still owns (see below) ! | ||
423 | |||
424 | The driver must assure to hold the device specific lock. This can be | ||
425 | accomplished by | ||
426 | |||
427 | (i) spin_lock(get_ccwdev_lock(cdev)), or | ||
428 | (ii) spin_lock_irqsave(get_ccwdev_lock(cdev), flags) | ||
429 | |||
430 | Option (i) should be used if the calling routine is running disabled for | ||
431 | I/O interrupts (see above) already. Option (ii) obtains the device gate und | ||
432 | puts the CPU into I/O disabled state by preserving the current PSW flags. | ||
433 | 410 | ||
434 | The device driver is allowed to issue the next ccw_device_start() call from | 411 | The device driver is allowed to issue the next ccw_device_start() call from |
435 | within its interrupt handler already. It is not required to schedule a | 412 | within its interrupt handler already. It is not required to schedule a |
@@ -488,7 +465,7 @@ int ccw_device_resume(struct ccw_device *cdev); | |||
488 | 465 | ||
489 | cdev - ccw_device the resume operation is requested for | 466 | cdev - ccw_device the resume operation is requested for |
490 | 467 | ||
491 | The resume_IO() function returns: | 468 | The ccw_device_resume() function returns: |
492 | 469 | ||
493 | 0 - suspended channel program is resumed | 470 | 0 - suspended channel program is resumed |
494 | -EBUSY - status pending | 471 | -EBUSY - status pending |
@@ -507,6 +484,8 @@ a long-running channel program or the device might require to initially issue | |||
507 | a halt subchannel (HSCH) I/O command. For those purposes the ccw_device_halt() | 484 | a halt subchannel (HSCH) I/O command. For those purposes the ccw_device_halt() |
508 | command is provided. | 485 | command is provided. |
509 | 486 | ||
487 | ccw_device_halt() must be called disabled and with the ccw device lock held. | ||
488 | |||
510 | int ccw_device_halt(struct ccw_device *cdev, | 489 | int ccw_device_halt(struct ccw_device *cdev, |
511 | unsigned long intparm); | 490 | unsigned long intparm); |
512 | 491 | ||
@@ -517,7 +496,7 @@ intparm : interruption parameter; value is only used if no I/O | |||
517 | 496 | ||
518 | The ccw_device_halt() function returns : | 497 | The ccw_device_halt() function returns : |
519 | 498 | ||
520 | 0 - successful completion or request successfully initiated | 499 | 0 - request successfully initiated |
521 | -EBUSY - the device is currently busy, or status pending. | 500 | -EBUSY - the device is currently busy, or status pending. |
522 | -ENODEV - cdev invalid. | 501 | -ENODEV - cdev invalid. |
523 | -EINVAL - The device is not operational or the ccw device is not online. | 502 | -EINVAL - The device is not operational or the ccw device is not online. |
@@ -533,6 +512,23 @@ can then perform an appropriate action. Prior to interrupt of an outstanding | |||
533 | read to a network device (with or without PCI flag) a ccw_device_halt() | 512 | read to a network device (with or without PCI flag) a ccw_device_halt() |
534 | is required to end the pending operation. | 513 | is required to end the pending operation. |
535 | 514 | ||
515 | ccw_device_clear() - Terminage I/O Request Processing | ||
516 | |||
517 | In order to terminate all I/O processing at the subchannel, the clear subchannel | ||
518 | (CSCH) command is used. It can be issued via ccw_device_clear(). | ||
519 | |||
520 | ccw_device_clear() must be called disabled and with the ccw device lock held. | ||
521 | |||
522 | int ccw_device_clear(struct ccw_device *cdev, unsigned long intparm); | ||
523 | |||
524 | cdev: ccw_device the clear operation is requested for | ||
525 | intparm: interruption parameter (see ccw_device_halt()) | ||
526 | |||
527 | The ccw_device_clear() function returns: | ||
528 | |||
529 | 0 - request successfully initiated | ||
530 | -ENODEV - cdev invalid | ||
531 | -EINVAL - The device is not operational or the ccw device is not online. | ||
536 | 532 | ||
537 | Miscellaneous Support Routines | 533 | Miscellaneous Support Routines |
538 | 534 | ||
diff --git a/Documentation/s390/driver-model.txt b/Documentation/s390/driver-model.txt index 62c082387aea..77bf450ec39b 100644 --- a/Documentation/s390/driver-model.txt +++ b/Documentation/s390/driver-model.txt | |||
@@ -239,6 +239,9 @@ status - Can be 'online' or 'offline'. | |||
239 | 239 | ||
240 | type - The physical type of the channel path. | 240 | type - The physical type of the channel path. |
241 | 241 | ||
242 | shared - Whether the channel path is shared. | ||
243 | |||
244 | cmg - The channel measurement group. | ||
242 | 245 | ||
243 | 3. System devices | 246 | 3. System devices |
244 | ----------------- | 247 | ----------------- |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index 0f14a82b856e..64e951de4e57 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
@@ -1,8 +1,9 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.17-rc3 | 3 | # Linux kernel version: 2.6.19-rc1 |
4 | # Thu Apr 27 11:48:23 2006 | 4 | # Mon Oct 9 10:53:59 2006 |
5 | # | 5 | # |
6 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
6 | 7 | ||
7 | # | 8 | # |
8 | # Code maturity level options | 9 | # Code maturity level options |
@@ -18,16 +19,22 @@ CONFIG_LOCALVERSION="" | |||
18 | # CONFIG_LOCALVERSION_AUTO is not set | 19 | # CONFIG_LOCALVERSION_AUTO is not set |
19 | CONFIG_SWAP=y | 20 | CONFIG_SWAP=y |
20 | CONFIG_SYSVIPC=y | 21 | CONFIG_SYSVIPC=y |
22 | # CONFIG_IPC_NS is not set | ||
21 | CONFIG_POSIX_MQUEUE=y | 23 | CONFIG_POSIX_MQUEUE=y |
22 | # CONFIG_BSD_PROCESS_ACCT is not set | 24 | # CONFIG_BSD_PROCESS_ACCT is not set |
23 | CONFIG_SYSCTL=y | 25 | CONFIG_TASKSTATS=y |
26 | # CONFIG_TASK_DELAY_ACCT is not set | ||
27 | # CONFIG_UTS_NS is not set | ||
24 | # CONFIG_AUDIT is not set | 28 | # CONFIG_AUDIT is not set |
25 | # CONFIG_IKCONFIG is not set | 29 | # CONFIG_IKCONFIG is not set |
26 | CONFIG_CPUSETS=y | 30 | CONFIG_CPUSETS=y |
27 | CONFIG_RELAY=y | 31 | CONFIG_RELAY=y |
28 | CONFIG_INITRAMFS_SOURCE="" | 32 | CONFIG_INITRAMFS_SOURCE="" |
29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 33 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
34 | CONFIG_TASK_XACCT=y | ||
35 | CONFIG_SYSCTL=y | ||
30 | # CONFIG_EMBEDDED is not set | 36 | # CONFIG_EMBEDDED is not set |
37 | # CONFIG_SYSCTL_SYSCALL is not set | ||
31 | CONFIG_KALLSYMS=y | 38 | CONFIG_KALLSYMS=y |
32 | CONFIG_KALLSYMS_ALL=y | 39 | CONFIG_KALLSYMS_ALL=y |
33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -40,6 +47,8 @@ CONFIG_FUTEX=y | |||
40 | CONFIG_EPOLL=y | 47 | CONFIG_EPOLL=y |
41 | CONFIG_SHMEM=y | 48 | CONFIG_SHMEM=y |
42 | CONFIG_SLAB=y | 49 | CONFIG_SLAB=y |
50 | CONFIG_VM_EVENT_COUNTERS=y | ||
51 | CONFIG_RT_MUTEXES=y | ||
43 | # CONFIG_TINY_SHMEM is not set | 52 | # CONFIG_TINY_SHMEM is not set |
44 | CONFIG_BASE_SMALL=0 | 53 | CONFIG_BASE_SMALL=0 |
45 | # CONFIG_SLOB is not set | 54 | # CONFIG_SLOB is not set |
@@ -58,6 +67,7 @@ CONFIG_STOP_MACHINE=y | |||
58 | # | 67 | # |
59 | # Block layer | 68 | # Block layer |
60 | # | 69 | # |
70 | CONFIG_BLOCK=y | ||
61 | # CONFIG_BLK_DEV_IO_TRACE is not set | 71 | # CONFIG_BLK_DEV_IO_TRACE is not set |
62 | 72 | ||
63 | # | 73 | # |
@@ -89,7 +99,7 @@ CONFIG_EFI=y | |||
89 | CONFIG_GENERIC_IOMAP=y | 99 | CONFIG_GENERIC_IOMAP=y |
90 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 100 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
91 | CONFIG_IA64_UNCACHED_ALLOCATOR=y | 101 | CONFIG_IA64_UNCACHED_ALLOCATOR=y |
92 | CONFIG_DMA_IS_DMA32=y | 102 | CONFIG_AUDIT_ARCH=y |
93 | # CONFIG_IA64_GENERIC is not set | 103 | # CONFIG_IA64_GENERIC is not set |
94 | # CONFIG_IA64_DIG is not set | 104 | # CONFIG_IA64_DIG is not set |
95 | # CONFIG_IA64_HP_ZX1 is not set | 105 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -116,6 +126,7 @@ CONFIG_FORCE_MAX_ZONEORDER=17 | |||
116 | CONFIG_SMP=y | 126 | CONFIG_SMP=y |
117 | CONFIG_NR_CPUS=1024 | 127 | CONFIG_NR_CPUS=1024 |
118 | # CONFIG_HOTPLUG_CPU is not set | 128 | # CONFIG_HOTPLUG_CPU is not set |
129 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
119 | CONFIG_SCHED_SMT=y | 130 | CONFIG_SCHED_SMT=y |
120 | CONFIG_PREEMPT=y | 131 | CONFIG_PREEMPT=y |
121 | CONFIG_SELECT_MEMORY_MODEL=y | 132 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -128,6 +139,7 @@ CONFIG_NEED_MULTIPLE_NODES=y | |||
128 | # CONFIG_SPARSEMEM_STATIC is not set | 139 | # CONFIG_SPARSEMEM_STATIC is not set |
129 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 140 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
130 | CONFIG_MIGRATION=y | 141 | CONFIG_MIGRATION=y |
142 | CONFIG_RESOURCES_64BIT=y | ||
131 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 143 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
132 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | 144 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y |
133 | CONFIG_ARCH_FLATMEM_ENABLE=y | 145 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -135,15 +147,24 @@ CONFIG_ARCH_SPARSEMEM_ENABLE=y | |||
135 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y | 147 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y |
136 | CONFIG_NUMA=y | 148 | CONFIG_NUMA=y |
137 | CONFIG_NODES_SHIFT=10 | 149 | CONFIG_NODES_SHIFT=10 |
150 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
138 | CONFIG_VIRTUAL_MEM_MAP=y | 151 | CONFIG_VIRTUAL_MEM_MAP=y |
139 | CONFIG_HOLES_IN_ZONE=y | 152 | CONFIG_HOLES_IN_ZONE=y |
140 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 153 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
154 | CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y | ||
141 | CONFIG_IA32_SUPPORT=y | 155 | CONFIG_IA32_SUPPORT=y |
142 | CONFIG_COMPAT=y | 156 | CONFIG_COMPAT=y |
143 | CONFIG_IA64_MCA_RECOVERY=y | 157 | CONFIG_IA64_MCA_RECOVERY=y |
144 | CONFIG_PERFMON=y | 158 | CONFIG_PERFMON=y |
145 | CONFIG_IA64_PALINFO=y | 159 | CONFIG_IA64_PALINFO=y |
146 | CONFIG_SGI_SN=y | 160 | CONFIG_SGI_SN=y |
161 | # CONFIG_IA64_ESI is not set | ||
162 | |||
163 | # | ||
164 | # SN Devices | ||
165 | # | ||
166 | CONFIG_SGI_IOC4=y | ||
167 | CONFIG_SGI_IOC3=y | ||
147 | 168 | ||
148 | # | 169 | # |
149 | # Firmware Drivers | 170 | # Firmware Drivers |
@@ -159,6 +180,7 @@ CONFIG_BINFMT_ELF=y | |||
159 | CONFIG_PM=y | 180 | CONFIG_PM=y |
160 | # CONFIG_PM_LEGACY is not set | 181 | # CONFIG_PM_LEGACY is not set |
161 | # CONFIG_PM_DEBUG is not set | 182 | # CONFIG_PM_DEBUG is not set |
183 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
162 | 184 | ||
163 | # | 185 | # |
164 | # ACPI (Advanced Configuration and Power Interface) Support | 186 | # ACPI (Advanced Configuration and Power Interface) Support |
@@ -166,6 +188,7 @@ CONFIG_PM=y | |||
166 | CONFIG_ACPI=y | 188 | CONFIG_ACPI=y |
167 | # CONFIG_ACPI_BUTTON is not set | 189 | # CONFIG_ACPI_BUTTON is not set |
168 | # CONFIG_ACPI_FAN is not set | 190 | # CONFIG_ACPI_FAN is not set |
191 | # CONFIG_ACPI_DOCK is not set | ||
169 | # CONFIG_ACPI_PROCESSOR is not set | 192 | # CONFIG_ACPI_PROCESSOR is not set |
170 | CONFIG_ACPI_NUMA=y | 193 | CONFIG_ACPI_NUMA=y |
171 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 194 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
@@ -185,7 +208,12 @@ CONFIG_ACPI_SYSTEM=y | |||
185 | # | 208 | # |
186 | CONFIG_PCI=y | 209 | CONFIG_PCI=y |
187 | CONFIG_PCI_DOMAINS=y | 210 | CONFIG_PCI_DOMAINS=y |
211 | CONFIG_PCIEPORTBUS=y | ||
212 | CONFIG_HOTPLUG_PCI_PCIE=y | ||
213 | # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set | ||
214 | CONFIG_PCIEAER=y | ||
188 | # CONFIG_PCI_MSI is not set | 215 | # CONFIG_PCI_MSI is not set |
216 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | ||
189 | # CONFIG_PCI_DEBUG is not set | 217 | # CONFIG_PCI_DEBUG is not set |
190 | 218 | ||
191 | # | 219 | # |
@@ -215,6 +243,9 @@ CONFIG_NET=y | |||
215 | CONFIG_PACKET=y | 243 | CONFIG_PACKET=y |
216 | CONFIG_PACKET_MMAP=y | 244 | CONFIG_PACKET_MMAP=y |
217 | CONFIG_UNIX=y | 245 | CONFIG_UNIX=y |
246 | CONFIG_XFRM=y | ||
247 | # CONFIG_XFRM_USER is not set | ||
248 | # CONFIG_XFRM_SUB_POLICY is not set | ||
218 | # CONFIG_NET_KEY is not set | 249 | # CONFIG_NET_KEY is not set |
219 | CONFIG_INET=y | 250 | CONFIG_INET=y |
220 | CONFIG_IP_MULTICAST=y | 251 | CONFIG_IP_MULTICAST=y |
@@ -231,19 +262,31 @@ CONFIG_SYN_COOKIES=y | |||
231 | # CONFIG_INET_IPCOMP is not set | 262 | # CONFIG_INET_IPCOMP is not set |
232 | # CONFIG_INET_XFRM_TUNNEL is not set | 263 | # CONFIG_INET_XFRM_TUNNEL is not set |
233 | # CONFIG_INET_TUNNEL is not set | 264 | # CONFIG_INET_TUNNEL is not set |
265 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
266 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
267 | CONFIG_INET_XFRM_MODE_BEET=y | ||
234 | CONFIG_INET_DIAG=m | 268 | CONFIG_INET_DIAG=m |
235 | CONFIG_INET_TCP_DIAG=m | 269 | CONFIG_INET_TCP_DIAG=m |
236 | # CONFIG_TCP_CONG_ADVANCED is not set | 270 | # CONFIG_TCP_CONG_ADVANCED is not set |
237 | CONFIG_TCP_CONG_BIC=y | 271 | CONFIG_TCP_CONG_CUBIC=y |
272 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
238 | CONFIG_IPV6=m | 273 | CONFIG_IPV6=m |
239 | # CONFIG_IPV6_PRIVACY is not set | 274 | # CONFIG_IPV6_PRIVACY is not set |
240 | # CONFIG_IPV6_ROUTER_PREF is not set | 275 | # CONFIG_IPV6_ROUTER_PREF is not set |
241 | # CONFIG_INET6_AH is not set | 276 | # CONFIG_INET6_AH is not set |
242 | # CONFIG_INET6_ESP is not set | 277 | # CONFIG_INET6_ESP is not set |
243 | # CONFIG_INET6_IPCOMP is not set | 278 | # CONFIG_INET6_IPCOMP is not set |
279 | # CONFIG_IPV6_MIP6 is not set | ||
244 | # CONFIG_INET6_XFRM_TUNNEL is not set | 280 | # CONFIG_INET6_XFRM_TUNNEL is not set |
245 | # CONFIG_INET6_TUNNEL is not set | 281 | # CONFIG_INET6_TUNNEL is not set |
282 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
283 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
284 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
285 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
246 | # CONFIG_IPV6_TUNNEL is not set | 286 | # CONFIG_IPV6_TUNNEL is not set |
287 | # CONFIG_IPV6_SUBTREES is not set | ||
288 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
289 | # CONFIG_NETWORK_SECMARK is not set | ||
247 | # CONFIG_NETFILTER is not set | 290 | # CONFIG_NETFILTER is not set |
248 | 291 | ||
249 | # | 292 | # |
@@ -269,7 +312,6 @@ CONFIG_IPV6=m | |||
269 | # CONFIG_ATALK is not set | 312 | # CONFIG_ATALK is not set |
270 | # CONFIG_X25 is not set | 313 | # CONFIG_X25 is not set |
271 | # CONFIG_LAPB is not set | 314 | # CONFIG_LAPB is not set |
272 | # CONFIG_NET_DIVERT is not set | ||
273 | # CONFIG_ECONET is not set | 315 | # CONFIG_ECONET is not set |
274 | # CONFIG_WAN_ROUTER is not set | 316 | # CONFIG_WAN_ROUTER is not set |
275 | 317 | ||
@@ -298,6 +340,7 @@ CONFIG_STANDALONE=y | |||
298 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 340 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
299 | CONFIG_FW_LOADER=y | 341 | CONFIG_FW_LOADER=y |
300 | # CONFIG_DEBUG_DRIVER is not set | 342 | # CONFIG_DEBUG_DRIVER is not set |
343 | # CONFIG_SYS_HYPERVISOR is not set | ||
301 | 344 | ||
302 | # | 345 | # |
303 | # Connector - unified userspace <-> kernelspace linker | 346 | # Connector - unified userspace <-> kernelspace linker |
@@ -335,6 +378,7 @@ CONFIG_BLK_DEV_NBD=m | |||
335 | CONFIG_BLK_DEV_RAM=y | 378 | CONFIG_BLK_DEV_RAM=y |
336 | CONFIG_BLK_DEV_RAM_COUNT=16 | 379 | CONFIG_BLK_DEV_RAM_COUNT=16 |
337 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 380 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
381 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
338 | CONFIG_BLK_DEV_INITRD=y | 382 | CONFIG_BLK_DEV_INITRD=y |
339 | # CONFIG_CDROM_PKTCDVD is not set | 383 | # CONFIG_CDROM_PKTCDVD is not set |
340 | CONFIG_ATA_OVER_ETH=m | 384 | CONFIG_ATA_OVER_ETH=m |
@@ -381,6 +425,7 @@ CONFIG_IDEDMA_PCI_AUTO=y | |||
381 | # CONFIG_BLK_DEV_CS5530 is not set | 425 | # CONFIG_BLK_DEV_CS5530 is not set |
382 | # CONFIG_BLK_DEV_HPT34X is not set | 426 | # CONFIG_BLK_DEV_HPT34X is not set |
383 | # CONFIG_BLK_DEV_HPT366 is not set | 427 | # CONFIG_BLK_DEV_HPT366 is not set |
428 | # CONFIG_BLK_DEV_JMICRON is not set | ||
384 | # CONFIG_BLK_DEV_SC1200 is not set | 429 | # CONFIG_BLK_DEV_SC1200 is not set |
385 | # CONFIG_BLK_DEV_PIIX is not set | 430 | # CONFIG_BLK_DEV_PIIX is not set |
386 | # CONFIG_BLK_DEV_IT821X is not set | 431 | # CONFIG_BLK_DEV_IT821X is not set |
@@ -404,6 +449,7 @@ CONFIG_IDEDMA_AUTO=y | |||
404 | # | 449 | # |
405 | # CONFIG_RAID_ATTRS is not set | 450 | # CONFIG_RAID_ATTRS is not set |
406 | CONFIG_SCSI=y | 451 | CONFIG_SCSI=y |
452 | CONFIG_SCSI_NETLINK=y | ||
407 | CONFIG_SCSI_PROC_FS=y | 453 | CONFIG_SCSI_PROC_FS=y |
408 | 454 | ||
409 | # | 455 | # |
@@ -425,12 +471,14 @@ CONFIG_SCSI_CONSTANTS=y | |||
425 | # CONFIG_SCSI_LOGGING is not set | 471 | # CONFIG_SCSI_LOGGING is not set |
426 | 472 | ||
427 | # | 473 | # |
428 | # SCSI Transport Attributes | 474 | # SCSI Transports |
429 | # | 475 | # |
430 | CONFIG_SCSI_SPI_ATTRS=y | 476 | CONFIG_SCSI_SPI_ATTRS=y |
431 | CONFIG_SCSI_FC_ATTRS=y | 477 | CONFIG_SCSI_FC_ATTRS=y |
432 | CONFIG_SCSI_ISCSI_ATTRS=m | 478 | CONFIG_SCSI_ISCSI_ATTRS=m |
433 | CONFIG_SCSI_SAS_ATTRS=y | 479 | CONFIG_SCSI_SAS_ATTRS=y |
480 | CONFIG_SCSI_SAS_LIBSAS=y | ||
481 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set | ||
434 | 482 | ||
435 | # | 483 | # |
436 | # SCSI low-level drivers | 484 | # SCSI low-level drivers |
@@ -443,46 +491,82 @@ CONFIG_ISCSI_TCP=m | |||
443 | # CONFIG_SCSI_AIC7XXX is not set | 491 | # CONFIG_SCSI_AIC7XXX is not set |
444 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 492 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
445 | # CONFIG_SCSI_AIC79XX is not set | 493 | # CONFIG_SCSI_AIC79XX is not set |
494 | # CONFIG_SCSI_AIC94XX is not set | ||
495 | # CONFIG_SCSI_ARCMSR is not set | ||
446 | # CONFIG_MEGARAID_NEWGEN is not set | 496 | # CONFIG_MEGARAID_NEWGEN is not set |
447 | # CONFIG_MEGARAID_LEGACY is not set | 497 | # CONFIG_MEGARAID_LEGACY is not set |
448 | # CONFIG_MEGARAID_SAS is not set | 498 | # CONFIG_MEGARAID_SAS is not set |
449 | CONFIG_SCSI_SATA=y | 499 | # CONFIG_SCSI_HPTIOP is not set |
450 | # CONFIG_SCSI_SATA_AHCI is not set | ||
451 | # CONFIG_SCSI_SATA_SVW is not set | ||
452 | # CONFIG_SCSI_ATA_PIIX is not set | ||
453 | # CONFIG_SCSI_SATA_MV is not set | ||
454 | # CONFIG_SCSI_SATA_NV is not set | ||
455 | # CONFIG_SCSI_PDC_ADMA is not set | ||
456 | # CONFIG_SCSI_SATA_QSTOR is not set | ||
457 | # CONFIG_SCSI_SATA_PROMISE is not set | ||
458 | # CONFIG_SCSI_SATA_SX4 is not set | ||
459 | # CONFIG_SCSI_SATA_SIL is not set | ||
460 | # CONFIG_SCSI_SATA_SIL24 is not set | ||
461 | # CONFIG_SCSI_SATA_SIS is not set | ||
462 | # CONFIG_SCSI_SATA_ULI is not set | ||
463 | # CONFIG_SCSI_SATA_VIA is not set | ||
464 | CONFIG_SCSI_SATA_VITESSE=y | ||
465 | # CONFIG_SCSI_DMX3191D is not set | 500 | # CONFIG_SCSI_DMX3191D is not set |
466 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 501 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
467 | # CONFIG_SCSI_IPS is not set | 502 | # CONFIG_SCSI_IPS is not set |
468 | # CONFIG_SCSI_INITIO is not set | 503 | # CONFIG_SCSI_INITIO is not set |
469 | # CONFIG_SCSI_INIA100 is not set | 504 | # CONFIG_SCSI_INIA100 is not set |
505 | # CONFIG_SCSI_STEX is not set | ||
470 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 506 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
471 | # CONFIG_SCSI_IPR is not set | 507 | # CONFIG_SCSI_IPR is not set |
472 | CONFIG_SCSI_QLOGIC_1280=y | 508 | CONFIG_SCSI_QLOGIC_1280=y |
473 | CONFIG_SCSI_QLA_FC=y | 509 | CONFIG_SCSI_QLA_FC=y |
474 | CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y | 510 | # CONFIG_SCSI_QLA_ISCSI is not set |
475 | # CONFIG_SCSI_QLA21XX is not set | ||
476 | CONFIG_SCSI_QLA22XX=y | ||
477 | CONFIG_SCSI_QLA2300=y | ||
478 | CONFIG_SCSI_QLA2322=y | ||
479 | # CONFIG_SCSI_QLA24XX is not set | ||
480 | # CONFIG_SCSI_LPFC is not set | 511 | # CONFIG_SCSI_LPFC is not set |
481 | # CONFIG_SCSI_DC395x is not set | 512 | # CONFIG_SCSI_DC395x is not set |
482 | # CONFIG_SCSI_DC390T is not set | 513 | # CONFIG_SCSI_DC390T is not set |
483 | # CONFIG_SCSI_DEBUG is not set | 514 | # CONFIG_SCSI_DEBUG is not set |
484 | 515 | ||
485 | # | 516 | # |
517 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
518 | # | ||
519 | CONFIG_ATA=y | ||
520 | # CONFIG_SATA_AHCI is not set | ||
521 | # CONFIG_SATA_SVW is not set | ||
522 | # CONFIG_ATA_PIIX is not set | ||
523 | # CONFIG_SATA_MV is not set | ||
524 | # CONFIG_SATA_NV is not set | ||
525 | # CONFIG_PDC_ADMA is not set | ||
526 | # CONFIG_SATA_QSTOR is not set | ||
527 | # CONFIG_SATA_PROMISE is not set | ||
528 | # CONFIG_SATA_SX4 is not set | ||
529 | # CONFIG_SATA_SIL is not set | ||
530 | # CONFIG_SATA_SIL24 is not set | ||
531 | # CONFIG_SATA_SIS is not set | ||
532 | # CONFIG_SATA_ULI is not set | ||
533 | # CONFIG_SATA_VIA is not set | ||
534 | CONFIG_SATA_VITESSE=y | ||
535 | # CONFIG_PATA_ALI is not set | ||
536 | # CONFIG_PATA_AMD is not set | ||
537 | # CONFIG_PATA_ARTOP is not set | ||
538 | # CONFIG_PATA_ATIIXP is not set | ||
539 | # CONFIG_PATA_CMD64X is not set | ||
540 | # CONFIG_PATA_CS5520 is not set | ||
541 | # CONFIG_PATA_CS5530 is not set | ||
542 | # CONFIG_PATA_CYPRESS is not set | ||
543 | # CONFIG_PATA_EFAR is not set | ||
544 | # CONFIG_ATA_GENERIC is not set | ||
545 | # CONFIG_PATA_HPT366 is not set | ||
546 | # CONFIG_PATA_HPT37X is not set | ||
547 | # CONFIG_PATA_HPT3X2N is not set | ||
548 | # CONFIG_PATA_HPT3X3 is not set | ||
549 | # CONFIG_PATA_IT821X is not set | ||
550 | # CONFIG_PATA_JMICRON is not set | ||
551 | # CONFIG_PATA_TRIFLEX is not set | ||
552 | # CONFIG_PATA_MPIIX is not set | ||
553 | # CONFIG_PATA_OLDPIIX is not set | ||
554 | # CONFIG_PATA_NETCELL is not set | ||
555 | # CONFIG_PATA_NS87410 is not set | ||
556 | # CONFIG_PATA_OPTI is not set | ||
557 | # CONFIG_PATA_OPTIDMA is not set | ||
558 | # CONFIG_PATA_PDC_OLD is not set | ||
559 | # CONFIG_PATA_RADISYS is not set | ||
560 | # CONFIG_PATA_RZ1000 is not set | ||
561 | # CONFIG_PATA_SC1200 is not set | ||
562 | # CONFIG_PATA_SERVERWORKS is not set | ||
563 | # CONFIG_PATA_PDC2027X is not set | ||
564 | # CONFIG_PATA_SIL680 is not set | ||
565 | # CONFIG_PATA_SIS is not set | ||
566 | # CONFIG_PATA_VIA is not set | ||
567 | # CONFIG_PATA_WINBOND is not set | ||
568 | |||
569 | # | ||
486 | # Multi-device support (RAID and LVM) | 570 | # Multi-device support (RAID and LVM) |
487 | # | 571 | # |
488 | CONFIG_MD=y | 572 | CONFIG_MD=y |
@@ -491,12 +575,12 @@ CONFIG_MD_LINEAR=y | |||
491 | CONFIG_MD_RAID0=y | 575 | CONFIG_MD_RAID0=y |
492 | CONFIG_MD_RAID1=y | 576 | CONFIG_MD_RAID1=y |
493 | # CONFIG_MD_RAID10 is not set | 577 | # CONFIG_MD_RAID10 is not set |
494 | CONFIG_MD_RAID5=y | 578 | CONFIG_MD_RAID456=y |
495 | # CONFIG_MD_RAID5_RESHAPE is not set | 579 | # CONFIG_MD_RAID5_RESHAPE is not set |
496 | # CONFIG_MD_RAID6 is not set | ||
497 | CONFIG_MD_MULTIPATH=y | 580 | CONFIG_MD_MULTIPATH=y |
498 | # CONFIG_MD_FAULTY is not set | 581 | # CONFIG_MD_FAULTY is not set |
499 | CONFIG_BLK_DEV_DM=y | 582 | CONFIG_BLK_DEV_DM=y |
583 | # CONFIG_DM_DEBUG is not set | ||
500 | CONFIG_DM_CRYPT=m | 584 | CONFIG_DM_CRYPT=m |
501 | CONFIG_DM_SNAPSHOT=m | 585 | CONFIG_DM_SNAPSHOT=m |
502 | CONFIG_DM_MIRROR=m | 586 | CONFIG_DM_MIRROR=m |
@@ -563,6 +647,7 @@ CONFIG_NETDEVICES=y | |||
563 | # CONFIG_SK98LIN is not set | 647 | # CONFIG_SK98LIN is not set |
564 | CONFIG_TIGON3=y | 648 | CONFIG_TIGON3=y |
565 | # CONFIG_BNX2 is not set | 649 | # CONFIG_BNX2 is not set |
650 | # CONFIG_QLA3XXX is not set | ||
566 | 651 | ||
567 | # | 652 | # |
568 | # Ethernet (10000 Mbit) | 653 | # Ethernet (10000 Mbit) |
@@ -571,6 +656,7 @@ CONFIG_CHELSIO_T1=m | |||
571 | # CONFIG_IXGB is not set | 656 | # CONFIG_IXGB is not set |
572 | CONFIG_S2IO=m | 657 | CONFIG_S2IO=m |
573 | # CONFIG_S2IO_NAPI is not set | 658 | # CONFIG_S2IO_NAPI is not set |
659 | # CONFIG_MYRI10GE is not set | ||
574 | 660 | ||
575 | # | 661 | # |
576 | # Token Ring devices | 662 | # Token Ring devices |
@@ -612,6 +698,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
612 | # Input device support | 698 | # Input device support |
613 | # | 699 | # |
614 | CONFIG_INPUT=y | 700 | CONFIG_INPUT=y |
701 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
615 | 702 | ||
616 | # | 703 | # |
617 | # Userland interfaces | 704 | # Userland interfaces |
@@ -646,6 +733,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
646 | CONFIG_VT=y | 733 | CONFIG_VT=y |
647 | CONFIG_VT_CONSOLE=y | 734 | CONFIG_VT_CONSOLE=y |
648 | CONFIG_HW_CONSOLE=y | 735 | CONFIG_HW_CONSOLE=y |
736 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
649 | CONFIG_SERIAL_NONSTANDARD=y | 737 | CONFIG_SERIAL_NONSTANDARD=y |
650 | # CONFIG_COMPUTONE is not set | 738 | # CONFIG_COMPUTONE is not set |
651 | # CONFIG_ROCKETPORT is not set | 739 | # CONFIG_ROCKETPORT is not set |
@@ -659,10 +747,12 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
659 | # CONFIG_N_HDLC is not set | 747 | # CONFIG_N_HDLC is not set |
660 | # CONFIG_SPECIALIX is not set | 748 | # CONFIG_SPECIALIX is not set |
661 | # CONFIG_SX is not set | 749 | # CONFIG_SX is not set |
750 | # CONFIG_RIO is not set | ||
662 | # CONFIG_STALDRV is not set | 751 | # CONFIG_STALDRV is not set |
663 | CONFIG_SGI_SNSC=y | 752 | CONFIG_SGI_SNSC=y |
664 | CONFIG_SGI_TIOCX=y | 753 | CONFIG_SGI_TIOCX=y |
665 | CONFIG_SGI_MBCS=m | 754 | CONFIG_SGI_MBCS=m |
755 | CONFIG_MSPEC=y | ||
666 | 756 | ||
667 | # | 757 | # |
668 | # Serial drivers | 758 | # Serial drivers |
@@ -701,6 +791,7 @@ CONFIG_EFI_RTC=y | |||
701 | # Ftape, the floppy tape device driver | 791 | # Ftape, the floppy tape device driver |
702 | # | 792 | # |
703 | CONFIG_AGP=y | 793 | CONFIG_AGP=y |
794 | # CONFIG_AGP_SIS is not set | ||
704 | # CONFIG_AGP_VIA is not set | 795 | # CONFIG_AGP_VIA is not set |
705 | CONFIG_AGP_SGI_TIOCA=y | 796 | CONFIG_AGP_SGI_TIOCA=y |
706 | # CONFIG_DRM is not set | 797 | # CONFIG_DRM is not set |
@@ -730,7 +821,6 @@ CONFIG_MMTIMER=y | |||
730 | # | 821 | # |
731 | # Dallas's 1-wire bus | 822 | # Dallas's 1-wire bus |
732 | # | 823 | # |
733 | # CONFIG_W1 is not set | ||
734 | 824 | ||
735 | # | 825 | # |
736 | # Hardware Monitoring support | 826 | # Hardware Monitoring support |
@@ -741,6 +831,7 @@ CONFIG_MMTIMER=y | |||
741 | # | 831 | # |
742 | # Misc devices | 832 | # Misc devices |
743 | # | 833 | # |
834 | # CONFIG_TIFM_CORE is not set | ||
744 | 835 | ||
745 | # | 836 | # |
746 | # Multimedia devices | 837 | # Multimedia devices |
@@ -756,6 +847,7 @@ CONFIG_MMTIMER=y | |||
756 | # | 847 | # |
757 | # Graphics support | 848 | # Graphics support |
758 | # | 849 | # |
850 | CONFIG_FIRMWARE_EDID=y | ||
759 | # CONFIG_FB is not set | 851 | # CONFIG_FB is not set |
760 | 852 | ||
761 | # | 853 | # |
@@ -764,6 +856,7 @@ CONFIG_MMTIMER=y | |||
764 | CONFIG_VGA_CONSOLE=y | 856 | CONFIG_VGA_CONSOLE=y |
765 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | 857 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set |
766 | CONFIG_DUMMY_CONSOLE=y | 858 | CONFIG_DUMMY_CONSOLE=y |
859 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
767 | 860 | ||
768 | # | 861 | # |
769 | # Sound | 862 | # Sound |
@@ -794,6 +887,7 @@ CONFIG_USB=m | |||
794 | CONFIG_USB_EHCI_HCD=m | 887 | CONFIG_USB_EHCI_HCD=m |
795 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 888 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
796 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 889 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
890 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | ||
797 | # CONFIG_USB_ISP116X_HCD is not set | 891 | # CONFIG_USB_ISP116X_HCD is not set |
798 | CONFIG_USB_OHCI_HCD=m | 892 | CONFIG_USB_OHCI_HCD=m |
799 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | 893 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set |
@@ -843,6 +937,7 @@ CONFIG_USB_HIDINPUT=y | |||
843 | # CONFIG_USB_ATI_REMOTE2 is not set | 937 | # CONFIG_USB_ATI_REMOTE2 is not set |
844 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 938 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
845 | # CONFIG_USB_APPLETOUCH is not set | 939 | # CONFIG_USB_APPLETOUCH is not set |
940 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
846 | 941 | ||
847 | # | 942 | # |
848 | # USB Imaging devices | 943 | # USB Imaging devices |
@@ -874,15 +969,18 @@ CONFIG_USB_MON=y | |||
874 | # | 969 | # |
875 | # CONFIG_USB_EMI62 is not set | 970 | # CONFIG_USB_EMI62 is not set |
876 | # CONFIG_USB_EMI26 is not set | 971 | # CONFIG_USB_EMI26 is not set |
972 | # CONFIG_USB_ADUTUX is not set | ||
877 | # CONFIG_USB_AUERSWALD is not set | 973 | # CONFIG_USB_AUERSWALD is not set |
878 | # CONFIG_USB_RIO500 is not set | 974 | # CONFIG_USB_RIO500 is not set |
879 | # CONFIG_USB_LEGOTOWER is not set | 975 | # CONFIG_USB_LEGOTOWER is not set |
880 | # CONFIG_USB_LCD is not set | 976 | # CONFIG_USB_LCD is not set |
881 | # CONFIG_USB_LED is not set | 977 | # CONFIG_USB_LED is not set |
978 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
882 | # CONFIG_USB_CYTHERM is not set | 979 | # CONFIG_USB_CYTHERM is not set |
883 | # CONFIG_USB_PHIDGETKIT is not set | 980 | # CONFIG_USB_PHIDGET is not set |
884 | # CONFIG_USB_PHIDGETSERVO is not set | ||
885 | # CONFIG_USB_IDMOUSE is not set | 981 | # CONFIG_USB_IDMOUSE is not set |
982 | # CONFIG_USB_FTDI_ELAN is not set | ||
983 | # CONFIG_USB_APPLEDISPLAY is not set | ||
886 | # CONFIG_USB_SISUSBVGA is not set | 984 | # CONFIG_USB_SISUSBVGA is not set |
887 | # CONFIG_USB_LD is not set | 985 | # CONFIG_USB_LD is not set |
888 | 986 | ||
@@ -919,18 +1017,15 @@ CONFIG_USB_MON=y | |||
919 | CONFIG_INFINIBAND=m | 1017 | CONFIG_INFINIBAND=m |
920 | # CONFIG_INFINIBAND_USER_MAD is not set | 1018 | # CONFIG_INFINIBAND_USER_MAD is not set |
921 | CONFIG_INFINIBAND_USER_ACCESS=m | 1019 | CONFIG_INFINIBAND_USER_ACCESS=m |
1020 | CONFIG_INFINIBAND_ADDR_TRANS=y | ||
922 | CONFIG_INFINIBAND_MTHCA=m | 1021 | CONFIG_INFINIBAND_MTHCA=m |
923 | CONFIG_INFINIBAND_MTHCA_DEBUG=y | 1022 | CONFIG_INFINIBAND_MTHCA_DEBUG=y |
1023 | # CONFIG_INFINIBAND_AMSO1100 is not set | ||
924 | CONFIG_INFINIBAND_IPOIB=m | 1024 | CONFIG_INFINIBAND_IPOIB=m |
925 | CONFIG_INFINIBAND_IPOIB_DEBUG=y | 1025 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
926 | # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set | 1026 | # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set |
927 | CONFIG_INFINIBAND_SRP=m | 1027 | CONFIG_INFINIBAND_SRP=m |
928 | 1028 | # CONFIG_INFINIBAND_ISER is not set | |
929 | # | ||
930 | # SN Devices | ||
931 | # | ||
932 | CONFIG_SGI_IOC4=y | ||
933 | CONFIG_SGI_IOC3=y | ||
934 | 1029 | ||
935 | # | 1030 | # |
936 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 1031 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
@@ -942,6 +1037,19 @@ CONFIG_SGI_IOC3=y | |||
942 | # CONFIG_RTC_CLASS is not set | 1037 | # CONFIG_RTC_CLASS is not set |
943 | 1038 | ||
944 | # | 1039 | # |
1040 | # DMA Engine support | ||
1041 | # | ||
1042 | # CONFIG_DMA_ENGINE is not set | ||
1043 | |||
1044 | # | ||
1045 | # DMA Clients | ||
1046 | # | ||
1047 | |||
1048 | # | ||
1049 | # DMA Devices | ||
1050 | # | ||
1051 | |||
1052 | # | ||
945 | # File systems | 1053 | # File systems |
946 | # | 1054 | # |
947 | CONFIG_EXT2_FS=y | 1055 | CONFIG_EXT2_FS=y |
@@ -965,15 +1073,16 @@ CONFIG_REISERFS_FS_SECURITY=y | |||
965 | # CONFIG_JFS_FS is not set | 1073 | # CONFIG_JFS_FS is not set |
966 | CONFIG_FS_POSIX_ACL=y | 1074 | CONFIG_FS_POSIX_ACL=y |
967 | CONFIG_XFS_FS=y | 1075 | CONFIG_XFS_FS=y |
968 | CONFIG_XFS_EXPORT=y | ||
969 | CONFIG_XFS_QUOTA=y | 1076 | CONFIG_XFS_QUOTA=y |
970 | # CONFIG_XFS_SECURITY is not set | 1077 | # CONFIG_XFS_SECURITY is not set |
971 | CONFIG_XFS_POSIX_ACL=y | 1078 | CONFIG_XFS_POSIX_ACL=y |
972 | CONFIG_XFS_RT=y | 1079 | CONFIG_XFS_RT=y |
1080 | # CONFIG_GFS2_FS is not set | ||
973 | # CONFIG_OCFS2_FS is not set | 1081 | # CONFIG_OCFS2_FS is not set |
974 | # CONFIG_MINIX_FS is not set | 1082 | # CONFIG_MINIX_FS is not set |
975 | # CONFIG_ROMFS_FS is not set | 1083 | # CONFIG_ROMFS_FS is not set |
976 | CONFIG_INOTIFY=y | 1084 | CONFIG_INOTIFY=y |
1085 | CONFIG_INOTIFY_USER=y | ||
977 | CONFIG_QUOTA=y | 1086 | CONFIG_QUOTA=y |
978 | # CONFIG_QFMT_V1 is not set | 1087 | # CONFIG_QFMT_V1 is not set |
979 | # CONFIG_QFMT_V2 is not set | 1088 | # CONFIG_QFMT_V2 is not set |
@@ -1007,8 +1116,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1007 | # | 1116 | # |
1008 | CONFIG_PROC_FS=y | 1117 | CONFIG_PROC_FS=y |
1009 | CONFIG_PROC_KCORE=y | 1118 | CONFIG_PROC_KCORE=y |
1119 | CONFIG_PROC_SYSCTL=y | ||
1010 | CONFIG_SYSFS=y | 1120 | CONFIG_SYSFS=y |
1011 | CONFIG_TMPFS=y | 1121 | CONFIG_TMPFS=y |
1122 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1012 | CONFIG_HUGETLBFS=y | 1123 | CONFIG_HUGETLBFS=y |
1013 | CONFIG_HUGETLB_PAGE=y | 1124 | CONFIG_HUGETLB_PAGE=y |
1014 | CONFIG_RAMFS=y | 1125 | CONFIG_RAMFS=y |
@@ -1046,7 +1157,7 @@ CONFIG_NFSD_V4=y | |||
1046 | CONFIG_NFSD_TCP=y | 1157 | CONFIG_NFSD_TCP=y |
1047 | CONFIG_LOCKD=m | 1158 | CONFIG_LOCKD=m |
1048 | CONFIG_LOCKD_V4=y | 1159 | CONFIG_LOCKD_V4=y |
1049 | CONFIG_EXPORTFS=y | 1160 | CONFIG_EXPORTFS=m |
1050 | CONFIG_NFS_COMMON=y | 1161 | CONFIG_NFS_COMMON=y |
1051 | CONFIG_SUNRPC=m | 1162 | CONFIG_SUNRPC=m |
1052 | CONFIG_SUNRPC_GSS=m | 1163 | CONFIG_SUNRPC_GSS=m |
@@ -1056,7 +1167,9 @@ CONFIG_SMB_FS=m | |||
1056 | # CONFIG_SMB_NLS_DEFAULT is not set | 1167 | # CONFIG_SMB_NLS_DEFAULT is not set |
1057 | CONFIG_CIFS=m | 1168 | CONFIG_CIFS=m |
1058 | # CONFIG_CIFS_STATS is not set | 1169 | # CONFIG_CIFS_STATS is not set |
1170 | # CONFIG_CIFS_WEAK_PW_HASH is not set | ||
1059 | # CONFIG_CIFS_XATTR is not set | 1171 | # CONFIG_CIFS_XATTR is not set |
1172 | # CONFIG_CIFS_DEBUG2 is not set | ||
1060 | # CONFIG_CIFS_EXPERIMENTAL is not set | 1173 | # CONFIG_CIFS_EXPERIMENTAL is not set |
1061 | # CONFIG_NCP_FS is not set | 1174 | # CONFIG_NCP_FS is not set |
1062 | # CONFIG_CODA_FS is not set | 1175 | # CONFIG_CODA_FS is not set |
@@ -1129,6 +1242,10 @@ CONFIG_NLS_ISO8859_1=y | |||
1129 | CONFIG_NLS_UTF8=y | 1242 | CONFIG_NLS_UTF8=y |
1130 | 1243 | ||
1131 | # | 1244 | # |
1245 | # Distributed Lock Manager | ||
1246 | # | ||
1247 | |||
1248 | # | ||
1132 | # Library routines | 1249 | # Library routines |
1133 | # | 1250 | # |
1134 | # CONFIG_CRC_CCITT is not set | 1251 | # CONFIG_CRC_CCITT is not set |
@@ -1138,9 +1255,11 @@ CONFIG_LIBCRC32C=m | |||
1138 | CONFIG_ZLIB_INFLATE=m | 1255 | CONFIG_ZLIB_INFLATE=m |
1139 | CONFIG_ZLIB_DEFLATE=m | 1256 | CONFIG_ZLIB_DEFLATE=m |
1140 | CONFIG_GENERIC_ALLOCATOR=y | 1257 | CONFIG_GENERIC_ALLOCATOR=y |
1258 | CONFIG_PLIST=y | ||
1141 | CONFIG_GENERIC_HARDIRQS=y | 1259 | CONFIG_GENERIC_HARDIRQS=y |
1142 | CONFIG_GENERIC_IRQ_PROBE=y | 1260 | CONFIG_GENERIC_IRQ_PROBE=y |
1143 | CONFIG_GENERIC_PENDING_IRQ=y | 1261 | CONFIG_GENERIC_PENDING_IRQ=y |
1262 | CONFIG_IRQ_PER_CPU=y | ||
1144 | 1263 | ||
1145 | # | 1264 | # |
1146 | # Instrumentation Support | 1265 | # Instrumentation Support |
@@ -1152,20 +1271,26 @@ CONFIG_GENERIC_PENDING_IRQ=y | |||
1152 | # Kernel hacking | 1271 | # Kernel hacking |
1153 | # | 1272 | # |
1154 | # CONFIG_PRINTK_TIME is not set | 1273 | # CONFIG_PRINTK_TIME is not set |
1274 | CONFIG_ENABLE_MUST_CHECK=y | ||
1155 | CONFIG_MAGIC_SYSRQ=y | 1275 | CONFIG_MAGIC_SYSRQ=y |
1276 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1156 | CONFIG_DEBUG_KERNEL=y | 1277 | CONFIG_DEBUG_KERNEL=y |
1157 | CONFIG_LOG_BUF_SHIFT=20 | 1278 | CONFIG_LOG_BUF_SHIFT=20 |
1158 | CONFIG_DETECT_SOFTLOCKUP=y | 1279 | CONFIG_DETECT_SOFTLOCKUP=y |
1159 | # CONFIG_SCHEDSTATS is not set | 1280 | # CONFIG_SCHEDSTATS is not set |
1160 | # CONFIG_DEBUG_SLAB is not set | 1281 | # CONFIG_DEBUG_SLAB is not set |
1161 | CONFIG_DEBUG_PREEMPT=y | 1282 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1162 | # CONFIG_DEBUG_MUTEXES is not set | 1283 | # CONFIG_RT_MUTEX_TESTER is not set |
1163 | # CONFIG_DEBUG_SPINLOCK is not set | 1284 | # CONFIG_DEBUG_SPINLOCK is not set |
1285 | # CONFIG_DEBUG_MUTEXES is not set | ||
1286 | # CONFIG_DEBUG_RWSEMS is not set | ||
1164 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1287 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1288 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1165 | # CONFIG_DEBUG_KOBJECT is not set | 1289 | # CONFIG_DEBUG_KOBJECT is not set |
1166 | CONFIG_DEBUG_INFO=y | 1290 | CONFIG_DEBUG_INFO=y |
1167 | # CONFIG_DEBUG_FS is not set | 1291 | # CONFIG_DEBUG_FS is not set |
1168 | # CONFIG_DEBUG_VM is not set | 1292 | # CONFIG_DEBUG_VM is not set |
1293 | # CONFIG_DEBUG_LIST is not set | ||
1169 | CONFIG_FORCED_INLINING=y | 1294 | CONFIG_FORCED_INLINING=y |
1170 | # CONFIG_RCU_TORTURE_TEST is not set | 1295 | # CONFIG_RCU_TORTURE_TEST is not set |
1171 | CONFIG_IA64_GRANULE_16MB=y | 1296 | CONFIG_IA64_GRANULE_16MB=y |
@@ -1186,6 +1311,10 @@ CONFIG_SYSVIPC_COMPAT=y | |||
1186 | # Cryptographic options | 1311 | # Cryptographic options |
1187 | # | 1312 | # |
1188 | CONFIG_CRYPTO=y | 1313 | CONFIG_CRYPTO=y |
1314 | CONFIG_CRYPTO_ALGAPI=y | ||
1315 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1316 | CONFIG_CRYPTO_HASH=y | ||
1317 | CONFIG_CRYPTO_MANAGER=m | ||
1189 | CONFIG_CRYPTO_HMAC=y | 1318 | CONFIG_CRYPTO_HMAC=y |
1190 | # CONFIG_CRYPTO_NULL is not set | 1319 | # CONFIG_CRYPTO_NULL is not set |
1191 | # CONFIG_CRYPTO_MD4 is not set | 1320 | # CONFIG_CRYPTO_MD4 is not set |
@@ -1195,6 +1324,8 @@ CONFIG_CRYPTO_SHA1=m | |||
1195 | # CONFIG_CRYPTO_SHA512 is not set | 1324 | # CONFIG_CRYPTO_SHA512 is not set |
1196 | # CONFIG_CRYPTO_WP512 is not set | 1325 | # CONFIG_CRYPTO_WP512 is not set |
1197 | # CONFIG_CRYPTO_TGR192 is not set | 1326 | # CONFIG_CRYPTO_TGR192 is not set |
1327 | CONFIG_CRYPTO_ECB=m | ||
1328 | CONFIG_CRYPTO_CBC=m | ||
1198 | CONFIG_CRYPTO_DES=m | 1329 | CONFIG_CRYPTO_DES=m |
1199 | # CONFIG_CRYPTO_BLOWFISH is not set | 1330 | # CONFIG_CRYPTO_BLOWFISH is not set |
1200 | # CONFIG_CRYPTO_TWOFISH is not set | 1331 | # CONFIG_CRYPTO_TWOFISH is not set |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 32c3abededc6..73ef4a85b861 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -64,9 +64,6 @@ EXPORT_SYMBOL(pm_idle); | |||
64 | void (*pm_power_off) (void); | 64 | void (*pm_power_off) (void); |
65 | EXPORT_SYMBOL(pm_power_off); | 65 | EXPORT_SYMBOL(pm_power_off); |
66 | 66 | ||
67 | unsigned char acpi_kbd_controller_present = 1; | ||
68 | unsigned char acpi_legacy_devices; | ||
69 | |||
70 | unsigned int acpi_cpei_override; | 67 | unsigned int acpi_cpei_override; |
71 | unsigned int acpi_cpei_phys_cpuid; | 68 | unsigned int acpi_cpei_phys_cpuid; |
72 | 69 | ||
@@ -628,12 +625,6 @@ static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size) | |||
628 | 625 | ||
629 | fadt = (struct fadt_descriptor *)fadt_header; | 626 | fadt = (struct fadt_descriptor *)fadt_header; |
630 | 627 | ||
631 | if (!(fadt->iapc_boot_arch & BAF_8042_KEYBOARD_CONTROLLER)) | ||
632 | acpi_kbd_controller_present = 0; | ||
633 | |||
634 | if (fadt->iapc_boot_arch & BAF_LEGACY_DEVICES) | ||
635 | acpi_legacy_devices = 1; | ||
636 | |||
637 | acpi_register_gsi(fadt->sci_int, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW); | 628 | acpi_register_gsi(fadt->sci_int, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW); |
638 | return 0; | 629 | return 0; |
639 | } | 630 | } |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 68339dd0c9e2..9c6dafa2d0df 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -180,7 +180,9 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) | |||
180 | saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); | 180 | saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); |
181 | ia64_srlz_d(); | 181 | ia64_srlz_d(); |
182 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | 182 | while (vector != IA64_SPURIOUS_INT_VECTOR) { |
183 | if (!IS_RESCHEDULE(vector)) { | 183 | if (unlikely(IS_RESCHEDULE(vector))) |
184 | kstat_this_cpu.irqs[vector]++; | ||
185 | else { | ||
184 | ia64_setreg(_IA64_REG_CR_TPR, vector); | 186 | ia64_setreg(_IA64_REG_CR_TPR, vector); |
185 | ia64_srlz_d(); | 187 | ia64_srlz_d(); |
186 | 188 | ||
@@ -225,7 +227,9 @@ void ia64_process_pending_intr(void) | |||
225 | * Perform normal interrupt style processing | 227 | * Perform normal interrupt style processing |
226 | */ | 228 | */ |
227 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | 229 | while (vector != IA64_SPURIOUS_INT_VECTOR) { |
228 | if (!IS_RESCHEDULE(vector)) { | 230 | if (unlikely(IS_RESCHEDULE(vector))) |
231 | kstat_this_cpu.irqs[vector]++; | ||
232 | else { | ||
229 | struct pt_regs *old_regs = set_irq_regs(NULL); | 233 | struct pt_regs *old_regs = set_irq_regs(NULL); |
230 | 234 | ||
231 | ia64_setreg(_IA64_REG_CR_TPR, vector); | 235 | ia64_setreg(_IA64_REG_CR_TPR, vector); |
@@ -258,11 +262,22 @@ void ia64_process_pending_intr(void) | |||
258 | #ifdef CONFIG_SMP | 262 | #ifdef CONFIG_SMP |
259 | extern irqreturn_t handle_IPI (int irq, void *dev_id); | 263 | extern irqreturn_t handle_IPI (int irq, void *dev_id); |
260 | 264 | ||
265 | static irqreturn_t dummy_handler (int irq, void *dev_id) | ||
266 | { | ||
267 | BUG(); | ||
268 | } | ||
269 | |||
261 | static struct irqaction ipi_irqaction = { | 270 | static struct irqaction ipi_irqaction = { |
262 | .handler = handle_IPI, | 271 | .handler = handle_IPI, |
263 | .flags = IRQF_DISABLED, | 272 | .flags = IRQF_DISABLED, |
264 | .name = "IPI" | 273 | .name = "IPI" |
265 | }; | 274 | }; |
275 | |||
276 | static struct irqaction resched_irqaction = { | ||
277 | .handler = dummy_handler, | ||
278 | .flags = SA_INTERRUPT, | ||
279 | .name = "resched" | ||
280 | }; | ||
266 | #endif | 281 | #endif |
267 | 282 | ||
268 | void | 283 | void |
@@ -287,6 +302,7 @@ init_IRQ (void) | |||
287 | register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL); | 302 | register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL); |
288 | #ifdef CONFIG_SMP | 303 | #ifdef CONFIG_SMP |
289 | register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction); | 304 | register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction); |
305 | register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction); | ||
290 | #endif | 306 | #endif |
291 | #ifdef CONFIG_PERFMON | 307 | #ifdef CONFIG_PERFMON |
292 | pfm_init_percpu(); | 308 | pfm_init_percpu(); |
diff --git a/arch/ia64/kernel/pal.S b/arch/ia64/kernel/pal.S index ebaf1e685f5e..0b533441c3c9 100644 --- a/arch/ia64/kernel/pal.S +++ b/arch/ia64/kernel/pal.S | |||
@@ -21,11 +21,12 @@ pal_entry_point: | |||
21 | .text | 21 | .text |
22 | 22 | ||
23 | /* | 23 | /* |
24 | * Set the PAL entry point address. This could be written in C code, but we do it here | 24 | * Set the PAL entry point address. This could be written in C code, but we |
25 | * to keep it all in one module (besides, it's so trivial that it's | 25 | * do it here to keep it all in one module (besides, it's so trivial that it's |
26 | * not a big deal). | 26 | * not a big deal). |
27 | * | 27 | * |
28 | * in0 Address of the PAL entry point (text address, NOT a function descriptor). | 28 | * in0 Address of the PAL entry point (text address, NOT a function |
29 | * descriptor). | ||
29 | */ | 30 | */ |
30 | GLOBAL_ENTRY(ia64_pal_handler_init) | 31 | GLOBAL_ENTRY(ia64_pal_handler_init) |
31 | alloc r3=ar.pfs,1,0,0,0 | 32 | alloc r3=ar.pfs,1,0,0,0 |
@@ -36,9 +37,9 @@ GLOBAL_ENTRY(ia64_pal_handler_init) | |||
36 | END(ia64_pal_handler_init) | 37 | END(ia64_pal_handler_init) |
37 | 38 | ||
38 | /* | 39 | /* |
39 | * Default PAL call handler. This needs to be coded in assembly because it uses | 40 | * Default PAL call handler. This needs to be coded in assembly because it |
40 | * the static calling convention, i.e., the RSE may not be used and calls are | 41 | * uses the static calling convention, i.e., the RSE may not be used and |
41 | * done via "br.cond" (not "br.call"). | 42 | * calls are done via "br.cond" (not "br.call"). |
42 | */ | 43 | */ |
43 | GLOBAL_ENTRY(ia64_pal_default_handler) | 44 | GLOBAL_ENTRY(ia64_pal_default_handler) |
44 | mov r8=-1 | 45 | mov r8=-1 |
@@ -50,12 +51,10 @@ END(ia64_pal_default_handler) | |||
50 | * | 51 | * |
51 | * in0 Index of PAL service | 52 | * in0 Index of PAL service |
52 | * in1 - in3 Remaining PAL arguments | 53 | * in1 - in3 Remaining PAL arguments |
53 | * in4 1 ==> clear psr.ic, 0 ==> don't clear psr.ic | ||
54 | * | ||
55 | */ | 54 | */ |
56 | GLOBAL_ENTRY(ia64_pal_call_static) | 55 | GLOBAL_ENTRY(ia64_pal_call_static) |
57 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(5) | 56 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(4) |
58 | alloc loc1 = ar.pfs,5,5,0,0 | 57 | alloc loc1 = ar.pfs,4,5,0,0 |
59 | movl loc2 = pal_entry_point | 58 | movl loc2 = pal_entry_point |
60 | 1: { | 59 | 1: { |
61 | mov r28 = in0 | 60 | mov r28 = in0 |
@@ -64,7 +63,6 @@ GLOBAL_ENTRY(ia64_pal_call_static) | |||
64 | } | 63 | } |
65 | ;; | 64 | ;; |
66 | ld8 loc2 = [loc2] // loc2 <- entry point | 65 | ld8 loc2 = [loc2] // loc2 <- entry point |
67 | tbit.nz p6,p7 = in4, 0 | ||
68 | adds r8 = 1f-1b,r8 | 66 | adds r8 = 1f-1b,r8 |
69 | mov loc4=ar.rsc // save RSE configuration | 67 | mov loc4=ar.rsc // save RSE configuration |
70 | ;; | 68 | ;; |
@@ -74,13 +72,11 @@ GLOBAL_ENTRY(ia64_pal_call_static) | |||
74 | .body | 72 | .body |
75 | mov r30 = in2 | 73 | mov r30 = in2 |
76 | 74 | ||
77 | (p6) rsm psr.i | psr.ic | ||
78 | mov r31 = in3 | 75 | mov r31 = in3 |
79 | mov b7 = loc2 | 76 | mov b7 = loc2 |
80 | 77 | ||
81 | (p7) rsm psr.i | 78 | rsm psr.i |
82 | ;; | 79 | ;; |
83 | (p6) srlz.i | ||
84 | mov rp = r8 | 80 | mov rp = r8 |
85 | br.cond.sptk.many b7 | 81 | br.cond.sptk.many b7 |
86 | 1: mov psr.l = loc3 | 82 | 1: mov psr.l = loc3 |
@@ -96,8 +92,8 @@ END(ia64_pal_call_static) | |||
96 | * Make a PAL call using the stacked registers calling convention. | 92 | * Make a PAL call using the stacked registers calling convention. |
97 | * | 93 | * |
98 | * Inputs: | 94 | * Inputs: |
99 | * in0 Index of PAL service | 95 | * in0 Index of PAL service |
100 | * in2 - in3 Remaning PAL arguments | 96 | * in2 - in3 Remaining PAL arguments |
101 | */ | 97 | */ |
102 | GLOBAL_ENTRY(ia64_pal_call_stacked) | 98 | GLOBAL_ENTRY(ia64_pal_call_stacked) |
103 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(4) | 99 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(4) |
@@ -131,18 +127,18 @@ END(ia64_pal_call_stacked) | |||
131 | * Make a physical mode PAL call using the static registers calling convention. | 127 | * Make a physical mode PAL call using the static registers calling convention. |
132 | * | 128 | * |
133 | * Inputs: | 129 | * Inputs: |
134 | * in0 Index of PAL service | 130 | * in0 Index of PAL service |
135 | * in2 - in3 Remaning PAL arguments | 131 | * in2 - in3 Remaining PAL arguments |
136 | * | 132 | * |
137 | * PSR_LP, PSR_TB, PSR_ID, PSR_DA are never set by the kernel. | 133 | * PSR_LP, PSR_TB, PSR_ID, PSR_DA are never set by the kernel. |
138 | * So we don't need to clear them. | 134 | * So we don't need to clear them. |
139 | */ | 135 | */ |
140 | #define PAL_PSR_BITS_TO_CLEAR \ | 136 | #define PAL_PSR_BITS_TO_CLEAR \ |
141 | (IA64_PSR_I | IA64_PSR_IT | IA64_PSR_DT | IA64_PSR_DB | IA64_PSR_RT | \ | 137 | (IA64_PSR_I | IA64_PSR_IT | IA64_PSR_DT | IA64_PSR_DB | IA64_PSR_RT |\ |
142 | IA64_PSR_DD | IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | \ | 138 | IA64_PSR_DD | IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | \ |
143 | IA64_PSR_DFL | IA64_PSR_DFH) | 139 | IA64_PSR_DFL | IA64_PSR_DFH) |
144 | 140 | ||
145 | #define PAL_PSR_BITS_TO_SET \ | 141 | #define PAL_PSR_BITS_TO_SET \ |
146 | (IA64_PSR_BN) | 142 | (IA64_PSR_BN) |
147 | 143 | ||
148 | 144 | ||
@@ -178,7 +174,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) | |||
178 | ;; | 174 | ;; |
179 | andcm r16=loc3,r16 // removes bits to clear from psr | 175 | andcm r16=loc3,r16 // removes bits to clear from psr |
180 | br.call.sptk.many rp=ia64_switch_mode_phys | 176 | br.call.sptk.many rp=ia64_switch_mode_phys |
181 | .ret1: mov rp = r8 // install return address (physical) | 177 | mov rp = r8 // install return address (physical) |
182 | mov loc5 = r19 | 178 | mov loc5 = r19 |
183 | mov loc6 = r20 | 179 | mov loc6 = r20 |
184 | br.cond.sptk.many b7 | 180 | br.cond.sptk.many b7 |
@@ -188,7 +184,6 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) | |||
188 | mov r19=loc5 | 184 | mov r19=loc5 |
189 | mov r20=loc6 | 185 | mov r20=loc6 |
190 | br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode | 186 | br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode |
191 | .ret2: | ||
192 | mov psr.l = loc3 // restore init PSR | 187 | mov psr.l = loc3 // restore init PSR |
193 | 188 | ||
194 | mov ar.pfs = loc1 | 189 | mov ar.pfs = loc1 |
@@ -203,8 +198,8 @@ END(ia64_pal_call_phys_static) | |||
203 | * Make a PAL call using the stacked registers in physical mode. | 198 | * Make a PAL call using the stacked registers in physical mode. |
204 | * | 199 | * |
205 | * Inputs: | 200 | * Inputs: |
206 | * in0 Index of PAL service | 201 | * in0 Index of PAL service |
207 | * in2 - in3 Remaning PAL arguments | 202 | * in2 - in3 Remaining PAL arguments |
208 | */ | 203 | */ |
209 | GLOBAL_ENTRY(ia64_pal_call_phys_stacked) | 204 | GLOBAL_ENTRY(ia64_pal_call_phys_stacked) |
210 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(5) | 205 | .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(5) |
@@ -212,7 +207,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) | |||
212 | movl loc2 = pal_entry_point | 207 | movl loc2 = pal_entry_point |
213 | 1: { | 208 | 1: { |
214 | mov r28 = in0 // copy procedure index | 209 | mov r28 = in0 // copy procedure index |
215 | mov loc0 = rp // save rp | 210 | mov loc0 = rp // save rp |
216 | } | 211 | } |
217 | .body | 212 | .body |
218 | ;; | 213 | ;; |
@@ -245,7 +240,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) | |||
245 | mov r16=loc3 // r16= original psr | 240 | mov r16=loc3 // r16= original psr |
246 | mov r19=loc5 | 241 | mov r19=loc5 |
247 | mov r20=loc6 | 242 | mov r20=loc6 |
248 | br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode | 243 | br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode |
249 | 244 | ||
250 | mov psr.l = loc3 // restore init PSR | 245 | mov psr.l = loc3 // restore init PSR |
251 | mov ar.pfs = loc1 | 246 | mov ar.pfs = loc1 |
@@ -257,10 +252,11 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) | |||
257 | END(ia64_pal_call_phys_stacked) | 252 | END(ia64_pal_call_phys_stacked) |
258 | 253 | ||
259 | /* | 254 | /* |
260 | * Save scratch fp scratch regs which aren't saved in pt_regs already (fp10-fp15). | 255 | * Save scratch fp scratch regs which aren't saved in pt_regs already |
256 | * (fp10-fp15). | ||
261 | * | 257 | * |
262 | * NOTE: We need to do this since firmware (SAL and PAL) may use any of the scratch | 258 | * NOTE: We need to do this since firmware (SAL and PAL) may use any of the |
263 | * regs fp-low partition. | 259 | * scratch regs fp-low partition. |
264 | * | 260 | * |
265 | * Inputs: | 261 | * Inputs: |
266 | * in0 Address of stack storage for fp regs | 262 | * in0 Address of stack storage for fp regs |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 281004ff7b00..3aaede0d6981 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -5558,12 +5558,13 @@ report_spurious2: | |||
5558 | } | 5558 | } |
5559 | 5559 | ||
5560 | static irqreturn_t | 5560 | static irqreturn_t |
5561 | pfm_interrupt_handler(int irq, void *arg, struct pt_regs *regs) | 5561 | pfm_interrupt_handler(int irq, void *arg) |
5562 | { | 5562 | { |
5563 | unsigned long start_cycles, total_cycles; | 5563 | unsigned long start_cycles, total_cycles; |
5564 | unsigned long min, max; | 5564 | unsigned long min, max; |
5565 | int this_cpu; | 5565 | int this_cpu; |
5566 | int ret; | 5566 | int ret; |
5567 | struct pt_regs *regs = get_irq_regs(); | ||
5567 | 5568 | ||
5568 | this_cpu = get_cpu(); | 5569 | this_cpu = get_cpu(); |
5569 | if (likely(!pfm_alt_intr_handler)) { | 5570 | if (likely(!pfm_alt_intr_handler)) { |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 41169a9bc301..39e0cd3a0884 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -84,6 +84,12 @@ timer_interrupt (int irq, void *dev_id) | |||
84 | 84 | ||
85 | if (time_after(new_itm, ia64_get_itc())) | 85 | if (time_after(new_itm, ia64_get_itc())) |
86 | break; | 86 | break; |
87 | |||
88 | /* | ||
89 | * Allow IPIs to interrupt the timer loop. | ||
90 | */ | ||
91 | local_irq_enable(); | ||
92 | local_irq_disable(); | ||
87 | } | 93 | } |
88 | 94 | ||
89 | do { | 95 | do { |
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index 5f2dcba7fa8d..7a2d824c5ce3 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
@@ -65,7 +65,6 @@ extern void sn_timer_init(void); | |||
65 | extern unsigned long last_time_offset; | 65 | extern unsigned long last_time_offset; |
66 | extern void (*ia64_mark_idle) (int); | 66 | extern void (*ia64_mark_idle) (int); |
67 | extern void snidle(int); | 67 | extern void snidle(int); |
68 | extern unsigned char acpi_kbd_controller_present; | ||
69 | extern unsigned long long (*ia64_printk_clock)(void); | 68 | extern unsigned long long (*ia64_printk_clock)(void); |
70 | 69 | ||
71 | unsigned long sn_rtc_cycles_per_second; | 70 | unsigned long sn_rtc_cycles_per_second; |
@@ -452,17 +451,6 @@ void __init sn_setup(char **cmdline_p) | |||
452 | 451 | ||
453 | ia64_printk_clock = ia64_sn2_printk_clock; | 452 | ia64_printk_clock = ia64_sn2_printk_clock; |
454 | 453 | ||
455 | /* | ||
456 | * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard | ||
457 | * support here so we don't have to listen to failed keyboard probe | ||
458 | * messages. | ||
459 | */ | ||
460 | if (is_shub1() && version <= 0x0209 && acpi_kbd_controller_present) { | ||
461 | printk(KERN_INFO "Disabling legacy keyboard support as prom " | ||
462 | "is too old and doesn't provide FADT\n"); | ||
463 | acpi_kbd_controller_present = 0; | ||
464 | } | ||
465 | |||
466 | printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); | 454 | printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); |
467 | 455 | ||
468 | /* | 456 | /* |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index a3257398ea8d..c313e9a9304f 100644 --- a/arch/s390/defconfig +++ b/arch/s390/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.18 | 3 | # Linux kernel version: 2.6.19-rc2 |
4 | # Wed Oct 4 19:45:46 2006 | 4 | # Wed Oct 18 17:11:10 2006 |
5 | # | 5 | # |
6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
7 | CONFIG_LOCKDEP_SUPPORT=y | 7 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -211,6 +211,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y | |||
211 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | 211 | CONFIG_INET6_XFRM_MODE_TUNNEL=y |
212 | CONFIG_INET6_XFRM_MODE_BEET=y | 212 | CONFIG_INET6_XFRM_MODE_BEET=y |
213 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 213 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
214 | CONFIG_IPV6_SIT=y | ||
214 | # CONFIG_IPV6_TUNNEL is not set | 215 | # CONFIG_IPV6_TUNNEL is not set |
215 | # CONFIG_IPV6_SUBTREES is not set | 216 | # CONFIG_IPV6_SUBTREES is not set |
216 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 217 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -528,6 +529,7 @@ CONFIG_EXT3_FS=y | |||
528 | CONFIG_EXT3_FS_XATTR=y | 529 | CONFIG_EXT3_FS_XATTR=y |
529 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 530 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
530 | # CONFIG_EXT3_FS_SECURITY is not set | 531 | # CONFIG_EXT3_FS_SECURITY is not set |
532 | # CONFIG_EXT4DEV_FS is not set | ||
531 | CONFIG_JBD=y | 533 | CONFIG_JBD=y |
532 | # CONFIG_JBD_DEBUG is not set | 534 | # CONFIG_JBD_DEBUG is not set |
533 | CONFIG_FS_MBCACHE=y | 535 | CONFIG_FS_MBCACHE=y |
@@ -646,10 +648,6 @@ CONFIG_MSDOS_PARTITION=y | |||
646 | # CONFIG_NLS is not set | 648 | # CONFIG_NLS is not set |
647 | 649 | ||
648 | # | 650 | # |
649 | # Distributed Lock Manager | ||
650 | # | ||
651 | |||
652 | # | ||
653 | # Instrumentation Support | 651 | # Instrumentation Support |
654 | # | 652 | # |
655 | 653 | ||
@@ -669,7 +667,6 @@ CONFIG_MAGIC_SYSRQ=y | |||
669 | # CONFIG_UNUSED_SYMBOLS is not set | 667 | # CONFIG_UNUSED_SYMBOLS is not set |
670 | CONFIG_DEBUG_KERNEL=y | 668 | CONFIG_DEBUG_KERNEL=y |
671 | CONFIG_LOG_BUF_SHIFT=17 | 669 | CONFIG_LOG_BUF_SHIFT=17 |
672 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
673 | # CONFIG_SCHEDSTATS is not set | 670 | # CONFIG_SCHEDSTATS is not set |
674 | # CONFIG_DEBUG_SLAB is not set | 671 | # CONFIG_DEBUG_SLAB is not set |
675 | CONFIG_DEBUG_PREEMPT=y | 672 | CONFIG_DEBUG_PREEMPT=y |
@@ -690,6 +687,7 @@ CONFIG_DEBUG_FS=y | |||
690 | # CONFIG_FRAME_POINTER is not set | 687 | # CONFIG_FRAME_POINTER is not set |
691 | # CONFIG_UNWIND_INFO is not set | 688 | # CONFIG_UNWIND_INFO is not set |
692 | CONFIG_FORCED_INLINING=y | 689 | CONFIG_FORCED_INLINING=y |
690 | CONFIG_HEADERS_CHECK=y | ||
693 | # CONFIG_RCU_TORTURE_TEST is not set | 691 | # CONFIG_RCU_TORTURE_TEST is not set |
694 | # CONFIG_LKDTM is not set | 692 | # CONFIG_LKDTM is not set |
695 | 693 | ||
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index e15e1489aef5..2001767e1dc7 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -295,6 +295,7 @@ static inline long put_tv32(struct compat_timeval __user *o, struct timeval *i) | |||
295 | * | 295 | * |
296 | * This is really horribly ugly. | 296 | * This is really horribly ugly. |
297 | */ | 297 | */ |
298 | #ifdef CONFIG_SYSVIPC | ||
298 | asmlinkage long sys32_ipc(u32 call, int first, int second, int third, u32 ptr) | 299 | asmlinkage long sys32_ipc(u32 call, int first, int second, int third, u32 ptr) |
299 | { | 300 | { |
300 | if (call >> 16) /* hack for backward compatibility */ | 301 | if (call >> 16) /* hack for backward compatibility */ |
@@ -338,6 +339,7 @@ asmlinkage long sys32_ipc(u32 call, int first, int second, int third, u32 ptr) | |||
338 | 339 | ||
339 | return -ENOSYS; | 340 | return -ENOSYS; |
340 | } | 341 | } |
342 | #endif | ||
341 | 343 | ||
342 | asmlinkage long sys32_truncate64(const char __user * path, unsigned long high, unsigned long low) | 344 | asmlinkage long sys32_truncate64(const char __user * path, unsigned long high, unsigned long low) |
343 | { | 345 | { |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index e59baec56520..a4ceae3dbcf1 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -320,3 +320,4 @@ SYSCALL(sys_tee,sys_tee,sys_tee_wrapper) | |||
320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper) | 320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper) |
321 | NI_SYSCALL /* 310 sys_move_pages */ | 321 | NI_SYSCALL /* 310 sys_move_pages */ |
322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) | 322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) |
323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,sys_ni_syscall) | ||
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 12173d16bea7..7d8a7ce73fb3 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -372,19 +372,30 @@ int bus_add_device(struct device * dev) | |||
372 | pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id); | 372 | pr_debug("bus %s: add device %s\n", bus->name, dev->bus_id); |
373 | error = device_add_attrs(bus, dev); | 373 | error = device_add_attrs(bus, dev); |
374 | if (error) | 374 | if (error) |
375 | goto out; | 375 | goto out_put; |
376 | error = sysfs_create_link(&bus->devices.kobj, | 376 | error = sysfs_create_link(&bus->devices.kobj, |
377 | &dev->kobj, dev->bus_id); | 377 | &dev->kobj, dev->bus_id); |
378 | if (error) | 378 | if (error) |
379 | goto out; | 379 | goto out_id; |
380 | error = sysfs_create_link(&dev->kobj, | 380 | error = sysfs_create_link(&dev->kobj, |
381 | &dev->bus->subsys.kset.kobj, "subsystem"); | 381 | &dev->bus->subsys.kset.kobj, "subsystem"); |
382 | if (error) | 382 | if (error) |
383 | goto out; | 383 | goto out_subsys; |
384 | error = sysfs_create_link(&dev->kobj, | 384 | error = sysfs_create_link(&dev->kobj, |
385 | &dev->bus->subsys.kset.kobj, "bus"); | 385 | &dev->bus->subsys.kset.kobj, "bus"); |
386 | if (error) | ||
387 | goto out_deprecated; | ||
386 | } | 388 | } |
387 | out: | 389 | return 0; |
390 | |||
391 | out_deprecated: | ||
392 | sysfs_remove_link(&dev->kobj, "subsystem"); | ||
393 | out_subsys: | ||
394 | sysfs_remove_link(&bus->devices.kobj, dev->bus_id); | ||
395 | out_id: | ||
396 | device_remove_attrs(bus, dev); | ||
397 | out_put: | ||
398 | put_bus(dev->bus); | ||
388 | return error; | 399 | return error; |
389 | } | 400 | } |
390 | 401 | ||
@@ -428,8 +439,10 @@ void bus_remove_device(struct device * dev) | |||
428 | sysfs_remove_link(&dev->kobj, "bus"); | 439 | sysfs_remove_link(&dev->kobj, "bus"); |
429 | sysfs_remove_link(&dev->bus->devices.kobj, dev->bus_id); | 440 | sysfs_remove_link(&dev->bus->devices.kobj, dev->bus_id); |
430 | device_remove_attrs(dev->bus, dev); | 441 | device_remove_attrs(dev->bus, dev); |
431 | dev->is_registered = 0; | 442 | if (dev->is_registered) { |
432 | klist_del(&dev->knode_bus); | 443 | dev->is_registered = 0; |
444 | klist_del(&dev->knode_bus); | ||
445 | } | ||
433 | pr_debug("bus %s: remove device %s\n", dev->bus->name, dev->bus_id); | 446 | pr_debug("bus %s: remove device %s\n", dev->bus->name, dev->bus_id); |
434 | device_release_driver(dev); | 447 | device_release_driver(dev); |
435 | put_bus(dev->bus); | 448 | put_bus(dev->bus); |
@@ -505,34 +518,36 @@ int bus_add_driver(struct device_driver *drv) | |||
505 | struct bus_type * bus = get_bus(drv->bus); | 518 | struct bus_type * bus = get_bus(drv->bus); |
506 | int error = 0; | 519 | int error = 0; |
507 | 520 | ||
508 | if (bus) { | 521 | if (!bus) |
509 | pr_debug("bus %s: add driver %s\n", bus->name, drv->name); | 522 | return 0; |
510 | error = kobject_set_name(&drv->kobj, "%s", drv->name); | 523 | |
511 | if (error) | 524 | pr_debug("bus %s: add driver %s\n", bus->name, drv->name); |
512 | goto out_put_bus; | 525 | error = kobject_set_name(&drv->kobj, "%s", drv->name); |
513 | drv->kobj.kset = &bus->drivers; | 526 | if (error) |
514 | if ((error = kobject_register(&drv->kobj))) | 527 | goto out_put_bus; |
515 | goto out_put_bus; | 528 | drv->kobj.kset = &bus->drivers; |
516 | 529 | if ((error = kobject_register(&drv->kobj))) | |
517 | error = driver_attach(drv); | 530 | goto out_put_bus; |
518 | if (error) | 531 | |
519 | goto out_unregister; | 532 | error = driver_attach(drv); |
520 | klist_add_tail(&drv->knode_bus, &bus->klist_drivers); | 533 | if (error) |
521 | module_add_driver(drv->owner, drv); | 534 | goto out_unregister; |
522 | 535 | klist_add_tail(&drv->knode_bus, &bus->klist_drivers); | |
523 | error = driver_add_attrs(bus, drv); | 536 | module_add_driver(drv->owner, drv); |
524 | if (error) { | 537 | |
525 | /* How the hell do we get out of this pickle? Give up */ | 538 | error = driver_add_attrs(bus, drv); |
526 | printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n", | 539 | if (error) { |
527 | __FUNCTION__, drv->name); | 540 | /* How the hell do we get out of this pickle? Give up */ |
528 | } | 541 | printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n", |
529 | error = add_bind_files(drv); | 542 | __FUNCTION__, drv->name); |
530 | if (error) { | ||
531 | /* Ditto */ | ||
532 | printk(KERN_ERR "%s: add_bind_files(%s) failed\n", | ||
533 | __FUNCTION__, drv->name); | ||
534 | } | ||
535 | } | 543 | } |
544 | error = add_bind_files(drv); | ||
545 | if (error) { | ||
546 | /* Ditto */ | ||
547 | printk(KERN_ERR "%s: add_bind_files(%s) failed\n", | ||
548 | __FUNCTION__, drv->name); | ||
549 | } | ||
550 | |||
536 | return error; | 551 | return error; |
537 | out_unregister: | 552 | out_unregister: |
538 | kobject_unregister(&drv->kobj); | 553 | kobject_unregister(&drv->kobj); |
@@ -552,16 +567,17 @@ out_put_bus: | |||
552 | 567 | ||
553 | void bus_remove_driver(struct device_driver * drv) | 568 | void bus_remove_driver(struct device_driver * drv) |
554 | { | 569 | { |
555 | if (drv->bus) { | 570 | if (!drv->bus) |
556 | remove_bind_files(drv); | 571 | return; |
557 | driver_remove_attrs(drv->bus, drv); | 572 | |
558 | klist_remove(&drv->knode_bus); | 573 | remove_bind_files(drv); |
559 | pr_debug("bus %s: remove driver %s\n", drv->bus->name, drv->name); | 574 | driver_remove_attrs(drv->bus, drv); |
560 | driver_detach(drv); | 575 | klist_remove(&drv->knode_bus); |
561 | module_remove_driver(drv); | 576 | pr_debug("bus %s: remove driver %s\n", drv->bus->name, drv->name); |
562 | kobject_unregister(&drv->kobj); | 577 | driver_detach(drv); |
563 | put_bus(drv->bus); | 578 | module_remove_driver(drv); |
564 | } | 579 | kobject_unregister(&drv->kobj); |
580 | put_bus(drv->bus); | ||
565 | } | 581 | } |
566 | 582 | ||
567 | 583 | ||
@@ -732,11 +748,15 @@ int bus_register(struct bus_type * bus) | |||
732 | 748 | ||
733 | klist_init(&bus->klist_devices, klist_devices_get, klist_devices_put); | 749 | klist_init(&bus->klist_devices, klist_devices_get, klist_devices_put); |
734 | klist_init(&bus->klist_drivers, NULL, NULL); | 750 | klist_init(&bus->klist_drivers, NULL, NULL); |
735 | bus_add_attrs(bus); | 751 | retval = bus_add_attrs(bus); |
752 | if (retval) | ||
753 | goto bus_attrs_fail; | ||
736 | 754 | ||
737 | pr_debug("bus type '%s' registered\n", bus->name); | 755 | pr_debug("bus type '%s' registered\n", bus->name); |
738 | return 0; | 756 | return 0; |
739 | 757 | ||
758 | bus_attrs_fail: | ||
759 | kset_unregister(&bus->drivers); | ||
740 | bus_drivers_fail: | 760 | bus_drivers_fail: |
741 | kset_unregister(&bus->devices); | 761 | kset_unregister(&bus->devices); |
742 | bus_devices_fail: | 762 | bus_devices_fail: |
diff --git a/drivers/base/class.c b/drivers/base/class.c index b32b77ff2dcd..0ff267a248db 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -562,7 +562,10 @@ int class_device_add(struct class_device *class_dev) | |||
562 | goto out2; | 562 | goto out2; |
563 | 563 | ||
564 | /* add the needed attributes to this device */ | 564 | /* add the needed attributes to this device */ |
565 | sysfs_create_link(&class_dev->kobj, &parent_class->subsys.kset.kobj, "subsystem"); | 565 | error = sysfs_create_link(&class_dev->kobj, |
566 | &parent_class->subsys.kset.kobj, "subsystem"); | ||
567 | if (error) | ||
568 | goto out3; | ||
566 | class_dev->uevent_attr.attr.name = "uevent"; | 569 | class_dev->uevent_attr.attr.name = "uevent"; |
567 | class_dev->uevent_attr.attr.mode = S_IWUSR; | 570 | class_dev->uevent_attr.attr.mode = S_IWUSR; |
568 | class_dev->uevent_attr.attr.owner = parent_class->owner; | 571 | class_dev->uevent_attr.attr.owner = parent_class->owner; |
diff --git a/drivers/base/core.c b/drivers/base/core.c index b224bb43ff63..68ad11af22b4 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -44,7 +44,7 @@ const char *dev_driver_string(struct device *dev) | |||
44 | return dev->driver ? dev->driver->name : | 44 | return dev->driver ? dev->driver->name : |
45 | (dev->bus ? dev->bus->name : ""); | 45 | (dev->bus ? dev->bus->name : ""); |
46 | } | 46 | } |
47 | EXPORT_SYMBOL_GPL(dev_driver_string); | 47 | EXPORT_SYMBOL(dev_driver_string); |
48 | 48 | ||
49 | #define to_dev(obj) container_of(obj, struct device, kobj) | 49 | #define to_dev(obj) container_of(obj, struct device, kobj) |
50 | #define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr) | 50 | #define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr) |
@@ -433,14 +433,16 @@ int device_add(struct device *dev) | |||
433 | if (dev->driver) | 433 | if (dev->driver) |
434 | dev->uevent_attr.attr.owner = dev->driver->owner; | 434 | dev->uevent_attr.attr.owner = dev->driver->owner; |
435 | dev->uevent_attr.store = store_uevent; | 435 | dev->uevent_attr.store = store_uevent; |
436 | device_create_file(dev, &dev->uevent_attr); | 436 | error = device_create_file(dev, &dev->uevent_attr); |
437 | if (error) | ||
438 | goto attrError; | ||
437 | 439 | ||
438 | if (MAJOR(dev->devt)) { | 440 | if (MAJOR(dev->devt)) { |
439 | struct device_attribute *attr; | 441 | struct device_attribute *attr; |
440 | attr = kzalloc(sizeof(*attr), GFP_KERNEL); | 442 | attr = kzalloc(sizeof(*attr), GFP_KERNEL); |
441 | if (!attr) { | 443 | if (!attr) { |
442 | error = -ENOMEM; | 444 | error = -ENOMEM; |
443 | goto PMError; | 445 | goto ueventattrError; |
444 | } | 446 | } |
445 | attr->attr.name = "dev"; | 447 | attr->attr.name = "dev"; |
446 | attr->attr.mode = S_IRUGO; | 448 | attr->attr.mode = S_IRUGO; |
@@ -450,7 +452,7 @@ int device_add(struct device *dev) | |||
450 | error = device_create_file(dev, attr); | 452 | error = device_create_file(dev, attr); |
451 | if (error) { | 453 | if (error) { |
452 | kfree(attr); | 454 | kfree(attr); |
453 | goto attrError; | 455 | goto ueventattrError; |
454 | } | 456 | } |
455 | 457 | ||
456 | dev->devt_attr = attr; | 458 | dev->devt_attr = attr; |
@@ -477,7 +479,8 @@ int device_add(struct device *dev) | |||
477 | if ((error = bus_add_device(dev))) | 479 | if ((error = bus_add_device(dev))) |
478 | goto BusError; | 480 | goto BusError; |
479 | kobject_uevent(&dev->kobj, KOBJ_ADD); | 481 | kobject_uevent(&dev->kobj, KOBJ_ADD); |
480 | bus_attach_device(dev); | 482 | if ((error = bus_attach_device(dev))) |
483 | goto AttachError; | ||
481 | if (parent) | 484 | if (parent) |
482 | klist_add_tail(&dev->knode_parent, &parent->klist_children); | 485 | klist_add_tail(&dev->knode_parent, &parent->klist_children); |
483 | 486 | ||
@@ -496,6 +499,8 @@ int device_add(struct device *dev) | |||
496 | kfree(class_name); | 499 | kfree(class_name); |
497 | put_device(dev); | 500 | put_device(dev); |
498 | return error; | 501 | return error; |
502 | AttachError: | ||
503 | bus_remove_device(dev); | ||
499 | BusError: | 504 | BusError: |
500 | device_pm_remove(dev); | 505 | device_pm_remove(dev); |
501 | PMError: | 506 | PMError: |
@@ -507,6 +512,8 @@ int device_add(struct device *dev) | |||
507 | device_remove_file(dev, dev->devt_attr); | 512 | device_remove_file(dev, dev->devt_attr); |
508 | kfree(dev->devt_attr); | 513 | kfree(dev->devt_attr); |
509 | } | 514 | } |
515 | ueventattrError: | ||
516 | device_remove_file(dev, &dev->uevent_attr); | ||
510 | attrError: | 517 | attrError: |
511 | kobject_uevent(&dev->kobj, KOBJ_REMOVE); | 518 | kobject_uevent(&dev->kobj, KOBJ_REMOVE); |
512 | kobject_del(&dev->kobj); | 519 | kobject_del(&dev->kobj); |
@@ -805,8 +812,10 @@ int device_rename(struct device *dev, char *new_name) | |||
805 | 812 | ||
806 | if (dev->class) { | 813 | if (dev->class) { |
807 | old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL); | 814 | old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL); |
808 | if (!old_symlink_name) | 815 | if (!old_symlink_name) { |
809 | return -ENOMEM; | 816 | error = -ENOMEM; |
817 | goto out_free_old_class; | ||
818 | } | ||
810 | strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE); | 819 | strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE); |
811 | } | 820 | } |
812 | 821 | ||
@@ -830,9 +839,10 @@ int device_rename(struct device *dev, char *new_name) | |||
830 | } | 839 | } |
831 | put_device(dev); | 840 | put_device(dev); |
832 | 841 | ||
833 | kfree(old_class_name); | ||
834 | kfree(new_class_name); | 842 | kfree(new_class_name); |
835 | kfree(old_symlink_name); | 843 | kfree(old_symlink_name); |
844 | out_free_old_class: | ||
845 | kfree(old_class_name); | ||
836 | 846 | ||
837 | return error; | 847 | return error; |
838 | } | 848 | } |
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index b5f43c3e44fa..db01b95a47a5 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c | |||
@@ -171,6 +171,8 @@ int driver_probe_device(struct device_driver * drv, struct device * dev) | |||
171 | drv->bus->name, dev->bus_id, drv->name); | 171 | drv->bus->name, dev->bus_id, drv->name); |
172 | 172 | ||
173 | data = kmalloc(sizeof(*data), GFP_KERNEL); | 173 | data = kmalloc(sizeof(*data), GFP_KERNEL); |
174 | if (!data) | ||
175 | return -ENOMEM; | ||
174 | data->drv = drv; | 176 | data->drv = drv; |
175 | data->dev = dev; | 177 | data->dev = dev; |
176 | 178 | ||
@@ -178,7 +180,7 @@ int driver_probe_device(struct device_driver * drv, struct device * dev) | |||
178 | probe_task = kthread_run(really_probe, data, | 180 | probe_task = kthread_run(really_probe, data, |
179 | "probe-%s", dev->bus_id); | 181 | "probe-%s", dev->bus_id); |
180 | if (IS_ERR(probe_task)) | 182 | if (IS_ERR(probe_task)) |
181 | ret = PTR_ERR(probe_task); | 183 | ret = really_probe(data); |
182 | } else | 184 | } else |
183 | ret = really_probe(data); | 185 | ret = really_probe(data); |
184 | 186 | ||
diff --git a/drivers/base/dmapool.c b/drivers/base/dmapool.c index 33c5cce1560b..b2efbd4cf710 100644 --- a/drivers/base/dmapool.c +++ b/drivers/base/dmapool.c | |||
@@ -141,11 +141,20 @@ dma_pool_create (const char *name, struct device *dev, | |||
141 | init_waitqueue_head (&retval->waitq); | 141 | init_waitqueue_head (&retval->waitq); |
142 | 142 | ||
143 | if (dev) { | 143 | if (dev) { |
144 | int ret; | ||
145 | |||
144 | down (&pools_lock); | 146 | down (&pools_lock); |
145 | if (list_empty (&dev->dma_pools)) | 147 | if (list_empty (&dev->dma_pools)) |
146 | device_create_file (dev, &dev_attr_pools); | 148 | ret = device_create_file (dev, &dev_attr_pools); |
149 | else | ||
150 | ret = 0; | ||
147 | /* note: not currently insisting "name" be unique */ | 151 | /* note: not currently insisting "name" be unique */ |
148 | list_add (&retval->pools, &dev->dma_pools); | 152 | if (!ret) |
153 | list_add (&retval->pools, &dev->dma_pools); | ||
154 | else { | ||
155 | kfree(retval); | ||
156 | retval = NULL; | ||
157 | } | ||
149 | up (&pools_lock); | 158 | up (&pools_lock); |
150 | } else | 159 | } else |
151 | INIT_LIST_HEAD (&retval->pools); | 160 | INIT_LIST_HEAD (&retval->pools); |
diff --git a/drivers/base/topology.c b/drivers/base/topology.c index 3ef9d514b916..28dccb730af9 100644 --- a/drivers/base/topology.c +++ b/drivers/base/topology.c | |||
@@ -97,8 +97,7 @@ static struct attribute_group topology_attr_group = { | |||
97 | /* Add/Remove cpu_topology interface for CPU device */ | 97 | /* Add/Remove cpu_topology interface for CPU device */ |
98 | static int __cpuinit topology_add_dev(struct sys_device * sys_dev) | 98 | static int __cpuinit topology_add_dev(struct sys_device * sys_dev) |
99 | { | 99 | { |
100 | sysfs_create_group(&sys_dev->kobj, &topology_attr_group); | 100 | return sysfs_create_group(&sys_dev->kobj, &topology_attr_group); |
101 | return 0; | ||
102 | } | 101 | } |
103 | 102 | ||
104 | static int __cpuinit topology_remove_dev(struct sys_device * sys_dev) | 103 | static int __cpuinit topology_remove_dev(struct sys_device * sys_dev) |
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index d0647d116eaa..79ffef6bfaf8 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -203,6 +203,7 @@ dasd_state_basic_to_known(struct dasd_device * device) | |||
203 | rc = dasd_flush_ccw_queue(device, 1); | 203 | rc = dasd_flush_ccw_queue(device, 1); |
204 | if (rc) | 204 | if (rc) |
205 | return rc; | 205 | return rc; |
206 | dasd_clear_timer(device); | ||
206 | 207 | ||
207 | DBF_DEV_EVENT(DBF_EMERG, device, "%p debug area deleted", device); | 208 | DBF_DEV_EVENT(DBF_EMERG, device, "%p debug area deleted", device); |
208 | if (device->debug_area != NULL) { | 209 | if (device->debug_area != NULL) { |
diff --git a/drivers/s390/char/monwriter.c b/drivers/s390/char/monwriter.c index abd02ed501cb..b9b0fc3f812b 100644 --- a/drivers/s390/char/monwriter.c +++ b/drivers/s390/char/monwriter.c | |||
@@ -73,12 +73,15 @@ static inline struct mon_buf *monwrite_find_hdr(struct mon_private *monpriv, | |||
73 | struct mon_buf *entry, *next; | 73 | struct mon_buf *entry, *next; |
74 | 74 | ||
75 | list_for_each_entry_safe(entry, next, &monpriv->list, list) | 75 | list_for_each_entry_safe(entry, next, &monpriv->list, list) |
76 | if (entry->hdr.applid == monhdr->applid && | 76 | if ((entry->hdr.mon_function == monhdr->mon_function || |
77 | monhdr->mon_function == MONWRITE_STOP_INTERVAL) && | ||
78 | entry->hdr.applid == monhdr->applid && | ||
77 | entry->hdr.record_num == monhdr->record_num && | 79 | entry->hdr.record_num == monhdr->record_num && |
78 | entry->hdr.version == monhdr->version && | 80 | entry->hdr.version == monhdr->version && |
79 | entry->hdr.release == monhdr->release && | 81 | entry->hdr.release == monhdr->release && |
80 | entry->hdr.mod_level == monhdr->mod_level) | 82 | entry->hdr.mod_level == monhdr->mod_level) |
81 | return entry; | 83 | return entry; |
84 | |||
82 | return NULL; | 85 | return NULL; |
83 | } | 86 | } |
84 | 87 | ||
@@ -92,7 +95,9 @@ static int monwrite_new_hdr(struct mon_private *monpriv) | |||
92 | monhdr->mon_function > MONWRITE_START_CONFIG || | 95 | monhdr->mon_function > MONWRITE_START_CONFIG || |
93 | monhdr->hdrlen != sizeof(struct monwrite_hdr)) | 96 | monhdr->hdrlen != sizeof(struct monwrite_hdr)) |
94 | return -EINVAL; | 97 | return -EINVAL; |
95 | monbuf = monwrite_find_hdr(monpriv, monhdr); | 98 | monbuf = NULL; |
99 | if (monhdr->mon_function != MONWRITE_GEN_EVENT) | ||
100 | monbuf = monwrite_find_hdr(monpriv, monhdr); | ||
96 | if (monbuf) { | 101 | if (monbuf) { |
97 | if (monhdr->mon_function == MONWRITE_STOP_INTERVAL) { | 102 | if (monhdr->mon_function == MONWRITE_STOP_INTERVAL) { |
98 | monhdr->datalen = monbuf->hdr.datalen; | 103 | monhdr->datalen = monbuf->hdr.datalen; |
@@ -104,7 +109,7 @@ static int monwrite_new_hdr(struct mon_private *monpriv) | |||
104 | kfree(monbuf); | 109 | kfree(monbuf); |
105 | monbuf = NULL; | 110 | monbuf = NULL; |
106 | } | 111 | } |
107 | } else { | 112 | } else if (monhdr->mon_function != MONWRITE_STOP_INTERVAL) { |
108 | if (mon_buf_count >= mon_max_bufs) | 113 | if (mon_buf_count >= mon_max_bufs) |
109 | return -ENOSPC; | 114 | return -ENOSPC; |
110 | monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL); | 115 | monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL); |
@@ -118,7 +123,8 @@ static int monwrite_new_hdr(struct mon_private *monpriv) | |||
118 | } | 123 | } |
119 | monbuf->hdr = *monhdr; | 124 | monbuf->hdr = *monhdr; |
120 | list_add_tail(&monbuf->list, &monpriv->list); | 125 | list_add_tail(&monbuf->list, &monpriv->list); |
121 | mon_buf_count++; | 126 | if (monhdr->mon_function != MONWRITE_GEN_EVENT) |
127 | mon_buf_count++; | ||
122 | } | 128 | } |
123 | monpriv->current_buf = monbuf; | 129 | monpriv->current_buf = monbuf; |
124 | return 0; | 130 | return 0; |
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index fcaf28d7b4eb..de3d0857db9f 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -578,9 +578,13 @@ ccw_device_verify_done(struct ccw_device *cdev, int err) | |||
578 | } | 578 | } |
579 | break; | 579 | break; |
580 | case -ETIME: | 580 | case -ETIME: |
581 | /* Reset oper notify indication after verify error. */ | ||
582 | cdev->private->flags.donotify = 0; | ||
581 | ccw_device_done(cdev, DEV_STATE_BOXED); | 583 | ccw_device_done(cdev, DEV_STATE_BOXED); |
582 | break; | 584 | break; |
583 | default: | 585 | default: |
586 | /* Reset oper notify indication after verify error. */ | ||
587 | cdev->private->flags.donotify = 0; | ||
584 | PREPARE_WORK(&cdev->private->kick_work, | 588 | PREPARE_WORK(&cdev->private->kick_work, |
585 | ccw_device_nopath_notify, cdev); | 589 | ccw_device_nopath_notify, cdev); |
586 | queue_work(ccw_device_notify_work, &cdev->private->kick_work); | 590 | queue_work(ccw_device_notify_work, &cdev->private->kick_work); |
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 0648ce5bb684..476aa1da5cbc 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -3529,7 +3529,7 @@ do_QDIO(struct ccw_device *cdev,unsigned int callflags, | |||
3529 | #ifdef CONFIG_QDIO_DEBUG | 3529 | #ifdef CONFIG_QDIO_DEBUG |
3530 | char dbf_text[20]; | 3530 | char dbf_text[20]; |
3531 | 3531 | ||
3532 | sprintf(dbf_text,"doQD%04x",cdev->private->sch_no); | 3532 | sprintf(dbf_text,"doQD%04x",cdev->private->schid.sch_no); |
3533 | QDIO_DBF_TEXT3(0,trace,dbf_text); | 3533 | QDIO_DBF_TEXT3(0,trace,dbf_text); |
3534 | #endif /* CONFIG_QDIO_DEBUG */ | 3534 | #endif /* CONFIG_QDIO_DEBUG */ |
3535 | 3535 | ||
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c index 146f1dedec84..298303b5a716 100644 --- a/fs/sysfs/file.c +++ b/fs/sysfs/file.c | |||
@@ -483,17 +483,12 @@ int sysfs_update_file(struct kobject * kobj, const struct attribute * attr) | |||
483 | (victim->d_parent->d_inode == dir->d_inode)) { | 483 | (victim->d_parent->d_inode == dir->d_inode)) { |
484 | victim->d_inode->i_mtime = CURRENT_TIME; | 484 | victim->d_inode->i_mtime = CURRENT_TIME; |
485 | fsnotify_modify(victim); | 485 | fsnotify_modify(victim); |
486 | |||
487 | /** | ||
488 | * Drop reference from initial sysfs_get_dentry(). | ||
489 | */ | ||
490 | dput(victim); | ||
491 | res = 0; | 486 | res = 0; |
492 | } else | 487 | } else |
493 | d_drop(victim); | 488 | d_drop(victim); |
494 | 489 | ||
495 | /** | 490 | /** |
496 | * Drop the reference acquired from sysfs_get_dentry() above. | 491 | * Drop the reference acquired from lookup_one_len() above. |
497 | */ | 492 | */ |
498 | dput(victim); | 493 | dput(victim); |
499 | } | 494 | } |
diff --git a/include/asm-ia64/io.h b/include/asm-ia64/io.h index 43bfff6c6b87..855c30af72a9 100644 --- a/include/asm-ia64/io.h +++ b/include/asm-ia64/io.h | |||
@@ -417,6 +417,8 @@ __writeq (unsigned long val, volatile void __iomem *addr) | |||
417 | # define outl_p outl | 417 | # define outl_p outl |
418 | #endif | 418 | #endif |
419 | 419 | ||
420 | # ifdef __KERNEL__ | ||
421 | |||
420 | extern void __iomem * ioremap(unsigned long offset, unsigned long size); | 422 | extern void __iomem * ioremap(unsigned long offset, unsigned long size); |
421 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); | 423 | extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); |
422 | 424 | ||
@@ -430,8 +432,6 @@ iounmap (volatile void __iomem *addr) | |||
430 | #define dmi_iounmap(x,l) iounmap(x) | 432 | #define dmi_iounmap(x,l) iounmap(x) |
431 | #define dmi_alloc(l) kmalloc(l, GFP_ATOMIC) | 433 | #define dmi_alloc(l) kmalloc(l, GFP_ATOMIC) |
432 | 434 | ||
433 | # ifdef __KERNEL__ | ||
434 | |||
435 | /* | 435 | /* |
436 | * String version of IO memory access ops: | 436 | * String version of IO memory access ops: |
437 | */ | 437 | */ |
diff --git a/include/asm-ia64/pal.h b/include/asm-ia64/pal.h index 2c8fd92d0ece..4283ddcc25fb 100644 --- a/include/asm-ia64/pal.h +++ b/include/asm-ia64/pal.h | |||
@@ -764,7 +764,7 @@ struct ia64_pal_retval { | |||
764 | * (generally 0) MUST be passed. Reserved parameters are not optional | 764 | * (generally 0) MUST be passed. Reserved parameters are not optional |
765 | * parameters. | 765 | * parameters. |
766 | */ | 766 | */ |
767 | extern struct ia64_pal_retval ia64_pal_call_static (u64, u64, u64, u64, u64); | 767 | extern struct ia64_pal_retval ia64_pal_call_static (u64, u64, u64, u64); |
768 | extern struct ia64_pal_retval ia64_pal_call_stacked (u64, u64, u64, u64); | 768 | extern struct ia64_pal_retval ia64_pal_call_stacked (u64, u64, u64, u64); |
769 | extern struct ia64_pal_retval ia64_pal_call_phys_static (u64, u64, u64, u64); | 769 | extern struct ia64_pal_retval ia64_pal_call_phys_static (u64, u64, u64, u64); |
770 | extern struct ia64_pal_retval ia64_pal_call_phys_stacked (u64, u64, u64, u64); | 770 | extern struct ia64_pal_retval ia64_pal_call_phys_stacked (u64, u64, u64, u64); |
@@ -774,14 +774,7 @@ extern void ia64_load_scratch_fpregs (struct ia64_fpreg *); | |||
774 | #define PAL_CALL(iprv,a0,a1,a2,a3) do { \ | 774 | #define PAL_CALL(iprv,a0,a1,a2,a3) do { \ |
775 | struct ia64_fpreg fr[6]; \ | 775 | struct ia64_fpreg fr[6]; \ |
776 | ia64_save_scratch_fpregs(fr); \ | 776 | ia64_save_scratch_fpregs(fr); \ |
777 | iprv = ia64_pal_call_static(a0, a1, a2, a3, 0); \ | 777 | iprv = ia64_pal_call_static(a0, a1, a2, a3); \ |
778 | ia64_load_scratch_fpregs(fr); \ | ||
779 | } while (0) | ||
780 | |||
781 | #define PAL_CALL_IC_OFF(iprv,a0,a1,a2,a3) do { \ | ||
782 | struct ia64_fpreg fr[6]; \ | ||
783 | ia64_save_scratch_fpregs(fr); \ | ||
784 | iprv = ia64_pal_call_static(a0, a1, a2, a3, 1); \ | ||
785 | ia64_load_scratch_fpregs(fr); \ | 778 | ia64_load_scratch_fpregs(fr); \ |
786 | } while (0) | 779 | } while (0) |
787 | 780 | ||
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index 519f0a5ff181..36bb6dacf008 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
@@ -200,18 +200,45 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
200 | */ | 200 | */ |
201 | 201 | ||
202 | /* Hardware bits in the page table entry */ | 202 | /* Hardware bits in the page table entry */ |
203 | #define _PAGE_RO 0x200 /* HW read-only */ | 203 | #define _PAGE_RO 0x200 /* HW read-only bit */ |
204 | #define _PAGE_INVALID 0x400 /* HW invalid */ | 204 | #define _PAGE_INVALID 0x400 /* HW invalid bit */ |
205 | #define _PAGE_SWT 0x001 /* SW pte type bit t */ | ||
206 | #define _PAGE_SWX 0x002 /* SW pte type bit x */ | ||
205 | 207 | ||
206 | /* Mask and six different types of pages. */ | 208 | /* Six different types of pages. */ |
207 | #define _PAGE_TYPE_MASK 0x601 | ||
208 | #define _PAGE_TYPE_EMPTY 0x400 | 209 | #define _PAGE_TYPE_EMPTY 0x400 |
209 | #define _PAGE_TYPE_NONE 0x401 | 210 | #define _PAGE_TYPE_NONE 0x401 |
210 | #define _PAGE_TYPE_SWAP 0x600 | 211 | #define _PAGE_TYPE_SWAP 0x403 |
211 | #define _PAGE_TYPE_FILE 0x601 | 212 | #define _PAGE_TYPE_FILE 0x601 /* bit 0x002 is used for offset !! */ |
212 | #define _PAGE_TYPE_RO 0x200 | 213 | #define _PAGE_TYPE_RO 0x200 |
213 | #define _PAGE_TYPE_RW 0x000 | 214 | #define _PAGE_TYPE_RW 0x000 |
214 | 215 | ||
216 | /* | ||
217 | * PTE type bits are rather complicated. handle_pte_fault uses pte_present, | ||
218 | * pte_none and pte_file to find out the pte type WITHOUT holding the page | ||
219 | * table lock. ptep_clear_flush on the other hand uses ptep_clear_flush to | ||
220 | * invalidate a given pte. ipte sets the hw invalid bit and clears all tlbs | ||
221 | * for the page. The page table entry is set to _PAGE_TYPE_EMPTY afterwards. | ||
222 | * This change is done while holding the lock, but the intermediate step | ||
223 | * of a previously valid pte with the hw invalid bit set can be observed by | ||
224 | * handle_pte_fault. That makes it necessary that all valid pte types with | ||
225 | * the hw invalid bit set must be distinguishable from the four pte types | ||
226 | * empty, none, swap and file. | ||
227 | * | ||
228 | * irxt ipte irxt | ||
229 | * _PAGE_TYPE_EMPTY 1000 -> 1000 | ||
230 | * _PAGE_TYPE_NONE 1001 -> 1001 | ||
231 | * _PAGE_TYPE_SWAP 1011 -> 1011 | ||
232 | * _PAGE_TYPE_FILE 11?1 -> 11?1 | ||
233 | * _PAGE_TYPE_RO 0100 -> 1100 | ||
234 | * _PAGE_TYPE_RW 0000 -> 1000 | ||
235 | * | ||
236 | * pte_none is true for bits combinations 1000, 1100 | ||
237 | * pte_present is true for bits combinations 0000, 0010, 0100, 0110, 1001 | ||
238 | * pte_file is true for bits combinations 1101, 1111 | ||
239 | * swap pte is 1011 and 0001, 0011, 0101, 0111, 1010 and 1110 are invalid. | ||
240 | */ | ||
241 | |||
215 | #ifndef __s390x__ | 242 | #ifndef __s390x__ |
216 | 243 | ||
217 | /* Bits in the segment table entry */ | 244 | /* Bits in the segment table entry */ |
@@ -365,18 +392,21 @@ static inline int pmd_bad(pmd_t pmd) | |||
365 | 392 | ||
366 | static inline int pte_none(pte_t pte) | 393 | static inline int pte_none(pte_t pte) |
367 | { | 394 | { |
368 | return (pte_val(pte) & _PAGE_TYPE_MASK) == _PAGE_TYPE_EMPTY; | 395 | return (pte_val(pte) & _PAGE_INVALID) && !(pte_val(pte) & _PAGE_SWT); |
369 | } | 396 | } |
370 | 397 | ||
371 | static inline int pte_present(pte_t pte) | 398 | static inline int pte_present(pte_t pte) |
372 | { | 399 | { |
373 | return !(pte_val(pte) & _PAGE_INVALID) || | 400 | unsigned long mask = _PAGE_RO | _PAGE_INVALID | _PAGE_SWT | _PAGE_SWX; |
374 | (pte_val(pte) & _PAGE_TYPE_MASK) == _PAGE_TYPE_NONE; | 401 | return (pte_val(pte) & mask) == _PAGE_TYPE_NONE || |
402 | (!(pte_val(pte) & _PAGE_INVALID) && | ||
403 | !(pte_val(pte) & _PAGE_SWT)); | ||
375 | } | 404 | } |
376 | 405 | ||
377 | static inline int pte_file(pte_t pte) | 406 | static inline int pte_file(pte_t pte) |
378 | { | 407 | { |
379 | return (pte_val(pte) & _PAGE_TYPE_MASK) == _PAGE_TYPE_FILE; | 408 | unsigned long mask = _PAGE_RO | _PAGE_INVALID | _PAGE_SWT; |
409 | return (pte_val(pte) & mask) == _PAGE_TYPE_FILE; | ||
380 | } | 410 | } |
381 | 411 | ||
382 | #define pte_same(a,b) (pte_val(a) == pte_val(b)) | 412 | #define pte_same(a,b) (pte_val(a) == pte_val(b)) |
diff --git a/include/asm-s390/unistd.h b/include/asm-s390/unistd.h index a19238cbcffa..71d3c21b84f0 100644 --- a/include/asm-s390/unistd.h +++ b/include/asm-s390/unistd.h | |||
@@ -249,8 +249,9 @@ | |||
249 | #define __NR_vmsplice 309 | 249 | #define __NR_vmsplice 309 |
250 | /* Number 310 is reserved for new sys_move_pages */ | 250 | /* Number 310 is reserved for new sys_move_pages */ |
251 | #define __NR_getcpu 311 | 251 | #define __NR_getcpu 311 |
252 | #define __NR_epoll_pwait 312 | ||
252 | 253 | ||
253 | #define NR_syscalls 312 | 254 | #define NR_syscalls 313 |
254 | 255 | ||
255 | /* | 256 | /* |
256 | * There are some system calls that are not present on 64 bit, some | 257 | * There are some system calls that are not present on 64 bit, some |