ChangeSet@1.2136.3.186, 2005-01-03 21:21:57-08:00, zwane@arm.linux.org.uk [PATCH] NX: Fix noexec kernel parameter noexec_setup runs too late to take any effect, so parse it earlier. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.185, 2005-01-03 21:16:56-08:00, heiko.carstens@de.ibm.com [PATCH] s390: SCLP device driver cleanup From: Peter Oberparleiter sclp: core driver cleanup Details: - moved signal shutdown (quiesce) handling into a separate file - cleanup of SCLP core driver: . introduced driver states instead of bits . introduced request retry count and retry limit . sclp_add_request now returns an error code if a request couldn't be started . introduced separate request structure for init_mask requests to simplify code . request timer is now manually checked in sclp_sync_wait because timer interrupts are disabled in this context . removed busy timer - request timer now handles both cases . split up sclp_start_request into __sclp_start_request and sclp_process queue . removed sclp_error_message (unused) . introduced sclp_check_handler function to split up initial init mask test from standard init mask request processing . introduced sclp_deactivate and sclp_reactivate for simplified reboot event handling (and potential use in suspend/resume scenario) . added protection against multiple concurrent init mask calls - minor changes in SCLP core driver: . updated comments . renamed functions to be consistent with "function name starts with __ => needs lock" . renamed internal functions for consistency reasons . introduced inlined helper functions to simplify code . moved EXPORT_SYMBOL definitions next to function definition - changes in sclp console driver . removed callback recursion to prevent stack overflow - changes to CPI module . added check for sclp_add_request return code . changed printks to specify a message level - changes to generic sclp tty layer . removed timed buffer retry after error (timers may not work in some situations) . introduced return code for sclp_emit_buffer - changes to sclp tty driver . removed callback recursion - changes to sclp vt220 driver . removed callback recursion . removed timed buffer retry after error - modified sclp_init_mask to prevent problems with some compiler versions Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.184, 2005-01-03 21:16:43-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DCSS driver cleanup fix From: Carsten Otte - Fix codingstyle. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.183, 2005-01-03 21:16:29-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Character device drivers From: Peter Oberparleiter From: Stefan Bader character device driver changes: - tape: Correct module count usage. - 3270: Use mod_timer only when timer is pending. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.182, 2005-01-03 21:16:16-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DASD driver From: Peter Oberparleiter dasd driver changes: - Modify format analysis routine to use block size provided by on-disk label. - Search data structures when referencing use_diag/ro attribute values. - Correct return code checking when allocating memory. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.181, 2005-01-03 21:16:02-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Network device driver patches From: Ursula Braun-Krahl From: Peter Tiedemann From: Thomas Spatzier From: Frank Pavlic - ctc: make sysfs attribute buffer early available. - ctc: remove memory leak for channel ccw struct. - qeth: remove redundant info card->info.ifname. - qeth: enable recovery with retries in qeth_hardsetup_card after unit check. - qeth: do not allow to set layer2 attribute on IQD devices. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.180, 2005-01-03 21:15:47-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Common I/O layer From: Cornelia Huck common i/o layer changes: - Cope with changed cdev->handler. - Split clearing of subchannels from reipl function and declare it in header. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.179, 2005-01-03 21:15:33-08:00, heiko.carstens@de.ibm.com [PATCH] s390: core patches s390 core changes: - Disable pfault pseudo page faults before stopping a cpu. - Add exception table for diag10 instruction. - Move initialization of active_mm of idle task to smp_create_idle. - Regenerate default configuration. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.178, 2005-01-03 21:15:20-08:00, schwidefsky@de.ibm.com [PATCH] s390: remove compat setup_arg_pages32 Remove the s390 version of setup_arg_pages32 function and use the generic setup_arg_pages function instead. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.177, 2005-01-03 21:15:06-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for the uml block devices. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.176, 2005-01-03 21:14:52-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for uml network driver. Add sysfs support to the uml network driver. Also comment the eth_init function, I think that one is never ever needed as the devices are initialized when the underlying transport mechanism registeres. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.175, 2005-01-03 21:14:36-08:00, kraxel@bytesex.org [PATCH] uml: raise tty limit Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.174, 2005-01-03 21:14:23-08:00, kraxel@bytesex.org [PATCH] uml: fix umldir init order Fixup initialization order when creating the $HOME/.uml/ directory and the files therein, also make the error messages more useful. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.173, 2005-01-03 21:14:09-08:00, kraxel@bytesex.org [PATCH] uml: symbol export export a missing symbol, IIRC xfs needs that one. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.172, 2005-01-03 21:13:54-08:00, jdike@addtoit.com [PATCH] uml: Fix highmem compilation Remove a reference to an unused variable. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.171, 2005-01-03 21:13:41-08:00, jdike@addtoit.com [PATCH] uml: Remove bogus __NR_sigreturn check Before Bodo's signal fixes and my signal delivery rework, it was possible for a process to execute UML code by running the default signal restorer. This is no longer possible, so this check can be removed from the sanity test for UML accidentally tracing itself. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.170, 2005-01-03 21:13:28-08:00, jdike@addtoit.com [PATCH] uml: declare ptrace_setfpregs Add a declaration for ptrace_setfpregs Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.169, 2005-01-03 21:13:13-08:00, jdike@addtoit.com [PATCH] uml: use SYSEMU_SINGLESTEP This implements using the new ptrace option SYSEMU_SINGLESTEP in UML (advanced sysemu) in SKAS and TT modes. To have a fast selection of the appropriate ptrace option to use next, a 2 dimensional arry is used and singlestepping() is modified to return 0,1 or 2: 0 = don't do singlestepping 1 = singlestep a syscall 2 = singlestep a "non syscall" instruction In do_syscall() writing of the syscall number is supressed, if the advanced sysemu is in use (that does it itself). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.168, 2005-01-03 21:12:59-08:00, jdike@addtoit.com [PATCH] uml: detect SYSEMU_SINGLESTEP From: Bodo Stroesser This implements checking for the new ptrace option SYSEMU_SINGLESTEP (advanced sysemu) and allows the values 0,1,2 for /proc/sysemu, if advanced sysemu is available: 0 = don't use sysemu 1 = use sysemu, but don't use advanced sysemu 2 = use sysemu and advanced sysemu Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.167, 2005-01-03 21:12:43-08:00, jdike@addtoit.com [PATCH] uml: fix update_process_times call From: Bodo Stroesser In call to update_process_times() set parameter user correctly. (was from for SKAS). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.166, 2005-01-03 21:12:30-08:00, jdike@addtoit.com [PATCH] uml: correctly restore extramask in sigreturn From: Bodo Stroesser Restoring of current->blocked in sys_sigreturn is wrong. The first (long ) of the mask correctly is fetched from sc->oldmask. The further longs again come from there, but correctly should be taken from frame->extramask. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.165, 2005-01-03 21:12:17-08:00, jdike@addtoit.com [PATCH] uml: SYSEMU fixes From: Bodo Stroesser Usage of SYSEMU in TT mode is modified, so that always the same method is used in do_syscall as has been used before in ptrace(PTRACE_SYSCALL/SYSEMU, ...) Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.164, 2005-01-03 21:12:04-08:00, jdike@addtoit.com [PATCH] uml: Allow vsyscall code to build on 2.4 From: Bodo Stroesser This patch fixes compilation on 2.4 hosts by not relying on macros from 2.6 host kernel headers in one userspace file. It's about AT_SYSINFO_* macros. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.163, 2005-01-03 21:11:51-08:00, jdike@addtoit.com [PATCH] uml: Fix setting of TIF_SIGPENDING From: Bodo Stroesser My older patch, that sets TIF_SIGPENDING after an ptrace-interception in syscall_trace() is wrong. Some syscalls want to be called without any signal pending. If a signal is pending on syscall-entry, they immediately return with -ERESTARTNOINTR. Thus, on return to user, the pending signals can be processed and the kernel will lower eip by 2 to have the syscall restarted after that. Since my change sets TIF_SIGPENDING on the entry and exit interception, stracing such a syscall looped! Try "strace ls" to see what happens. Fix: set TIF_SIGPENDING on the exit interception only. This avoids the loop and is enough for security. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.162, 2005-01-03 21:11:38-08:00, jdike@addtoit.com [PATCH] uml: system call restart fixes From: Bodo Stroesser The implementation of sys_sigreturn() and sys_rt_sigreturn() in UML must be changed. This is necessary, since the return value of sys_*_sigreturn() is the value of eax in the thread, that was interrupted by the signal handler. If accidentaly eax contains -ERESTART_*, orig_eax *must* be -1 to avoid syscall restart processing in kern_do_signal(). If orig_eax is >=0, eip might be lowered by 2, the process will fail. In UML PT_REGS_SYSCALL_NR() or UPT_SYSCALL_NR() have to be used instead of orig_eax. While writing and testing an exploit for this, I saw that for most interrupts, the syscall number is undefined. So even on a return from interrupt a wrong syscall restart handling could happen. And also: UML resumes a process with ptrace(PTRACE_SYSCALL/SYSEMU/SINGLESTEP when a syscall in UML in SKAS mode has been processed. But since there is a valid syscall number in the host's orig_eax, the host could do a wrong syscall restarting if the syscall in UML was a sigreturn() returning -ERESTART* To avoid this, in SKAS -1 should be written to regs.orig_eax before restore_registers(). Signed-off-by: Bodo Stroesser Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.161, 2005-01-03 21:11:23-08:00, jdike@addtoit.com [PATCH] uml: export end_iomem From: Bodo Stroesser some modules need end_iomem to be exported. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.160, 2005-01-03 21:11:10-08:00, jdike@addtoit.com [PATCH] uml: small vsyscall fixes From: Bodo Stroesser As Jeff pointed out, the check for address wrapping in access_ok_skas was wrong. Also, change vsyscall_ehdr and vsyscall_end to be unsigned long and export them, since modules need them for access_ok_skas Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.159, 2005-01-03 21:10:59-08:00, jdike@addtoit.com [PATCH] uml: defconfig update Update defconfig for 2.6.10-rc2-mm4. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.158, 2005-01-03 21:10:46-08:00, jdike@addtoit.com [PATCH] uml: kill host processes properly This patch changes how UML kills ptraced processes in order to be more correct in the presence of the ptrace changes in 2.6.9. It used to be that ptrace stopped processes could simply be killed and they would go away. Now, there's a new run state for ptraced processes which doesn't receive signals until they are PTRACE_KILLed or PTRACE_CONTinued. So, this patch kills the process, as usual, then PTRACE_KILL and PTRACE_CONT. This is done in os_kill_ptrace_process() for use from skas mode, and in tracer() when it sees a child process getting a SIGKILL. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.157, 2005-01-03 21:10:34-08:00, jdike@addtoit.com [PATCH] uml: Add TRACESYSGOOD support From: Bodo Stroesser Patch 1/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. Insert a check for availability and function of ptrace(PTRACE_SETOPTIONS,,,PTRACE_O_TRACESYSGOOD) into the normal ptrace checks at startup. Patch 2/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes SKAS-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in SKAS. Patch 3/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes TT-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in TT. I'm not quite sure, that this patch doesn't cause problems with debugger usage. It should be testet by someone, who has more know how about TT-mode debugger. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.156, 2005-01-03 21:10:21-08:00, jdike@addtoit.com [PATCH] uml: include vsyscall page in core dumps From: Bodo Stroesser Complete the dump with the vsyscall-information, if a vsyscall-page is available. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.155, 2005-01-03 21:10:08-08:00, jdike@addtoit.com [PATCH] uml: make vsyscall page into process page tables From: Bodo Stroesser To make the vsyscall-page available for copy_from_user() and ptrace(), we should use kernel's "gate-vma" mechanism. Therefore we need a valid page structure. To have this, one page (or more) is allocated at boot time, the contents of the vsyscall-page is copied into this page and the page's pte is inserted in swapper's pagetables. Now it will be copied into the pagetables of all processes. Note: this alone doesn't work, since FIXADDR_USER_START and FIXADDR_USER_END are not yet defined correctly. Also access_ok_skas() does not yet grant read accesses to pages not in the normal user area. Risks: Please check the first hunk! I don't know, whether this change is OK. Maybe fixrange_init() is wrong anyway with 3-level-pagetables? Here access_ok_skas() and FIXADDR_USER_XXXX are fixed. Now everything should work fine, while the processes are running. But if a process crashes, the vsyscall-page will not be dumped. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.154, 2005-01-03 21:09:55-08:00, jdike@addtoit.com [PATCH] uml: add elf vsyscall support From: Bodo Stroesser This is the first patch of a series of four. These patches allow the use of sysenter-systemcalls in UML if the host support sysenter. Some facts have to be noted: - the sysenter instruction does not save anything, not even the return address. Thus the host-kernel builds a stackframe with an fixed return address for the backjump to the vsyscall-page. All kernels that support sysenter thus must have a vsyscall-page - The hosts vsyscall-page is visible in all memory-contexts on the host, even in those of the processes running on UML. This cannot be changed. So the best way to implement sysenter is to integrate the host's vsyscall-page into UML, if available. This patch creates a new source file containing an UML initialization function. The function scans the Elf-auxiliary vector that is prepared by the host for relevant information about: - vsyscall elf-header - vsyscall entry - machine type (called "platform", e.g. "i586" or "i686") - hardware capabilities These informations are inserted into the Elf-auxiliary-vector that is generated if an UML process calls "execXX()". If the information from the auxiliray-vector is not complete, UML uses the previos default values, with one exception: if the host has no vsyscall-page, UML now does no longer insert AT_SYSINFO or AT_SYSINFO_EHDR elements. (I think, that's better than writing dummies) Since the host's vsyscall-page is always visible to UML processes, this change is enough to let UML with an i686-compiled glibc use sysenter. what's missing: - is_syscall() in SKAS cannot access the code in the vsyscall-page via copy_from_user(), thus singlesteppers still could break out. (Note: that's not new, if someone jumps willingly to the sysenter-entry in the vsyscall-page, he can do that without the patch, too). - a debugger cannot access the code in the vsyscall-page via ptrace( PEEKTEXT, ...) Risks: could there by any feature of the host's processor, that is indicated in the hardware capabilities, but must not be used in UML? Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.153, 2005-01-03 21:09:42-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: finish fixing run_helper failure path Fix some bugs left in the failure path of run_helper by the previous patch: it was missing one os_close_file(fds[1]) which is conditional. To use the goto handling model, I set the fd to -1 if it's already closed (I don't want to check if keeping one more pipe-end open is no problem). Also do some cosmethic cleanup: * "err" was what we returned even on success, so just use a neutral "ret". * use tabs, not spaces. * a little more comments. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.152, 2005-01-03 21:09:29-08:00, blaisorblade_spam@yahoo.it [PATCH] Uml: first part rework of run_helper() and users. With Jeff Dike , Fixed a file descriptor leak in the network driver when changing an IP address. Fixed the error handling in run_helper. Paolo notes: Actually, this is part one of the change, the exact one extracted from Jeff Dike's incrementals tree before 2.6.9-rc big UML merge. There is some changes must be done, so I'm also sending a second patch with this one, too. Separated for tracking purposes. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.151, 2005-01-03 21:09:16-08:00, kraxel@bytesex.org [PATCH] uml: terminal cleanup This is a major cleanup of the uml terminal drivers and console handling (console as in "where the kernel messages go to", not as in "linux virtual terminals"). The changes in detail: (1) There is a new console driver calles "stderr" which (as the name implies) simply dumps all kernel messages to stderr. That one is registered very early in the boot process via console_initcall() and will print every almost kernel message instantly: Both very early in the boot process and very late in shutdown. Note that this is not enabled by default, see below for details. (2) Ditched the early-console-init hackery in stdio_console.c (open_console(NULL) + related stuff) into the waste basket, not needed any more as you can use the new stderr console driver to get the kernel messages if your kernel crashes very early in the boot process. (3) Handle console initialitation for the uml stdio console and virtual serial lines the normal way using the console->setup() function. Now all kernel messages appear on your console device once it is initialized without any dirty tricks. (4) The (2) changes allow a number of further cleanups: As we don't open a line without a tty_struct any more we can ... * hook struct line into tty->driver_data * pass around tty_struct instead of struct line everythere * get rid of some trivial wrappers in ssl.c and stdio_console.c because we can get struct line via tty_struct all the time now. (5) Change the ordering in the arch/um/drivers/Makefile and thus the link and initialization order to make sure the stdio console and not the virtual serial line is the default console device. (6) Fixed a number of Documentation/CodingStyle issues within the code (not systematically, but usually just the places I was touching anyway or where it bugged me while browsing the code because it was hard to read). Looks like that cleanup also fixed some strange tty issues I've seen in the past (like console getty not responding to input sometimes, suse's /sbin/blogd causing trouble). Finally some usage notes for using the new stderr console: If the stderr console is enabled, then it is the default console device because it registeres very early in the boot process. But as it isn't linked to a tty device this makes init unhappy, you'll see "can't open initial console" error messages. Because you usually don't want that the stderr console is turned off by default. That also maintains the behavior that /dev/tty0 is the first console device registered and thus the default console. There are basically two useful use cases for the stderr console: (1) Your kernel dies before the normal console device is initialized and thus you don't see any messages. Just enable the stderr console to see them by adding "stderr=1" to the kernel command line. (2) You want to have the kernel messages on both stderr and your console terminal device. Try something like this: $ ./linux stderr=1 console=stderr console=ttyS0 ssl0=xterm This example sets up the console on a virtual serial line and pops up an xterm for that. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.150, 2005-01-03 21:09:02-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: add some other pagecache methods This is a follow-up to my previous "hostfs - uml: set .sendfile to generic_file_sendfile" patch. I was asking whether other methods should have been added, and comparing with ext3 I found some more ones. However, I have not specific clues about them: I know they use the pagecache, which relies on *page methods, which are defined by hostfs. So I think it could work. I have a doubt, whether hostfs needs the commented out method below: static struct address_space_operations hostfs_aops = { .writepage = hostfs_writepage, .readpage = hostfs_readpage, /* .set_page_dirty = __set_page_dirty_nobuffers, */ .prepare_write = hostfs_prepare_write, .commit_write = hostfs_commit_write }; Hostfs does not have a underlying device (and I have some rough idea that buffers cache block devices data), so I wonder if that is needed or not. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.149, 2005-01-03 21:08:49-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: set .sendfile to generic_file_sendfile Make hostfs use the generic sendfile implementation. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.148, 2005-01-03 21:08:33-08:00, jdike@addtoit.com [PATCH] uml: unregister signal handlers at reboot From: Bodo Stroesser In most cases reboot failed on my system. After "Restarting system.", UML exited without further messages. I found an SIGIO being processed by sig_handler() resp. sig_handler_common_skas(). Don't know, why this exits, maybe the context is no longer valid at this time. So, I changed the sequence in the reboot part of main() to stop the timers and disable the fds before unblocking the signals. Since this wasn't enough, I also added set_handler(SIGXXX, SIG_IGN) calls to disable_timer() and deactivate_all_fds(). Now reboot works fine in SKAS and it still works in TT. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.147, 2005-01-03 21:08:20-08:00, jdike@addtoit.com [PATCH] uml: free host resources associated with freed IRQs This adds a free_irq_by_irq_and_dev call which was accidentally removed when the UML free_irq was replaced by generic code. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.146, 2005-01-03 21:08:05-08:00, jdike@addtoit.com [PATCH] uml: close host file descriptors properly This process closes some file descriptors which were left open incorrectly. These are the initrd descriptor, the temporary test file used for testing /tmp for execution permission, and a descriptor used by the netork to connect to the switch. In the network case, we add network devices to the opened list as soon as they are added to UML, rather than when they are configured. This ensures that close_devices will remove the device properly on shutdown. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.145, 2005-01-03 21:07:51-08:00, jdike@addtoit.com [PATCH] uml: fix sigreturn to not copy_user under a spinlock Fix sys_sigreturn and sys_rt_sigreturn to avoid calling copy_from_user inside a spinlock. We copy the blocked signal mask into a local sigset_t before the spinlock and then just assign from it inside the lock. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.144, 2005-01-03 21:07:36-08:00, jdike@addtoit.com [PATCH] uml: remove a quilt-induced duplicity This piece appears to have gone in twice. Signed-off-by: Milton Miller Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.143, 2005-01-03 21:07:23-08:00, jdike@addtoit.com [PATCH] uml: unistd.h cleanup From: Chris Wedgewood: this removes unnecessary cruft from unistd.h Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.142, 2005-01-03 21:07:08-08:00, jdike@addtoit.com [PATCH] uml: make restorer match i386 From: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.141, 2005-01-03 21:06:56-08:00, jdike@addtoit.com [PATCH] uml: redo the signal delivery mechanism This patch rips out the old signal delivery mechanism and replaces it with a sane one. Specifically, UML used to capture a host signal frame and use it as a template for its own signal frames. This was a worthy idea, because it promised a degree of architecture-independence for this part of UML, but impractical. There are some environments, notably 32 bit emulation on a 64 bit box, where you can't use the host signal frame as a template for your own. Plus, this code is as complicated, even to someone who understands what it's doing, as the standard fill-in-a-structure-and-write-it-to-the-stack. For everyone else, it is incomprehensible. So, this reimplements signal handling in the way that everyone else does. It gives up on architecture independence, and moves this code into the x86-specific stuff. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.140, 2005-01-03 21:05:26-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix some ptrace functions returns values From: Jeff Dike This patch adds ptrace_setfpregs and makes these functions return -errno on failure. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.139, 2005-01-03 21:05:13-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix __wrap_free comment Reworded the comment about __wrap_free detection of the allocator used to allocate the pointer (it can free a pointer created by either the host malloc(), kmalloc() or vmalloc()). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.138, 2005-01-03 21:05:00-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: remove most devfs_mk_symlink calls Remove uses of devfs_mk_symlink(). We didn't do this before to avoid breaking most user setups, but this patch should be quite harmless. I've excluded the hottest part, i.e. the ubd symlink, while removing the other; I released a end-user tree with this patch and there was a good number of people using the symlink rather than the preferred name. That part will be merged later, I think. Since now we have evidence of less and less users using devfs, we think that it will not cause too much problems. Acked-by: Jeff Dike Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.137, 2005-01-03 21:04:47-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/mmu_context.h This patch updates include/asm-m32r/mmu_context.h. * include/asm-m32r/mmu_context.h: - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.136, 2005-01-03 21:04:34-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/system.h This patch updates include/asm-m32r/system.h. * include/asm-m32r/system.h: - Use barrier() as mb(). - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.135, 2005-01-03 21:04:21-08:00, takata@linux-m32r.org [PATCH] m32r: Use generic hardirq framework This patch is for employing the generic hardirq framework for m32r. Now CONFIG_GENERIC_HARDIRQS is set to Y by default. - Update to use GENERIC_HARDIRQ framework. - Fix PREEMPT_ACTIVE definition (changeset 1.2000.16.20) Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.134, 2005-01-03 21:04:08-08:00, takata@linux-m32r.org [PATCH] m32r: Make kernel headers for mutual exclusion Here is a patch to update kernel headers for mutual exclusion, atomic.h, bitops.h and semaphore.h of m32r. This patch is for making these headers publishable to userland. * include/asm-m32r/assembler.h (M32R_LOCK, M32R_UNLOCK): Define M32R_LOCK and M32R_UNLOCK macros. For SMP configuration, these macros are expanded to m32r's LOCK and UNLOCK instructions. While, for UP configuration, these are simply expanded to m32r's LD(load) and ST(store) instructions, respectively. * include/asm-m32r/atomic.h, include/asm-m32r/bitops.h, include/asm-m32r/semaphore.h: - Change macros from LOAD and STORE to M32R_LOCK and M32R_UNLOCK, respectively. It is because LOAD and STORE are too generic words. - Change inline to __inline__. Retrieve __inline__ modifiers for functions which are placed outside of __KERNEL__ region in these headers, because those functions might be included and used from ISO C program in userland. Currently, it seems that these headers are allowed to be included from userland. Indeed, they are kernel stuff, but these headers provide useful definitions and functions even for userland applications, I think. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.133, 2005-01-03 21:03:55-08:00, takata@linux-m32r.org [PATCH] m32r: Use kmalloc for m32r stacks - Use kmalloc for m32r stacks (cf. changeset 1.1046.533.10) - Update for CONFIG_DEBUG_STACK_USAGE This modification was taken from include/asm-i386/thread_info.h. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.132, 2005-01-03 21:03:42-08:00, takata@linux-m32r.org [PATCH] m32r: include/asm-m32r/thread_info.h minor updates - Use THREAD_SIZE for __ASSEMBLY__ portion. - Update comments. - Fix a typo: user-thead --> user-thread. NOTE: Now there are two THREAD_SIZE definitions in the following patch, one is in C part and the other is in __ASSEMBLY__ part. I'm going to consolidate these THREAD_SIZE definitions. So, I have to change PAGE_SIZE definition of include/asm-m32r/page.h to be includable into asm portion... Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.131, 2005-01-03 21:03:29-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable-2level.h - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. - Remove RCS ID string. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.130, 2005-01-03 21:03:16-08:00, takata@linux-m32r.org [PATCH] m32r: Remove PAGE_USER - Remove _PAGE_USER bit from pte. - The m32r doesn't support _PAGE_USER bit by hardware. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.129, 2005-01-03 21:03:04-08:00, takata@linux-m32r.org [PATCH] m32r: Support PAGE_NONE - Support PAGE_NONE attribute for memory protection. - Add _PAGE_PROTNONE bit to pte (software bit). Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.128, 2005-01-03 21:02:51-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable.h - Change PAGE_*_X to PAGE_*_EXEC for good readability. - Add #include __KERNEL__ - Change __inline__ to inline for the __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.127, 2005-01-03 21:02:38-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up arch/m32r/mm/fault.c - Fix a typo: ACE_USEMODE --> ACE_USERMODE. - Update copyright statement, and so on. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.126, 2005-01-03 21:02:25-08:00, takata@linux-m32r.org [PATCH] m32r: Don't encode ACE_INSTRUCTION in address - To be more comprehensive, keep ACE_INSTRUCTION (access exception on instruction execution) information in thread_info->flags, instead of encoding it into address parameter. Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.125, 2005-01-03 21:02:12-08:00, takata@linux-m32r.org [PATCH] m32r: Cause SIGSEGV for nonexec page execution - Cause a segmentation fault for an illegal execution of a code on non-executable memory page. Signed-off-by: Naoto Sugai Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.124, 2005-01-03 21:01:59-08:00, takata@linux-m32r.org [PATCH] m32r: Update ptrace.c for multithread debugging This patch updates ptrace.c to support multithread debugging. So far, only one breakpoint's location was kept by kernel, however, in the multithreaded application's debug, it is required to kept multi-point breakpoint locations by kernel. In this implementation, maximum number of MAX_TRAPS(=10 (by default)) breakpoint's information will be kept in the "debug_trap" member of the thread_struct for each thread. * include/asm-m32r/processor.h: Modify debug_trap struct to keep multipoint breakpoint locations for multithread debugging. * arch/m32r/kernel/ptrace.c: - Update to support multithread debugging. - Remove unused functions, withdraw_debug_trap_for_signal() and embed_debug_trap_for_signal(). Signed-off-by: Kei Sakamoto Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.123, 2005-01-03 21:01:46-08:00, takata@linux-m32r.org [PATCH] m32r: Support pgprot_noncached() This patch updates include/asm-m32r/pgtable.h to add pgprot_noncached(). It is required to fix a problem of an userspace application, which mmaps io registers. This patch also modifies drivers/video/fbmem.c to support noncachable framebuffer access for m32r. In this routine, pgprot_writecombine() is used hopefully, even though the current m32r never does write-combining or write-coalescing... Please apply this. * include/asm-m32r/pgtable.h (pgprot_noncached, pgprot_writecombine): Newly added. * drivers/video/fbmem.c (fb_mmap): Add m32r support. Signed-off-by: Mamoru Sakugawa Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.122, 2005-01-03 21:01:33-08:00, takata@linux-m32r.org [PATCH] m32r: Add new relocation types to elf.h include/asm-m32r/elf.h: Add relocations R_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_SLO, and R_M32R_GOTOFF_LO. These relocations are required to implement GOTOFF support for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.121, 2005-01-03 21:01:20-08:00, akpm@osdl.org [PATCH] swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix In file included from include/linux/ptrace.h:77, from arch/ppc64/lib/sstep.c:12: include/linux/sched.h: In function `freeze_processes': include/linux/sched.h:1189: warning: no return statement in function returning non-void Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.120, 2005-01-03 21:01:05-08:00, pavel@ucw.cz [PATCH] swsusp: try_to_freeze to make freezing hooks nicer This moves refrigerator changes to sched.h, so that every file user of refrigerator does not have to include suspend.h, and makes refrigerator support easier by introducing try_to_freeze. Adapted from patch by Nigel Cunningham Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.119, 2005-01-03 21:00:51-08:00, pavel@ucw.cz [PATCH] swsusp: Kill O(n^2) algorithm in swsusp Some machines are spending minutes of CPU time during suspend in stupid O(n^2) algorithm. This patch replaces it with O(n) algorithm, making swsusp usable to some people. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.118, 2005-01-03 21:00:38-08:00, pavel@ucw.cz [PATCH] swsusp: Small cleanups This adds statics at few places and fixes stale references to pmdisk. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.117, 2005-01-03 21:00:25-08:00, pavel@ucw.cz [PATCH] swsusp: kill one-line helpers, handle read errors swsusp contains few one-line helpers that only make reading/understanding code more difficult. Also warn the user when something goes wrong, instead of waking machine with corrupt data. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.116, 2005-01-03 21:00:12-08:00, pavel@ucw.cz [PATCH] swsusp: kill unused variable Variable used only for writing is bad idea. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.115, 2005-01-03 20:59:56-08:00, pavel@ucw.cz [PATCH] fix naming in swsusp At few points we still reference to swsusp as "pmdisk"... it might confuse someone not knowing full history. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.114, 2005-01-03 20:59:43-08:00, rmk+lkml@arm.linux.org.uk [PATCH] typeof(dev->power.saved_state) arch/arm/common/sa1111.c: In function `sa1111_suspend': arch/arm/common/sa1111.c:816: warning: assignment from incompatible pointer type This is a rather annoying, and IMHO pointless warning. First question: what is the reasoning for using an array of unsigned bytes here? Are we expecting to power manage devices which only have byte wide registers? In reality, devices have half-word and word sized registers as well, which means that dev->power.saved_state actually points to device specific data (or even device driver specific data) for the device. As such, it makes far more sense for this to be a 'void *'. I'd rather not go around the ARM kernel tree adding pointless casts to 'u8 *' and back again because the wrong type for this was picked in the structure definition, so here's a patch which changes this to void *. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.113, 2005-01-03 20:59:29-08:00, bjorn.helgaas@hp.com [PATCH] ia64: remove HCDP support for early printk This is only used by the ia64 early_printk patch, which isn't in the mainline tree. If anybody is still using that patch, hcdp_early_uart() should be incorporated into it. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.112, 2005-01-03 20:59:13-08:00, spyro@f2s.com [PATCH] arm26: better unistd.h (reimplemented based on arm32) Some long overdue updates to this file. newer macros taken from arm32. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.111, 2005-01-03 20:59:00-08:00, spyro@f2s.com [PATCH] arm26: better put_user macros. Better put_user macro. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.110, 2005-01-03 20:58:49-08:00, spyro@f2s.com [PATCH] arm26: TLB update A keep-it-compiling patch based on the arm32 code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.109, 2005-01-03 20:58:33-08:00, spyro@f2s.com [PATCH] arm26: replace arm32 time handling code with smaller version ARM26 systems only have one possible clock, thus we can merge all this into one source file and drop the ability to dynamically alter it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.108, 2005-01-03 20:58:20-08:00, spyro@f2s.com [PATCH] arm26: update system.h to some semblance of recentness. The arm26 version of this had become horribly out of date. this is a sideways-port of the arm32 version, dropping the unwanted stuff and adjusted for arm26 compatability. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.107, 2005-01-03 20:58:07-08:00, spyro@f2s.com [PATCH] arm26: softirq update New irq exit handler (part of the softirq changes) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.106, 2005-01-03 20:57:54-08:00, spyro@f2s.com [PATCH] arm26: remove shark (arm32) from arm26 Drop shark support from arm26 (shark isn't arm26 based) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.105, 2005-01-03 20:57:41-08:00, spyro@f2s.com [PATCH] arm26: move some files to better locations This diff effects a restructuring of arm26s directory layout. A number of files can now move to more logical locations, since there are no machine specific directories anymore. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.104, 2005-01-03 20:51:11-08:00, spyro@f2s.com [PATCH] arm26: new execve code This pulls in the execve changes made in arm32. Also, drops some old arm32 power management stuff thats no longer relevant in process.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.103, 2005-01-03 20:50:56-08:00, spyro@f2s.com [PATCH] arm26:cleanup trap handling assembly This removes some unneeded definitions and makes the naming used within the file more consistent. Also adds some macros to make it easier to see how the interrupt handler is structured. The assembled output is identical to the original. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.102, 2005-01-03 20:50:42-08:00, spyro@f2s.com [PATCH] arm26: necessary compilation fixes for 2.6.10 Various trivial fixes required to get a clean compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.101, 2005-01-03 20:50:29-08:00, spyro@f2s.com [PATCH] arm26: update comments, headers, notes Add and update comments all throughout the arm26 tree. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.100, 2005-01-03 20:50:15-08:00, spyro@f2s.com [PATCH] arm26 build system updates - Updates to makefiles required by the other changes in this patchset. - Also add some entries to the linker scripts. The linker scripts really ought to be merged into one script but that will have to wait. - Add a comment for building xipImages Update the compiler flags used to build arm26 so gcc 3.4 doesnt barf. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.99, 2005-01-03 20:49:59-08:00, spyro@f2s.com [PATCH] arm26: update the atomic ops Replace the macros for atomic ops and bring arm26 up to current definitions. make the arm26 mm code use the proper macros also. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.98, 2005-01-03 20:49:46-08:00, spyro@f2s.com [PATCH] arm26: remove arm32 cruft This patch drops some more stuff left over from the old combined arm26/32 architecture. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.97, 2005-01-03 20:49:33-08:00, ysato@users.sourceforge.jp [PATCH] H8/300 new systemcall support Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.96, 2005-01-03 20:49:20-08:00, ak@suse.de [PATCH] x86_64: Eliminate some useless printks in ACPI numa.c Eliminate some useless printks in ACPI numa.c They trigger all the time on x86-64 with CONFIG_ACPI_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.95, 2005-01-03 20:49:07-08:00, ak@suse.de [PATCH] x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch Add x86_64 support for Jack Steiner's SLIT sysfs patch Make Jack's code compile on x86-64 and add x86-64 low level support to save the SLIT pointer and a node_distance() implementation. Requires the previous SRAT patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.94, 2005-01-03 20:48:54-08:00, ak@suse.de [PATCH] x86_64: Add SLIT (inter node distance) information to sysfs. Add SLIT (inter node distance) information to sysfs. [This is Jack's patch that he submitted on l-k. I'm submitting it for him because I need it for my x86-64 followon SLIT patch. Hope I don't stomp onto his toes with that one. If you already merged it please ignore] From: Jack Steiner Here is an update patch to externalize the SLIT information. I think I have encorporated all the comments that were posted previously) For example: # cd /sys/devices/system # find . ./node ./node/node5 ./node/node5/distance ./node/node5/numastat ./node/node5/meminfo ./node/node5/cpumap # cat ./node/node0/distance 10 20 64 42 42 22 # cat node/*/distance 10 20 64 42 42 22 20 10 42 22 64 84 64 42 10 20 22 42 42 22 20 10 42 62 42 64 22 42 10 20 22 84 42 62 20 10 Signed-off-by: Jack Steiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.93, 2005-01-03 20:48:43-08:00, ak@suse.de [PATCH] x86_64: Remove unneeded ifdef in hardirq.h Remove unneeded ifdef in hardirq.h I can't see any reason for the #ifdef CONFIG_X86 introduced to the x86_64 hardirq.h as part of the generic irq subsystem changes. Signed-off-by: Adrian Bunk Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.92, 2005-01-03 20:48:28-08:00, ak@suse.de [PATCH] x86_64: Fix EM64T config description Fix EM64T config description From: Xose Vazquez Perez Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.91, 2005-01-03 20:48:15-08:00, ak@suse.de [PATCH] x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. Fix some outdated assumptions that CPU numbers are equal numbers. Depends on the unlimited cpus patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.90, 2005-01-03 20:48:03-08:00, ak@suse.de [PATCH] x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA Fix a warning in the CMP support code for !CONFIG_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.89, 2005-01-03 20:47:50-08:00, ak@suse.de [PATCH] x86_64: Allow to configure more CPUs and nodes. Allow to configure more CPUs and nodes. With clustered mode and AMD's big flat APIC mode there is no reason anymore to limit the max number of CPUs to 8. Increase the limit to 256 for now, which is the current APIC limit. Untested for now. Also increase the max number of nodes to 64. Remove the MAXNODE define and replace it with MAX_NUMNODES everywhere or the constant if the hardware limits the number of nodes. Also remove some obsolete comments. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.88, 2005-01-03 20:47:37-08:00, ak@suse.de [PATCH] x86_64: Export phys_proc_id Export phys_proc_id This is useful for the powernow-k8 driver which needs to know that two CPUs share a die. It cannot use cpu_sibling_map anymore, so this is an alternative. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.87, 2005-01-03 20:47:24-08:00, ak@suse.de [PATCH] x86_64: Always print segfaults for init. Always print segfaults for init. This gives better debugging output when something is really wrong with the kernel. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.86, 2005-01-03 20:47:11-08:00, ak@suse.de [PATCH] x86_64: Add a missing newline in /proc/cpuinfo Add a missing newline in /proc/cpuinfo Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.85, 2005-01-03 20:46:58-08:00, ak@suse.de [PATCH] x86_64: Add a missing __iomem pointed out by Linus. Add a missing __iomem pointed out by Linus. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.84, 2005-01-03 20:46:45-08:00, ak@suse.de [PATCH] x86_64: Scheduler support for AMD CMP Scheduler support for AMD CMP AMD dual core looks like HT but isn't really. Hide it from the scheduler. This works around problems with the domain scheduler. Also probably gives slightly better scheduling and disables SMT nice which is harmful on dual core. We still display it like HT in /proc/cpuinfo. This is to make it appear the same to license managers so that they count dual cores only as a single physical CPU. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.83, 2005-01-03 20:46:32-08:00, ak@suse.de [PATCH] x86_64: Rename HTVALID to CMP_LEGACY Rename HTVALID to CMP_LEGACY AMD renamed the HTVALID CPUID flag to CMP_LEGACY and reverted its meaning. Follow this for /proc/cpuinfo Needed for the followon CMP patches. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.82, 2005-01-03 20:46:17-08:00, ak@suse.de [PATCH] x86_64: Remove debug information for vsyscalls Remove debug information for vsyscalls This helps gdb apparently because it doesn't like code with debugging information before other code (?) Via the kgdb folks. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.81, 2005-01-03 20:46:04-08:00, ak@suse.de [PATCH] x86_64: Allow a kernel debugger to hide single steps in more cases. Allow a kernel debugger to hide single steps in more cases. Apparently helps the kgdb people. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.80, 2005-01-03 20:45:51-08:00, ak@suse.de [PATCH] x86_64: Update uptime after suspend Update uptime after suspend Derived from i386 Adjust jiffies after suspend to keep uptime. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.79, 2005-01-03 20:45:38-08:00, ak@suse.de [PATCH] x86_64: Add SRAT NUMA discovery to x86-64. Add SRAT NUMA discovery to x86-64. Previously the NUMA nodes on Opteron systems were directly read from the hardware registers of the northbridge. This version also supports reading it from the more generic ACPI SRAT table. This allows to support NUMA on all kinds of systems and in general gives more flexibility, but needs a bit of BIOS support. This implementation was not done before because the SRAT specification had a bad license from Microsoft that didn't allow to implement it on other OS. Now that ACPI 3.0 is released and SRAT is part of it that isn't a concern anymore. One side effect of this is that holes not described in SRAT (e.g. usually the 640K DOS and 4GB PCI memory holes) will not included in the nodes and won't get mem_map entries allocated. This may have side effects for some drivers. Some support for handling dual core AMD CPUs is included. SLIT parsing is done in a later patch. Depends on earlier patches to split up the ACPI boot parsing and to add better CMP support on x86-64. Can be disabled with numa=noacpi Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.78, 2005-01-03 20:45:23-08:00, ak@suse.de [PATCH] x86_64: Split ACPI boot table parsing Split ACPI boot table parsing Split ACPI boot table parsing into two parts. First a acpi_boot_table_init() call that initializes the basic ACPI table parsing machinery and discovers the RSDP, and then another call to actually parse the various boot tables. This is needed for a followon patch that implements SRAT support, because nodes need to be set up before the other ACPI tables can be parsed. On x86-64 I moved the early initialization very early because that is needed for the SRAT parser. On i386 it should be a nop. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.77, 2005-01-03 20:45:08-08:00, ak@suse.de [PATCH] x86_64: Handle NX correctly in pageattr Handle NX correctly in pageattr Second attempt to try to fix an long standing NX bug in change_page_attr. Hopefully this version will be better. The kernel text mapping aliases part of the physical memory and needs its caching attributes changed too. But when doing this one has to be very careful to handle the NX bit correctly. A previous slightly different version of this broke the X server on some RH systems. I hope this version will be better, but if you have X server problems please revert this one. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.76, 2005-01-03 20:44:54-08:00, ak@suse.de [PATCH] x86_64: Collected ioremap fixes Collected ioremap fixes - Call change_page_attr correctly - Fix a race during iounmap - Handle mmio holes without mem_map correctly (needed for SRAT patch) - Some cleanups Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.75, 2005-01-03 20:44:39-08:00, ak@suse.de [PATCH] x86_64: Add reboot=force Add reboot=force reboot=force doesn't wait for any other CPUs on reboot. This is useful when you really need a system to reboot on its own. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.74, 2005-01-03 20:44:26-08:00, ak@suse.de [PATCH] x86_64: Remove BIOS reboot code Remove BIOS reboot code Remove the never quite working BIOS reboot code. This gets rid of a lot of code. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.73, 2005-01-03 20:44:13-08:00, ak@suse.de [PATCH] x86_64: Remove duplicated FAKE_STACK_FRAME macro. Remove duplicated FAKE_STACK_FRAME macro. FAKE_STACK_FRAME macro is defined twice. The one that gets used is in arch/x86_64/kernel/entry.S, and is slightly different codewise, although should have the same end result (uses pushq rather than addq %rsp + movq and has the extra dwarf annotations). Signed-off-by: Chris Wright Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.72, 2005-01-03 20:44:00-08:00, ak@suse.de [PATCH] x86_64: Reenable MGA DRI on x86-64 Reenable MGA DRI on x86-64 Has been reported as working. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.71, 2005-01-03 20:43:47-08:00, pbadari@us.ibm.com [PATCH] x86_64: numa_add_cpu() fix Problem is with "c - cpu_data" arthimetic. "c" could be "boot_cpu_data" or "cpu_data". Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.70, 2005-01-03 20:43:34-08:00, ak@suse.de [PATCH] x86_64: Fix bugs in the AMD K8 CMP support code. Fix bugs in the AMD K8 CMP support code. Check the correct cpuid level and move numa_add_cpu to the correct place. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.69, 2005-01-03 20:43:21-08:00, ak@suse.de [PATCH] x86_64: Add a real pfn_valid Add a real pfn_valid This adds a real pfn_valid. Needed together with the SRAT patch which can generated memmap less holes for mmio. In general it will help to handle memory holes better. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.68, 2005-01-03 20:43:08-08:00, prasanna@in.ibm.com [PATCH] x86_64: do_general_protection() retval check This patch adds the return value check for the exception notifiers at do_general_protection as pointed out by Chuck Ebbert. Signed-off-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.67, 2005-01-03 20:42:52-08:00, zwane@linuxpower.ca [PATCH] Intel thermal monitor for x86_64 Patch adds support for notification of overheating conditions on intel x86_64 processors. Tested on EM64T, test booted on AMD64. Hardware courtesy of Intel Corporation Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.66, 2005-01-03 20:42:35-08:00, hpa@zytor.com [PATCH] /proc/sys/kernel/bootloader_type This patch exports to userspace the boot loader ID which has been exported by (b)zImage boot loaders since boot protocol version 2. It is needed so that update tools that update kernels from vendors know which bootloader file they need to update; eg right now those tools do all kinds of hairy heuristics to find out if it's grub or lilo or .. that installed the kernel. Those heuristics are fragile in the presence of more than one bootloader (which isn't that uncommon in OS upgrade situations). Tested on i386 and x86-64; as far as I know those are the only architectures which use zImage/bzImage format. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.65, 2005-01-03 20:42:19-08:00, hpa@zytor.com [PATCH] i386 boot loader IDs This patch adds some i386 boot loader IDs that were used but never officially recorded as assigned. This makes them nice and official. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.64, 2005-01-03 20:42:05-08:00, vgoyal@in.ibm.com [PATCH] Secondary cpus boot-up for non default location built kernels This patch fixes the problem of secondary cpus not coming up over a reboot. This problem was seen when a kernel compiled for non default (16MB) location is booted. Signed-off-by: Vivek Goyal Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.63, 2005-01-03 20:41:53-08:00, haveblue@us.ibm.com [PATCH] remove pfn_to_pgdat() on x86 This function is unused on i386. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.62, 2005-01-03 20:41:40-08:00, hpa@zytor.com [PATCH] Trivial cleanup in arch/i386/kernel/head.S Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.61, 2005-01-03 20:41:26-08:00, zwane@arm.linux.org.uk [PATCH] NX: Triple fault with 4k kernel mappings and PAE Booting with NX, CONFIG_X86_PAE and CONFIG_DEBUG_PAGEALLOC or mem=nopentium triple faults really early during boot as it appears to be tripping over pages from PAGE_OFFSET -> PAGE_OFFSET + 0x100000 not being marked as executable. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.60, 2005-01-03 20:41:13-08:00, zwane@linuxpower.ca [PATCH] Cyrix MII cpuid returns stale %ecx This patch is for the following bug, thanks to Ondrej Zary for reporting, testing and submitting a patch. http://bugzilla.kernel.org/show_bug.cgi?id=3767 It appears that the Cyrix MII won't touch %ecx at all resulting in stale data being returned as extended attributes, so clear ecx before issuing the cpuid. I have also made the capability print code display all the capability words for easier debugging in future. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.59, 2005-01-03 20:41:00-08:00, venkatesh.pallipadi@intel.com [PATCH] x86: remove data-header and code overlap in boot/setup.S The setup.S data and code is not cleanly separated. The current space reserved for setup header is not enough to fit the complete header. As a result, part of the header (EDDBUF) will overwrite the initial code. I haven't seen any negative impact of this bug. As, by the time the setup code is overwritten, we would have finished executing it anyway. But, I think it is better to separate the header and code and prevent this data_overwriting_the_code condition. The atatched patch adds some space in the header to fit all the data listed in Documentation/i386/zero-page.txt for both i386 and x86_64 (and updates zero-page.txt). Signed-off-by:: "Venkatesh Pallipadi" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.58, 2005-01-03 20:40:47-08:00, mbligh@aracnet.com [PATCH] Assign PKMAP_BASE dynamically Badari hit a problem when configuring PAE off (ie CONFIG_4G) where the pkmap area could end up overlapping the fixmap area. For some reason, PKMAP_BASE was defined statically, which seems rather pointless, and asking for trouble. Patch below definines it dynamically, under the fixmap area. The ordering of the VMALLOC_RESERVE space is: FIXADDR_TOP fixed_addresses FIXADDR_START temp fixed addresses FIXADDR_BOOT_START Persistent kmap area PKMAP_BASE VMALLOC_END Vmalloc area VMALLOC_START high_memory Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.57, 2005-01-03 20:40:34-08:00, dhowells@redhat.com [PATCH] IDE_ARCH_OBSOLETE_INIT fix The attached patch fixes the IDE driver to initialise correctly in the case that IDE_ARCH_OBSOLETE_INIT is not defined. Not defining this macro would seem to be the correct thing to do since it includes the word "obsolete" in its name. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.56, 2005-01-03 20:40:21-08:00, dhowells@redhat.com [PATCH] Termio userspace access error handling The attached patch creates a generic set of termio userspace access functions with proper error handling. None of the current archs check for errors in this case. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.55, 2005-01-03 20:40:08-08:00, ananth@in.ibm.com [PATCH] Kprobes: wrapper to define jprobe.entry Here is a patch that adds a wrapper for defining jprobe.entry to make t easy to handle the three dword function descriptors defined by the PowerPC ELF ABI. x86, ppc64 and x86_64 are also updated. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.54, 2005-01-03 20:39:55-08:00, david@gibson.dropbear.id.au [PATCH] ppc64: tweaks to ppc64 cpu sysfs information Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.53, 2005-01-03 20:39:42-08:00, ananth@in.ibm.com [PATCH] ppc64: kprobes implementation Kprobes (Kernel dynamic probes) is a lightweight mechanism for kernel modules to insert probes into a running kernel, without the need to modify the underlying source. The probe handlers can then be coded to log relevent data at the probe point. More information on kprobes can be found at: http://www-124.ibm.com/developerworks/oss/linux/projects/kprobes/ Jprobes (or jumper probes) is a small infrastructure to access function arguments. It can be used by defining a small stub with the same template as the routine in kernel, within which the required parameters can be logged. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.52, 2005-01-03 20:39:27-08:00, a.othieno@bluewin.ch [PATCH] ppc32: Resurrect Documentation/powerpc/cpu_features.txt Documentation/powerpc/cpu_features.txt mysteriously disappeared sometime when 2.5 forked off. Searching through BK logs on linux.bkbits.net didn't reveal anything, unfortunately. The only reference I could pick up from searching the available lkml archives is the 2.4.20-pre11 ChangeLog where this was first merged. Thus far, nothing indicates it was intentionally removed, and AFAICS, is still up to date with the current code. Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.51, 2005-01-03 20:39:14-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix io_remap_page_range for 36-bit phys platforms Fixes io_remap_page_range() to use the 32-bit address translator similar to ioremap(). Someday u64 start/end resources should make this unnecessary. Fixes set_pte() to handle a long long pte_t properly. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.50, 2005-01-03 20:39:01-08:00, mporter@kernel.crashing.org [PATCH] ppc32: add uImage to default targets We'd like to get a uImage when just using 'make' on many targets. After some discussion, it made sense to simply add uImage to the default targets since it adds minimal build overhead and will work on all platforms. Also, fix a dependency in the boot stuff. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.49, 2005-01-03 20:38:48-08:00, minyard@acm.org [PATCH] PPC debug setcontext syscall implementation. Add a debugging interface for PowerPC that allows signal handlers (or any jump to a context, really) to perform debug functions. It allows the a user program to turn on single-stepping, for instance, and the thread will get a trap after executing the next instruction. It can also (on supported PPC processors) turn on branch tracing and get a trap after the next branch instruction is executed. This is useful for in-application debugging. Note that you can enable single-stepping on x86 processors directly from signal handlers. Newer x86 processors have the equivalent of a branch-trace bit in the IA32_DEBUGCTL MSR and could have similar function to this syscall. Most other processors could benefit from a similar interface, except for ARM which is extraordinarily broken for debugging. Future uses of this could be adding the ability to set the hardware breakpoint registers from a signal handler. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.48, 2005-01-03 20:38:35-08:00, mporter@kernel.crashing.org [PATCH] ppc32: remove bogus SPRN_CPC0_GPIO define This trivial patch removes long-standing typo in ibm44x.h. In fact, we already have correct DCRN_CPC0_GPIO define later in the same file. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.47, 2005-01-03 20:38:22-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix ebony.c warnings This patch removes annoying warnings in ebony.c. Fix is similar to one I made in ocotea.c before. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.46, 2005-01-03 20:38:09-08:00, galak@somerset.sps.mot.com [PATCH] Fix prototypes & externs in e500 oprofile support Remove prototypes and externs out of the .c files Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.45, 2005-01-03 20:37:56-08:00, galak@linen.sps.mot.com [PATCH] ppc32: performance Monitor/Oprofile support for e500 Adds oprofile support for the e500 PowerPC core. Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.44, 2005-01-03 20:33:46-08:00, mporter@kernel.crashing.org [PATCH] ppc32: PPC4xx PIC rewrite/cleanup Patch from Eugene to do some cleanup of the PPC4xx PIC code. Separates the interrupts that can have polarity/triggering modified for platform modification if necessary. Between the two of us, it's tested on most of the affected platforms. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.43, 2005-01-03 20:33:32-08:00, rvinson@mvista.com [PATCH] ppc32: add Support for IBM 750FX and 750GX Eval Boards I've added support for the IBM 750FX and 750GX Eval Boards (Chestnut/Buckeye). Signed-off-by: Randy Vinson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.42, 2005-01-03 20:33:18-08:00, mgreer@mvista.com [PATCH] ppc32: support for Artesyn Katana cPCI boards This patch adds support for the Artesyn Katana 750i, 752i, and 3750. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.41, 2005-01-03 20:33:05-08:00, mgreer@mvista.com [PATCH] ppc32: support for Force CPCI-690 board This patch adds support for the Force CPCI-690 cPCI board. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.40, 2005-01-03 20:32:51-08:00, mgreer@mvista.com [PATCH] ppc32: support for Marvell EV-64260[ab]-BP eval platform This patch adds support for a line of evaluation platforms from Marvell that use the Marvell GT64260[ab] host bridges. This patch depends on the Marvell host bridge support patch (mv64x60). Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.39, 2005-01-03 20:32:15-08:00, mgreer@mvista.com [PATCH] ppc32-marvell-host-bridge-support-mv64x60 review fixes Here is an incremental patch [hopefully] with your concerns addressed. Note that the arch/ppc/boot code is not kernel code and only exists for a short period of time before execution jumps to the kernel. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.38, 2005-01-03 20:32:01-08:00, mgreer@mvista.com [PATCH] ppc32: Marvell host bridge support (mv64x60) This patch adds core support for a line of host bridges from Marvell (formerly Galileo). This code has been tested with a GT64260a, GT64260b, MV64360, and MV64460. Patches for platforms that use these bridges will be sent separately. The patch is rather large so a link is provided. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.37, 2005-01-03 20:20:09-08:00, trini@kernel.crashing.org [PATCH] ppc32: Switch to KBUILD_DEFCONFIG The following patch switches ppc32 from using arch/ppc/defconfig to arch/ppc/configs/common_defconfig as a defconfig. These files are supposed to be identical, but always end up out of sync. This also updates the common_defconfig with current options. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.36, 2005-01-03 20:19:56-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: refactor common book-e exception code Moves common handling of InstructionStorage, Alignment, Program, and Decrementer exceptions handlers for Book-E processors (44x & e500) into common code. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.35, 2005-01-03 20:19:43-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: freescale Book-E MMU cleanup Updates the Freescale Book-E MMU usage to match the architecture spec. This is mainly growing the widths of fields in various registers to match the architecture spec instead of the implementation. Signed-off-by: Becky Gill Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.34, 2005-01-03 20:19:30-08:00, gandalf@netfilter.org [PATCH] Fix broken RST handling in ip_conntrack Here's a patch that fixes a pretty serious bug introduced by a recent "bugfix". The problem is that RST packets are ignored if they follow an ACK packet, this means that the timeout of the connection isn't decreased, so we get lots of old connections lingering around until the timeout expires, the default timeout for state ESTABLISHED is 5 days. This needs to go into -bk as soon as possible. The bug is present in 2.6.10 as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.33, 2005-01-03 20:19:17-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error When ipt_registrater_match() fails, ipt_recent doesn't remove its proc entry. Found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.32, 2005-01-03 20:19:04-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove copy_to_user Warnings in Netfilter After changing firewall rules, we try to return the counters to userspace. We didn't fail at that point if the copy failed, but it doesn't really matter. Someone added a warn_unused_result attribute to copy_to_user, so we get bogus warnings. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.31, 2005-01-03 20:18:48-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove IPCHAINS and IPFWADM compatibility We've been threatening to do this for ages: remove the backwards compatibility code. We can now combine ip_conntrack_core.c and ip_conntrack_standalone.c, likewise for the NAT code, but that will come later. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.30, 2005-01-03 20:18:31-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Add comment above remove_expectations in destroy_conntrack() I removed this code in a previous patch, and Patrick McHardy explained what was wrong. Add a comment. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.29, 2005-01-03 20:18:18-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() Several places use ip_ct_selective_cleanup() as a general iterator, which it was not intended for (it takes a const ip_conntrack *). So rename it, and make it take a non-const argument. Also, it missed unconfirmed connections, which aren't in the hash table. This introduces a potential problem for users which expect to iterate all connections (such as the helper deletion code). So keep a linked list of unconfirmed connections as well. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.28, 2005-01-03 20:18:05-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail On failure from register_sysctl_table, we return with exit 0. Oops. init and fini should also be static. nfsim found these. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.27, 2005-01-03 20:17:52-08:00, rusty@rustcorp.com.au [PATCH] netfilter: fix return values of ipt_recent checkentry Peejix's nfsim test for ipt_recent, written two days ago, revealed this bugs with ipt_recent: checkentry() returns true or false, not an error. (Maybe it should, but that's a much larger change). Also, make hash_func() static. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.26, 2005-01-03 20:17:39-08:00, bcasavan@sgi.com [PATCH] TCP hashes: NUMA interleaving Modifies the TCP ehash and TCP bhash to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.25, 2005-01-03 20:17:25-08:00, bcasavan@sgi.com [PATCH] filesystem hashes: NUMA interleaving The following patch modifies the dentry cache and inode cache to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. In general, for each hash, we check at the early allocation point whether hash distribution is enabled, and if so we defer allocation. At the late allocation point we perform the allocation if it was not earlier deferred. These late allocation points are the same points utilized prior to the addition of alloc_large_system_hash to the kernel. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.24, 2005-01-03 20:17:12-08:00, bcasavan@sgi.com [PATCH] alloc_large_system_hash: NUMA interleaving NUMA systems running current Linux kernels suffer from substantial inequities in the amount of memory allocated from each NUMA node during boot. In particular, several large hashes are allocated using alloc_bootmem, and as such are allocated contiguously from a single node each. This becomes a problem for certain workloads that are relatively common on big-iron HPC NUMA systems. In particular, a number of MPI and OpenMP applications which require nearly all available processors in the system and nearly all the memory on each node run into difficulties. Due to the uneven memory distribution onto a few nodes, any thread on those nodes will require a portion of its memory be allocated from remote nodes. Any access to those memory locations will be slower than local accesses, and thereby slows down the effective computation rate for the affected CPUs/threads. This problem is further amplified if the application is tightly synchronized between threads (as is often the case), as they entire job can run only at the speed of the slowest thread. Additionally since these hashes are usually accessed by all CPUS in the system, the NUMA network link on the node which hosts the hash experiences disproportionate traffic levels, thereby reducing the memory bandwidth available to that node's CPUs, and further penalizing performance of the threads executed thereupon. As such, it is desired to find a way to distribute these large hash allocations more evenly across NUMA nodes. Fortunately current kernels do perform allocation interleaving for vmalloc() during boot, which provides a stepping stone to a solution. This series of patches enables (but does not require) the kernel to allocate several boot time hashes using vmalloc rather than alloc_bootmem, thereby causing the hashes to be interleaved amongst NUMA nodes. In particular the dentry cache, inode cache, TCP ehash, and TCP bhash have been changed to be allocated in this manner. Due to the limited vmalloc space on architectures such as i386, this behavior is turned on by default only for IA64 NUMA systems (though there is no reason other interested architectures could not enable it if desired). Non-IA64 and non-NUMA systems continue to use the existing alloc_bootmem() allocation mechanism. A boot line parameter "hashdist" can be set to override the default behavior. The following two sets of example output show the uneven distribution just after boot, using init=/bin/sh to eliminate as much non-kernel allocation as possible. Without the boot hash distribution patches: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3697696 172960 1 3882992 3866656 16336 2 3883008 3866784 16224 3 3882992 3866464 16528 4 3883008 3866592 16416 5 3883008 3866720 16288 6 3882992 3342176 540816 7 3883008 3865440 17568 8 3882992 3866560 16432 9 3883008 3866400 16608 10 3882992 3866592 16400 11 3883008 3866400 16608 12 3882992 3866400 16592 13 3883008 3866432 16576 14 3883008 3866528 16480 15 3864768 3848256 16512 ToT 62097440 61152096 945344 Notice that nodes 0 and 6 have a substantially larger memory utilization than all other nodes. With the boot hash distribution patch: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3789792 80864 1 3882992 3843776 39216 2 3883008 3843808 39200 3 3882992 3843904 39088 4 3883008 3827488 55520 5 3883008 3843712 39296 6 3882992 3843936 39056 7 3883008 3844096 38912 8 3882992 3843712 39280 9 3883008 3844000 39008 10 3882992 3843872 39120 11 3883008 3843872 39136 12 3882992 3843808 39184 13 3883008 3843936 39072 14 3883008 3843712 39296 15 3864768 3825760 39008 ToT 62097440 61413184 684256 While not perfectly even, we can see that there is a substantial improvement in the spread of memory allocated by the kernel during boot. The remaining uneveness may be due in part to further boot time allocations that could be addressed in a similar manner, but some difference is due to the somewhat special nature of node 0 during boot. However the uneveness has fallen to a much more acceptable level (at least to a level that SGI isn't concerned about). The astute reader will also notice that in this example, with this patch approximately 256 MB less memory was allocated during boot. This is due to the size limits of a single vmalloc. More specifically, this is because the automatically computed size of the TCP ehash exceeds the maximum size which a single vmalloc can accomodate. However this is of little practical concern as the vmalloc size limit simply reduces one ridiculously large allocation (512MB) to a slightly less ridiculously large allocation (256MB). In practice machines with large memory configurations are using the thash_entries setting to limit the size of the TCP ehash _much_ lower than either of the automatically computed values. Illustrative of the exceedingly large nature of the automatically computed size, SGI currently recommends that customers boot with thash_entries=2097152, which works out to a 32MB allocation. In any case, setting hashdist=0 will allow for allocations in excess of vmalloc limits, if so desired. Other than the vmalloc limit, great care was taken to ensure that the size of TCP hash allocations was not altered by this patch. Due to slightly different computation techniques between the existing TCP code and alloc_large_system_hash (which is now utilized), some of the magic constants in the TCP hash allocation code were changed. On all sizes of system (128MB through 64GB) that I had access to, the patched code preserves the previous hash size, as long as the vmalloc limit (256MB on IA64) is not encountered. There was concern that changing the TCP-related hashes to use vmalloc space may adversely impact network performance. To this end the netperf set of benchmarks was run. Some individual tests seemed to benefit slightly, some seemed to be harmed slightly, but in all cases the average difference with and without these patches was well within the variabilty I would see from run to run. The following is the overall netperf averages (30 10 second runs each) against an older kernel with these same patches. These tests were run over loopback as GigE results were so inconsistent run to run both with and without these patches that they provided no meaningful comparison that I could discern. I used the same kernel (IA64 generic) for each run, simply varying the new "hashdist" boot parameter to turn on or off the new allocation behavior. In all cases the thash_entries value was manually specified as discussed previously to eliminate any variability that might result from that size difference. HP ZX1, hashdist=0 ================== TCP_RR = 19389 TCP_MAERTS = 6561 TCP_STREAM = 6590 TCP_CC = 9483 TCP_CRR = 8633 HP ZX1, hashdist=1 ================== TCP_RR = 19411 TCP_MAERTS = 6559 TCP_STREAM = 6584 TCP_CC = 9454 TCP_CRR = 8626 SGI Altix, hashdist=0 ===================== TCP_RR = 16871 TCP_MAERTS = 3925 TCP_STREAM = 4055 TCP_CC = 8438 TCP_CRR = 7750 SGI Altix, hashdist=1 ===================== TCP_RR = 17040 TCP_MAERTS = 3913 TCP_STREAM = 4044 TCP_CC = 8367 TCP_CRR = 7538 I believe the TCP_CC and TCP_CRR are the tests most sensitive to this particular change. But again, I want to emphasize that even the differences you see above are _well_ within the variability I saw from run to run of any given test. In addition, Jose Santos at IBM has run specSFS, which has been particularly sensitive to TLB issues, against these patches and saw no performance degredation (differences down in the noise). This patch: Modifies alloc_large_system_hash to enable the use of vmalloc to alleviate boottime allocation imbalances on NUMA systems. Due to limited vmalloc space on some architectures (i.e. x86), the use of vmalloc is enabled by default only on NUMA IA64 kernels. There should be no problem enabling this change for any other interested NUMA architecture. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.23, 2005-01-03 20:16:59-08:00, alex.williamson@hp.com [PATCH] collect page_states only from online cpus I noticed the function __read_page_state() curiously high in a q-tools profile of a write to a software raid0 device. Seems this is because we're checking page_states for all possible cpus and we have NR_CPUS possible when CONFIG_HOTPLUG_CPU=y. The default config for ia64 is now NR_CPUS=512, so on a little 8-way box, this is a significant waste of time. The patch below updates __read_page_state() and __get_page_state() to only count page_state info for online cpus. To keep the stats consistent, the page_alloc notifier is updated to move page_states off of the cpu going offline. On my profile, this dropped __read_page_state() back into the noise and boosted block write performance by 5% (as measured by spew - http://spew.berlios.de). Signed-off-by: Alex Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.22, 2005-01-03 20:16:46-08:00, manfred@colorfullife.com [PATCH] slab: Add more arch overrides to control object alignment Add ARCH_SLAB_MINALIGN and document ARCH_KMALLOC_MINALIGN: The flags allow the arch code to override the default minimum object aligment (BYTES_PER_WORD). Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.21, 2005-01-03 20:16:33-08:00, akpm@osdl.org [PATCH] do_anonymous_page() use SetPageReferenced mark_page_accessed() is more heavyweight than we need: the page is already headed for the active list, so setting the software-referenced bit is equivalent. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.20, 2005-01-03 20:16:19-08:00, miquels@cistron.nl [PATCH] mark_page_accessed() for read()s on non-page boundaries When reading a (partial) page from disk using read(), the kernel only marks the page as "accessed" if the read started at a page boundary. This means that files that are accessed randomly at non-page boundaries (usually database style files) will not be cached properly. The patch below uses the readahead state instead. If a page is read(), it is marked as "accessed" if the previous read() was for a different page, whatever the offset in the page. Testing results: - Boot kernel with mem=128M - create a testfile of size 8 MB on a partition. Unmount/mount. - then generate about 10 MB/sec streaming writes for i in `seq 1 1000` do dd if=/dev/zero of=junkfile.$i bs=1M count=10 sync cat junkfile.$i > /dev/null sleep 1 done - use an application that reads 128 bytes 64000 times from a random offset in the 64 MB testfile. 1. Linux 2.6.10-rc3 vanilla, no streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.22s system 5% cpu 4.456 total 2. Linux 2.6.10-rc3 vanilla, streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.16s system 2% cpu 7.667 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.37s system 1% cpu 23.294 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.99s system 1% cpu 1:11.52 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.21s system 2% cpu 10.273 total 3. Linux 2.6.10-rc3 with read-page-access.patch , streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.21s system 3% cpu 7.634 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.04s user 0.22s system 2% cpu 9.588 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.12s system 24% cpu 0.563 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.13s system 98% cpu 0.163 total As expected, with the read-page-access.patch, the kernel keeps the 8 MB testfile cached as expected, while without it, it doesn't. So this is useful for workloads where one smallish (wrt RAM) file is read randomly over and over again (like heavily used database indexes), while other I/O is going on. Plain 2.6 caches those files poorly, if the app uses plain read(). Signed-Off-By: Miquel van Smoorenburg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.19, 2005-01-03 20:16:04-08:00, haveblue@us.ibm.com [PATCH] make sure ioremap only tests valid addresses When CONFIG_HIGHMEM=y, but ZONE_NORMAL isn't quite full, there is, of course, no actual memory at *high_memory. This isn't a problem with normal virt<->phys translations because it's never dereferenced, but CONFIG_NONLINEAR is a bit more finicky. So, don't do virt_to_phys() to non-existent addresses. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.18, 2005-01-03 20:15:51-08:00, haveblue@us.ibm.com [PATCH] kill off highmem_start_page People love to do comparisons with highmem_start_page. However, where CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at *highmem_start_page. That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and catches the bogus address tranlations. There are about a gillion different ways to find out of a 'struct page' is highmem or not. Why not just check page_flags? Just use PageHighMem() wherever there used to be a highmem_start_page comparison. Then, kill off highmem_start_page. This removes more code than it adds, and gets rid of some nasty #ifdefs in .c files. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.17, 2005-01-03 20:15:37-08:00, Andries.Brouwer@cwi.nl [PATCH] mm: overcommit updates Alan made overcommit mode 2 and it doesnt work at all. A process passing the limit often does so at a moment of stack extension, and is killed by a segfault, not better than being OOM-killed. Another problem is that close to the edge no other processes can be started, so that a sysadmin has problems logging in and investigating. Below a patch that does 3 things: (1) It reserves a reasonable amount of virtual stack space (amount randomly chosen, no guarantees given) when the process is started, so that the common utilities will not be killed by segfault on stack extension. (2) It reserves a reasonable amount of virtual memory for root, so that root can do things when the system is out-of-memory (3) It limits a single process to 97% of what is left, so that also an ordinary user is able to use getty, login, bash, ps, kill and similar things when one of her processes got out of control. Since the current overcommit mode 2 is not really useful, I did not give this a new number. The patch is just for playing, not to be applied by Linus. But, Andrew, I hope that you would be willing to put this in -mm so that people can experiment. Of course it only does something if one sets overcommit mode to 2. The past month I have pressured people asking for feedback, and now have about a dozen reports, mostly positive, one very positive. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.16, 2005-01-03 20:15:21-08:00, andrea@novell.com [PATCH] mempolicy optimisation Some optimizations in mempolicy.c (like to avoid rebalancing the tree while destroying it and by breaking loops early and not checking for invariant conditions in the replace operation). Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.15, 2005-01-03 20:15:08-08:00, linuxram@us.ibm.com [PATCH] Simplified readahead congestion control Reinstate the feature wherein readahead will be bypassed if the underlying queue is read-congersted. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.14, 2005-01-03 20:14:55-08:00, slpratt@austin.ibm.com [PATCH] Simplified readahead With Ram Pai - request size is now passed into page_cache_readahead. This allows the removal of the size averaging code in the current readahead logic. - readahead rampup is now faster (especially for larger request sizes) - No longer "slow read path". Readahead is turn off at first random access, turned back on at first sequential access. - Code now handles thrashing, slowly reducing readahead window until thrashing stops, or min size reached. - Returned to old behavior where first access is assumed sequential only if at offset 0. - designed to handle larger (1M or above) window sizes efficiently Benchmark results: machine 1: 8 way pentiumIV 1GB memory, tests run to 36GB SCSI disk (Similar results were seen on a 1 way 866Mhz box with IDE disk.) TioBench: tiobench.pl --dir /mnt/tmp --block 4096 --size 4000 --numruns 2 --threads 1(4,16,64) 4k request size sequential read results in MB/sec Threads 2.6.9 w/patches %diff diff ChangeSet@1.2136.3.13, 2005-01-03 20:14:42-08:00, nickpiggin@yahoo.com.au [PATCH] mm: teach kswapd about higher order areas Teach kswapd to free memory on behalf of higher order allocators. This could be important for higher order atomic allocations because they otherwise have no means to free the memory themselves. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.12, 2005-01-03 20:14:29-08:00, nickpiggin@yahoo.com.au [PATCH] mm: higher order watermarks Move the watermark checking code into a single function. Extend it to account for the order of the allocation and the number of free pages that could satisfy such a request. From: Marcelo Tosatti Fix typo in Nick's kswapd-high-order awareness patch Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.11, 2005-01-03 20:14:14-08:00, nickpiggin@yahoo.com.au [PATCH] mm: keep count of free areas Keep track of the number of free pages of each order in the buddy allocator. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.10, 2005-01-03 20:14:02-08:00, rjmx@rjmx.net [PATCH] CS461x gameport code isn't being included in build With Cal Peake I've found a typo in drivers/input/gameport/Makefile in kernel 2.6.9 which effectively prevents the CS461x gameport code from being included. Signed-off-by: Ron Murray Signed-off-by: Cal Peake Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.9, 2005-01-03 20:13:49-08:00, akpm@osdl.org [PATCH] vmscan: total_scanned fix We haven't been incrementing local variable total_scanned since the scan_control stuff went in. That broke kswapd throttling. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.8, 2005-01-03 20:13:31-08:00, jack@suse.cz [PATCH] Allow disabling quota messages to console Allow disabling of quota messages to console (they can disturb other output). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.7, 2005-01-03 20:13:18-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: reiserfs Implement quota journaling and quota reading and writing functions for reiserfs. Solves also several other deadlocks possible for reiserfs due to the lock inversion on journal_begin and quota locks. From: Vladimir Saveliev When CONFIG_QUOTA is defined reiserfs's finish_unfinished sets and clears MS_ACTIVE bit in s_flags field of super block. If that bit was set already it should not be set. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.6, 2005-01-03 20:13:03-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext3 Implementation of quota reading and writing functions for ext3. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.5, 2005-01-03 20:12:49-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext2 Implementation of quota reading and writing functions for ext2. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.4, 2005-01-03 20:12:36-08:00, jack@suse.cz [PATCH] quota umount race fix Fix possible races between umount and quota on/off. Finally I decided to take a reference to vfsmount during vfs_quota_on() and to drop it after the final cleanup in the vfs_quota_off(). This way we should be all the time guarded against umount. This way was protected also the old code which used filp_open() for opening quota files. I was also thinking about other ways of protection but there would be always a window (provided I don't want to play much with namespace locks) where vfs_quota_on() could be called while umount() is in progress resulting in the "Busy inodes after unmount" messages... Get a reference to vfsmount during quotaon() so that we are guarded against umount (as was the old code using filp_open()). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.3, 2005-01-03 20:12:24-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: quota core The four patches in this series fix deadlocks with quotas of pagelock (the problem was lock inversion on PageLock and transaction start - quota code needed to first start a transaction and then write the data which subsequently needed acquisition of PageLock while the standard ordering - PageLock first and transaction start later - was used e.g. by pdflush). They implement a new way of quota access to disk: Every filesystem that would like to implement quotas now has to provide quota_read() and quota_write() functions. These functions must obey quota lock ordering (in particular they should not take PageLock inside a transaction). The first patch implements the changes in the quota core, the other three patches implement needed functions in ext2, ext3 and reiserfs. The patch for reiserfs also fixes several other lock inversion problems (similar as ext3 had) and implements the journaled quota functionality (which comes almost for free after the locking fixes...). The quota core patch makes quota support in other filesystems (except XFS which implements everything on its own ;)) unfunctional (quotaon() will refuse to turn on quotas on them). When the patches get reasonable wide testing and it will seem that no major changes will be needed I can make fixes also for the other filesystems (JFS, UDF, UFS). This patch: The patch implements the new way of quota io in the quota core. Every filesystem wanting to support quotas has to provide functions quota_read() and quota_write() obeying quota locking rules. As the writes and reads bypass the pagecache there is some ugly stuff ensuring that userspace can see all the data after quotaoff() (or Q_SYNC quotactl). In future I plan to make quota files inaccessible from userspace (with the exception of quotacheck(8) which will take care about the cache flushing and such stuff itself) so that this synchronization stuff can be removed... The rewrite of the quota core. Quota uses the filesystem read() and write() functions no more to avoid possible deadlocks on PageLock. From now on every filesystem supporting quotas must provide functions quota_read() and quota_write() which obey the quota locking rules (e.g. they cannot acquire the PageLock). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.2, 2005-01-03 20:12:10-08:00, jack@suse.cz [PATCH] Fix reiserfs quota debug messages Attached patch fixes debug messages of quota code in reiserfs so that they compile. Chris Mason agreed the patch. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.3.1, 2005-01-03 20:11:57-08:00, jack@suse.cz [PATCH] Expose reiserfs_sync_fs() Attached patch exposes reiserfs_sync_fs(). This call is needed by the new quota code to write data to disk on quotaoff so that userspace can see them afterwards. Chris Mason agrees with the patch. Make reiserfs provide the sync_fs() function so that the quota code has a way to reliably force a transaction to disk. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136.2.1, 2005-01-03 22:48:10+00:00, mzzhgg@de.rmk.(none) [SERIAL] support for another Rockwell PNP modem From: Lennart Poettering Trivial patch against Linux 2.6.10 which adds PNP support for a certain kind of Rockwell 28.8/ISA modems. ChangeSet@1.2136.1.2, 2005-01-03 18:56:59+00:00, rmk@flint.arm.linux.org.uk [MMC] Remove deprecated data->req Since all users of this have now been eliminated, we can eliminate the element itself. MMC host drivers now operate only on the scatter lists passed to them, rather than needing knowledge of block devices. Signed-off-by: Russell King ChangeSet@1.2136.1.1, 2005-01-03 18:37:35+00:00, drzeus-list@cx.rmk.(none) [MMC] Fix warning in wbsd From: Pierre Ossman Cleanup that fixes a warning in the wbsd module. ChangeSet@1.2141, 2005-01-03 18:28:00+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix some pointer/integer conversion warnings for RiscPC. Signed-off-by: Russell King ChangeSet@1.2140, 2005-01-03 18:07:07+00:00, rmk@flint.arm.linux.org.uk [ARm] Silence a couple of compiler warnings. Signed-off-by: Russell King ChangeSet@1.2139, 2005-01-03 17:02:08+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2342/1: Support PXA SSP configuration changes when port is open Patch from Liam Girdwood This patch allows the PXA SSP port configuration to be changed without the need to close the port. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.2138, 2005-01-03 16:33:30+00:00, rmk@flint.arm.linux.org.uk [ARM] Swap DOMAIN_USER and DOMAIN_KERNEL indicies This changes kernel domains to use domain 0 rather than domain 1, in preparation to supporting supersection mappings. Signed-off-by: Russell King ChangeSet@1.2137, 2005-01-03 16:13:30+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2340/1: Added PXA27x SSP port 3 to kernel io address range Patch from Liam Girdwood This patch adds the PXA27x SSP port 3 configuration register space (Phys 0x41900000) to the kernel memory table. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.2136, 2005-01-02 17:51:04-08:00, nickpiggin@yahoo.com.au [PATCH] ia64 4-level pgtable fix Fix a 4-level page table bug that slipped through (introduced by me, not Andi). Compiles and boots on ia64 and 2-level i386. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2135, 2005-01-02 17:49:03-08:00, torvalds@evo.osdl.org x86 single-step: fix up comments and cleanup. Pretty much all the TF-related comments were stale, and had been for a long time. Fix them up, clean up code. ChangeSet@1.2134, 2005-01-02 17:17:29-08:00, torvalds@ppc970.osdl.org x86 ptrace: remove long stale (and bitrotted) test for PT_DTRACE without PT_PTRACED. Long ago, the "D" in PT_DTRACE meant "Delayed", and it was used as a flag to mark that we had ptrace'd the process but no longer did so. That hasn't been true in a while now, and the flag should probably be renamed, but in the meantime the test for PT_PTRACED being cleared had been corrupted into something totally nonsensical. Pointed out by Andi Kleen. ChangeSet@1.2105.1.1, 2005-01-02 20:27:25+00:00, rmk@flint.arm.linux.org.uk [MMC] Fix UNSTUFF_BITS Quieten down compiler warnings, and fix an off-by-one bug when deciding whether to include the next word. ChangeSet@1.2131, 2005-01-02 11:45:13-08:00, torvalds@evo.osdl.org acpi video device enumeration: fix incorrect device list allocation It didn't allocate space for the final terminating entry, which caused it to overwrite the next slab entry, which in turn sometimes ended up being a slab array cache pointer. End result: total slab cache corruption at a random time afterwards. Very nasty. ChangeSet@1.2130, 2005-01-02 10:49:42-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] diskonchip missing iomem annotations some trivial iomem annotations were still missing Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2129, 2005-01-02 10:49:27-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] pc300 portability fixes local variable used to store flags after spin_lock_irqsave() should be unsigned long, not u32. That should complete the 64bit cleanups in there. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2128, 2005-01-02 10:49:14-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc uaccess annotations - get_user() __gu_val should be unsigned long (same as with i386 patch) - __copy_to_user() et.al. didn't have proper type checking - documented the casts in __copy_tofrom_user() calls with __force. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2127, 2005-01-02 10:47:03-08:00, rusty@rustcorp.com.au [PATCH] Fix cleanup path when sysctl registration fails nfsim gains sysctl support, and sure enough, --failtest uncovered an unregister when the registration had failed. Signed-off-by: Linus Torvalds ChangeSet@1.2126, 2005-01-02 10:46:04-08:00, rusty@rustcorp.com.au [PATCH] Fix proc removal in ip_conntrack_standalone Someone thought it would be clever if proc code ignores removal of non-existent entries. Hence, we missed that /proc/net/stat/ip_conntrack is never removed on module removal or init failure. Found by nfsim. Signed-off-by: Linus Torvalds ChangeSet@1.2125, 2005-01-02 09:49:29-08:00, rddunlap@osdl.org [PATCH] parport_pc: don't mix module parameter styles Somehow parport_pc.c ended up with mixed old-style and new-style module parameters, but mixing them is not allowed. Use module_param() instead of MODULE_PARM() -- cannot be mixed. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2124, 2005-01-02 09:49:16-08:00, wli@holomorphy.com [PATCH] sparc32: fix blank screen problem in cg6.c Although the CG6 framebuffer is detected and initialized, without this patch all it displays is a blank screen. Tested on an Ultra 1 with a TGX+. Originally from Bob Breuer for the CG14. Signed-off-by: Adam Kropelin Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2123, 2005-01-02 09:49:03-08:00, wli@holomorphy.com [PATCH] sparc32: remove conflicting definition of _exit() sparc32 had a conflicting _exit, removed the line from asm- sparc/unistd.h. This is the same change that DaveM made to sparc64 here: http://linux.bkbits.net:8080/linux-2.6/diffs/include/asm- sparc64/unistd.h@1.33 Warning was: In file included from include/linux/unistd.h:9, from init/main.c:45: include/asm/unistd.h:489: warning: conflicting types for built-in function '_exit' Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2122, 2005-01-02 09:48:52-08:00, wli@holomorphy.com [PATCH] sparc32: fix incomplete irqreturn_t sweep in include/asm-sparc/floppy.h Squelch the floppy compile warning: include/asm/floppy.h: In function `sun_fd_request_irq': include/asm/floppy.h:276: warning: passing arg 2 of `request_fast_irq' from incompatible pointer type Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2121, 2005-01-02 09:48:39-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing handling for VM fault codes Fix missing cases for vm fault codes in sparc32 fault handling, and convert the entire file to using symbolic fault codes. This fixes a latent bug where an allocation failure returns to the kernel instead of delivering an error as expected. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2120, 2005-01-02 09:48:26-08:00, wli@holomorphy.com [PATCH] sparc32: fix sbus rtc warnings Add a sparc #ifdef to drivers/char/rtc.c and iomem annotations to drivers/sbus/char/rtc.c Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2119, 2005-01-02 09:48:13-08:00, wli@holomorphy.com [PATCH] sparc32: unused variable in sunsu.c serio is unused except in the #ifdef CONFIG_SERIO paths. To kill the warning, make the declaration conditional on the same. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2118, 2005-01-02 09:48:00-08:00, wli@holomorphy.com [PATCH] sparc32: arch/sparc/kernel/pcic.c iomem annotations arch/sparc/kernel/pcic.c trips numerous warnings due to iomem annotations. This patch adds various needed iomem annotations. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2117, 2005-01-02 09:47:47-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing return value for svr4_setcontext() sparc32 svr4_setcontext() needs to return a value in the SIGSEGV path. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2116, 2005-01-02 09:47:34-08:00, wli@holomorphy.com [PATCH] sparc32: fix initrd memcpy problem The latter hunk of the forwarded patch has already been applied, so please apply the patch as it appears in the un-forwarded part. I've taken some liberties in adding the Acked/Signed-off lines in what I hope is an agreeable way. On Sun, Nov 14, 2004 at 11:16:40PM -0500, Jurij Smakov wrote: > As a followup: I have tried fiddling more with the memcpy() routine. > Insight from Rob Radez and comments in arch/sparc/lib/blockops.S suggest, > that __copy_1page assumes that the memory regions copied are aligned on a > double-word boundary. I have checked, that in the cramfs case it wasn't > true, the destination was not aligned on the double-word boundary. So, I > have implemented a simple workaround (see patch below), which together > with Bob Breuer's iommu.c fix [0] made 2.6.8 kernel to boot on my > machine (SS10 with Ross Hypersparc CPU)! I also confirm, that adding the > suggested fix to the srmmu.c also [1] breaks sunlance on my machine. With > that "fix" the line 'eth0: Memory error, status 88c3, addr 3713ba' is > displayed continuously during boot, when it comes to configuring network > interfaces. The successful patch for me is: Acked-by: William Irwin Acked-by: Dave Miller Signed-off-by: Jurij Smakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2115, 2005-01-02 09:47:21-08:00, wli@holomorphy.com [PATCH] sparc32: sun4d update Chris Newport and Thomas Bogendoerfer have been working to get the sun4d port functional again. This patch updates 2.6.10-rc3 to a current snapshot of their work. It does the following 3 things: (1) add sun4d hook to sbus_bus_ranges_init() (2) fix up pgd_offset() call in sun4d iommu code (3) fix up sun4d's definition of current Signed-off-by: Chris Newport Signed-off-by: Thomas Bogendoerfer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2114, 2005-01-02 09:47:08-08:00, wli@holomorphy.com [PATCH] sparc32: fix hypersparc dvma DVMA is having aliasing problems. Bob originally sent in the following description: At some point in the past, Bob Breuer wrote: > Here's the preliminary patch. This time around, both the hme > and esp drivers are working for me. This replaces my previous > patch and is against the vanilla 2.6.9 kernel. I've tried to > reduce the amount of unnecessary cache flushing, therefore this > will need some testing on non-hypersparc cpus also. It needs > some cleanup yet, and will be rediffed against a later kernel. > I'm looking for comments and feedback. This patch represents one of those subsequent rediffings. Signed-off-by: Bob Breuer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2113, 2005-01-02 09:46:55-08:00, akpm@osdl.org [PATCH] floppy build fix drivers/block/floppy.c: In function `init_module': drivers/block/floppy.c:4598: error: parse error before "UTS_RELEASE" Not sure what went wrong here - just kill the thing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2112, 2005-01-02 09:46:42-08:00, akpm@osdl.org [PATCH] fix inet6_sk for non IPV6 builds again The recent ipv6 "fix" broke the build: security/selinux/avc.c: In function `avc_audit': security/selinux/avc.c:581: warning: implicit declaration of function `inet6_sk' security/selinux/avc.c:581: warning: initialization makes pointer from integer without a cast Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2111, 2005-01-02 09:46:29-08:00, michal@logix.cz [PATCH] Add Michal Ludvig to CREDITS Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2110, 2005-01-02 09:46:16-08:00, michal@logix.cz [PATCH] VIA PadLock compilation fixes This patch contains two fixes for VIA PadLock compilation with GCC 2.95.3 and GCC 3.4.3 (original patch was tested with 3.3.4 only). Signed-off-by: Michal Ludvig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2109, 2005-01-02 09:46:03-08:00, akpm@osdl.org [PATCH] ia64 PTRS_PER_PGD build fix mm/memory.c:1944:6: missing binary operator before token "long" The preprocessor doesn't like the typecast.... PTRS_PER_PGD isn't used in assembly code, so this looks to be safe enough.. This patch helps, but the ia64 build is still broken. There is no implementation of __pmd_alloc(). Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2108, 2005-01-02 09:45:50-08:00, akpm@osdl.org [PATCH] sparc64 pmd_offset() fix mm/memory.c: In function `zeromap_pud_range': mm/memory.c:1053: warning: suggest parentheses around + or - inside shift mm/memory.c: In function `remap_pud_range': mm/memory.c:1170: warning: suggest parentheses around + or - inside shift Parenthesize this macro arg. Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2107, 2005-01-02 09:45:38-08:00, akpm@osdl.org [PATCH] setup_pci.c build fix On sparc64: drivers/ide/setup-pci.c:310: error: `DMA_32BIT_MASK' undeclared (first use in this function) drivers/ide/setup-pci.c:310: error: (Each undeclared identifier is reported only once drivers/ide/setup-pci.c:310: error: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2106, 2005-01-02 09:40:33-08:00, rusty@rustcorp.com.au [PATCH] ipt_ECN corrupt checksum fix Nasty bug, caught while writing the ECN target test. Corrupts checksums of packets when target is used on them. Let this be a warning on the evils of casts. Signed-off-by: Linus Torvalds ChangeSet@1.2105, 2005-01-01 14:02:07-08:00, ak@suse.de [PATCH] convert x86_64 to 4 level page tables Converted to true 4levels. The address space per process is expanded to 47bits now, the supported physical address space is 46bits. Lmbench fork/exit numbers are down a few percent because it has to walk much more pagetables, but some planned future optimizations will hopefully recover it. See Documentation/x86_64/mm.txt for more details on the memory map. Signed-off-by: Andi Kleen Converted to pud_t by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2104, 2005-01-01 14:01:54-08:00, nickpiggin@yahoo.com.au [PATCH] convert ia64 to generic nopud header Convert ia64 architecture over to handle 4 level pagetables. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2103, 2005-01-01 14:01:39-08:00, ak@suse.de [PATCH] convert i386 to generic nopud header i386 works with 2 and 3 levels Signed-off-by: Andi Kleen Converted to use pud_t by Nick Piggin Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2102, 2005-01-01 14:01:24-08:00, nickpiggin@yahoo.com.au [PATCH] introduce fallback header Add a temporary "fallback" header so architectures can run with the 4level patgetables patch without modification. All architectures should be converted to use the folding headers (include/asm-generic/pgtable-nop?d.h) as soon as possible, and the fallback header removed. Make all architectures include the fallback header, except i386, because that architecture has earlier been converted to use pgtable-nopmd.h under the 3 level system, which is not compatible with the fallback header. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2101, 2005-01-01 14:01:09-08:00, ak@suse.de [PATCH] convert Linux to 4-level page tables Extend the Linux MM to 4level page tables. This is the core patch for mm/*, fs/*, include/linux/* It breaks all architectures, which will be fixed in separate patches. The conversion is quite straight forward. All the functions walking the page table hierarchy have been changed to deal with another level at the top. The additional level is called pml4. mm/memory.c has changed a lot because it did most of the heavy lifting here. Most of the changes here are extensions of the previous code. Signed-off-by: Andi Kleen Converted by Nick Piggin to use the pud_t 'page upper' level between pgd and pmd instead of Andi's pml4 level above pgd. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2100, 2005-01-01 14:00:55-08:00, nickpiggin@yahoo.com.au [PATCH] introduce 4-level nopud folding header Generic headers to fold the 4-level pagetable into 3 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2099, 2005-01-01 14:00:42-08:00, nickpiggin@yahoo.com.au [PATCH] replace clear_page_tables with clear_page_range Rename clear_page_tables to clear_page_range. clear_page_range takes byte ranges, and aggressively frees page table pages. Maybe useful to control page table memory consumption on 4-level architectures (and even 3 level ones). Possible downsides are: - flush_tlb_pgtables gets called more often (only a problem for sparc64 AFAIKS). - the opportunistic "expand to fill PGDIR_SIZE hole" logic that ensures something actually gets done under the old system is still in place. This could sometimes make unmapping small regions more inefficient. There are some other solutions to look at if this is the case though. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2098, 2005-01-01 14:00:27-08:00, ak@suse.de [PATCH] split copy_page_range Split copy_page_range into the usual set of page table walking functions. Needed to handle the complexity when moving to 4 levels. Signed-off-by: Andi Kleen Split out from Andi Kleen's 4level patch by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2097, 2005-01-01 14:00:15-08:00, nickpiggin@yahoo.com.au [PATCH] convert i386 to generic nopmd header Adapt the i386 architecture to use the generic 2-level folding header. Just to show how it is done. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2096, 2005-01-01 14:00:01-08:00, nickpiggin@yahoo.com.au [PATCH] generic 3-level nopmd folding header Generic headers to fold the 3-level pagetable into 2 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2095, 2005-01-01 13:59:48-08:00, nickpiggin@yahoo.com.au [PATCH] parentheses to x86-64 macro Add parentheses to x86-64's pgd_index's arguments Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.2094, 2005-01-01 13:47:42-08:00, torvalds@evo.osdl.org x86: single-step over "popf" without corrupting state. This still leaves "pushf" able to see that somebody is single-stepping us, but that is at least something you can work around. ChangeSet@1.2093, 2005-01-01 13:11:08-08:00, torvalds@evo.osdl.org x86: be a lot more careful about TF handling. This should fix Wine for some games that otherwise seem to think that they run under a debugger. ChangeSet@1.2092, 2005-01-01 12:24:01-08:00, torvalds@evo.osdl.org x86: common send_sigtrap helper for debug event SIGTRAP's, and use that for system call single-step events. This one also gets the user mode test right, and makes sure the siginfo is not leaking any stack contents. ChangeSet@1.2091, 2005-01-01 12:21:12-08:00, torvalds@evo.osdl.org Now that sparse looks into asms, fix the fake anti-optimizer cast macro to use the right address space. ChangeSet@1.2089.1.3, 2005-01-01 19:02:55+00:00, rmk@flint.arm.linux.org.uk [ARM] Remove static mapping for RTC on Integrator/AP ChangeSet@1.2089.1.2, 2005-01-01 18:08:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Update Integrator RTC driver. This updates the Integrator RTC driver to use the ARM common RTC interface, and converts the driver to behave as a standard AMBA peripheral driver. ChangeSet@1.2089.1.1, 2005-01-01 16:29:07+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2338/1: IXP465 and IXDPG465 header file updates Patch from Deepak Saxena Update IXP4xx header files with new registers for IXP46x CPU family. Replaces 2306/1 Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2090, 2005-01-01 23:20:59+11:00, airlied@starflyer.(none) drm: core changes broke i810/830 Reported by Joseph Fannin during -mm, revert incorrect change. Signed-off-by: Dave Airlie ChangeSet@1.2089, 2004-12-31 18:36:38+11:00, airlied@starflyer.(none) drm: make reclaim_buffers take dev argument Allow drivers to override reclaim_buffers in an OS-independent way by passing drm_device_t* as first parameter, like in the BSD version. From: Felix Kuehling Signed-off-by: Dave Airlie ChangeSet@1.2088, 2004-12-31 18:24:53+11:00, airlied@starflyer.(none) drm: use spin_lock_init instead of SPIN_LOCK_UNLOCKED From: Jon Smirl Signed-off-by: Dave Airlie ChangeSet@1.2087, 2004-12-31 18:18:54+11:00, airlied@starflyer.(none) drm: correct historic mis-attribution of copyright From: Keith Withwell Signed-off-by: Dave Airlie ChangeSet@1.2086, 2004-12-31 18:15:21+11:00, airlied@starflyer.(none) Make 1-bit fields be unsigned (no sign bit :). sparse complains about them: drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed bitfield drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit signed bitfield Signed-off-by: Randy Dunlap Signed-off-by: Dave Airlie ChangeSet@1.2081.1.1, 2004-12-31 12:46:36+11:00, airlied@starflyer.(none) drm: Use wbinvd macro instead of assembly for it, From: Stefan Dirsch Signed-off-by: Dave Airlie ChangeSet@1.2078.1.13, 2004-12-31 00:26:38+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2307/1: Add IXP46x and IXDPG465 implementation Patch from Deepak Saxena Patch adds implementation details for IXP46x CPUs and new IXDPG465 reference platform. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2078.1.12, 2004-12-31 00:20:31+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2339/1: Don't mask IRQ_STATUS with IXP2000_VALID_IRQ_MASK Patch from Deepak Saxena Supersedes 2226/1 According to the IXP Programmer's Reference Manual, a read from IRQ_STATUS can only return '1' for IRQ sources that have been explicitly enabled in IRQ_ENABLE. So if we never enable 'invalid' IRQ sources, we don't actually have to mask off IRQ_STATUS with IXP2000_VALID_IRQ_MASK. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2078.1.11, 2004-12-31 00:14:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Add missing end of comment. ChangeSet@1.2083, 2004-12-30 15:23:01-08:00, torvalds@ppc970.osdl.org Merge bk://bart.bkbits.net/ide-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2082, 2004-12-30 15:21:16-08:00, acme@conectiva.com.br [PATCH] Fix net/core/sock.o build failure This fixes a build failure that happens when you don't select IPV6. Signed-off-by: Linus Torvalds ChangeSet@1.2034.118.11, 2004-12-30 22:40:35+01:00, bzolnier@trik.(none) [patch] Intel ICH7 DID's, PIRQ and PATA support From: Jason Gaston This patch adds the Intel ICH7 DID's to the pci_ids.h file and updates the piix driver and related files for PATA support. bart: this patch also adds PIRQ support Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.10, 2004-12-30 20:29:23+01:00, bzolnier@trik.(none) [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} - nothing clever here: the most noticeable change is the change of returned value for (*init_setup) in struct ide_pci_device_s which goes from void to int. Anything else is editing and checking for errors in the output of the compiler; - pci_disable_device() added for the error path in pci_init_sgiioc4(); - BUG() removed in amd74xx_probe(): good old printk() is enough. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.9, 2004-12-30 20:16:30+01:00, bzolnier@trik.(none) [ide] propagate the error status in ide_pci_enable/ide_setup_pci_controller - no need to overwrite the status code returned by the pci_xyz() functions; - jump into the new century and use DMA_32BIT_MASK; - misc cleanup in the error paths. It should not add a huge value in ide_pci_enable() due to the FIXME comment but it should not bite too hard either. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.8, 2004-12-30 20:08:53+01:00, bzolnier@trik.(none) [ide] clean up error path in do_ide_setup_pci_device() ide_setup_pci_controller() puts the device in a PCI enabled state. The patch adds a small helper to balance it when things go wrong. Actually the helper does not *exactly* balance the setup: if it can not do a better job, ide_setup_pci_controller() may only enable some BARS whereas the new counterpart will try to disable everything. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.7, 2004-12-30 19:26:14+01:00, bzolnier@trik.(none) [ide] propagation of error code in PCI IDE setup - Change the return value and the prototype of do_ide_setup_pci_device Due to lack of appropriate return status code, the current clients of do_ide_setup_pci_device() can not distinguish a failing invocation from a successfull one. The patch modify do_ide_setup_pci_device() so that it can propagate some of the errors from the lower layers. - Make ide_setup_pci_device() aware of the change and propagate the news itself. I only gave a quick sight to create_proc_ide_interfaces() (and ide_remove_proc_entries()) but they do seem sane and it should not matter if it fails or not. - ide_setup_pci_devices(): mostly the same thing than ide_setup_pci_device(). do not look trivially suspect. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.6, 2004-12-30 19:07:00+01:00, bzolnier@trik.(none) [ide] fix return codes in the generic PCI IDE driver From: Alan Cox This patch updates ide/pci/generic.c to fix the incorrect returns causing PCI devices to be left reserved wrongly by the driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.5, 2004-12-30 19:00:56+01:00, bzolnier@trik.(none) [ide] it8172: incorrect return from it8172_init_one() From: Alan Cox Several IDE drivers return positive values as errors in the PCI setup code. Unfortunately the PCI layer considers positive values as success so the driver skips the device but still claims it and things then go downhill. This fixes the IT8172 driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2078.1.10, 2004-12-29 17:32:38-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] i386 uaccess annotations get_user() stores result in a local variable that later gets cast to integer or pointer type. The proper type for that is unsigned long. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2034.118.4, 2004-12-29 23:21:55+01:00, bzolnier@trik.(none) [ide] fix cleanup_module() in ide.c DMA should be already released by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.3, 2004-12-29 23:11:22+01:00, bzolnier@trik.(none) [ide] ide-proc: kill destroy_proc_ide_interfaces() /proc interface entries should be already unregistered by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2078.1.8, 2004-12-29 21:00:56+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2327/1: Thumb ld/st alignment fault fixups Patch from George G. Davis Adds support for Thumb ld/st alignment fault fixups via conversion of Thumb ld/st instruction forms into equivalent ARM instructions and reusing ARM alignment fault handler for Thumb instructions. This implementation was inspired by and initially based on the algorithm found in gdb/sim/arm/thumbemu.c. I've backed out the silly 'T' suffix on PC in this version as requested by RMK. At this point, I prefer to avoid making any of the other changes discussed, e.g. dump_instr() for bad instruction cases, in order to get the basic Thumb support change committed. Thanks! Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.2078.1.7, 2004-12-29 20:39:53+00:00, tony@com.rmk.(none) [ARM PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The highlights of the patch are: - Add OMAP board specific low-level init functions for smc91x Ethernet - DMA audio functions by Nishant Menon - Remove references to OMAP specific serial.h This is an updated version of ARM patch 2331/1 with extra comments added to the omap_get_dma_src_pos() and omap_get_dma_dst_pos() functions as recommended by RMK. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.2078.2.15, 2004-12-29 10:43:28-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_addr ->cfg_addr is an iomem pointer; annotated as such, setup_indirect_pci() cleaned up. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.14, 2004-12-29 10:43:15-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - openpic Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.13, 2004-12-29 10:43:02-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - gg2 gg2_pci_config_base is an iomem pointer. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.12, 2004-12-29 10:42:49-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_data struct pci_controller ->cfg_data annotated as iomem pointer; users modified accordingly... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.11, 2004-12-29 10:42:36-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] av7110_hw __user annotations fix Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.10, 2004-12-29 10:42:23-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] dib3000 portability fix size_t is %zd, not %d... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.9, 2004-12-29 10:42:10-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] tda80xx.c portability fix should include asm/irq.h, not linux/irq.h Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.8, 2004-12-29 10:41:57-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] more isa-ectomy switch to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.7, 2004-12-29 10:41:44-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] hotplug NULL noise removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.6, 2004-12-29 10:41:31-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc io.h annotations * prototypes converted to standard ones * bunch of useless casts killed in ioread*/iowrite* Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.5, 2004-12-29 10:41:18-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] x86_64 io.h annotations x86-64 memcpy_toio(), memcpy_fromio(), memset_io() and read{b,w,l,q}(), switched to standard prototypes. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.4, 2004-12-29 10:41:06-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] cinergy __user annotations __user annotations in new code. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.3, 2004-12-29 10:40:52-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] mxser annotations and compile fixes a) __user annotations b) NULL noise removals c) added missing ifdef CONFIG_PCI around the loop over mxser_pcibrds during init. d) declaration of CMSPAR in case if it had been undefined moved up prior to the first use Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.2, 2004-12-29 10:40:39-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] zatm fix Repairs the breakage introduced in gcc4 fixes. Original had expanded to ((struct zatm_dev *)(dev)->dev_data) = zatm_dev; and that's what gcc4 had complained about (cast-as-lvalue). Proper fix is, of course, dev->dev_data = zatm_dev; What we have in 2.6.10 is dev = (struct atm_dev *)zatm_dev; which doesn't cause complaints, but doesn't do anything good (leak + corruption at the very least). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.2.1, 2004-12-29 10:40:24-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] affs headers cleanup kernel-only stuff moved from affs headers in include/linux to fs/affs/affs.h; includes in fs/affs/*.c sanitized. That's the patch that had been ACKed by Roman + move of function-like macros from amigaffs.h (also ACKed) + removal of ancient #if 0'ed junk from declaration of affs_inode_info (spotted and suggested by Roman). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2078.1.6, 2004-12-29 15:41:46+00:00, tony@com.rmk.(none) [ARM PATCH] 2329/1: Update Kconfig for OMAP processor options Patch from Tony Lindgren Updates processor specific Kconfig options for OMAP Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.2078.1.5, 2004-12-29 15:36:14+00:00, tony@com.rmk.(none) [ARM PATCH] 2328/1: ARM Kconfig updates for OMAP leds Patch from Tony Lindgren ARM Kconfig updates for OMAP leds Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.2078.1.4, 2004-12-29 15:30:34+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2326/1: Fix IXP2000 timer implementation Patch from Deepak Saxena This patch fixes two issues with the IXP2000 timer implementation: - We currently to not account for lost timer interrupts - We currently do not check for rollover within gettimeoffset() Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2078.1.3, 2004-12-29 15:25:09+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2325/1: Cleanup IXP2000 reset handling Patch from Deepak Saxena On IXDP2801 we need to write a magic sequence to the CPLD to ensure a full system reset instead of just CPU reset. Also cleanup some comments and copyrights while we are in here. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2078.1.2, 2004-12-29 15:20:01+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants Patch from George G. Davis Convert ARM proc files to use manifest constants defined in pgtable.h and domain.h. This is a prelude to allow renumbering domains. The domain renumbering is required to implement support for ARMv6 MMU super sections where domain 0 is implied. Although this is technically only required for ARMv6, it seemed reasonable to clean up all proc files while here. I did a test build with and without this patch applied and confirmed that all proc file binaries are unchanged when this patch is applied. Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.2078.1.1, 2004-12-29 15:02:36+00:00, tony@com.rmk.(none) [ARM PATCH] 2332/1: OMAP update 1/2: Include files Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The patch mostly contains minor fixes and extra register definitions by various OMAP developers. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.2079, 2004-12-28 23:28:15-08:00, drm.adm@bkbits.net Merge bkbits.net:/repos/l/linux/linux-2.5 into bkbits.net:/repos/d/drm/drm-2.6 ChangeSet@1.2034.118.2, 2004-12-28 22:05:31+01:00, bzolnier@trik.(none) [ide] serverworks: add support for CSB6 RAID From: Alan Cox The ServerWorks chips include a RAID variant that the 2.6 driver didn't support. This enables support for this and removes a pile of #if and other pointless obfuscations. This removes the need to use various vendor binary only drivers for CSB6 RAID. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.118.1, 2004-12-28 20:35:01+01:00, bzolnier@trik.(none) [ide] add "ide=nodma" to documentation Here's a quick patch to add the currently-undocumented ide=nodma option to the Documentation/ide.txt file. Since the code does not mark this option as obsolete as far as I can see, I can only assume that it should be in the documentation Signed-off-by: Vadim Lobanov Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2034.115.4, 2004-12-27 22:45:18-08:00, davem@nuts.davemloft.net [SPARC64]: Include infiniband driver config and update defconfig. Signed-off-by: David S. Miller ChangeSet@1.2034.115.3, 2004-12-27 22:30:04-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/ib-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.2034.117.24, 2004-12-27 22:26:29-08:00, roland@topspin.com [INFINIBAND]: InfiniBand MAINTAINERS entry Add OpenIB maintainers information to MAINTAINERS. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.23, 2004-12-27 22:25:37-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand Documentation files Add files to Documentation/infiniband that describe the tree under /sys/class/infiniband, the IPoIB driver and the userspace MAD access driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.22, 2004-12-27 22:24:37-08:00, roland@topspin.com [INFINIBAND]: Document InfiniBand ioctl use Add the 0x1b ioctl magic number used by ib_umad module to Documentation/ioctl-number.txt. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.21, 2004-12-27 22:23:44-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB userspace MAD support Add a driver that provides a character special device for each InfiniBand port. This device allows userspace to send and receive MADs via write() and read() (with some control operations implemented as ioctls). All operations are 32/64 clean and have been tested with 32-bit userspace running on a ppc64 kernel. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.20, 2004-12-27 22:22:21-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB multicast and partition code Add functions for handling IPoIB multicast and multiple partitions. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.19, 2004-12-27 22:21:15-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver Add a driver that implements the (IPoIB) IP-over-InfiniBand protocol. This is a network device driver of type ARPHRD_INFINIBAND (and addr_len INFINIBAND_ALEN bytes). The ARP/ND implementation for this driver is not completely straightforward, because InfiniBand requires an additional path lookup be performed (through an IB-specific mechanism) after a remote hardware address has been resolved. We are very open to suggestions of a better way to handle this than the current implementation. Although IB has a special multicast group join mode intended to support IP multicast routing (non member join), no means to identify different multicast styles has yet been determined, so all joins by the driver are currently full member joins. We are looking for guidance in how to solve this. The IPoIB protocol/encapsulation is described in the Internet-Drafts http://www.ietf.org/internet-drafts/draft-ietf-ipoib-architecture-04.txt http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.18, 2004-12-27 22:19:47-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv6 support Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB hardware addresses, and add support for autoconfiguration for devices with type ARPHRD_INFINIBAND. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Nitin Hande Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.17, 2004-12-27 22:18:50-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv4 multicast Add ip_ib_mc_map() to convert IPv4 multicast addresses to IPoIB hardware addresses. Also add so INFINIBAND_ALEN has a home. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.16, 2004-12-27 22:17:23-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (MAD) Add MAD (management datagram) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.15, 2004-12-27 22:16:33-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) Add code for remaining InfiniBand objects (address vectors, multicast groups, memory regions and protection domains) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.14, 2004-12-27 22:15:37-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) Add CQ (completion queue) and QP (queue pair) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.13, 2004-12-27 22:14:43-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) Add device initializaton code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.12, 2004-12-27 22:13:44-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (EQ) Add event queue code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.11, 2004-12-27 22:12:48-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) Add firmware command processing code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.10, 2004-12-27 22:11:50-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) Add midlayer interface code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.9, 2004-12-27 22:10:49-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver Add a low-level driver for Mellanox MT23108 and MT25208 HCAs. The MT25208 is only fully supported when in MT23108 compatibility mode; only the very beginnings of support for native MT25208 mode (required for HCAs without local memory) is present. (As a side note, I believe this driver would be the first in-tree consumer of the PCI MSI/MSI-X API) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.8, 2004-12-27 22:09:20-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support Add support for sending queries to the SA (Subnet Administration). In particular the PathRecord and MCMember (multicast group member) used by the IP-over-InfiniBand driver are implemented. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.7, 2004-12-27 22:07:43-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD SMI support Add MAD layer SMI (Subnet Management Interface) code. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.6, 2004-12-27 22:06:34-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) Add MAD layer private implementation headers. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.5, 2004-12-27 22:05:25-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support Add support for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. This is required for an SM (subnet manager) to discover and configure the host, since the SM's query MADs must be passed to the local SMA (subnet management agent). In addition, this support is used by upper level protocols to send queries to and receive responses from the SM. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.4, 2004-12-27 22:03:33-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) Add public headers for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.3, 2004-12-27 22:02:08-08:00, roland@topspin.com [INFINIBAND]: Hook up drivers/infiniband Add the appropriate lines to drivers/Kconfig and drivers/Makefile so that the kernel configuration and build systems know about drivers/infiniband. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.2, 2004-12-27 21:58:49-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support Add implementation of core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.117.1, 2004-12-27 21:57:29-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support (public headers) Add public headers for core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.2034.115.2, 2004-12-27 21:30:55-08:00, davem@nuts.davemloft.net Merge bk://kernel.bkbits.net/acme/connection_sock-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.2034.116.34, 2004-12-27 21:26:00-08:00, tgraf@suug.ch [PKT_SCHED]: dsmark should ignore ECN bits Taking ECN bits into account doesn't make sense. The two bits were still unused at the time the code was written so this brings back the old behaviour. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.2034.116.33, 2004-12-27 21:25:02-08:00, oleg@tv-sign.ru [NET]: Use prefetching in skb_queue_walk(). This patch changes skb_queue_walk() in the same manner as in list_for_each() prefetch optimization, see http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587 Signed-off-by: Oleg Nesterov Signed-off-by: David S. Miller ChangeSet@1.2034.116.32, 2004-12-27 21:12:16-08:00, davem@nuts.davemloft.net [LLC]: llc_sap_list_lock really does need to be exported. For the case where CONFIG_LLC2 is modular and thus llc_proc.c needs to get at this symbol. Signed-off-by: David S. Miller ChangeSet@1.2034.116.31, 2004-12-27 21:08:40-08:00, davem@nuts.davemloft.net [SPARC64]: Fix typo in previous change, s/IS_SOCK/S_ISSOCK/ Signed-off-by: David S. Miller ChangeSet@1.2034.116.30, 2004-12-27 21:04:56-08:00, davem@nuts.davemloft.net [IRDA]: More staticization becomes possible in ircomm_ttp.c Signed-off-by: David S. Miller ChangeSet@1.2034.116.29, 2004-12-27 20:55:17-08:00, matthew@wil.cx [SPARC64]: Stop referencing i_sock directly. Use S_ISSOCK() instead. Signed-off-by: Matthew Wilcox Signed-off-by: David S. Miller ChangeSet@1.2034.116.28, 2004-12-27 20:54:03-08:00, juhl-lkml@dif.dk [IRDA]: Kill useless parens from return statements in irnet.h Signed-off-by: Jesper Juhl Signed-off-by: David S. Miller ChangeSet@1.2034.116.27, 2004-12-27 20:52:34-08:00, bunk@stusta.de [IPVS]: Remove subscribers-only mailing list from MAINTAINERS. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.26, 2004-12-27 20:51:40-08:00, bunk@stusta.de [PKT_SCHED]: Staticize and other cleanups. The patch below contans the following possible cleanups: - make some needlessly global code static - sch_htb.c: #undef HTB_DEBUG Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.25, 2004-12-27 20:50:34-08:00, bunk@stusta.de [RXRPC]: Staticize and remove unused globals and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global function: - transport.c: rxrpc_clear_transport - remove the following unneeded EXPORT_SYMBOL: - rxrpc_syms.c: rxrpc_call_flush Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.24, 2004-12-27 20:49:18-08:00, bunk@stusta.de [ROSE]: Staticize and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.23, 2004-12-27 20:48:19-08:00, bunk@stusta.de [NETROM]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.22, 2004-12-27 20:46:42-08:00, bunk@stusta.de [LLC]: Staticize and remove unnecessary functions and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - lc_c_ac.c: llc_conn_ac_report_status - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_set_f_flag_p - llc_c_ev.c: llc_conn_ev_conn_resp - llc_c_ev.c: llc_conn_ev_rst_resp - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy - llc_c_ev.c: llc_conn_ev_any_tmr_exp - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received - llc_if.c: llc_build_and_send_reset_pkt - llc_pdu.c: llc_pdu_decode_cr_bit - remove the following unneeded EXPORT_SYMBOL: - llc_core.c: llc_sap_list_lock Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.21, 2004-12-27 20:45:07-08:00, bunk@stusta.de [IRDA]: Staticize and remove unnecessary exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - discovery.c: irlmp_find_device - ircomm/ircomm_param.c: ircomm_param_flush - irda_device.c: irda_device_set_dtr_rts - irda_device.c: irda_device_change_speed - irda_device.c: irda_device_set_mode - iriap.c: iriap_getinfobasedetails_request - iriap.c: iriap_getinfobasedetails_confirm - iriap.c: iriap_getobjects_request - iriap.c: iriap_getobjects_confirm - iriap.c: iriap_getvalue - irlan_client.c: irlan_client_reconnect_data_channel - irlap_frame.c: irlap_send_frmr_frame - irlmp.c: irlmp_status_request - remove the follwong unused global variables: - irnet/irnet_ppp.c: irnet_ppp_ops - irsysctl.c: sysctl_compression - qos.c: #ifndef CONFIG_IRDA_DYNAMIC_WINDOW irlap_requested_line_capacity Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.20, 2004-12-27 20:34:31-08:00, kaber@trash.net [IPV4]: Let people know where to obtain the ss tool from. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller ChangeSet@1.2034.116.19, 2004-12-27 19:50:18-08:00, bunk@stusta.de [IPV4]: Staticize and remove unneeded exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - fib_rules.c: fib_rules_map_destination - xfrm4_policy.: xfrm4_fini - remove the following unneeded EXPORT_SYMBOL: - tcp_timer.c: tcp_timer_bug_msg Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.18, 2004-12-27 18:54:21-08:00, bunk@stusta.de [IPX]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.17, 2004-12-27 18:49:21-08:00, bunk@stusta.de [IPVS]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.16, 2004-12-27 18:41:46-08:00, bunk@stusta.de [AF_PACKET]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.15, 2004-12-27 18:40:25-08:00, bunk@stusta.de [NETLINK]: Staticize and remove unused functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.14, 2004-12-27 18:38:23-08:00, bunk@stusta.de [AF_NET]: Mark pfkey_table static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.13, 2004-12-27 18:36:20-08:00, bunk@stusta.de [NET]: Mark eth_header_parse static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.12, 2004-12-27 18:33:52-08:00, bunk@stusta.de [XFRM]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.11, 2004-12-27 18:32:23-08:00, bunk@stusta.de [X25]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.10, 2004-12-27 18:30:49-08:00, bunk@stusta.de [AF_UNIX]: Mark needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.9, 2004-12-27 18:29:36-08:00, bunk@stusta.de [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.8, 2004-12-27 18:25:23-08:00, bunk@stusta.de [NET]: No need to export sock_readv_writev Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.7, 2004-12-27 18:24:18-08:00, bunk@stusta.de [AX25]: Staticize functions, and remove unused global function. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.6, 2004-12-27 18:23:16-08:00, bunk@stusta.de [APPLETALK]: Make some code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.2034.116.5, 2004-12-27 18:18:32-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/sunrpcgss_syms.c Signed-off-by: David S. Miller ChangeSet@1.2034.116.4, 2004-12-27 18:15:09-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/svcauth_des.c Signed-off-by: David S. Miller ChangeSet@1.2034.116.3, 2004-12-27 18:12:59-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/gss_pseudoflavors.c Signed-off-by: David S. Miller ChangeSet@1.2034.116.2, 2004-12-27 18:08:07-08:00, chas@cmf.nrl.navy.mil [ATM]: small atm cleanups (from Adrian Bunk ) Signed-off-by: Chas Williams Signed-off-by: David S. Miller ChangeSet@1.2034.116.1, 2004-12-27 18:06:57-08:00, tgraf@suug.ch [PKT_SCHED]: Validate policer configuration TLVs. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.2034.115.1, 2004-12-27 23:57:10-02:00, acme@conectiva.com.br [INET] move inet_sock into inet_opt and rename it to inet_sock With this we can remove all the cut'n'pasted layouts in all inet_sock derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller ChangeSet@1.2034.114.5, 2004-12-27 15:41:28-05:00, stkn@gentoo.org [libata] add #include (fixes 2.4 alpha build) ChangeSet@1.2034.114.3, 2004-12-27 15:29:14-05:00, albertcc@tw.ibm.com [libata] verify ATAPI DMA for a given request is OK After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot work reliably with specific request buffer sizes under ATAPI DMA mode. Detailed test result: 4096, 2048, 1024, 512, 256: OK 384, 257, 255, 128, 96, 64, 32: failed (irq lost) It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. Attached please find the patch to fix the pdc2027x ATAPI DMA problem. Changes: 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " when the the command is received. 2. ATAPI DMA is off by default if the callback function is not provided by the driver If the callback function is not provided by the driver, the ATAPI DMA should be as is. The ATAPI DMA is already controlled by dev->flags. BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, not impacting libata core . Signed-off-by: Albert Lee ChangeSet@1.2034.114.2, 2004-12-27 15:24:53-05:00, albertcc@tw.ibm.com [libata] PIO error handling improvement Tested burning CD-RW with libata-dev-2.6 and cdrecord: 1. ATAPI DMA mode - tested OK 2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device. After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error. However, the error is not handled by ata_pio_task(). Attached please find the patch for ata_pio_task() error handling for your review. (The patch is against the libata-dev-2.6 tree. ) Changes in the patch: 1. End the PIO task when PIO_ST_IDLE state is entered 2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error() 3. Remove the first "if" statement to handle the error condition returned from ata_pio_block(), ata_pio_complete() and ata_pio_poll(). Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state after the error condition is handled. The change just saves a function call to queue_work(). Tested OK on on my machine with pdc20275 and ASUS CD-RW drive. Signed-off-by: Albert Lee ChangeSet@1.2034.114.1, 2004-12-27 15:22:51-05:00, albertcc@tw.ibm.com [libata] use PIO mode for request sense Signed-off-by: Albert Lee ChangeSet@1.2034.113.3, 2004-12-27 15:13:29-05:00, bunk@stusta.de [PATCH] drivers/char/hw_random.c: make a variable static Signed-off-by: Jeff Garzik ChangeSet@1.2034.113.2, 2004-12-27 15:13:16-05:00, james4765@verizon.net [PATCH] hw_random: Minor cleanup to hw_random.c Clean up in drivers/char/hw_random.c: Make debug #defines a little easier to understand. Small whitespace cleanup. Change some printk()'s into pr_info()'s. Add KERN_ constant to debug printk(). Signed-off-by: James Nelson Signed-off-by: Jeff Garzik ChangeSet@1.2034.78.130, 2004-12-27 10:28:42-08:00, torvalds@ppc970.osdl.org Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2034.78.129, 2004-12-27 10:24:28-08:00, arjan@infradead.org [PATCH] drivers/acpi/ibm_acpi.o .init.text refers to .exit.text the ibm_acpi.c driver references acpi_ibm_exit() from it's __init function, which means the exit function isn't allowed to be __exit since __exit functions are not part of vmlinux while __init functions are. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.128, 2004-12-27 10:21:04-08:00, torvalds@ppc970.osdl.org Merge bk://linux-voyager.bkbits.net/mca-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2034.78.127, 2004-12-27 10:19:24-08:00, torvalds@ppc970.osdl.org Revert duplicate AC97 id's. They were already there, properly sorted too. ChangeSet@1.2034.61.42, 2004-12-27 10:06:23-06:00, jejb@mulgrave.(none) SCSI: fix compile warning in fc transport class CC [M] drivers/scsi/scsi_transport_fc.o drivers/scsi/scsi_transport_fc.c: In function `fc_stat_show': drivers/scsi/scsi_transport_fc.c:634: warning: long long unsigned int format, long unsigned int arg (arg 4) To us %llx on a 64 bit platform we have to cast u64 to unsigned long long. Signed-off-by: James Bottomley ChangeSet@1.2034.61.41, 2004-12-27 09:52:25-06:00, jejb@mulgrave.(none) SCSI: Add FC transport host attributes From: James.Smart@Emulex.Com This patch updates the fc_transport with attributes for local FC ports (e.g. Hosts). The port attributes are defined per HBAAPI v2.0 definitions. This patch results in the following in /sys/class: ----------------------------------------------------- [jsmart@elxware class]$ cd /sys/class [jsmart@elxware class]$ ls fc_host graphics misc pci_bus scsi_host usb_host fc_transport input net scsi_device tty vc firmware mem netlink scsi_generic usb [jsmart@elxware class]$ cd fc_host [jsmart@elxware fc_host]$ ls host4 [jsmart@elxware fc_host]$ cd host4 [jsmart@elxware host4]$ ls device host_port_maxframe_size host_port_supported_speeds host_fabric_name host_port_name host_port_symbolic_name host_link_down_tmo host_port_speed host_port_type host_node_name host_port_state host_tgtid_bind_type host_port_active_fc4s host_port_supported_classes statistics host_port_id host_port_supported_fc4s [jsmart@elxware host4]$ ls -ld * lrwxrwxrwx 1 root root 0 Oct 13 18:24 device -> ../../../devices/platform/host4 -r--r--r-- 1 root root 4096 Oct 13 18:24 host_fabric_name -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_link_down_tmo -r--r--r-- 1 root root 4096 Oct 13 18:24 host_node_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_active_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_id -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_maxframe_size -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_speed -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_state -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_classes -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_speeds -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_symbolic_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_type -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_tgtid_bind_type drwxr-xr-x 2 root root 0 Oct 13 18:24 statistics Using the following script (/tmp/show_attributes): #!/bin/sh FILES=`ls *` for file in $FILES; do if [ -f $file ] ; then echo "$file : " `cat $file` fi done Here's a sample of querying the attributes: [jsmart@elxware /]$ cd /sys/class/fc_host/host4 [jsmart@elxware host4]$ /tmp/show_attributes host_fabric_name : 0x33334444ffeeddcc host_link_down_tmo : 30 host_node_name : 0x78563412aabbccdd host_port_active_fc4s : hex: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f host_port_id : 0x789abc host_port_maxframe_size : 2511 bytes host_port_name : 0xefcdab9011223344 host_port_speed : 2 Gbit host_port_state : Online host_port_supported_classes : Class 2, Class 3 host_port_supported_fc4s : hex: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f host_port_supported_speeds : 2 Gbit, 4 Gbit, 10 Gbit host_port_symbolic_name : LP9052 Dual Port Adapter host_port_type : NPort (fabric via point-to-point) host_tgtid_bind_type : wwpn (World Wide Port Name) Signed-off-by: James Bottomley ChangeSet@1.2034.61.40, 2004-12-27 09:13:20-06:00, sleddog@us.ibm.com [PATCH] ibmvscsi: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Originally submitted to linux-scsi by the janitors, and resubmitted by boutcher (after testing :-) Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Dave Boutcher Signed-off-by: James Bottomley ChangeSet@1.2034.112.3, 2004-12-27 10:58:39+00:00, dvrabel@com.rmk.(none) [ARM PATCH] 2323/1: Expand IXP4XX_WATCHDOG config help text Patch from David Vrabel Expand the IXP4XX_WATCHDOG (IXP4xx internal watchdog) config option help text with a note about its ineffectiveness. Signed-off-by: David Vrabel Signed-off-by: Russell King ChangeSet@1.2034.112.2, 2004-12-27 10:53:36+00:00, catalin.marinas@com.rmk.(none) [ARM PATCH] 2322/1: Enable ARM922T configuration option for Integrator Patch from Catalin Marinas This patch enables the ARM922T configuration option for the Integrator platforms (there is an Excalibur core module available). Signed-off-by: Catalin Marinas Signed-off-by: Russell King ChangeSet@1.2034.112.1, 2004-12-27 10:48:52+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2264/1: Move platform-specific code out of entry-armv.S Patch from Deepak Saxena This patch borrows from the uclinux source where they have moved the per-platform code for get_irqnr_and_base, disable_fiq, and irq_prio_table out of entry-armv.S. However, instead of putting the macros in arch/arm/mach-$(MACHINE)/entry-header.S, we just have it in the machine's incdir. This means we don't need the extra complexity of creating symlink at build time. The patch also removes the irq_prio_table as a requirement for all machines and makes it specific to IOC/IOMD machines. This patch drastically shrinks entry-armv.S and allows us to delete and add machines without having to touch generic code (there were two dead machines laying around in entry-armv.S). Tested on IXP4xx and test-built for just about every defconfig. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2034.78.126, 2004-12-27 04:31:00-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/janitor into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2034.78.125, 2004-12-27 04:29:21-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/misc into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2034.78.123, 2004-12-27 04:26:39-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/viro-eth1 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2034.78.119, 2004-12-26 22:20:57-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Early ALI watchdog support Originally submitted by Mike Waychison in August but apparently lost. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.118, 2004-12-26 22:20:44-08:00, alan@lxorguk.ukuu.org.uk [PATCH] quiet scsi ioctls warnings SCSI ioctls can ask for a lot of memory and fail. We don't need to vomit in the log file for this case. Again taken from the Red Hat minor patches applied for FC3. Original-patch: Arjan van de Ven Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.117, 2004-12-26 22:20:32-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Paul Laufer CREDITS address update Paul Laufer informed the list that he had changed address and his change of address had been ignored so CREDITS was still wrong although other files had been updated. Fix this. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.116, 2004-12-26 22:20:19-08:00, alan@lxorguk.ukuu.org.uk [PATCH] make microcode text less confusing Red Hat got some confused customers due to this message. The confused user case is when they update the BIOS and all of a sudden we have "no suitable data" yet we did before. We (Arjan van de Ven) thus changed it to "No new microcode" which is much much clearer. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.115, 2004-12-26 22:20:06-08:00, alan@lxorguk.ukuu.org.uk [PATCH] i810 more AC97 tunings Add some more funky AC97 knowledge to the intel8x0 driver. These come from Red Hat and its partners and are included in our shipping code. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.2034.78.114, 2004-12-26 22:15:27-08:00, torvalds@ppc970.osdl.org Merge bk://linux-dj.bkbits.net/agpgart into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2034.111.2, 2004-12-26 22:14:57-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/s2io into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2034.111.1, 2004-12-26 22:13:59-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/r8169 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2034.78.112, 2004-12-25 13:54:06-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/net-2.6.11 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.2034.78.111, 2004-12-24 13:26:21-08:00, torvalds@ppc970.osdl.org Linux 2.6.10 Merry Christmas everyone. Ho ho ho! TAG: v2.6.10