Summary of changes from v2.6.9-rc2 to v2.6.9-rc3 ============================================ input: Add 64-bit compatible ioctls for hiddev. Cset exclude: dtor_core@ameritech.net|ChangeSet|20040510063935|25419 input: An attempt at fixing locking in i8042.c and serio.c input: Fix an oops in poll() on uinput. Thanks to Dmitry Torokhov for suggesting the fix. input: Make atomicity and exclusive access to variables explicit in atkbd.c, using bitops. Signed-off-by: Vojtech Pavlik input: Return 0 from uinput poll if device isn't yet created. Signed-off-by: Vojtech Pavlik input: Explicit variable access rules for psmouse.c, using bitops. input: Add reporting of raw scancodes to atkbd.c Signed-off-by: Vojtech Pavlik input: Use raw events generated by atkbd in keyboard.c to implement true rawmode for PS/2 keyboards. Signed-off-by: Vojtech Pavlik input: Fixes in serio locking. We need per-serio lock for passthrough ports, some locks were missing, and spin_lock_irq was wishful thinking in serio_interrupt. There is no guarantee that serio_interrupt won't be called twice at the same time. Signed-off-by: Vojtech Pavlik input: Disable the AUX LoopBack command in i8042.c on Compaq ProLiant 8-way Xeon ProFusion systems, as it causes crashes and reboots on these machines. DMI data is used for determining if the workaround should be enabled. Signed-off-by: Vojtech Pavlik input: Make atkbd.c's atkbd_command() function immune to keys being pressed and scancodes coming from the keyboard while it's executing. Signed-off-by: Vojtech Pavlik input: More locking improvements (and a fix) for serio. This merges both my and Dmitry's changes. Signed-off-by: Vojtech Pavlik input: Add a missong dmi_noloop declaration in i8042.c Signed-off-by: Vojtech Pavlik Cset exclude: dtor_core@ameritech.net|ChangeSet|20040510063935|25419 Input: logips2pp - do not call get_model_info 2 times Signed-off-by: Dmitry Torokhov input: Move CONFIG_USB_HIDDEV a little lower in hiddev.h, to fix compilation breakage when it is not defined. Signed-off-by: Vojtech Pavlik input: Make hardware rawmode optional for AT-keyboards, and check for rawmode bits in keyboard.c Signed-off-by: Vojtech Pavlik input: Add a missing extern i8042_dmi_loop. Signed-off-by: Vojtech Pavlik input: Fix boundary checks for GUSAGE/SUSAGE in hiddev. Signed-off-by: Vojtech Pavlik input: From: Andrew Zabolotny - Implement the 'raw' touchscreen protocol for backward compatibility (/dev/input/ts[0-7] now speaks the protocol of the old /dev/h3600_ts, and the /dev/input/tsraw[0-7] speaks the protocol of the old /dev/h3600_tsraw device). - Support the ioctls for setting the calibration parameters. The default calibration matrix is computed from the xres,yres parameters (duplicate the old behaviour), however this is not enough for a good translation from touchscreen space to screen space. - Fixed a old bug in tsdev: on a pen motion event X1,Y1 -> X2,Y2 the driver would output three events with coordinates: X1,Y1, X2,Y1, X2,Y2. This happened not only with coordinates, but with pressure too. - Update James's email address - Remove mention of Transvirtual Technologies: they no longer exist. Signed-off-by: Vojtech Pavlik Input: mousedev - better handle button presses when under load Signed-off-by: Dmitry Torokhov Input: mousedev - implement tapping for touchpads working in absolute mode, such as Synaptics Signed-off-by: Dmitry Torokhov input: Remove OSB4/Profusion hack in i8042, as it's handled by DMI blacklist now. Signed-off-by: Vojtech Pavlik Input: rearrangements and cleanups in serio.c Signed-off-by: Vojtech Pavlik input: Fix bad struct hidinput initialization in hid-tmff.c Signed-off-by: Vojtech Pavlik input: Remove an extra dmi_noloop declaration in i8042.c Signed-off-by: Vojtech Pavlik input: Enhancements/fixes for PSX pad support: * Adds support for more than one controller. Previously more than one controller was initialized and the docs said they worked, but only one was actually read. * Removes unnecessary detection on initialization. This allows the module to be initialized without controllers plugged in (hot swapping controllers works). This removes a warning if the user has an unrecognized controller plugged in, but the only unrecognized controller I have been able to find information about online is the PSX mouse, which I've never actually seen. * Adds a GC_DDR option value to have direction presses register as buttons instead of axes. Allows the module to be used for Dance Dance Revolution emulators like Stepmania. * Adds psx_* to documentation. Signed-off-by: Vojtech Pavlik input: when probing for ImExPS/2 mice, the ImPS/2 sequence needs to be sent first, but the result should be ignored. Signed-off-by: Vojtech Pavlik input: Fix array overflows in keyboard.c when KEY_MAX > keycode > NR_KEYS > 128. Signed-off-by: Vojtech Pavlik input: Add Dell SB Live! PCI ID to the emu10k1-gp driver. Reported-by: Francisco Moraes Signed-off-by: Vojtech Pavlik input: Add Audigy LS PCI ID to emu10k1-gp.c Signed-off-by: Vojtech Pavlik input: Add CodeMercs IOWarrior to hid-core device blacklist. Signed-off-by: Vojtech Pavlik input: Fix Peter Nelson's e-mail address in gamecon.c Signed-off-by: Vojtech Pavlik Input: make connect and disconnect methods mandatory for serio drivers since that's where serio_{open|close} are called from to actually bind driver to a port. Signed-off-by: Dmitry Torokhov Input: rename serio->driver to serio->port_data in preparation to sysfs integration Signed-off-by: Dmitry Torokhov Input: more renames in serio in preparations to sysfs integration - serio_dev -> serio_driver - serio_[un]register_device -> serio_[un]register_driver Signed-off-by: Dmitry Torokhov Input: switch to dynamic (heap) serio port allocation in preparation to sysfs integration. By having all data structures dynamically allocated serio driver modules can be unloaded without waiting for the last reference to the port to be dropped. Signed-off-by: Dmitry Torokhov Input: allow serio drivers to create children ports and register these ports for them in serio core to avoid having recursion in connect methods. Signed-off-by: Dmitry Torokhov Input: serio sysfs integration Signed-off-by: Dmitry Torokhov Input: allow users manually rebind serio ports, like this: echo -n "psmouse" > /sys/bus/serio/devices/serio0/driver echo -n "atkbd" > /sys/bus/serio/devices/serio1/driver echo -n "none" > /sys/bus/serio/devices/serio1/driver echo -n "reconnect" > /sys/bus/serio/devices/serio1/driver echo -n "rescan" > /sys/bus/serio/devices/serio1/driver Signed-off-by: Dmitry Torokhov Input: allow marking some drivers (that don't do HW autodetection) as manual bind only. Such drivers will only be bound to a serio port if user requests it by echoing driver name into port's sysfs driver attribute. Signed-off-by: Dmitry Torokhov Input: Add serio_raw driver that binds to serio ports and provides unobstructed access to the underlying serio port via a char device. The driver tries to register char device 10,1 (/dev/psaux) first and if it fails goes for dynamically allocated minor. To bind use sysfs interface: echo -n "serio_raw" > /sys/bus/serio/devices/serioX/driver Signed-off-by: Dmitry Torokhov Input: link serio ports to their parent devices in ambakmi, gscps2, pcips2 and sa1111ps2 drivers Signed-off-by: Dmitry Torokhov input: Fix Kconfig so that the joydump module can be compiled. Reported-by: Matthieu Castet Signed-off-by: Vojtech Pavlik input: Move Compaq ProLiant DMI handling (ServerWorks/OSB workaround) to i8042.c. Signed-off-by: Vojtech Pavlik This patch fixes another disconnect oops in hiddev. hid-core calls hiddev_disconnect() when the underlying device goes away (hot unplug or system shutdown). Normally, hiddev_disconnect() will clean up nicely and return to hid-core who then frees the hid structure. However, if the corresponding hiddev node is open at disconnect time, hiddev delays the majority of disconnect work until the device is closed via hiddev_release(). hiddev_release() calls hiddev_cleanup() which proceeds to dereference the hid struct which hid-core freed back when the hardware was disconnected. Oops. To solve this, we change hiddev_disconnect() to deregister the hiddev minor and invalidate its table entry immediately and delay only the freeing of the hiddev structure itself. We're protected against future operations on the fd since the major fops check hiddev->exists. There may still be an ordering of events that causes a problem but I can no longer reproduce any manually. There are enough different subsystems and object lifetimes interacting here that I may have screwed something else up; review is certainly welcome. Signed-off-by: Adam Kropelin Signed-off-by: Vojtech Pavlik [Power Mgmt] Make pmdisk dependent on swsusp. [Power Mgmt] Remove duplicate relocate_pagedir() from pmdisk. - Expose and use version in swsusp. [Power Mgmt] Remove more duplicate code from pmdisk. - Use read_swapfiles() in swsusp and rename to swsusp_swap_check(). - Use lock_swapdevices() in swsusp and rename to swsusp_swap_lock(). [Power Mgmt] Share variables between pmdisk and swsusp. - In pmdisk, change pm_pagedir_nosave back to pagedir_nosave, and pmdisk_pages back to nr_copy_pages. - Mark them, and other page count/pagedir variables extern. - Make sure they're not static in swsusp. - Remove mention from include/linux/suspend.h, since no one else needs them. [Power Mgmt] Merge first part of image writing code. - Introduce helpers to swsusp - swsusp_write_page(), swsusp_data_write() and swsusp_data_free(). - Delete duplicate copies from pmdisk and fixup names in calls. - Clean up write_suspend_image() in swsusp and use the helpers. [Power Mgmt] Consolidate code for allocating image pages in pmdisk and swsusp - Move helpers calc_order(), alloc_pagedir(), alloc_image_pages(), enough_free_mem(), and enough_swap() into swsusp. - Wrap them all with a new function - swsusp_alloc(). - Fix up pmdisk to just call that. - Fix up suspend_prepare_image() to call that, instead of doing it inline. [Power Mgmt] Consolidate page count/copy code of pmdisk and swsusp. - Split count_and_copy_data_pages() into count_data_pages() and copy_data_pages(). - Move helper saveable() from pmdisk to swsusp, and update to work with page zones. - Get rid of uneeded defines in pmdisk. [swsusp] Add helper suspend_finish, move common code there. - Move call out of assembly-callbacks and into software_suspend() after do_magic() returns. [Power Mgmt] Consolidate pmdisk and swsusp low-level handling. - Split do_magic into swsusp_arch_suspend() and swsusp_arch_resume(). - Clean up based on pmdisk implementation - Only save registers we need to. - Use rep;movsl for copying, rather than doing each byte. - Create swsusp_suspend and swsusp_resume wrappers for calling the assmebly routines that: - Call {save,restore}_processor_state() in each. - Disable/enable interrupts in each. - Call swsusp_{suspend,restore} in software_{suspend,resume} - Kill all the do_magic_* functions. - Remove prototypes from linux/suspend.h - Remove similar pmdisk functions. - Update calls in kernel/power/disk.c to use swsusp versions. [Power Mgmt] Remove arch/i386/power/pmdisk.S [Power Mgmt] Fix up call in kernel/power/disk.c to swsusp_suspend(). [Power Mgmt] Consolidate pmdisk and swsusp early swap access. - Move bio helpers to swsusp. - Convert swsusp to use them, rathen buffer_heads. - Expose and fix up calls in pmdisk. - Clean up swsusp::read_suspend_image() a bit. [Power Mgmt] Merge pmdisk/swsusp image reading code. - Create swsusp_data_read() and call from read_suspend_image() in both swsusp and pmdisk. - Mark swsusp_pagedir_relocate() as static again. [Power Mgmt] Merge swsusp and pmdisk info headers. - Move definition of struct pmdsik_info to power.h and rename to struct swsusp_info. - Kill struct suspend_header. - Move helpers from pmdisk into swsusp: init_header(), dump_info(), write_header(), sanity_check(), check_header(). - Fix up calls in pmdisk to call the right ones. - Clean up swsusp code to use helpers; delete duplicates. [swsusp] Fix nasty bug in calculating next address to read from. - The bio code already does this for us.. [Power Mgmt] Merge pmdisk and swsusp signature handling. - Move struct pmdisk_header definition to swsusp and change name to struct swsusp_header. - Statically allocate one (swsusp_header), and use it during mark_swapfiles() and when checking sig on resume. - Move check_sig() from pmdisk to swsusp. - Wrap with swsusp_verify(), and move check_header() there. - Fix up calls in pmdisk and swsusp. - Make new wrapper swsusp_close_swap() and call from write_suspend_image(). - Look for swsusp_info info in swsusp_header.swsusp_info, instead of magic location at end of struct. [Power Mgmt] Merge pmdisk and swsusp pagedir handling. This embodies the core of the swsusp->pmdisk cleanups. Instead of using the ->dummy variable at the end of each pagedir for a linked list of the page dirs, this uses a static array, which is kept in the empty space of the swsusp header. There are 768 entries, and could be scaled up based on the size of the page and the amount of room remaining. 768 should be enough anyway, since each entry is a swp_entry_t to a page-length array of pages. With larger systems and more memory come larger pages, so each page-sized array will automatically scale up. This replaces the read_suspend_image() and write_suspend_image() in swsusp with the much more concise pmdisk versions (not that big of change at this point) and fixes up the callers so software_resume() gets it right. Also, mark the helpers only used in swsusp as static again. [Power Mgmt] Merge pmdisk and swsusp read wrappers. - Merge pmdisk_read() and __read_suspend_image() and rename to swsusp_read() - Fix up call in kernel/power/disk.c to call new name. - Remove extra error checking from software_resume(). [Power Mgmt] Merge pmdisk and swsusp write wrappers. - Merge suspend_save_image() from both into one. - Rename to swsusp_write(). - Remove pmdisk_write(). - Fixup call in kernel/power/disk.c and software_suspend(). - Mark lock_swapdevices() static again. [Power Mgmt] Remove pmdisk_free() - Change name of free_suspend_pagedir() to swsusp_free(). - Call from kernel/power/disk.c [Power Mgmt] Make default partition config option part of swsusp. - Remove from pmdisk. - Remove pmdisk= command line option. [Power Mgmt] Remove pmdisk. - Remove kernel/power/pmdisk.c. - Remove CONFIG_PM_STD config option. - Fix up Makefile. [swsusp] Remove unneeded suspend_pagedir_lock. [Power Mgmt] Merge swsusp entry points with the PM core. - Add {enable,disable}_nonboot_cpus() to prepare() and finish() in kernel/power/disk.c - Move swsusp __setup options there. Remove resume_status variable in favor of simpler 'noresume' variable, and check it in pm_resume(). - Remove software_resume() from swsusp; rename pm_resume() to software_resume(). The latter is considerably cleaner, and leverages the core code. - Move software_suspend() to kernel/power/main.c and shrink it down a wrapper that takes pm_sem and calls pm_suspend_disk(), which does the same as the old software_suspend() did. This keeps the same entry points (via ACPI sleep and the reboot() syscall), but actually allows those to use the low-level power states of the system rather than always shutting off the system. - Remove now-unused functions from swsusp. [swsusp] Fix nasty typo. Input: move input/serio closer to the top of drivers/Makefile so serio_bus is available early Signed-off-by: Dmitry Torokhov Input: rearrange code in sunzilog so it registers its serio ports only after hardware was fully initialized and with interrupts tuned back on, otherwise it deadlocks. Signed-off-by: Dmitry Torokhov Input: workaround for i8042 active multiplexing controllers losing track of where data is coming from. Also sprinkled some "likely"s in i8042 interrupt handler. Signed-off-by: Dmitry Torokhov Input: add serio_pause_rx and serio_continue_rx so drivers can protect their critical sections from port's interrupt handler Signed-off-by: Dmitry Torokhov Input: when changing psmouse state (activated, ignore) use srio_pause_rx/ serio_continue_rx so it will not fight with the interrupt handler Signed-off-by: Dmitry Torokhov Input: do not call protocol handler in psmouse unless mouse is filly initialized - helps when USB Legacy emulation gets in our way and starts generating junk data stream while psmouse is detecting hardware Signed-off-by: Dmitry Torokhov Input: synaptics - do not try to process packets from slave device as if they were coming form the touchpad itself if pass-through port is disconnected, just pass them to serio core and it will attempt to bind proper driver to the port Signed-off-by: Dmitry Torokhov Input: rearrange activation/children probe sequence in psmouse so reconnect on children ports works even after parent port is fully activated: - when connecting/reconnecting a port always activate it - when connecting/reconnecting a pass-throgh port deactivate parent first and activate it after connect is done Signed-off-by: Dmitry Torokhov Input: drop __attribute__ ((packed)) from mousedev_emul Signed-off-by: Dmitry Torokhov Input: make i8042 a platform device instead of system device so its serio ports have proper parent Signed-off-by: Dmitry Torokhov Input: integrate ct82c710, maceps2, q40kbd and rpckbd with sysfs as platform devices so their serio ports have proper parents Signed-off-by: Dmitry Torokhov Input: Switch to use bus' default device and driver attributes to manage serio sysfs attributes Signed-off-by: Dmitry Torokhov Input: allow marking serio ports (in addition to serio drivers) as manual bind only, export the flag through sysfs echo -n "manual" > /sys/bus/serio/devices/serio0/bind_mode echo -n "auto" > /sys/bus/serio/drivers/serio_raw/bind_mode Signed-off-by: Dmitry Torokhov Input: serio - switch to use driver_find, adjust reference count Signed-off-by: Dmitry Torokhov input: Re-add PC Speaker support for PPC Signed-off-by: Olaf Hering Signed-off-by: Vojtech Pavlik Input: fix psmouse_sendbyte logic - correctly return NAK when command times out on our side - always reset ACK flag, even when serio_write fails Signed-off-by: Dmitry Torokhov Input: psmouse - harden command mode processing logic Signed-off-by: Dmitry Torokhov Input: switch psmouse driver from busy-polling for command completion to waiting for event Signed-off-by: Dmitry Torokhov Input: atkbd - harden ACK/NAK and command processing logic Signed-off-by: Dmitry Torokhov Input: switch atkbd driver from busy-polling for command completion to waiting for event Signed-off-by: Dmitry Torokhov Input: fix reader wakeup conditions in mousedev, joydev and tsdev (we want readers to wake up when underlying device is gone so they would get -ENODEV and close the device). Signed-off-by: Dmitry Torokhov Input: fix absolute device handling in mousedev that was broken by recent change that tried to do better multiplexing. Now every client will keep its own virtual cursor position and both absolute and relative events will update it Signed-off-by: Dmitry Torokhov input: Fix a missing index in tmdc.c Signed-off-by: Vojtech Pavlik input: Check the range for HIDIOC?USAGES num_values. Signed-off-by: Vojtech Pavlik [swsusp] Add big fat comment to calc_order(). [Power Mgmt] Add CONFIG_PM_DEBUG option - If enabled, add -DDEBUG to command line for kernel/power/ files. - Fixup redefinitions of DEBUG in main.c and disk.c - Kill useless DEBUG_* cruft in swsusp.c - Change printk()s in dump_info() to pr_debug(). [swsusp] Kill unneeded write_header(). - Just inline and remove bad comment. [swsusp] Make sure software_suspend() takes right path - Make sure it calls enter_state(), which does the proper locking and check for SMP, etc. [swsusp] Fix x86-64 low-level support. From Pavel Machek. [swsusp] Make sure we call restore_highmem(). - Also, make highmem calls unconditional, with #ifdef inside functions. [Power Mgmt] Make sure we shutdown devices on shutdown and reboot.. input: Fix an i8042 access timing violation spotted by Alan Cox. input: Update pcips2 driver Use pci_request_regions()/pci_release_regions() instead of request_region()/release_region() Signed-off-by: Russell King Signed-off-by: Vojtech Pavlik input: Update MAINTAINERS entries for Vojtech Pavlik. input: Make sure the HID request queue survives report transfer failures gracefully. Signed-off-by: Vojtech Pavlik Problem-spotted-by: Alan Stern NTFS: Remove vol->nr_mft_records as it was pretty meaningless and optimize the calculation of total/free inodes as used by statfs(). Signed-off-by: Anton Altaparmakov [Bluetooth] Don't use ISOC transfers for Broadcom dongle The Broadcom dongles with HID proxy support don't work with SCO over HCI and so there is no need to start the ISOC transfers. Signed-off-by: Marcel Holtmann [Bluetooth] Don't send L2CAP reject command for bad responses If a L2CAP response is bad or not understood there is no need to send a reject command. The right way is to ignore the response and let the L2CAP timers trigger the further actions. Signed-off-by: Marcel Holtmann [Bluetooth] Check checksums for BNEP The checking of the checksums is needed, because with certain Bluetooth hardware there are failures which aren't caught otherwise. Signed-off-by: David Woodhouse Signed-off-by: Marcel Holtmann [IA64-SGI] sn_proc_fs.c: convert to use seq_file API Signed-off-by: Mark Goodwin Signed-off-by: Tony Luck [IA64-SGI]: disable non-display ROM resources This patch is needed to correctly support the new sysfs rom file. On sn2, we only allocate PIO space for display option ROMs since PIO space is a relatively scarce resource (we've seen exhaustion when running with several qla cards in the same domain). And without this patch we won't zero out non-display ROM resources which can lead to panics if anyone tries to use the bogus addresses left over there from the generic PCI probing code. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] discontig.c: fixup pxm_to_nid_map I'd like to be able to use pxm_to_nid_map in several places to discover proximity domain to node id associations. Unfortunately, after reassign_cpu_only_nodes() plays with the node space, the pxm_to_nid_map doesn't necessarily reflect reality. This fixes up the table so it's still valid. Note that nid_to_pxm_map is still potentially broken, but has a one-to-many problem if the above function combines several proximity domains into a single node. Thanks to Bob Picco for the base patch. Signed-off-by: Alex Williamson Signed-off-by: Tony Luck [IA64] sba_iommu.c: sba_iommu NUMA locality This patch adds NUMA locality info to sba_iommu, allowing coherent DMA mappings to be allocated from the node nearest to the I/O. This patch isn't dependent on the previous pxm_to_nid_map fixup, but may be sub-optimal in some cases without it. Thanks Signed-off-by: Alex Williamson Signed-off-by: Tony Luck [IA64] iosapic.h, pci.c, iosapic.c, acpi.c: iosapic NUMA interrupt locality This patch associates IOSAPICs with NUMA nodes such that interrupts gets assigned to a reasonably good default CPU. The patch does not depend on the pxm_to_nid_map fixup, but results will be strange in some configurations without it. This should work on any NUMA box that exposes IOSAPICs with _MAT & _PXM methods, but it's only been tested on an rx8620. There should be no change in behavior for boxes that don't export both of these in ACPI namespace. Signed-off-by: Alex Williamson Signed-off-by: Tony Luck [NET] NEIGHBOUR: save number of arguments for neigh_update() by flags. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: suspect REACHABLE entry if new lladdr is different. When we receive NA without Override flag, if it comes with different lladdr from one in our REACHABLE entry, set the state to STALE. (RFC2461 7.2.5) Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: keep original state if new state is STALE and lladdr is unchanged Signed-off-by: Hideaki YOSHIFUJI [NET] NEIGHBOUR: merge two flags for neigh_update() into one. This is because SUSPECT_CONNECTED can be effective only if OVERRIDE is unset, and used only if RETAIN_STATE is set. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: update IsRouter flag appropriately. Update IsRouter (NTF_ROUTER) flag approrpriately. Specifically, - we should not update it blindly; if Override Flag is unset and lladdr is differnt, we should NOT. - we should set it when we have received RA. - we should set it when we have received Redirect whose target is off-link. Signed-off-by: Hideaki YOSHIFUJI [NET] NEIGHBOUR: use time_after() and its friends. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: update entry appropriately when receiving NS. Update neighbour entry appropriately by passing correct flags when receiving NS. Signed-off-by: Hideaki YOSHIFUJI [NET] NEIGHBOUR: improve neighbour state machine. This centralizes neighbour state transition by timer into neigh_timer_handler(), and kill neigh_sync(). This improves timing accuracy of state transition. neigh_timer_handler() for each entry is now reponsible for state transition of the entry, and neigh_periodic_timer() is just for garbage collection. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Fix message validation against Redirects. Signed-off-by: Hideaki YOSHIFUJI [IPV6] don't use expired default routes. Signed-off-by: Hideaki YOSHIFUJI [IPV6] ensure to aging default routes. This patch is product of corraboration with Ville Nuorvala . Signed-off-by: Hideaki YOSHIFUJi [IPV6] purge routes via non-router neighbour but gateway. Signed-off-by: Hideaki YOSHIFUJI [PATCH] ide: small cleanup for sis5513 Sigh, Thomas Gleixner pointed out that his sis5518 fix didn't need forward porting. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds Add skeleton "generic IO mapping" infrastructure. Jeff wants to use this to clean up SATA and some network drivers. [IA64] Makefile: fix for the PTRACE_SYSCALL corruption bug Thanks to David for his help in tracking it down. compile the kernel with sibling call optimization turned off. There is a problem with all functions using the optimization and the asmlinkage attribute. The compiler should not perform the optimization on these functions because it cannot preserve the syscall parameters in the callee. This caused SIGSEGV on programs traced with PTRACE_SYSCALL, for instance. signed-off-by: stephane eranian Signed-off-by: Tony Luck [NET]: Fix missing spin lock in lltx path. This fixes a silly missing spin lock in the relock path. For some reason it seems to still work when you don't have spinlock debugging enabled. Please apply. Thanks to Arjan's spinlock debug kernel for finding it. Signed-off-by: Andi Kleen Signed-off-by: David S. Miller [IPV6]: Add option to copy DSCP in decap in ip6_tunnel. Here is a patch that allows the copying of the DSCP during decapsulation for ip6_tunnel. I've made it a separate option from the one that determines the copying during encapsulation since the DSCP processing may be asymmetric. It also means that we preserve compatibility should anyone be relying on the current behaviour. inet_ecn.h might appear to be an odd place for ipv6_copy_dscp, but I couldn't put it in dsfield.h since I want to use ipv6_get_dsfield in inet_ecn.h later on. The other alternative would be to define INET_ECN_MASK in dsfield.h. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Export new PCI iomem access interfaces to modules too. [PATCH] Clean up compat sched affinity syscalls Remove the set_fs hack in the compat affinity calls. Create sched_getaffinity and sched_setaffinity helper functions that both the native and compat affinity syscalls use. Also make the compat functions match what the native ones are doing now, setaffinity calls succeed no matter what length the bitmask is, but getaffinity calls must pass in bitmasks at least as long as the kernel type. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [PATCH] Backward compatibility for compat sched_getaffinity The follow patch special cases the NR_CPUS <= BITS_PER_COMPAT_LONG case. Without this patch, a 32bit task would be required to have a 64bit cpumask no matter what value of NR_CPUS are used. With this patch a compat long sized bitmask is allowed if NR_CPUS is small enough to fit within it. Of course applications should be using the glibc wrappers that use an opaque cpu_mask_t type, but there could be older applications using the syscalls directly. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [PATCH] isofs buffer management fix There's a double-free in the isofs filesystem. Invalidate this pointer so it doesn't get freed twice. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [ARM] Fix ARM APM emulation sparse errors arch/arm/kernel/apm.c:57:16: warning: dubious one-bit signed bitfield arch/arm/kernel/apm.c:58:17: warning: dubious one-bit signed bitfield arch/arm/kernel/apm.c:59:17: warning: dubious one-bit signed bitfield arch/arm/kernel/apm.c:60:23: warning: dubious one-bit signed bitfield [ARM] Remove the hh.org H3600 "example" code. [ARM] Convert list_for_each()/list_entry() to list_for_each_entry() [ARM] Abstract APM circular queue object. [ARM] Convert APM user list lock to r/w sem Convert user_list_lock spinlock to a read/write semaphore; the spinlock was affording us very little protection. [ARM] APM: "Battery life" needs to be a signed integer. [ARM] Remove APM standby support - it's unused. [PATCH] linux/dma-mapping.h needs linux/device.h It seems that most architectures already include linux/device.h in their own asm/dma-mapping.h. Most but not all, and some drivers fail to compile on those architectures that don't. Since everybody needs it let's include device.h from one place only and fix compilation for everybody. [ARM] Convert suspend to a state machine. The original version had issues when two suspend events came in at around the same time, causing APM to get confused: threads became stuck in APM_IOC_SUSPEND and suspends_pending incremented on each apm --suspend call. Now, we only add a suspend event to a users queue and increment suspends_pending if the user isn't already in the middle of handling a suspend event. [ARM] No point having "nonblock" local variable - kill it. [ARM] Keep APM threads frozen Ensure threads waiting for suspend to occur in apm_ioctl are not woken by the pm_suspend thread freezing - they're already frozen. [ARM] Update APM state definitions Move existing APM state definitions into struct apm_power_info, and add further definitions describing other fields. [ARM] Revive kapmd and provide apm_queue_event() Add kapmd thread to provide a process context to handle "APM" events submitted via apm_queue_event(). Add apm_queue_event(), which can be called from hardware interrupt handlers and the like, typically to fire off a suspend. [ARM PATCH] 2090/2: S3C2410 - usb gadged (udc) include Patch from Ben Dooks Header file for USB gadget controller (udc) for the Samsung S3C2410 SoC Signed-off-by: Herbert Poetzl Signed-off-by: Ben Dooks [TCP]: Just silently ignore ICMP Source Quench messages. Recommended by draft-gont-tcpm-icmp-attacks-01.txt Signed-off-by: David S. Miller [ARM PATCH] 2091/1: S3C2410 - change id of s3c2410-ohci Patch from Ben Dooks Fix missed ID change on s3c2410-usb Signed-off-by: Ben DOoks [ARM PATCH] 2092/1: S3C2410 - gpio bugfix and additions Patch from Ben Dooks Fix inverted mask in s3c2410_gpio_setpin() function, add s3c2410_modify_misccr() for shared register, and add s3c2410_gpio_getpin() Signed-off-by: Ben Dooks [ARM PATCH] 2093/1: S3C2410 - remove un-necessary resource from NAND Patch from Ben Dooks Removed resource description left by copying error Thanks to Klaus Fetscher for pointing this out. Signed-off-by: Ben Dooks [IPV4]: Add wccp v1/v2 support to ip_gre.c Signed-off-by: David S. Miller [NET] generalise per protocol slab cache handling With this patch we get two new slabcaches, for sctp socks, that previously were being allocated on the default, that was tcp[6]_sock, i.e. wasting 288 bytes per sock in the IPv4 case and 256 bytes for the IPv6 version, this is in preparation for DCCP (or any other new protocol :) ). With this in place another nice side effect that is easier to achieve is to get rid of struct sock sk->sk_slab, and instead use sk->sk_prot->slab, saving sizeof(void *) on every struct sock instance, but this unfortunatly has to wait for the conversion of all protocols that use per socket slabcaches to use sk->sk_prot, AF_UNIX is the only one AFAIK, so I'll try to convert it to use sk->sk_prot and then get rid of sk->sk_slab. As for the protocols that don't use per socket slabcaches its just a matter of defaulting to sk_cachep at sk_free time if sk->sk_prot is NULL. [root@qemu ~]# modprobe sctp [root@qemu ~]# grep _sock /proc/slabinfo sctpv6_sock 9 9 864 9 2 : tunables 54 27 0 : sctp_sock 0 0 736 5 1 : tunables 54 27 0 : rawv6_sock 3 6 640 6 1 : tunables 54 27 0 : udpv6_sock 0 0 608 6 1 : tunables 54 27 0 : tcpv6_sock 1 7 1120 7 2 : tunables 24 12 0 : unix_sock 6 10 384 10 1 : tunables 54 27 0 : raw_sock 2 8 480 8 1 : tunables 54 27 0 : udp_sock 0 0 512 7 1 : tunables 54 27 0 : tcp_sock 0 0 1024 4 1 : tunables 54 27 0 : Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [TG3]: Fix pause handling, we had duplicate flags for the same thing. Signed-off-by: David S. Miller [B44]: Fix b44 I/O mem space access warnings. B44 driver was using unsigned long as an io memory address. Recent changes caused this to be a warning. This patch fixes that and makes the readl/writel wrapper into inline's instead of macros with magic variable side effect (yuck). Signed-off-by: David S. Miller [IOMAP]: Make ioport_map() take unsigned long port argument. Signed-off-by: David S. Miller [libata sata_nv] sync with 2.4 Driver should be using LIBATA_MAX_PRD not ATA_MAX_PRD, due to iommu layer splitting. [libata] remove distinction between MMIO/PIO helper functions Prepare for use of new generic iomap API. [libata] consolidate legacy/native mode init code into helpers Eliminates duplicate code in sata_nv, sata_sis, and sata_via. [TCP]: Fix logic error in packets_out accounting. Noticed by Herbert Xu. Signed-off-by: David S. Miller [SPARC64]: __iomem annotations and iomap implementation. [ARM PATCH] 2094/1: don't lose the system timer after resuming from sleep on SA11x0 and PXA2xx Patch from Nicolas Pitre Let's make sure OSCR doesn't end up to be restored with a value past OSMR0 otherwise the system timer won't start ticking until OSCR wraps around (aprox 17 min. Also set OSCR _after_ OIER is restored to avoid matching when corresponding match interrupt is masked out. Signed-off-by: Nicolas Pitre [ALPHA] Check set_fd_set return. [ALPHA] Use "long" on some internal bitops routines. [ALPHA] Arrange to return EINTR for sigsuspend on signal path. [ALPHA] Add waitid. NTFS: Fix scheduling latencies in ntfs_fill_super() by dropping the BKL because the code itself is using the ntfs_lock semaphore which provides safe locking. (Ingo Molnar) Signed-off-by: Ingo Molnar Signed-off-by: Anton Altaparmakov [PATCH] fix schedstats null deref in sched_exec In sched_exec, schedstat_inc will dereference a null pointer if no domain is found with the SD_BALANCE_EXEC flag set. This was exposed during testing of the previous patches where cpus are temporarily attached to a dummy domain without SD_BALANCE_EXEC set. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ES7000 subarch update The patch below implements an algorithm to determine an unique GSI override for mapping GSIs to IO-APIC pins correctly. GSI overrides are required in order for ES7000 machines to function properly since IRQ to pin mappings are NOT all one-to-one. This patch applies only to the Unisys specific ES7000 machines and has been tested thoroughly on several models of the ES7000 line. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Pointer dereference before NULL check in ACPI thermal driver Again, found with coverity's checker. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: lparcfg fixes for processor counts This patch corrects how the lparcfg interface was presenting the number of active and potential processors. (As reported in LTC bugzilla number 10889). - Correct output for partition_potential_processors and system_active_processors. - suppress pool related values in scenarios where they do not make sense. (non-shared processor configurations) - Display pool_capacity as a percentage, to match the behavior from iSeries code. Signed-off-by: Will Schmidt Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: lparcfg whitespace and wordwrap cleanup. This patch is the result of running Lindent against arch/ppc64/kernel/lparcfg.c. This cleans up an assortment of whitespace and wordwrap inconsistencies. Signed-off-by: Will Schmidt Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove SPINLINE config option After the spinlock rework, CONFIG_SPINLINE doesnt work and causes a compile error. Remove it for now. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: RTAS error logs can appear twice in dmesg I've started seeing rtas errors printed twice. Remove the second call to printk_log_rtas. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Enable NUMA API Plumb the NUMA API syscalls into ppc64. Also add some missing cond_syscalls so we still link with NUMA API disabled. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: give the kernel an OPD section From: Alan Modra Give the kernel an OPD section, required for recent ppc64 toolchains. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: use nm --synthetic where available On new toolchains we need to use nm --synthetic or we miss code symbols. Sam, I'm not thrilled about this patch but Im not sure of an easier way. Any ideas? Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: clean up kernel command line code Clean up some of our command line code: - We were copying the command line out of the device tree twice, but the first time we forgot to add CONFIG_CMDLINE. Fix this and remove the second copy. - The command line birec code ran after we had done some command line parsing in prom.c. This had the opportunity to really confuse the user, with some options being parsed out of the device tree and the other out of birecs. Luckily we could find no user of the command line birecs, so remove them. - remove duplicate printing of kernel command line; - clean up iseries inits and create an iSeries_parse_cmdline. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove unused ppc64_calibrate_delay - Remove ppc64_calibrate_delay, no longer used - Formatting fixups Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove EEH command line device matching code We have had reports of people attempting to disable EEH on POWER5 boxes. This is not supported, and the device will most likely not respond to config space reads/writes. Remove the IBM location matching code that was being used to disable devices as well as the global option. We already have the ability to ignore EEH erros via the panic_on_oops sysctl option, advanced users should make use of that instead. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: use early_param Make use of Rusty's early_param code. Its good stuff. We appear to be the first user :) Move vpa_init and idle_setup later in boot, we dont have to do them right up front in setup_system. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: restore smt-enabled=off kernel command line option Restore the smt-enabled=off kernel command line functionality: - Remove the SMT_DYNAMIC state now that smt_snooze_delay allows for the same thing. - Remove the early prom.c parsing for the option, put it into an early_param instead. - In setup_cpu_maps honour the smt-enabled setting Note to Nathan: In order to allow cpu hotplug add of secondary threads after booting with smt-enabled=off, I had to initialise cpu_present_map to cpu_online_map in smp_cpus_done. Im not sure how you want to handle this but it seems our present map currently does not allow cpus to be added into the partition that werent there at boot (but were in the possible map). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: enable POWER5 low power mode in idle loop Now that we understand (and have fixed) the problem with using low power mode in the idle loop, lets enable it. It should save a fair amount of power. (The problem was that our exceptions were inheriting the low power mode and so were executing at a fraction of the normal cpu issue rate. We fixed it by always bumping our priority to medium at the start of every exception). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: clean up idle loop code Clean up our idle loop code: - Remove a bunch of useless includes and make most functions static - There were places where we werent disabling interrupts before checking need_resched then calling the hypervisor to sleep our thread. We might race with an IPI and end up missing a reschedule. Disable interrupts around these regions to make them safe. - We forgot to turn off the polling flag when exiting the dedicated_idle idle loop. This could have resulted in all manner problems as other cpus would avoid sending IPIs to force reschedules. - Add a missing check for cpu_is_offline in the shared cpu idle loop. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove -Wno-uninitialized Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix real bugs uncovered by -Wno-uninitialized removal The removal of -Wno-uninitialized on ppc64 revealed a number of real bugs. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix spurious warnings uncovered by -Wno-uninitialized removal Here are fixes for some false positives. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hvc: uninitialised variable Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: improved VSID allocation algorithm This patch has been tested both on SLB and segment table machines. This new approach is far from the final word in VSID/context allocation, but it's a noticeable improvement on the old method. Replace the VSID allocation algorithm. The new algorithm first generates a 36-bit "proto-VSID" (with 0xfffffffff reserved). For kernel addresses this is equal to the ESID (address >> 28), for user addresses it is: (context << 15) | (esid & 0x7fff) These are distinguishable from kernel proto-VSIDs because the top bit is clear. Proto-VSIDs with the top two bits equal to 0b10 are reserved for now. The proto-VSIDs are then scrambled into real VSIDs with the multiplicative hash: VSID = (proto-VSID * VSID_MULTIPLIER) % VSID_MODULUS where VSID_MULTIPLIER = 268435399 = 0xFFFFFC7 VSID_MODULUS = 2^36-1 = 0xFFFFFFFFF This scramble is 1:1, because VSID_MULTIPLIER and VSID_MODULUS are co-prime since VSID_MULTIPLIER is prime (the largest 28-bit prime, in fact). This scheme has a number of advantages over the old one: - We now have VSIDs for every kernel address (i.e. everything above 0xC000000000000000), except the very top segment. That simplifies a number of things. - We allow for 15 significant bits of ESID for user addresses with 20 bits of context. i.e. 8T (43 bits) of address space for up to 1M contexts, significantly more than the old method (although we will need changes in the hash path and context allocation to take advantage of this). - Because we use a real multiplicative hash function, we have better and more robust hash scattering with this VSID algorithm (at least based on some initial results). Because the MODULUS is 2^n-1 we can use a trick to compute it efficiently without a divide or extra multiply. This makes the new algorithm barely slower than the old one. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: remove -Wno-uninitialized Remove -Wno-uninitialized on ppc32 too. Ive just found a number of real bugs on ppc64 by doing the same. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: pmac cpufreq for ibook 2 600 This patch adds support for the 750CX based ibook2 600Mhz to the cpufreq powermac driver. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] searching for parameters in 'make menuconfig' I added the ability to search for parameters in make menuconfig (find a given parameter's location in the tree). You use '/' to invoke the feature. Regular expression searches are supported. Signed-off-by: Yuval Turgeman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pnpbios parser bugfix this patch fix a pnpbios problem with independant resource(http://bugzilla.kernel.org/show_bug.cgi?id=3295) : the old code assume that they are given at the beggining (before any SMALL_TAG_STARTDEP entry), but in some case there are found after SMALL_TAG_ENDDEP entry. tag : 6 SMALL_TAG_STARTDEP tag : 8 SMALL_TAG_PORT tag : 6 SMALL_TAG_STARTDEP tag : 8 SMALL_TAG_PORT tag : 7 SMALL_TAG_ENDDEP tag : 4 SMALL_TAG_IRQ <-- independant resource tag : f SMALL_TAG_END Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: don't SLAB_HWCACHE_ALIGN Anton recently removed SLAB_HWCACHE_ALIGN from the fs inode caches, now do the same for tmpfs inode cache: fits 9 per page where 7 before. Was saying SLAB_RECLAIM_ACCOUNT too, but that's wrong: tmpfs inodes are not reclaimed under pressure; and hugetlbfs had copied that too. Rearrange shmem_inode_info fields so those most likely to be needed are most likely to be in the same cacheline as the spinlock guarding them. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: inodes and links need lowmem Keith Mannthey's Bugzilla #3268 drew attention to how tmpfs inodes and dentries and long names and radix-tree nodes pin lowmem. Assuming about 1k of lowmem per inode, we need to lower the default nr_inodes limit on machines with significant highmem. Be conservative, but more generous than in the original patch to Keith: limit to number of lowmem pages, which works out around 200,000 on i386. Easily overridden by giving the nr_inodes= mount option: those who want to sail closer to the rocks should be allowed to do so. Notice how tmpfs dentries cannot be reclaimed in the way that disk-based dentries can: so even hard links need to be costed. They are cheaper than inodes, but easier all round to charge the same. This way, the limit for hard links is equally visible through "df -i": but expect occasional bugreports that tmpfs links are being treated like this. Would have been simpler just to move the free_inodes accounting from shmem_delete_inode to shmem_unlink; but that would lose the charge on unlinked but open files. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: no sbinfo for shm mount SGI investigations have shown a dramatic contrast in scalability between anonymous memory and shmem objects. Processes building distinct shmem objects in parallel hit heavy contention on shmem superblock stat_lock. Across 256 cpus an intensive test runs 300 times slower than anonymous. Jack Steiner has observed that all the shmem superblock free_blocks and free_inodes accounting is redundant in the case of the internal mount used for SysV shared memory and for shared writable /dev/zero objects (the cases which most concern them): it specifically declines to limit. Based upon Brent Casavant's SHMEM_NOSBINFO patch, this instead just removes the shmem_sb_info structure from the internal kernel mount, testing where necessary for null sbinfo pointer. shmem_set_size moved within CONFIG_TMPFS, its arg named "sbinfo" as elsewhere. This brings shmem object scalability up to that of anonymous memory, in the case where distinct processes are building (faulting to allocate) distinct objects. It significantly improves parallel building of a shared shmem object (that test runs 14 times faster across 256 cpus), but other issues remain in that case: to be addressed in later patches. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: no sbinfo for tmpfs mount? Some might want a tmpfs mount with the improved scalability afforded by omitting shmem superblock accounting; or some might just want to test it in an externally-visible tmpfs mount instance. Adopt the convention that mount option -o nr_blocks=0,nr_inodes=0 means without resource limits, and hence no shmem_sb_info. Not recommended for general use, but no worse than ramfs. Disallow remounting from unlimited to limited (no accounting has been done so far, so no idea whether it's permissible), and from limited to unlimited (because we'd need then to free the sbinfo, and visit each inode to reset its i_blocks to 0: why bother?). Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: avoid the shmem_inodes list If we're thinking about shmem scalability... isn't it silly that each shmem object is added to the shmem_inodes list on creation, and removed on deletion, yet the only use for that list is in swapoff (shmem_unuse)? Call it shmem_swaplist; shmem_writepage add inode to swaplist when first swap allocated (usually never); shmem_delete_inode remove inode from the list after truncating (if called before, inode could be re-added to it). Inode can remain on the swaplist after all its pages are swapped back in, just be lazy about it; but if shmem_unuse finds swapped count now 0, save itself time by then removing that inode from the swaplist. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: rework majmin and ZERO_PAGE Very minor adjustments to shmem_getpage return path: I now prefer it to return NULL and let do_shmem_file_read use ZERO_PAGE(0) in that case; and we don't need a local majmin variable, do_no_page initializes *type to VM_FAULT_MINOR already. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] shmem: Copyright file_setup trivia I _think_ shmem_file_setup is protected against negative loff_t size by the TASK_SIZE in each arch, but prefer the security of an explicit test. Wipe those parentheses off its return(file), and update our Copyright. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Allocate correct amount of memory for pid hash We are now allocating twice as much memory as required. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] __copy_to_user() check in cdrom_read_cdda_old() akpm: really, reads are supposed to return the number-of-bytes-read on faults, or -EFAULT of no bytes were read. This patch returns either zero or -EFAULT, ignoring any successfully transferred data. But the user interface (whcih is an ioctl()) was never set up to do that. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make kmem_find_general_cachep static in slab.c Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark md_interrupt_thread static Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark dq_list_lock static Only used in dq_list_lock these days. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove exports from audit code Tons of exports in the new audit code, but not a single module that actually uses one of them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add prctl to modify current->comm This patch adds a prctl to modify current->comm as shown in /proc. This feature was requested by KDE developers. In KDE most programs are started by forking from a kdeinit program that already has the libraries loaded and some other state. Problem is to give these forked programs the proper name. It already writes the command line in the environment (as seen in ps), but top uses a different field in /proc/pid/status that reports current->comm. And that was always "kdeinit" instead of the real command name. So you ended up with lots of kdeinits in your top listing, which was not very useful. This patch adds a new prctl PR_SET_NAME to allow a program to change its comm field. I considered the potential security issues of a program obscuring itself with this interface, but I don't think it matters much because a program can already obscure itself when the admin uses ps instead of top. In case of a KDE desktop calling everything kdeinit is much more obfuscation than the alternative. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] blk: max_sectors tunables Introduces two new /sys/block values: /sys/block/*/queue/max_hw_sectors_kb /sys/block/*/queue/max_sectors_kb max_hw_sectors_kb is the maximum that the driver can handle and is readonly. max_sectors_kb is the current max_sectors value and can be tuned by root. PAGE_SIZE granularity is enforced. It's all locking-safe and all affected layered drivers have been updated as well. The patch has been in testing for a couple of weeks already as part of the voluntary-preempt patches and it works just fine - people use it to reduce IDE IRQ handling latencies. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] HVCS fix to replace yield with tty_wait_until_sent in hvcs_close Following the same advice you gave in a recent hvc_console patch I have modified HVCS to remove a while() { yield(); } from hvcs_close() which may cause problems where real time scheduling is concerned and replaced it with tty_wait_until_sent() which uses a real wait queue and is the proper method for blocking a tty operation while waiting for data to be sent. This patch has been tested to verify that all the paths of code that were changed were hit during the code run and performed as expected including hotplug remove of hvcs adapters and hangup of ttys. - Replaced yield() in hvcs_close() with tty_wait_until_sent() to prevent possible lockup with realtime scheduling. - Removed hvcs_final_close() and reordered cleanup operations to prevent discarding of pending data during an hvcs_close() call. - Removed spinlock protection of hvcs_struct data members in hvcs_write_room() and hvcs_chars_in_buffer() because they aren't needed. Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove ghash.h Remove dependency on ghash.h. Remvoe ghash.h, too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: eliminate useless thread field This patch eliminates use of task.thread.kernel_stack. It was unnecessary, confusing, and was masking some kernel stack size assumptions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix scheduler race This fixes a use-after-free bug in the context switching. A process going out of context after exiting wakes up the next process and then kills itself. The problem is that when it gets around to killing itself is up to the host and can happen a long time later, including after the incoming process has freed its stack, and that memory is possibly being used for something else. The fix is to have the incoming process kill the exiting process just to make sure it can't be running at the point that its stack is freed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix binary layout assumption This patch calculates section boundaries differently so as to not get tripped up by holes in the binary such as are introduced by exec-shield. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: disable pending signals across a reboot On reboot, all signals and signal sources are disabled so that late-arriving signals don't show up after the reboot exec, confusing the new image, which is not expecting signals yet. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: refer to CONFIG_USERMODE, not to CONFIG_UM Correct one Kconfig dependency, which should refer to CONFIG_USERMODE rather than to CONFIG_UM. We should also figure out how to make the config process work better for UML. We would like to make UML able to "source drivers/Kconfig" and have the right drivers selectable (i.e. LVM, ramdisk, and so on) and the ones for actual hardware excluded. I've been reading such a request even from Jeff Dike at the last Kernel Summit, (in the lwn.net coverage) but without any followup. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove commented old code in Kconfig Drop a config option which has disappeared from all archs. Btw, this shouldn't be in the UML-specific part, but since we cannot include generic Kconfigs to avoid problem with hardware-related configs, it's duplicated for now. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: smp build fix From: Sonny Rao Make the SMP code compile, at least, to make testing possible, and remove its dependency on CONFIG_BROKEN. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove CONFIG_UML_SMP Using CONFIG_UML_SMP and then making CONFIG_SMP = CONFIG_UML_SMP is useless (there was a reason in 2.4, to have different help texts, but not now). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] block highmem flushes Add a couple of missing cache flushes to the bouncing code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add support for word-length UART registers UARTS on several Intel IXP2000 systems are connected in such a way that they can only be addressed using full word accesses instead of bytes. Following patch adds a UPIO_MEM32 io-type to identify these UARTs. Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix uninitialized warnings in mempolicy.c err may be used uninitialized in mempolicy.c in both compat_set_mempolicy and compat_mbind. This patch fixes that by setting them both to 0. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small tweaks - I misspelled CONFIG_PREEMPT CONFIG_PREEPT as various people noticed. But in fact that ifdef should just go, else we'll get drivers that compile with CONFIG_PREEMPT but not without sooner or later. - remove unused hardirq_trylock and hardirq_endlock Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] BSD disklabel: handle more than 8 partitions NetBSD allows 16 partitions, not just 8. This patch both ups the number, and makes the recognition code tell you if the count in the disklabel exceeds the number supported by the kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crept back in h8300 and sh64 went away in 2.5, but new ports keep adding instances again and again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark amiflop non-unloadable As it's using the obsolete MOD_{INC,DEC}_USE_COUNT it's implicitly locked already, but let's remove them and make it explicit so these macros can go away completely without breaking m68k compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll endian fixes Correct wrong ip header in netpoll_send_udp. Signed-off-by: Duncan Sands Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix ABI in set_mempolicy() Fix ABI in set_mempolicy() that got broken by an earlier change. Add a check for very big input values and prevent excessive looping in the kernel. Cc: Paul "nyer, nyer, your mother wears combat boots!" Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386: elf_read_implies_exec() fixup The final ia64 related cleanup to elf_read_implies_exec() seems to have broken it. The effect is that the READ_IMPLIES_EXEC flag is never set for !pt_gnu_stack binaries! That's a bit more secure than we need to be, and might break some legacy app that doesn't expect it. Fix fork failure case. It would clear the segment registers in the parent, which wasn't really intentional. Noticed by Andries Brouwer. fivafb; Increase DDC/CI timeouts Nicolas Boichat reports that his monitor needs the slower i2c bus timings. These values also match atyfb and the original ones. Fix up stupid last-minute edit of fork cleanup. I'm a retard. [PATCH] fix OProfile locking This makes OProgile use get_task_mm() as discussed. It also fixes up Anton's previous patch. Zwane's soaked this patch all night w/o problems. [PATCH] properly fix double current_menu The two current_menu variables are really two separate variables, so keep them separate. Signed-off-by: Roman Zippel Signed-off-by: Linus Torvalds Update shipped version of zconfig.tab.c to match bison/yacc file. ppc64: first cut at new iomap interfaces. Only the EEH case (pSeries) handled for now. [IPV6]: Do not export rt6_dflt_{pointer,lock}. Modify them using exported procedural interfaces instead. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by; David S. Miller [IPV4]: Use list.h facilities for fib_info_list. Do not use a by-hand list implementation. Signed-off-by: David S. Miller ppc32: Don't make cmd_line be an emptry string As noted by Olaf Hering, CONFIG_CMDLINE didn't work on PMacs as we made cmd_line be an empty string and then looked for the cmdline in odd places. Signed-off-by: Tom Rini Add support for "string" ioread/iowrite. Things like SATA use this for data transfer. Also export the iomap routines on ppc64. Fix up typo in ppc64 eeh ioport_map() code. Noticed by BenH, happily harmless (nothing that uses that code has been committed yet, and PIO seems to be pretty much unused on at least the Apple G5 machines: all the normal hardware is set up purely for MMIO, to the point that I couldn't even test this thing). [libata] minor comment updates, preparing for iomap merge [libata sata_svw] race condition fix, new device support * address race condition WRT order of DMA-start and ATA command issue (see code comment for more details) * Add support for Frodo 4/8 [NET]: Convert RTM+_* to enum. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Make fib_semantics algorithms scale better. A singly linked list was previously used to do fib_info object lookup for various actions in the routing code. This does not scale very well with many devices and even a moderate number of routes. This was noted by Benjamin Lahaise. To fix all of this we use 3 hash tables, two of which grow dynamically as the number fib_info objects increases while the final one is fixes in size. The statically sized table hashes on device index. This is used for fib_sync_down, fib_sync_up, and ip_fib_check_default. The first dynamically sized table is keyed on protocol, prefsrc, and priority. This is used by fib_create_info() to look for existing fib_info objects matching the new one being constructed. The last dynamically sized table is keyed on the preferred source of the route if it has one specified. This is used by fib_sync_down when a local address disappears. There are still some scalability problems for Bens test case in fib_hash.c and I will try to attack those next. Signed-off-by: David S. Miller [TG3]: Fix thinko in 5704 fibre hw autoneg code. Signed-off-by: Mike Waychison Signed-off-by: David S. Miller [TG3]: Recognize all onboard Sun variants, not just 5704. Based upon a report from Matthias Merz. Signed-off-by: David S. Miller [TG3]: Update driver version and reldate. [CRYPTO]: Zero out tfm before freeing in crypto_free_tfm(). Based upon discussions with Ulrich Kuehn (ukuehn@acm.org) Signed-off-by: James Morris Signed-off-by: David S. Miller [IPV6]: Missing xfrm_lookup() in icmpv6_{send,echo_reply}() net/ipv6/icmp.c was not converted in xfrm_lookup() extraction patch. This patch converts it; adding the missing call to xfrm_lookup in icmpv6_{send,echo_reply}(). Signed-off-by: Kazunori Miyazawa Signed-off-by: Hideaki YOSHIFUJI SIgned-off-by: David S. Miller [ALPHA] Minor updates for cpumask_t. [ALPHA] Implement _raw_write_trylock. [PATCH] reduce [compat_]do_execve stack usage Allocating the 'struct linux_binprm' on the stack chews up too much stackspace. Just kmalloc it instead. Signed-off-by: Linus Torvalds ppc32: Fix some warnings in rheap from newer compilers Signed-off-by: Pantelis Antoniou Signed-off-by: Tom Rini [SUNGEM]: Add tx_lock Using tx_lock in SunGEM makes the driver logic in conformance with tg3 and e1000, easing maintainance. Signed-off-by: Eric Lemoine Signed-off-by: David S. Miller [SUNGEM]: LLTX support Signed-off-by: Eric Lemoine Signed-off-by: David S. Miller [NETFILTER]: Fix off-by-one test error in ip_tables.c Bug noticed by Ysauyuki Kozakai. Signed-off-by: David S. Miller [IPV4]: Basic cleanups in fib_hash.c 1) Kill special key, prefix, and hash index types. They make the code less readable and maintainable. 2) __inline__ --> inline Signed-off-by: David S. Miller [IPV4]: Use hlist_for_each_entry_safe in fib_hash_move. Signed-off-by: David S. Miller [NETFILTER]: Fix tcp_find_option() bug properly. Signed-off-by: David S. Miller [SOCKET] make enum socket_type be arch overridable To cope with MIPS, that has SOCK_STREAM and SOCK_DGRAM values swapped to deal with binary compat. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ralf Baechle Signed-off-by: David S. Miller [IPV4]: More fib_hash cleanups. Kill fn_key_eq and fn_key_leq Signed-off-by: David S. Miller [IA64] make INIT dump work again current can be in region 5, use 'tpa' to convert to physical Signed-off-by: Tony Luck [IA64-SGI]: fix `qw' might be used uninitialized warning The compiler has no way of knowing whether nentries will be greater than 0, so it was generating a warning that qw might be used uninitialized. Fix it by explicitly setting it to 0. Cc'ing Brian in case he has an internal version he'd like to keep in sync. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [libata] add hook, and export functions needed for sata2 drivers * add dev_select hook, and default/noop implementations * export ata_dev_classify * fix a couple bugs that cropped up when building with ATA_VERBOSE_DEBUG * export __sata_phy_reset, a variant that does not call ata_bus_reset drm: fix bug introduced in the macro removal This caused issues with a PCI radeon card. From: Jon Smirl Approved-by: Dave Airlie NTFS: Fix a potential bug in fs/ntfs/mft.c::map_extent_mft_record() that could occur in the future for when we start closing/freeing extent inodes if we don't set base_ni->ext.extent_ntfs_inos to NULL after we free it. Signed-off-by: Anton Altaparmakov drm: add pci_enable_device Add pci_enable_device for any PCI device we want to use. From: Bjorn Helgaas Approved-by: David Airlie drm: use set_current_state instead of direct assignment Suggested-by: Nishanth Aravamudan Approved-by: Dave Airlie drm: actually __set_current_state is more correct Alan suggested using __set_current_state as being more correct for the DRM so do that. Signed-off-by: Dave Airlie [PATCH] back out siginfo_t.si_rusage from waitid changes As I explained in the waitid patches, I added the si_rusage field to siginfo_t with the idea of having the siginfo_t waitid fills in contain all the information that wait4 or any such call could ever tell you. Nowhere in POSIX nor anywhere else specifies this field in siginfo_t. When Ulrich and I hashed out the system call interface we wanted, we looked at siginfo_t and decided there was plenty of space to throw in si_rusage. Well, it turns out we didn't check the 64-bit platforms. There struct rusage is ridiculously large (lots of longs for things that are never in a million years going to hit 2^32), and my changes bumped up the size of siginfo_t. Changing that size is more trouble than it's worth. This patch reverts the changes to the siginfo_t structure types, and no longer provides the rusage details in SIGCHLD signal data. Instead, I added a fifth argument to the waitid system call to fill in rusage. waitid is the name of the POSIX function with four arguments. It might make sense to rename the system call `waitsys' to follow SGI's system call with the same arguments, or `wait5' in the mindless tradition. But, feh. I just added the argument to sys_waitid, rather than worrying about changing the name in all the tables (and choosing a new stupid name). Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds [PATCH] Fix ip_nat_ftp registration when no ports= arg FTP NAT module doesn't register anything with no args. Oops. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds [PATCH] fix compat_do_execve stack usage Looks like a couple struct to pointer conversions were missed. Signed-off-by: Linus Torvalds [IA64] ar.k[56] have virtual addresses already, don't convert r.k[56] used to contain physical addresses but now contain virtual addresses. There are code remnants which still believe that they are physical and "convert" ar.k[56] to virtual. This breaks when current is not in region 7 (e.g. the idle task on cpu 0). Signed-off-by: Keith Owens Signed-off-by: Tony Luck [PATCH] matroxfb update + sparse annotations This change switches matroxfb on x86 and x86_64 from dereferencing pointers to {read,write}[bwl], as __pa() are gone from them, and so gcc does not need an additional register for preserving address between consecutive {read,write}[bwl]. Then it switches only supported architecture left (ppc/ppc64/arm) from dereferencing pointers to __raw_{read,write}[bwl]. Third part is fixing sparse complaints: add __iomem here and there, and switch one 1bit bitfield from int to unsigned int. After this there should be no sparse complaints in matroxfb. Signed-off-by: Petr Vandrovec Signed-off-by: Linus Torvalds [SUNGEM]: Add netpoll support. Signed-off-by: Eric Lemoine Signed-off-by: David S. Miller [IA64] Kconfig: Add help text for IA64_SGI_SN2 config option. Mark Goodwin suggested that we document our platform a bit. This patch adds help text for the sn2 specific kernel option. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IPV6]: NDISC: ensure responding to NS without link-layer information When sending NA in response to NS, we may not know the link-layer address for the destination of the NA since unicast NS is not required to include its link-layer information. In this case, we first need to resolve the link-layer address. (RFC 2461 7.2.4) We now create neighbour entry for the destination and link-layer information will be automatically solved in the output path. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPV6]: Kill ip6_get_dsfield This patch kills the duplicate implementation of ip6_get_dsfield in inet_ecn.h. It now uses ipv6_get_dsfield from dsfield.h instead. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Implement DSCP decapsulation This patch adds DSCP decapsulation for IPsec. This is enabled by a per-state flag which is off by default. Leaving it off by default maintains compatibility and is also good for performance reasons. I decided to not implement a toggle on the output path since not encapsulating the DSCP can and should be done by netfilter. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Fix slab corruption in cbq_destroy Fixes slab corruption in cbq_destroy. cbq_destroy_filters and qdisc_put_rtab(q->link.R_tab) are already called in cbq_destroy_class. The latter lead to a slab corruption due to repeated freeing of q->link.R_tab because q->link is part of q->classes. Problem introduced in 1.21. Signed-off-by: Thomas Graf Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: port physdev to ip6tables Signed-off-by: Bart De Schuymer Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [SPARC64]: Add io{read,write}{8,16,32}_rep(). Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [FC4]: Fix iomem warnings in SOC driver. [FC4]: Fix iomem warnings in SOCAL driver. [SPARC64]: Make IDE ops take __iomem pointers. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in amd7930 sound driver. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in cs4231 sound driver. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in i8042-sparcio.h Signed-off-by: David S. Miller [MPTFUSION]: Fix iomem warnings. Signed-off-by: David S. Miller [SUNHME]: Fix iomem warnings. Signed-off-by: David S. Miller [IA64] SGI Altix hardware performance monitoring API The SGI Altix PROM supports a SAL call for performance monitoring and for exporting NUMA topology. We need this in community kernels for diagnostic and performance tools to use, especially on very large machines. This patch registers a dynamic misc device "sn_hwperf" that supports an ioctl interface for reading/writing memory mapped registers on Altix nodes and routers via the new SAL call. It also creates a read-only procfs file "/proc/sgi_sn/sn_topology" to export NUMA topology and Altix hardware inventory. > What tools are using this? Performance Co-Pilot http://oss.sgi.com/projects/pcp in particular, pmshub, shubstats and linkstat. Numerous other users include anything that needs knowledge of numa topology/interconnect in order to perform well, e.g. mpt. BTW I have not exported any API functions .. at this point I don't think we need any modules to call the API. Signed-off-by: Mark Goodwin Signed-off-by: Tony Luck [SUNLANCE]: Fix iomem warnings. Also clear all the bogus volatile usage out of this driver. Signed-off-by: David S. Miller [SUNQE]: Fix iomem warnings. Signed-off-by: David S. Miller [SUNBMAC]: Fix iomem warnings. Signed-off-by: David S. Miller [MYRI_SBUS]: Fix iomem warnings. Signed-off-by: David S. Miller [TYPHOON]: Fix iomem warnings. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in envctrl driver. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in display7seg driver. [SPARC64]: Fix iomem warnings in cpwatchdog driver. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in flash driver. Signed-off-by: David S. Miller [B44]: Fix remaining iomem warnings. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in esp scsi driver. Signed-off-by: David S. Miller [SPARC64]: Fix iomem warnings in qlogicpti driver. Signed-off-by: David S. Miller [PATCH] mark mace and bmac as ppc32 only mace and bmac are only used in "oldworld" PowerMacs. Mark them as ppc32 only. [SPARC64]: Fix I/O port args to string routines. Signed-off-by: David S. Miller [SPARC64]: Missing ioremap() in parport support. Signed-off-by: David S. Miller [SPARC]: Kill dump_dma_regs, unused. Signed-off-by: David S. Miller ppc32: Fix a problem with the FCC enet driver for CPM2 systems The Local Protect Bit needs to be set when entering full duplex mode. Signed-off-by: Rune Torgersen Signed-off-by: Tom Rini ppc32: The ISA PIC address for int-ack wasn't being picked out right Signed-off-by: Leigh Brown Signed-off-by: Tom Rini [PATCH] fix driver name in eth1394 as returned by ETHTOOL_GDRVINFO From: Thierry Vignaud The GDRVINFO command of the ETHTOOL ioctl returns a bogus driver name. Signed-off-by: Andrew Morton [IPV4]: Initialize newly allocated hash tables in fib_semantics.c When fib_create_info() allocates new hash tables, it neglects to initialize them. This leads to an oops during boot on at least machine I use. This patch addresses the problem. Signed-off-by: David Gibson Signed-off-by: David S. Miller [PATCH] reduce ioremap memory size for Adaptec I2O controllers The I2O subsystem currently map all memory from the I2O controller for the controller's in queue, even if it is not necessary. This is a problem, because on some systems the size returned from pci_resource_len() could be 128MB and only 1-4MB is needed. Changes: - only ioremap as much memory as the controller is actually using. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hvc_console fix to protect hvc_write against ldisc write after hvc_close Due to the tty ldisc code not stopping write operations against a driver even after a tty has been closed I added a mechanism to hvc_console in my previous patch to prevent this by nulling out the tty->driver_data in hvc_close() but I forgot to check tty->driver_data in hvc_write(). Anton Blanchard got several oops'es from hvc_write() accessing NULL as if it were a pointer to an hvc_struct usually stored in tty->driver_data. So this patch checks tty->driver_data in hvc_write() before it is used. Hopefully once Alan Cox's patch is checked in ldisc writes won't continue to happen after tty closes. Anton Blanchard has tested this patch and is unable to reproduce the oops with it applied. Changelog: drivers/char/hvc_console.c - Added comment to hvc_close() to explain the reason for NULLing tty->driver_data. - Added check to hvc_write() to verify that tty->driver_data is valid (NOT NULL) which would be the case if the write operation was invoked after a tty close was initiated on the tty. Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86 TSS: io port caching There's one additional step we can do ontop of the ports-max code to get rid of copying in X.org's case: cache the last task that set up the IO bitmap. This means we can set the offset to invalid and keep the IO bitmap of that task, and switch back to a valid offset (without any copying) when switching back to that task. (or do a copy if there is another ioperm task we switch to.) I've attached ioport-cache-2.6.8.1.patch that implements this. When there's a single active ioperm() using task in the system then the context-switch overhead is very low and constant: # ./ioperm-latency default no ioperm: scheduling latency: 2478 cycles turning on port 80 ioperm: scheduling latency: 2499 cycles turning on port 65535 ioperm: scheduling latency: 2481 cycles This single-ioperm-user situation matches 99% of the actual ioperm() usage scenarios and gets rid of any copying whatsoever - without relying on any fault mechanism. I can see no advantage of the GPF approach over this patch. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86 TSS: io bitmap lazy updating This uses Davide's do_general_protection() fault based io-bitmap lazy update code and combines it with the ioport-owner cache. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix posix-timers leak Exec fails to clean up posix-timers. This manifests itself in two ways, one worse than the other. In the single-threaded case, it just fails to clear out the timers on exec. POSIX says that exec clears out the timers from timer_create (though not the setitimer ones), so it's wrong that a lingering timer could fire after exec and kill the process with a signal it's not expecting. In the multi-threaded case, it not only leaves lingering timers, but it leaks them entirely when it replaces signal_struct, so they will never be freed by the process exiting after that exec. The new per-user RLIMIT_SIGPENDING actually limits the damage here, because a UID will fill up its quota with leaked timers and then never be able to use timer_create again (that's what my test program does). But if you have many many untrusted UIDs, this leak could be considered a DoS risk. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix arch/ppc/boot/common/ns16550.c When started including this exposed one of the fragilities of the code in arch/ppc/boot/, namely that it is tied to the kernel headers for some information, yet not really the kernel. The following starts us in the direction of being less tied to the kernel by providing our own serial_state definition (all we care about is the ability to grab information from SERIAL_PORT_DFNS). Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: open_pic2.c build fix arch/ppc/syslib/open_pic2.c: In function `init_openpic2_sysfs': arch/ppc/syslib/open_pic2.c:694: error: `ENODEV' undeclared (first use in this function) arch/ppc/syslib/open_pic2.c:694: error: (Each undeclared identifier is reported only once arch/ppc/syslib/open_pic2.c:694: error: for each function it appears in.) possible fix below. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: force_sigsegv fixes Replace do_exit() in 64bit signal code with force_sig/force_sigsegv where appropriate. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: powersave_nap sysctl Implement powersave_nap sysctl, like ppc32. This allows us to disable the nap function which is useful when profiling with oprofile (to get an accurate count of idle time). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: replace mmu_context_queue with idr allocator Replace the mmu_context_queue structure with the idr allocator. The mmu_context_queue allocation was quite large (~200kB) so on most machines we will have a reduction in usage. We might put a single entry cache on the front of this so we are more likely to reuse ppc64 MMU hashtable entries that are in the caches. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: iseries build fixes Fix one compile warning and one build warning on iseries. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: clean up asm/mmu.h Remove some old definitions that arent relevant to us. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix some bogus warnings & cleanup tlbie code path This patch fixes some warnings that popped up with the removal of -Wno-uninitialized around the code doing tlbie's. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Remove A() and AA() Remove the A() and AA() macros. Now we have compat_ptr we should be using that. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: export probe_irq_mask yenta_socket wants probe_irq_mask, so export it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: don't use state == SYSTEM_BOOTING From: Nathan Lynch Fedora has a patch which introduces a new system state during boot. Change system_state == SYSTEM_BOOTING to system_state < SYSTEM_RUNNING to match it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix hotplug CPU when building a pseries+pmac kernel When a pseries+pmac kernel is built, the rtas stop-self token wasnt being initialised. Since doing this will safely fail on pmac, remove the !CONFIG_PPC_PMAC restriction Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: disable some drivers broken on 64bit The mace, bmac and dmasound drivers use virt_to_bus and so will not work on ppc64. Reflect this in the relevant Kconfig files. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix CONFIG_CMDLINE When I cleaned up our cmdline parsing, I missed a RELOC of CONFIG_CMDLINE itself. Without it we copy something random into cmd_line, but only when CONFIG_CMDLINE is enabled. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove LARGE_PAGE_SHIFT constant For historical reasons, ppc64 has ended up with two #defines for the size of a large (16M) page: LARGE_PAGE_SHIFT and HPAGE_SHIFT. This patch removes LARGE_PAGE_SHIFT in favour of the more widely used HPAGE_SHIFT. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: add atomic64_t Add an atomic64_t type to x86-64. Not used right now, but may be useful in the future, e.g. for rss together with C.Lameter's page fault scalability patches. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: make APIC errors KERN_DEBUG Make APIC errors KERN_DEBUG Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: add apic={verbose,quiet,debug} Ported from i386 Allow to quieten apic boot output on the command line using apic={verbose,debug,quiet} Make it quiet by default Add extra #define for making apic print functions __init or not __init (for easier debugging) Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: update defconfig Update x86-64 defconfig Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: avoid deadlock in page fault handler Avoid deadlock when kernel fault happens inside mmap sem. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: avoid panic when APIC ID cannot be set Don't panic when io apic id cannot be set. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: IO-APIC suspend/resume Do IO-APIC suspend/resume. Untested so far. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: make machine check handler configurable Make the x86-64 machine check handler configurable when EMBEDDED Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: remove WARN_ON in smp_call_function Remove WARN_ON in smp_call_function. it breaks the machine check handling and there is no good way to enable interrupts here. Call Trace:{smp_call_function+115} {smp_send_stop+25} {panic+274} {do_machine_check+0} {do_machine_check+1114} {machine_check+127} {net_rx_action+215} {__do_softirq+83} {do_softirq+53} {do_IRQ+317} <{default_idle+0} {ret_from_intr+0} {default_idle+32} {cpu_idle+26} {start_kernel+502} {_sinittext+48 Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: print mce bank enable mask in hex Print mce bank enable mask in sysfs in hex Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: add might_sleeps to more *_user functions Add might_sleep to more *_user functions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: fix for mem= on NUMA systems Fix bug that caused oops with mem= on certain NUMA configurations Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: sibling map fix for clustered mode From: James Cleverdon The value that cpuinfo returns for command 1 in ebx is the physical APIC ID latched when the system comes out of reset. Ordinarily, this is identical to the value in the local APIC's ID register, because nearly all BIOSes accept the HW assigned value. Our systems, made up of individual building blocks, can't do that. Each node boots as a separate system and is joined together by the BIOS. Thus, the BIOS rewrites the local APIC ID register with a new value. Potomac and Nocona chips have a mechanism by which the BIOS writer can change bits 7:5 to match the assigned cluster ID. Bits 2:0 come from the thread ID. However, bits 4:3 are still those latched at reset. Oops! Summary: Large clustered systems can't use cpuid to derive the sibling information. Fix: Use the local APIC ID. That's the value we use to online the CPUs, so it had better be OK. For non-clustered systems, cpuid == local APIC, so nothing but large boxes should be affected. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: synchronize video.S with i386 Sync x86-64 video.S with i386 changes Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: add read implies exec macro Add read implies exec personality. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64, x86: don't pass CR2 on alignment faults Don't pass CR2 address on alignment faults. They report the address of the last page fault, which is a information leak. Fix this for i386 and x86-64 by passing 0 instead. Pointed out by Zachary Amsden Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: turn tss into per cpu data Turn per cpu TSS into per cpu data. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86-64: copy ioperm bitmaps more efficiently at context switch Copy ioperm bitmaps more efficiently at context switch time. Only copy upto the highest used port. Originally from Ingo Molnar Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix for fsync ignoring writing errors Currently metadata writing errors are ignored and not returned from sys_fsync on ext2 and ext3 filesystems. That is, at least ext2 and ext3. Both ext2 and ext3 resort to sync_inode() in their ->sync_inode method, which in turn calls ->write_inode. ->write_inode method has void type, and any IO errors happening inside are lost. Make ->write_inode return the error code? Signed-off-by: Andrey Savochkin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] serial-cs and unusable port size ranges A couple of GSM GPRS PCMCIA cards advertise 16 rather than 8 port sized windows for their serial interface. This breaks our current pcmcia serial driver which ignores any windows that are not 8 bytes. To avoid any regressions on other cards given this driver contains a certain amount of "magic" the patch below looks for 8 byte windows first so will not break existing supported cards (I hope ;)) Patch-by: Alan Cox OSDL Developer Certiticate Of Origin included herein by reference Acked by Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r architecture Add support for the m32r architecture Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update for profiling This patch is for profiling support. profile_tick() is used instead of m32r_do_profile(). * arch/m32r/kernel/smp.c (smp_local_timer_interrupt): Change profile API, use profile_tick() instead of m32r_do_profile(). * arch/m32r/kernel/time.c: ditto. * include/asm-m32r/hw_irq.h (m32r_do_profile): Removed. * include/asm-m32r/ptrace.h (profile_pc): Add profile_pc() macro. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update zone_sizes_init() This patch upgrades zone_sizes_init() function. This patch is required because free_area_init_node()'s interface has been changed. * arch/m32r/mm/discontig.c (zone_sizes_init): Change free_area_init_node() interface. * arch/m32r/mm/init.c: ditto. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update to fix compile errors This patch updates code to fix compile errors, and so on. * arch/m32r/kernel/Makefile: Change linker script's name from vmlinux.lds.s to vmlinux.lds. * arch/m32r/kernel/process.c (sys_clone): Fix the first parameter of do_fork() call. * arch/m32r/kernel/signal.c: (handle_signal): Add a new second argument, struct k_sigaction *ka. (do_signal): Change get_signal_to_deliver() interface. * include/asm-m32r/hardirq.h: Some declarations are moved to linux/hardirq.h. * include/asm-m32r/page.h: Add devmem_is_allowed() macro. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update uaccess.h This patch updates asm-m32r/uaccess.h. * include/asm-m32r/uaccess.h: (__copy_to_user_inatomic): Added. (__copy_from_user_inatomic): Added. Update comments. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update checksum functions This patch update checksum routines. And EXPORT_SYMBOL() is moved from m32r_ksyms.c to csum_partial_copy.c. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update CF/PCMCIA drivers This patch updates m32r-specific CF/PCMCIA drivers and fixes compile errors. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update headers to remove useless iBCS2 support code Here's a patch to update headers, elf.h and poll.h, to remove useless iBCS2/SVR4 support code for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] atomic_inc_return for m32r * include/asm-m32r/atomic.h: - Add atomic_inc_return(), atomic_dec_return(), atomic_add_return(), atomic_sub_return() and atomic_clear_mask(). - Change atomic_sub_and_test(), atomic_inc_and_test() and atomic_dec_and_test() from functions to macros. - Update comments, etc. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: change from EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL arch/m32r/kernel/m32r_ksyms, EXPORT_SYMBOL_NOVERS is deprecated, use EXPORT_SYMBOL. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: modify sys_ipc() to remove useless iBCS2 support code The useless iBCS2 supporting code is removed. However, according to old_ syscalls, I would like to keep backward- compatibility for a while, due to some old deb packages and executables for m32r. I'm struggling to rebuild and replace old packages to new ones. http://debian.linux-m32r.org/ Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: add ELF machine code Here is a patch for m32r's ELF machine code. And also change from "Hitachi H8/300" to "Renesas H8/300"(*). (*) The SuperH, M32R and H8* - now these are all Renesas's products. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: upgrade to 2.6.8.1 kernel Here is a patch for 2.6.8.1 kernel of Renesas M32R processor. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: support a new bootloader "m32r-g00ff" - Support new bootloader "m32r-g00ff". m32r-g00ff is newly written by NIIBE Yutaka and is released under GPL. http://www.gniibe.org/software/m32r-g00ff-20040729.tar.gz - arch/m32r/kernel/setup.c (parse_mem_cmdline): Fix to remove unused region at the end of memory. - include/asm-m32r/uaccess.h (__put_user_u64): Fix to remove warnings in compilation time. NOTE: (for m32r users) From this version, the bootloader-kernel interface has changed. - Section order is changed and rearranged for the new bootloader. - Kernel's entry address is also changed : 0x08001000 --> 0x08002000. - Paramter-passing method from bootloader to kernel is revised. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: modify IO routines for m32700ut CF access Here is a patch for M3T-M32700UT board. - Enable CF access through card-service if CONFIG_M32R_CFC is not defined. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove network drivers Signed-off-by: Hayato Fujiwara Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: modify drivers/net/smc91x.c for m32r This patch updates drivers/net/smc91x.c and merges m32r support to it. - Add m32r support. - Modify for SMP kernel. Signed-off-by: Hayato Fujiwara Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: modify drivers/net/ne.c for m32r This patch updates drivers/net/ne.c and merges m32r support to it. - Add m32r support. Signed-off-by: Hayato Fujiwara Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: slim arch/m32r/Kconfig Here is a patch to slim arch/m32r/Kconfig. Useless CONFIG_ options are removed for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: upgrade include/asm-m32r/atomic.h Upgrade include/asm-m32r/atomic.h. * include/asm-m32r/atomic.h - Change atomic_add(), atomic_sub(), atomic_inc() and atomic_dec() from function to macro. - Change not to use fixed woking register in atomic_clear_mask() and atomic_set_mask(). - Update comments: "return" to "return it", and so on. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: fix to build SMP kernel Here is a patch to fix compile errors to build SMP kernel for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] device driver for the SGI system clock, mmtimer SGI has been using this driver under Linux since 2001 but it was never included in the upstream kernel. SuSE did include the patch for mmtimer in SLES 9. The driver has been widely used for applications on the Altix platform. The timer hardware was designed around the multimedia timer specification by Intel but to my knowledge only SGI has implemented that standard. The driver was written by Jesse Barnes. The second revision has interrupt support removed and was somewhat simplified by removing one include file. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Close race with preempt and modular pm_idle callbacks The following patch from Shaohua Li fixes a race with preempt enabled when a module containing a pm_idle callback is unloaded. Cached values in local variables need to be protected as RCU critical sections so that the synchronize_kernel() call in the unload path waits for all processors. There original bugzilla entry can be found at Shaohua, i had to make a small change (variable declaration after code in code block) so that it compiles with geriatric compilers such as the ones Andrew is attached to ;) http://bugzilla.kernel.org/show_bug.cgi?id=1716 Signed-off-by: Li Shaohua Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Updates to RCU documentation Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix sysrq handling bug in sn_console.c Fix a stupid bug in the sysrq handling in sn_console.c. Instead of eating all characters in the sysrq string (preventing them from getting to the tty layer), only eat those following 'ESC' since that's a pretty important character for various things. Please apply before 2.6.9 is released as the console is very unfriendly to use without it. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: update handle_IRQ_event A small update to make UML's handle_IRQ_event look like the i386 version. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: finish conversion to sigjmp_buf/siglongjmp UML needs to use siglongjmp instead of longjmp everywhere. This patch fixes the remaining longjmp/jmp_buf occurrences. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: finish the signals across a reboot fix Due to me not refreshing this patch earlier, the last reboot signals patch was missing the actual fix. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix a signal race This patch saves and restores UML's idea of user mode across an interrupt. Without this, an interrupt arriving at the wrong time can cause UML to lose track of whether an interrupted handler is handing a userspace interrupt. From: Ingo Molnar Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: enable the timer *after* the timer handler Otherwise, we'll sometimes get timer interrupts that we can't handle. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: convert the real-time clock to gettimeofday from rdtsc There are a whole bunch of reasons to use gettimeofday rather than rdtsc, so this patch does just that. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: cleaning up This patch is a whole lot of "obviously won't break anything" changes, including renaming the UML console functions more consistently notes to myself code movement making some functions static error path cleanup printk fixes Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: let page faults always be delivered immediately This allows page faults to be delivered when they happen. Without this, it can happen that a page fault will occur when SIGSEGV is disabled, and the host will then just kill UML because it can't invoke the handler. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: eliminate signal order delivery dependency On 2.4 hosts signals are delivered in numeric order when there are multiple pending at a given time. UML developed a subtle dependency on this ordering, which broke on 2.6 hosts and the separate process and thread signal queues. This patch eliminates that dependency. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: iomem fix This patch rounds up the size of a file used for iomem emulation up to the nearest page. This makes mmap work much better on the last page of the file. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix call to sys_clone This patch changes the calling convention of clone on i386 to match that of the host by leaving the fourth argument unused. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: copy_user fixes This patch fixes some copy_user bugs: - kernelspace page faults that happen on behalf of a process are now correctly handled - add copy_user treatment so a fault handler which looks at the faulting instruction - added a note to do the same with the ldt stuff some day Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: comment UML's signal handling This adds a couple of comments so that people don't get confused into making misguided fixes, and I don't get confused into applying them. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: export memmove Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds