Summary of changes from v2.6.8 to v2.6.9 ============================================ [netdrvr epic100] minor cleanups - extra pci_disable_device() to balance invocation of pci_enable_device() in epic_init_one() (-> error path + epic_remove_one()); - lazy return status in epic_init_one(), tsss...; - memory dedicated to Rx descriptors was not freed after failure of register_netdev() in epic_init_one(); - use of epic_pause() in epic_close() offers a small window for a late interruption just before the final free_irq(). Let's close the window to avoid two epic_rx() threads racing with each other. [netdrvr epic100] napi 1/3 - just shuffle some code around Isolate the classical TX part of epic_interrupt. Innocent code shuffling. [netdrvr epic100] napi 2/3 - receive path [netdrvr epic100] napi 3/3 - transmit path [netdrvr epic100] napi fixes Multiple invocation of __netif_rx_schedule() in epic_interrupt() while epic_poll loops over __netif_rx_complete() leads to serious device refcount leak. [PATCH] epic100: spin_unlock_irqrestore avoidance This patch avoids to duplicate a spin_unlock: - it is mostly an artifact due to wild goto; - it makes the generated code smaller. [PATCH] epic100: code removal in irq handler The loop in the irq handler is not needed any more as the high frequency events have been deferred due to napi usage. Cset exclude: torvalds@evo.osdl.org|ChangeSet|20040401021818|60003 [MMC] Add MMC core support This patch adds core support to the Linux kernel for driving MMC interfaces found on embedded devices, such as found in the Intel PXA and ARM MMCI primecell. This patch does _not_ add support for SD or SDIO cards. It is vaguely based upon the handhelds.org MMC code, but the bulk of the core has been rewritten from scratch. [MMC] Add Kconfig/Makefile changes for MMC support. Since this is currently ARM-only, I've dropped the drivers/Kconfig change for the time being. [MMC] Add ARM MMCI Primecell driver. This patch adds initial support for the ARM MMCI Primecell - one of the drivers for a MMC interface. [MMC] Add PXA MMC interface support. This patch adds support for the Intel PXA MCI interface. [ACPI] ACPICA 20040402 from Bob Moore Fixed an interpreter problem where an indirect store through an ArgX parameter was incorrectly applying the "implicit conversion rules" during the store. From the ACPI specification: "If the target is a method local or argument (LocalX or ArgX), no conversion is performed and the result is stored directly to the target". The new behavior is to disable implicit conversion during ALL stores to an ArgX. Changed the behavior of the _PRW method scan to ignore any and all errors returned by a given _PRW. This prevents the scan from aborting from the failure of any single _PRW. Moved the runtime configuration parameters from the global init procedure to static variables in acglobal.h. This will allow the host to override the default values easily. [ACPI] ACPICA 20040427 from Bob Moore Completed a major overhaul of the GPE handling within ACPI CA. There are now three types of GPEs: wake-only; runtime-only; combination wake/run. The only GPEs allowed to be combination wake/run are for button-style devices such as a control-method power button, control-method sleep button, or a notebook lid switch. GPEs that have an _Lxx or _Exx method and are not referenced by any _PRW methods are marked for "runtime" and hardware enabled. Any GPE that is referenced by a _PRW method is marked for "wake" (and disabled at runtime). However, at sleep time, only those GPEs that have been specifically enabled for wake via the acpi_enable_gpe() interface will actually be hardware enabled. A new external interface has been added, acpi_set_gpe_type() that is meant to be used by device drivers to force a GPE to a particular type. It will be especially useful for the drivers for the button devices mentioned above. Completed restructuring of the ACPI CA initialization sequence so that default operation region handlers are installed before GPEs are initialized and the _PRW methods are executed. This will prevent errors when the _PRW methods attempt to access system memory or I/O space. GPE enable/disable no longer reads the GPE enable register. We now keep the enable info for runtime and wake separate and in the GPE_EVENT_INFO. We thus no longer depend on the hardware to maintain these bits. Always clear the wake status and fixed/GPE status bits before sleep, even for state S5. Improved the AML debugger output for displaying the GPE blocks and their current status. Added new strings for the _OSI method, of the form "Windows 2001 SPx" where x = 0,1,2,3,4. Fixed a problem where the physical address was incorrectly calculated when the Load() operator was used to directly load from an Operation Region (vs. loading from a Field object.) Also added check for minimum table length for this case. Fix for multiple mutex acquisition. Restore original thread SyncLevel on mutex release. Added ACPI_VALID_SXDS flag to the acpi_get_object_info interface for consistency with the other fields returned. Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one such structure for each GPE in the system, so the size of this structure is important. CPU stack requirement reduction: Cleaned up the method execution and object evaluation paths so that now a parameter structure is passed, instead of copying the various method parameters over and over again. In evregion.c: Correctly exit and reenter the interpreter region if and only if dispatching an operation region request to a user-installed handler. Do not exit/reenter when dispatching to a default handler (e.g., default system memory or I/O handlers) [PATCH] r8169: napi support Napi for r8169 (Jon D Mason ). Both Tx and Rx processing are moved to the ->poll() function. [PATCH] r8169: cosmetic renaming of a register RxUnderrun status bit renamed to LinkChg (identical to the 8139cp driver). [PATCH] r8169: janitoring Spring cleanup - unsigned int (u32) should be slightly faster on ppc64 (Jon D Mason); - misc minor de-uglyfication. input: Add 64-bit compatible ioctls for hiddev. [PATCH] r8169: ethtool .set_settings ethtool set_settings support (Andy Lutomirski ). The initial code has been modified so that the settings of parameters for TBI and normal mode do not step on each others shoes. [PATCH] r8169: ethtool .get_{settings/link} - ethtool get_settings() for r8169 (Andy Lutomirski ); - rtl8169_ethtool_ops.get_drvinfo() is set as well; - added some bits to handle the TBI status. The locking does not need to be specially clever. ALSA CVS update - Clemens Ladisch ALSA sequencer,ALSA<-OSS sequencer export snd_seq_set_queue_tempo() for OSS to prevent calling snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt context ALSA CVS update - Takashi Iwai ATIIXP driver - continue to probe other codecs even if a codec returns error (instead of breaking the probing). this will fix some cases with both AC97 and MC97 codecs. ALSA CVS update - Takashi Iwai Documentation,ICE1712 driver,ICE1724 driver - fixed the description of model module parameters for ice1712 and ice1724 drivers. - added the support of VT1720-based mobo. (still experimental and supporting AC97 only) ALSA CVS update - Takashi Iwai Memalloc module - added ifdef CONFIG_PCI around the enable module option to avoid the compile warnings without PCI support. ALSA CVS update - Takashi Iwai AC97 Codec Core - added the global mutex for ac97_t (ad18xx mutex is removed). used to protect paging and AD18xx multi-codecs. - set PAGE_INT register explicitly before accessing (for STAC9758). - moved ALC650 revision check to patch_alc650(). - support stereo Mic playback. - moved STAC9708 quirk to patch_stac9708(). - don't clear PC_BEEP high bits (ac97 2.3 sets frequency there). - avoid the unnecessary RESET-waiting for audio/modem codec. - fixed the evaluation of modem codec to call mpatch callback properly. - determine the SPDIF rate in the build path. - added suffix argument to snd_ac97_rename|remove|swap_ctl(). - added snd_ac97_rename_vol_ctl(). ALSA CVS update - Takashi Iwai Digigram VX core fixed sleep while atomic in the trigger callback. ALSA CVS update - Takashi Iwai PARISC Harmony driver - fixed the buffer handling without dma_alloc_coherent support. ALSA CVS update - Takashi Iwai Digigram VX core fixed the compile warnings due to the last change. ALSA CVS update - Takashi Iwai Digigram VX core added 'Clock Mode' control to choose the clock source. ALSA CVS update - Takashi Iwai ICE1724 driver avoid to change the AC97 rate registers. this seems conflicting with the rate conversion on VT172x. ALSA CVS update - Clemens Ladisch Wavefront drivers fix possible buffer overflow in wavefront_download_firmware() ALSA CVS update - Takashi Iwai VIA82xx driver added the DXS entry for Mitac/Vobis/Yakumo laptop. ALSA CVS update - Takashi Iwai AC97 Codec Core added ac97_can_spdif() for checking the SPDIF support. ALSA CVS update - Takashi Iwai VIA82xx driver - use snd_pcm_limit_hw_rates() and removed redundant codes. - fixed the rate constraints when 'IEC958 Output Switch' is on. - check the SPDIF support on AC97 and don't build IEC958 stuffs if not available. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Signed-off-by: Kevin Mack For Gateway M675 notebook - this will direct mixer output to speaker, headphone and line-out instead of just the front(DAC-A) signal. ALSA CVS update - Takashi Iwai PARISC Harmony driver fixed typos. ALSA CVS update - Takashi Iwai AC97 Codec Core Avoid warning message during codec probing in case SKIP_AUDIO flag is not set. ALSA CVS update - Takashi Iwai AC97 Codec Core - Added the single mixer control with AC97 2.3 paging. - Handle the paging for some ALC655/658 registers. - Added the experimental support for ALC850. 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. ALSA CVS update - Jaroslav Kysela ALSA Core Fixed warnings for pci PM callbacks when not CONFIG_PCI ALSA 1.0.5 input: Make atomicity and exclusive access to variables explicit in atkbd.c, using bitops. Signed-off-by: Vojtech Pavlik ALSA CVS update - Takashi Iwai AC97 Codec Core Fixed mutex deadlocks. 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 [MMC] Fix PXA MMC interface issues. - Wait for STAT_CLK_EN to clear rather than waiting for the CLK_IS_OFF interrupt when stopping the MMC clock. - Always return the number of data blocks transferred no matter what. - Set the device driver data correctly. 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 [PATCH] r8169: link handling and phy reset rework Link handling changes (Andy Lutomirski ): - removed rtl8169_hw_phy_reset() and its busy loop; - RTL8169_PHY_TIMEOUT is x10 to account for the removal of the phy_link_down_cnt loop in rtl8169_phy_timer(); - added spinlocking in timer context for rtl8169_phy_timer to avoid messing with the {set/get}_settings commands issued via ethtool; - more TBI stuff. This patch differs from the former version on the following points: - the LinkChg irq does not enable the phy timer when the link goes down any more; - the phy timer is not enabled in rtl8169_set_speed(); - removal of the initial renegotiation hack. [PATCH] r8169: initial link setup rework Use rtl8169_set_speed() for link setup in rtl8169_init_one(): - the code which handles the option checking is isolated; - display (once) a notice message about the deprecated interface; - rtl8169_open() enables the phy timer if the link is not up; - rtl8169_set_speed() checks that the netdevice is actually ready in order to activate the timer. [PATCH] r8169: gcc bug workaround Add a temporary variable to workaround gcc 2.95.3 bug. [PATCH] r8169: tx lock removal spinlock removal crusade. The patch rephrases the spinlock_irq() in rtl8169_start_xmit() and its companion in the Tx irq handling patch in terms of ordered operations. 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 [PATCH] e100: use NAPI mode all the time I see no reason to keep the non-NAPI option for e100. This patch removes the CONFIG_E100_NAPI option and puts the driver in NAPI mode all the time. Matches the way tg3 works. Unless someone has a really good reason to keep the non-NAPI mode, this should go in for 2.6.7. -scott Input: rearrangements and cleanups in serio.c Signed-off-by: Vojtech Pavlik [CPUFREQ] new Dothan variant for speedstep-centrino Add support for new Dothan variant (CPUID 0x6d6) to speedstep-centrino. Noted to be missing and tested by Athul Acharya. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones input: Fix bad struct hidinput initialization in hid-tmff.c Signed-off-by: Vojtech Pavlik [PATCH] via-velocity: PCI ID move (Note: this serie requires a -mm based kernel as the via-velocity patches are not included in Jeff's -netdev patches). PCI ID moved from the driver to the kernel database. A change for the pci.ids file project at souceforge has been submitted as well. [PATCH] via-velocity: uniformize use of OWNED_BY_NIC Introduce velocity_give_rx_desc() to uniformize the use of OWNED_BY_NIC through the driver. [PATCH] via-velocity: velocity_receive_frame diets Weight loss in velocity_receive_frame(): - isolate the ip header alignment tsk from velocity_receive_frame(); - following p.30 of the datasheet, rdesc0.len includes the CRC length: the amount of data copied during the ip alignment can be shortened. [PATCH] fix via-velocity oopses - Don't register the inet_addr notifier if the hardware is absent. It oopses when other interfaces are being upped. - Mark velocity_remove1() as __devexit_p in the pci_driver table. - c99ification. Signed-off-by: Andrew Morton [PATCH] Restructure reset code Restructure code to make it easier to maintain. rhine_hw_init: resets chip, reloads eeprom rhine_chip_reset: chip reset + what used to be wait_for_reset rhine_reload_eeprom: reload eeprom, re-enable MMIO, disable EEPROM-controlled WOL Note: Chip reset clears a bunch of registers that should be reloaded from EEPROM (which turns off MMIO). Deal with that later. Signed-off-by: Roger Luethi [PATCH] fix mc_filter on big-endian arch A.J. from VIA Networking Technologies noticed that via-rhine is using cpu_to_le32() when preparing mc_filter hashes. This breaks Rhine hardware multicast filters on big-endian architectures. Signed-off-by: Roger Luethi [PATCH] Remove lingering PHY special casing All this code is broken (e.g. unconditionally programs all PHYs as if they were the same model) and/or unused (IntrLinkChange never occurs with driver as is). Signed-off-by: Roger Luethi [PATCH] Rewrite PHY detection Instead of probing, set phy_id to 1 for Rhine III and read phy_id from EEPROM-controlled register for Rhine I/II. Remove code for handling anything other than 1 MII PHY. If it wasn't unnecessary code to begin with, it would need to be fixed because it wouldn't work. Use mii_if_info.phy_id as the only container of phy_id. Not particulary happy about those names (phy_id vs. MII_PHYSIDx), but being consequent about it mitigates confusion. Signed-off-by: Roger Luethi [PATCH] Remove options, full_duplex parameters Nobody complained although media locking parameters were broken forever. They were sort of fixed recently, but the code is still in a bad shape. More seriously, the options/full_duplex stuff has fundamental design problems that have been discussed in-depth on the list (e.g. effect of hotplugging, nameif, suspend/resume). For those needing media locking with Linux 2.6+ via-rhine, ethtool(8) is the replacement. Signed-off-by: Roger Luethi [PATCH] Fix Tx engine race for good It finally dawned on me how to eliminate the race I've been narrowing down with earlier patches: Instead of writing the command registers as one word, write them one at a time (as bytes). The race was for settings bits in ChipCmd and ChipCmd1 (0x09) against the chip clearing CmdTxOn which is in ChipCmd. In addition to writing single bytes, the fix requires a switch from using bit 5 in ChipCmd0 to bit 5 in ChipCmd1 (which is equivalent) to signal Tx demand. Also, don't restart Rx engine "pre-emptively" in rhine_rx, that's a sure way to race with the chip. Introduce RHINE_WAIT_FOR, a macro for small busy loops with primitive completion checking. Signed-off-by: Roger Luethi [PATCH] Media mode rewrite Remove rhine_check_duplex, rhine_timer and related data structures Add rhine_check_media: wrapper for generic mii_check_media, sets duplex bit in MAC Add rhine_enable_linkmon, rhine_disable_linkmon to enable hardware link status monitoring Update mdio_read, mdio_write accordingly Remove get_intr_status check in rhine_start_tx because we are not racing anymore Signed-off-by: Roger Luethi [PATCH] Small fixes and clean-up Bump driver version to mark recent major changes in driver code. Remove backoff parameter. The reason it was once introduced is gone. Continue to go with EEPROM default for now, will hard-wire IEEE backoff algorithm instead (later). Rhine-I needs extra time to recuperate from chip reset before EEPROM reload. Add Rhine model identification. Signed-off-by: Roger Luethi [PATCH] Add WOL support Add rhine_shutdown callback to prepare Rhine power registers for shutdown. Add rhine_get_wol/rhine_set_wol for ethtool ioctl. Signed-off-by: Roger Luethi [PATCH] New driver for MV64340 GigE The Marvell MV64340 is a system controller with PCI and 3 integrated GigE interfaces. Signed-off-by: Ralf Baechle [CPUFREQ] Stop powernow-k7 printk'ing tab characters. Signed-off-by: Dave Jones 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 [PATCH] via-velocity: Rx buffers allocation rework Rework of the Rx buffers allocation: - Rx irq handler (velocity_rx_srv): defer the Rx buffer allocation until the packet processing loop is done; - a separate index related to the Rx descriptor ("rd_dirty") is introduced to distinguish the first Rx descriptor whose buffer has to be refilled. This way the driver does not need to confuse this descriptor with the most recently netif()ed one. Rationale: batch + rx_copybreak; - dirty/empty Rx descriptors are identified through the whole driver via an adequate NULL pointer in the velocity_rd_info[] array (see velocity_rx_refill() and velocity_receive_frame()); - Rx descriptors need to be grouped by a multiple of 4 before they can be handed back to the asic (hardware constraint). This task is moved from the Rx processing loop to the Rx refill function; - factorization of code in velocity_init_rd_ring(). [PATCH] via-velocity: Rx copybreak Handle copybreak. - velocity_rx_refill() is modified to allow the processing of a Rx desc ring wherein the empty skb slots are not necessarily contiguous. Given the preceeding changes, rx_copybreak should not need anything else; - the driver does not rely on rd_info->skb_dma set to NULL any more; - pci_dma_sync_single_for_{cpu/device} changes as a bonus; - more function documentation. Some inspiration borrowed from similar r8169 code. [PATCH] via-velocity: ordering of Rx descriptors operations Force strict ordering of operations on Rx descriptors to avoid any issue related to inline optimization. [PATCH] via-velocity: unneeded forward declarations Removal of unneeded forward declarations. [PATCH] via-velocity warning fixes With CONFIG_PM=n various functions (such as velocity_set_wol) are unused and we get warnings and unused code. Fix that up by moving the functions so they fall inside the callers's #ifdef CONFIG_PM. Remove now-unneeded forward declarations. Signed-off-by: Andrew Morton [ACPI] ACPICA 20040514 from Bob Moore Fixed a problem where hardware GPE enable bits sometimes not set properly during and after GPE method execution. Result of ACPICA 20040427 changes. Removed extra "clear all GPEs" when sleeping/waking. Removed acpi_ht_enable_gpe and acpi_hw_disable_gpe, replaced by the single acpi_hw_write_gpe_enable_reg. Changed a couple of calls to the functions above to the new acpi_ev* calls as appropriate. ACPI_OS_NAME was removed from the OS-specific headers. The default name is now "Microsoft Windows NT" for maximum compatibility. However this can be changed by modifying the acconfig.h file. Fixes EHCI probe issue: http://bugme.osdl.org/show_bug.cgi?id=1762 Allow a single invocation of acpi_install_notify_handler for a handler that traps both types of notifies (System, Device). Use ACPI_ALL_NOTIFY flag. Run _INI methods on ThermalZone objects. This is against the ACPI specification, but there is apparently ASL code in the field that has these _INI methods, and apparently "other" AML interpreters execute them. Performed a full 16/32/64 bit lint that resulted in some small changes. [ACPI] ACPICA 20040527 from Bob Moore Completed a new design and implementation for EBDA (Extended BIOS Data Area) support in the RSDP scan code. The original code improperly scanned for the EBDA by simply scanning from memory location 0 to 0x400. The correct method is to first obtain the EBDA pointer from within the BIOS data area, then scan 1K of memory starting at the EBDA pointer. There appear to be few if any machines that place the RSDP in the EBDA, however. http://bugme.osdl.org/show_bug.cgi?id=2415 Integrated a fix for a possible fault during evaluation of BufferField arguments. Obsolete code that was causing the problem was removed. (Asus laptop boot crash) https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=121760 Found and fixed a problem in the Field Support Code where data could be corrupted on a bit field read that starts on an aligned boundary but does not end on an aligned boundary. Merged the read/write "datum length" calculation code into a common procedure. [ACPI] ACPICA 20040615 from Bob Moore Implemented support for Buffer and String objects (as per ACPI 2.0) for the following ASL operators: LEqual, LGreater, LLess, LGreaterEqual, and LLessEqual. [MMC] MMCI updates. Calculate data timeout correctly. Obtain MCLK rate from clock subsystem. Limit max clock rate properly. Use clock bypass mode for fast data rates. [ACPI] update EC GPE handler to new ACPICA handler type [MMC] Fix some review points from Jens Axboe Remove "suspended" flag, queue plugging/unplugging and associated checks, remove check for oversized requests. [ACPI] fix return-from-sleep PM/ACPI state conversion bug (David Shaohua Li) input: Fix array overflows in keyboard.c when KEY_MAX > keycode > NR_KEYS > 128. Signed-off-by: Vojtech Pavlik ALSA CVS update Documentation Added snd-fm801 tuner parameter description Signed-off-by: Jaroslav Kysela ALSA CVS update ICE1724 driver SPDIF output fixes - Fixed the encoding of SPDIF status bits in the consumer mode. - Change the SPDIF status bits according to the current sample rate. Signed-off-by: Takashi Iwai ALSA CVS update ATIIXP driver,VIA82xx driver Added the missing RESUME info bits to pcm. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the PCI ID for nVidia CK8. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ALSA<-OSS emulation Clean up and optimization of PCM format-specific functions. - Use array indexing instead of huge swith/case. - Removed superfluous handling of floats. - Use memcpy for silencing to simplify the codes. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver Quattro USB: handle the different endianness of playback and recording sample data Signed-off-by: Clemens Ladisch ALSA CVS update Opti9xx drivers Fixed spin deadlocks. Signed-off-by: Takashi Iwai ALSA CVS update OPL4 add newline at end of file Signed-off-by: Clemens Ladisch ALSA CVS update OSS sequencer emulation Use separate functions for some ioctls to reduce stack usage. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela ALSA CVS update CS46xx driver,MIXART driver reduce stack usage Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel Removed the obsoleted init for boot parameters. Signed-off-by: Takashi Iwai ALSA CVS update ES1968 driver Fix the crash at unloading the module due to the shared interrupt with other devices. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ALSA CVS update Generic drivers Do the buffer allocation in hw_params callback instead of open callback. This will prevent to use the allocation of excessive size. Pre-allocation is called with the default size 0, ie. no buffer will be pre-allocated as default. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver Trident driver Clean up the buffer management in the PCM runtime record. The buffer-allocation record is hold in runtime instance, so that it can be checked more cleanly. dma_private is removed from runtime (it's used for SG-buffers). The macro snd_pcm_substream_sgbuf() should be used instead of direct access to the pointer, to retrieve the sgbuf struct from the PCM substream instance. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Fixed the calculation of the current DMA position on some sloppy devices. Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Fixed the calculation of the current DMA position at the period boundary. In some cases, DMA residue returns the value 0 during the transition at the DMA boundary. The patch handles it as the position 0. This may prevent the flood of 'invalid last pointer' debug messages on some devices. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver handle devices that allow setting but not reading sample rate Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver - Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96. Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case. - Clean up the indirect accessing on RME32/RME96 drivers. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Merge EFX playback and capture streams to the single device (hw:0,2). Signed-off-by: Takashi Iwai ALSA CVS update au88x0 driver - Fixed the wrong pointer cast on 64bit architectures. Signed-off-by: Andi Kleen Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver reduce stack usage Signed-off-by: Clemens Ladisch ALSA CVS update CMIPCI driver don't sleep in prepare callback Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel Each of snd_pcm_hw_refine_old_user() and snd_pcm_hw_params_old_user() consume 856 bytes of stack and can invoke deep calls via the page allocator. Signed-off-by: Andrew Morton Signed-off-by: Jaroslav Kysela ALSA CVS update USB generic driver new functions snd_usbmidi_input_stop() and snd_usbmidi_input_start() needed by snd-usb-usx2y to be able to use usb_set_interface() Signed-off-by: Clemens Ladisch input: Add Dell SB Live! PCI ID to the emu10k1-gp driver. Reported-by: Francisco Moraes Signed-off-by: Vojtech Pavlik ALSA CVS update ALSA sequencer,Instrument layer,ISA,GUS drivers Clean up Makefiles for the sequencer stuff using reverse selections. Signed-off-by: Takashi Iwai input: Add Audigy LS PCI ID to emu10k1-gp.c Signed-off-by: Vojtech Pavlik [ACPI] enable Embedded Controller (EC)'s General Purpose Event (GPE) from David Shaohua Li [ACPI] enable GPE for ECDT (David Shaohua Li) [ACPI] reserve IOPORTS for ACPI (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=2641 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 [PATCH] qla1280: add ISP1040 register definitions The old 1020/1040 has some registers where the newer controlers only have reserved space, add that to qla1280.h Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: add IS_ISP* helpers The code is already messy due to the explicit pci id checks for 1280 vs 1x160, so add some nice helpers for that. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup firmware loading, add pio-based loading The ISP1040 needs to load firmware by PIO, and while we're at it clean the convoluted mess of firmware loading up by splitting it into managable subroutines. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup qla1280_nvram_config qla1280_nvram_config is a huge mess. Split it up into managable subroutines and add suport for the ISP1040 to it. Add missing call to set the age limit also on 1280/1x160. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup qla1280_initialize_adapter no function changes, just some more gotos and less nested ifs to make the code readable. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: update changelog and version Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley 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 [CPUFREQ] Fix sparse NULL ptr warning. Signed-off-by: Dave Jones Add dma_declare_coherent_memory() API This adds the description and a null prototype. Signed-off-by: James Bottomley Add memory region bitmap implementations These APIs deal with bitmaps representing contiguous memory regions. The idea is to set, free and find a contiguous area. For ease of implementation (as well as to conform to the standard requirements), the bitmaps always return n aligned n length regions. The implementation is also limited to BITS_PER_LONG contiguous regions. Signed-off-by: James Bottomley Add vmalloc alignment constraints vmalloc is used by ioremap() to get regions for remapping I/O space. To feed these regions back into a __get_free_pages() type memory allocator, they are expected to have more alignment than get_vm_area() proves. So add additional alignment constraints for VM_IOREMAP. Signed-off-by: James Bottomley Add x86 implementation of dma_declare_coherent_memory This actually implements the API (all except for DMA_MEMORY_INCLUDES_CHILDREN). Signed-off-by: James Bottomley Convert NCR_Q720 to use dma_declare_coherent_memory This board makes an ideal example for using the API since it consists of 4 SCSI I/O processors and a 0.5-2MB block of memory on a single MCA card. Signed-off-by: James Bottomley This patch introduces a kcalloc() in the kernel that is used to replace the ALSA subsystem-specific snd_kcalloc() and snd_magic_kcalloc(). Signed-off-by: Pekka Enberg ALSA CVS update AC97 Codec Core Fixed the detection of STAC9708/11 surround control. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Fix Audigy + FX8010 capture (hw:x,2) This patch fixes capture problems from hw:x,2 on Audigy. It is same as previous, because it can be applied cleanly against CVS (I tested version from 23.06.2004) and hope it is still true for current CVS. I tested 4 channel recrding and it was OK. hw:x,2 records outputs from FX8010 (not FX buses) Using 'EFX voices mask' you can set channels what you want record. use alsactl store to store config edit this config (set true for needed channel for 'EFX voices mask' control) - I recorded channels 8,9,14,15 (front and rear output). use alsactl restore to restore config Looks like channel count must be power of 2 (1, 2, 4, 8, ...). Signed-off-by: Peter Zubaj Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Audigy 2 ZS - side support Added the support of side speakers on Audigy 2 ZS. TODO - detection of audigy 2 zs. Now it will add side controls to mixer for audigy 2 to. Maybe left or right slider can control volume of back center on audigy 2 too. Signed-off-by: Peter Zubaj Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver,ICE1724 driver Fixes for VT1720/VT1724 - Fixed the volume update on aureon. - Removed the bogus master volume from aureon. - Fixed the wrong number of ADCS (not used, though). - Don't access GPIO high bits on VT1720. - Fixed the buffer byte alignment for SPDIF and independen PCMs. - Proper rate constraints according to the I2S/AC-link connection. - Clean up the private data for PCM callbacks. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver Synth,Common EMU synth Removal of snd_kcalloc() This patch removes snd_kcalloc() from the kernel and updates callers to use the new generic kcalloc(). Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer Removal and replacement of magic memory allocators and casts (core part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver Removal and replacement of magic memory allocators and casts (pci part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers Wavefront drivers Removal and replacement of magic memory allocators and casts (isa part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3 OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers AK4117 receiver,Serial BUS drivers,PARISC Harmony driver Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth USB generic driver Removal and replacement of magic memory allocators and casts (other parts) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core Fixed STAC9758 output jack selection control - fixed unbalnaced mutex. - use ac97_update_bits_page() instead of snd_ac97_update_bits(). Signed-off-by: Takashi Iwai ALSA CVS update CMIPCI driver Fix the i/o port range of gameport on cmipci Gameport use only 1 I/O port not 8. Attached patch fix gameport on CMIPCI soundcards. Signed-off-by: Artur Frysiak Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer Clean up of obsolete MODULE_* stuff (core part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver GUS Classic driver,GUS Extreme driver,GUS MAX driver AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers Clean up of obsolete MODULE_* stuff (isa part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver Clean up of obsolete MODULE_* stuff (pci part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers PARISC Harmony driver,Sound Core PDAudioCF driver Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver SPARC cs4231 driver,USB generic driver Clean up of obsolete MODULE_* stuff (other part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update NM256 driver Added AC97 CD register to the list of allowed registeres. Signed-off-by: Takashi Iwai ALSA CVS update ALSA<-OSS sequencer Suppress the error message when no device is found. Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core Check the validity of registers before creating controls. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel Clean up of indirect PCM data transfer with helper functions. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Added the experimental fullduplex support. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel snd_pcm_timer_resolution_change(): Right, that function doesn't work well for 44100/1024 in 32 bits -- it ends up trying to calculate 1e7 * 1024 / 441 and having to divide both numerator and denominator by 4 (thus losing the rather crucial 1 at the end of 441) before it can do the calculation without overflow. Attached is a patch against 1.0.5a that gets better results in this instance, by leaving the denominator alone and instead doubling the result back up by the same number of times as the multiplier had to be halved by. Signed-off-by: Chris Cannam Signed-off-by: Jaroslav Kysela ALSA CVS update Instrument layer LD .tmp_vmlinux1 sound/built-in.o(.text+0xfb4ae): In function nd_gus_synth_new_device': : undefined reference to nd_seq_iwffff_init' make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Jaroslav Kysela [PATCH] via-velocity: use common crc16 code for WOL - use common crc16 code for WOL; - remove unused ether_crc. Signed-off-by: Francois Romieu [CPUFREQ] Trailing whitespace removal in longrun driver. Signed-off-by: Dave Jones [CPUFREQ] Fix FSB calculation in powernow-k7 use the maximum fid instead of the current fid. From: Bruno Ducrot Signed-off-by: Dave Jones [CPUFREQ] fix double "out-of-sync" warning on resume. - Rephrase "out-of-sync" warning (partly) based upon Gerald Britton's suggestion - Also update cpufreq's opinion of current cpu frequency upon resume, else the "out-of-sync" warning will appear twice. Thanks to Gerald Britton for noting this. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] fix userspace resume support. Fix resume support in the userspace cpufreq governor: we need to set the CPU to the frequency last echo'ed by userspace into this governor's files. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones ALSA CVS update EMU10K1/EMU10K2 driver Clean up the invalid (commented out) lines for emu10k1x. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,RME32 driver - Fixed the int types in indirect_pcm helpers. - Added the missing initialization of fullduplex mode on rme32. Signed-off-by: Takashi Iwai ALSA CVS update ES1938 driver Playing Quake1 (quakeforge-flavor with ALSA-driver) I hear cracks and blibs. Other apps (xine, mpg321) are fine. The OSS driver in 2.6.7 produces no cracks (but reverses stereo BTW). I fixed it, i.e. it works for me: *No swapping of stereo channels *no cracks Signed-off-by: Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver - asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan - fixed extern/static problem Signed-off-by: Jaroslav Kysela [PATCH] convert skge to pci_driver API (2nd try) [PATCH] Fix successive calls to spin_lock_irqsave in sk98lin This patch fixes the few places in sk98lin where it calls spin_lock_saveirq on the same flags variable thus causing interrupts to be disabled upon leaving the driver. [libata] transfer mode cleanup Add MWDMA support, and rework pio/mwdma/udma mode setup. In the lone test case for PATA support, ata_piix, MWDMA mode setting does not appear to work here. UDMA and PIO continue to work, so nobody will really notice. But beware. Probably a driver problem, not a bug in the core. Also, doesn't bother writing to dummy timing registers on ICH5/6 SATA anymore. [libata] fix completion bug, better debug output When using a completion, we need to clear the entry, and furthermore clear the entry before we call the completion. Make debugging output a bit more explicit. [libata] convert set-xfer-mode operation to use ata_queued_cmd [CPUFREQ] Make powernow-k7 debug printk a runtime option. Signed-off-by: Dave Jones [CPUFREQ] REmove more trailing whitespace Signed-off-by: Dave Jones [CPUFREQ] Remove out of date comment from powernow-k7 This has had significant amount of testing since it got merged, and nothing nasty has actually ever happened. Signed-off-by: Dave Jones [libata] transfer mode bug fixes and type cleanup Fix two bugs that causes the recently-added transfer mode code to break on 64-bit platforms. Make associated code more type-correct in the process. [libata sata_promise] convert to using packets for non-data taskfiles 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 [PATCH] add new ethernet driver 'gianfar' [libata sata_sx4] deliver non-data taskfiles using Promise packet format [MMC] Fix PXA MCI driver name. [PATCH] Fix warnings drivers/net/sk98lin/skaddr.c From: "Mika Kukkonen" CC [M] drivers/net/sk98lin/skaddr.o drivers/net/sk98lin/skaddr.c: In function `SkAddrMcUpdate': drivers/net/sk98lin/skaddr.c:895: warning: `ReturnCode' might be used uninitialized in this function drivers/net/sk98lin/skaddr.c: In function `SkAddrPromiscuousChange': drivers/net/sk98lin/skaddr.c:1427: warning: `ReturnCode' might be used uninitialized in this function Signed-off-by: Andrew Morton [PATCH] allow modular mv64340_eth Only tested together with some additional patches to make the driver work on PPC that need more work, but the changes are obvious. NTFS: Add support for readv/writev and aio_read/aio_write. Signed-off-by: Anton Altaparmakov Fix incorrect prototype in the dma_declare_coherent_memory API dma_mark_declared_memory_occupied() wasn't declared static inline in the NULL (default) implementation leading to compile failures. [ACPI] reserve EBDA for Dell BIOS that neglects to. (David Shaohua Li) http://bugme.osdl.org/show_bug.cgi?id=2990 [libata] pio/dma flag bug fix, and cleanup In the transfer-mode cleanup recently, the code that set flag ATA_DFLAG_PIO disappeared. Resurrect it. Remove ATA_QCFLAG_DMA, it isn't needed. Always set polling in the ->qc_issue function, rather than force the user to do it when setting up an ata_queued_cmd. This gives maximum flexibility to the driver, letting the driver choose whether or not to poll. [libata] update IDENTIFY DEVICE path to use ata_queued_cmd rather than hand-rolling our own taskfile call (which won't work at all on newer SATA controllers). Individual changes: * use ata_qc_issue to issue identify-device command * implement MMIO path for PIO data xfer * implement PIO error handling path [MMC] Use a consistent naming to refer to mmc_request, mmc_blk_request and request structures to avoid confusion. [MMC] Fix end of request handling. We were mixing end_request with end_that_request_chunk, which is apparantly bad news. Also, the handycapped pxamci driver was telling us that it had transferred all data successfully on error, which is obviously wrong. NTFS: Change ntfs_write_inode to return 0 on success and -errno on error and create a wrapper ntfs_write_inode_vfs that does not have a return value and use the wrapper for the VFS super_operations write_inode function. Signed-off-by: Anton Altaparmakov NTFS: Implement fsync, fdatasync, and msync both for files (fs/ntfs/file.c) and directories (fs/ntfs/dir.c). Signed-off-by: Anton Altaparmakov [CPUFREQ] fix whitespace after merge. Signed-off-by: Dave Jones Fix bug in __get_vm_area() alignment code If we are still above the vma start address on the last vma, we can use addr even if it is inside the vma (i.e. addr < vma->addr + vma->size). Fix this by aligning addr past the end of the vma in this case [PATCH] fix compiler warnings in mv64340_eth [PATCH] remove dead code from mv64340_eth [PATCH] Fix sparc compile error in dma-mapping.h William Lee Irwin III wrote: > > SPLIT include/linux/autoconf.h -> include/config/* > CHK include/linux/compile.h > UPD include/linux/compile.h > In file included from include/asm/sbus.h:10, > from arch/sparc64/kernel/auxio.c:15: It needs err.h. Signed-off-by: James Bottomley Fix region sizing problem in dma_mark_declared_memory_occupied() The current code reserves too few pages if addr isn't page aligned and size just spans onto the last page. Fix by increasing size by the addr misalignment amount. Signed-off-by: James Bottomley [libata] ATAPI work - PIO xfer, completion function Move hand-coded ATA Data register I/O from ata_pio_sector() to its own function ata_data_xfer(), so that it may also be used to send the ATAPI packet to hardware. Use ata_data_xfer() in ATAPI packet send. Separate ATA and ATAPI completion functions. [PCI, libata] Fix "combined mode" PCI quirk for ICH6 The hardware vendor, in their infinite wisdom, make the combined mode configuration register different between ICH5 and ICH6. Take this into account. dma_alloc_coherent() still needs to support a NULL device Fix the part of the on-chip memory API that broke this. Signed-off-by: James Bottomley [libata ata_piix] make sure AHCI is disabled, if h/w is used by this driver AHCI must be disabled if we are to have access to taskfile registers. [libata] flags cleanup Remove unused/redundant flags ATA_DFLAG_{MASTER,WCACHE} [PATCH] fix JAZZ_ESP driver config depends Use correct config symbol name for MACH_JAZZ in JAZZ_ESP driver config. Acked by Ralf. Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] aacraid reset handler This restores a fix to the aacraid reset handler. It makes sure that there are no active commands on any attached device before exiting with SUCCESS. Signed-off-by: Mark Haverkamp Signed-off-by: James Bottomley [PATCH] fix scsi_remove_device locking The following patch fixes an oops I was seeing on a machine with misconfigured scsi cables, but could feasibly happen in other paths. The oops was occurring because scsi_remove_device was getting called for a device before scsi_add_device had fully completed. This resulted in sysfs_remove_link being called with a NULL dentry. Signed-off-by: Brian King Signed-off-by: James Bottomley MPT Fusion driver 3.01.10 update From: "Moore, Eric Dean" This driver incorporates the patches from Christoph Hellwig and Masao Fukuchi. Changelog of this release: * Patch provided by Masao Fukuchi [fukuchi.masao@jp.fujitsu.com] - mptctl updates for hot plug * Patch provided by Christoph Hellwig [hch@infradead.org] - mptlan updates for hot plug - remove CONFIG_LBD ifdefs from fusion { mptscsih.c} Signed-off-by: James Bottomley [PATCH] mptbase.c warning fix drivers/message/fusion/mptbase.c: In function `GetIocFacts': drivers/message/fusion/mptbase.c:2420: warning: int format, different type arg (arg 4) Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] tmscsim: kernel bugzilla bug #2139 > Short: The attached patch fixes the bug-report #2139 from kernel bugzilla. I wasn't quite convenient with the previous version of the patch, but I just wanted to get it working at first and get some comments as to whether the approach (put a workaround vs. blacklisting) is at all valid. Since no objections arrived, I guess, nobody minds this small trick. So, I am enclosing a reworked patch, which does essentially the same, but has some more careful checking, and overall looks saner, than the previous one. Signed-off-by: James Bottomley [PATCH] update contact address for SCSI megaraid.c If you send an email to linux-megaraid-devel@dell.com, you get an automated response to send the mail to linux-scsi@vger.kernel.org instead. The patch below updates megaraid.c accordingly. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [libata] ATAPI work - cdb len, new taskfile protocol, cleanups * new helper atapi_cdb_len() in linux/ata.h, use it after IDENTIFY PACKET DEVICE command completes * add new taskfile protocol ATA_PROT_ATAPI_NODATA * store scsi cdb in ata_queued_cmd. This removes another dependence on the scsi layer, and enables us to issue an internal REQUEST SENSE. * store cdb len in ata_port * new constant ATAPI_CDB_LEN for max cdb length * move ATA taskfile and SCSI cdb near the top of ata_queued_cmd, for better cacheline friendliness. [CPUFREQ] reorder cpufreq.c for inlining Trying to compile drivers/cpufreq/cpufreq.c with gcc 3.4 and # define inline __inline__ __attribute__((always_inline)) results in the following compile error: CC drivers/cpufreq/cpufreq.o drivers/cpufreq/cpufreq.c: In function `cpufreq_resume': drivers/cpufreq/cpufreq.c:39: sorry, unimplemented: inlining failed in call to 'adjust_jiffies': function body not available drivers/cpufreq/cpufreq.c:628: sorry, unimplemented: called from here make[2]: *** [drivers/cpufreq/cpufreq.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Dave Jones [PATCH] warning fix to include/scsi/scsi_device.h From: Mika Kukkonen CC [M] drivers/block/cciss.o In file included from drivers/scsi/scsi.h:27, from drivers/block/cciss_scsi.c:31, from drivers/block/cciss.c:188: include/scsi/scsi_device.h:191: warning: `inline' is not at beginning of declaration Another case of reordering the 'inline' and function return value. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] SCSI ips: remove inlines Trying to compile drivers/scsi/ips.c with gcc 3.4 and # define inline __inline__ __attribute__((always_inline)) results in the following error: <-- snip --> ... CC drivers/scsi/ips.o drivers/scsi/ips.c: In function `ips_eh_abort': drivers/scsi/ips.c:490: sorry, unimplemented: inlining failed in call to 'ips_removeq_copp': function body not available drivers/scsi/ips.c:843: sorry, unimplemented: called from here drivers/scsi/ips.c:488: sorry, unimplemented: inlining failed in call to 'ips_removeq_wait': function body not available drivers/scsi/ips.c:847: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/ips.o] Error 1 <-- snip --> The patch below removes all inlines from ips.c. As a side effect, this showed that 3 formerly inlined functions are completely unused which are also removed in the patch. An alternative approach to removing the inlines would be to keep all inlines that are _really_ required and reorder the functions in the file accordingly. diffstat output: drivers/scsi/ips.c | 130 ++++++--------------------------------------- 1 files changed, 19 insertions(+), 111 deletions(-) Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [CPUFREQ] fix CONFIG_ACPI_PROCESSOR="m", CONFIG_X86_POWERNOW_K{7,8}="y" build issue Fix the build dependency between powernow-k{7,8} and acpi/processor.o by adding a CONFIG_X86_POWERNOW_K{7,8}_ACPI bool, just like SPEEDSTEP_CENTRINO does it. See http://forums.gentoo.org/viewtopic.php?t=186887 for a bugreport. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] powernowk8_cpu_exit may not be __exit but can be __devexit. Thanks to Arjan for noticing this bug. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [ACPI] fix ability to set thermal trip points (Hugo Haas, Stefan Seyfried) eg. # echo -n "100:90:80:70:60:50" > /proc/acpi/thermal_zone/THRM/trip_points http://bugzilla.kernel.org/show_bug.cgi?id=2588 NTFS: 2.1.16 - Implement access time updates in fs/ntfs/inode.c::ntfs_write_inode. Signed-off-by: Anton Altaparmakov [PATCH] [sparse] minor #if complaint Minor sparse warning fix. it doesn't like #if when #ifdef is intended. Signed-off-by: Stephen Hemminger [ACPI] /proc/acpi/thermal_zone/THRM/cooling_mode Add concept of (mandatory) "critical", when (optional) "passive" and "active" are not present. (Zhenyu Z Wang) http://bugzilla.kernel.org/show_bug.cgi?id=1770 [netdrvr mv643xx] rename from mv64340 to mv643xx And move MIPS-specific header to include/linux. [PATCH] GT96100 update Move GT-64240 NIC definitions which previously did live elsewhere into a new header file. Mostly cosmetic cleanup and microfixes for gt64240.c. [ACPI] save/restore ELCR on suspend/resume (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=2643 [ACPI] add SMP suport to processor driver (Venkatesh Pallipadi) http://bugzilla.kernel.org/show_bug.cgi?id=2615 [ACPI] Tell the BIOS Linux can handle Enhanced Speed Step (EST). (Venkatesh Pallipadi) http://bugzilla.kernel.org/show_bug.cgi?id=2712 [ADD] Add pci=firmware command line option This change is specifically needed for the IXP2000 platform. IXP2000 platforms have various PCI devices with large memory space requirements (~3.5 GB total sometimes) and a banked PCI window that allows for accessing all 4GB of memory space. The FW configures the devices on the bus in such a way that standard linux drivers (e100, e1000, ide) can work w/o any changes and places devices specific to Intel's closed source IXA sdk in regions of PCI memory space that require using special registers on the IXP. This can be accomplished in the kernel using a board-specific enumerator or a lot of fixups, but it is far easier to just accept what the FW has provided. Signed-off-by: Deepak Saxena [PATCH] PCI Hotplug: acpiphp extension for 2.6.7, part 1 This patch adds the ability to register callback functions with the acpiphp core to set and get the current attention LED status. The reason this is needed is because there is not set ACPI standard for how this is done so each hardware platform may implement it differently. To keep hardware specific code out of acpiphp, we allow other modules to register their code with it. Signed-off-by: Vernon Mauery Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: acpiphp extension for 2.6.7 part 2 This patch adds the first driver that actually uses the callback function for attention LEDs that the acpiphp-attention patch adds. It searches the ACPI namespace for IBM hardware, sets up the callbacks and sets up a handler to read ACPI events and forward them on to /proc/acpi/event. It also exports an ACPI table that shows current hotplug status to userland. Signed-off-by: Vernon Mauery Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: more New PCI vendor/device ID for Radisys ENP-2611 board OK, sorry to bother, some more bits. - Add PCI IDs for the IXP2400 and IXP2800 network processors. - Fix typo in description for 8086:9000. - Correct tab->space after #define in definition of IXP4xx device ID. - ENP-2611 can appear behind a 21555. Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: rpaphp_add_slot.patch I found a bug in rpaphp code during DLPAR I/O testing. When DLPAR ADD a non-empty I/O slot to a partition, an adapter in the slot didn't get configured. The attached patch fixes that. Signed-off-by: Linda Xie Signed-off-by: Greg Kroah-Hartman [ACPI] IOAPIC suspend/resume (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=3037 [ACPI] ACPI bus support for wakeup GPE (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1415 [ACPI] Create /proc/acpi/wakeup to allow enabling the optional wakeup event sources. (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1415 [ACPI] Enable run-time CM button/LID events (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1415 [PATCH] another small advansys cleanup The patch below does the following small cleanups for the advansys driver: - remove obsolete maintainer information - remove kernel 2.2 code from advansys.h diffstat output: MAINTAINERS | 7 drivers/scsi/advansys.c | 342 +++++++--------------------------------- drivers/scsi/advansys.h | 26 --- 3 files changed, 60 insertions(+), 315 deletions(-) Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [ACPI] ACPICA 20040715 from Bob Moore Restructured the internal HW GPE interfaces to pass/track the current state of interrupts (enabled/disabled) in order to avoid possible deadlock and increase flexibility of the interfaces. Implemented a "lexicographical compare" for String and Buffer objects within the logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual -- as per further clarification to the ACPI specification. Behavior is similar to C library "strcmp". Completed a major reduction in CPU stack use for the acpi_get_firmware_table external function. In the 32-bit non-debug case, the stack use has been reduced from 168 bytes to 32 bytes. Deployed a new run-time configuration flag, acpi_gbl_enable_interpeter_slack, whose purpose is to allow the AML interpreter to forgive certain bad AML constructs. Default setting is FALSE. Implemented the first use of acpi_gbl_enable_interpeter_slack in the Field IO support code. If enabled, it allows field access to go beyond the end of a region definition if the field is within the region length rounded up to the next access width boundary (a common coding error.) Renamed OSD_HANDLER to acpi_osd_handler, and OSD_EXECUTION_CALLBACK to acpi_osd_exec_callback for consistency with other ACPI symbols. Also, these symbols are lowercased by the latest version of the acpisrc tool. The prototypes for the PCI interfaces in acpiosxf.h have been updated to rename "register" to simply "reg" to prevent certain compilers from complaining. [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 NTFS: Implement bitmap modification code (fs/ntfs/bitmap.[hc]). This includes functions to set/clear a single bit or a run of bits. Signed-off-by: Anton Altaparmakov NTFS: Wrap the new bitmap.[hc] code in #ifdef NTFS_RW / #endif. Signed-off-by: Anton Altaparmakov NTFS: Rename run_list to runlist everywhere to bring in line with libntfs. Signed-off-by: Anton Altaparmakov NTFS: Rename map_runlist() to ntfs_map_runlist(). Signed-off-by: Anton Altaparmakov NTFS: Rename vcn_to_lcn() to ntfs_vcn_to_lcn(). Signed-off-by: Anton Altaparmakov NTFS: Complete "run list" to "runlist" renaming. Signed-off-by: Anton Altaparmakov NTFS: Move a NULL check to before the first use of the pointer. Signed-off-by: Anton Altaparmakov NTFS: Add fs/ntfs/attrib.[hc]::ntfs_find_vcn(). Signed-off-by: Anton Altaparmakov [CPUFREQ] Fix up some comments in longhaul. Some of this stuff is very wrong, time to sit down with datasheets and fix up some of this mess. The problem is this driver pulls info from multiple datasheets, and some of them conflict. Signed-off-by: Dave Jones [CPUFREQ] abstract out powersaver code in longhaul driver. 99% of these two implementations are the same, so abstract it out into a seperate function. Also add another bunch of comments. Signed-off-by: Dave Jones [CPUFREQ] disable interrupts around transitions in longhaul. Re-reading the spec revealed this omission. Signed-off-by: Dave Jones [NETFILTER]: ip_nat_snmp call skb_make_writable() The snmp helper needs an explicit call to skb_ip_make_writable. Please apply. Signed-off-by: James Morris Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: ipt_ULOG fix for last packet delay The ULOG target used to delay the last packet until another one was received. This patch fixes the issue. Signed-off-by: Ruby Joker Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Use new module_param() api This patch makes all of ipv4/ipv6 netfilter use the 'new' module_param API. Signed-off-by: Rusty Russell Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Fix mutex declaration On Sun, Jun 20, 2004 at 01:23:28PM +0200, Christoph Hellwig wrote: > okay, the gunk we had in arp_tables is in ip6_tables and ip6_tables, > too. Signed-off-by: Christoph Hellwig Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Use slab cache for ip_conntrack_expect This patch adds a new slab cache (ip_conntrack_expect) for expectations. Signed-off-by: Pablo Neira Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Connection based accounting This patch adds a config option to enable per-flow packet and byte accounting to ip_conntrack. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Move /proc/net/ip_conntrack to seq_file This patch makes ip_conntrack use the seq_file API Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: New ip_sctp match This patch adds ipt_sctp, enabling iptables to match on sctp ports and chunktypes. Signed-off-by: Kiran Kumar Immidi Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Make 'helper' list of ip_nat_core static This patch makes the 'helper' symbol static to not pollute the namespace Signed-off-by: Rusty Russell Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: init_conntrack() optimization This patch optimizes the code path during init_conntrack() Signed-off-by: Pablo Neira Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Move error tracking into conntrack protocol helper This patch moves icmp_error_track out of the generic conntrack core and into the icmp helper, where it really belongs. It also adds some generic infrastructure for logging packets that are 'out of spec'. Signed-off-by: Pablo Neira Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add conntrack runtime statistics This patch adds some runtime-statistics to the connection tracking core, pretty similar to what 'rtstat' does for the routing cache. This was the last patch in this incremental set. The only thing I still have pending at this time is the tcp window tracking code. Signed-off-by: Martin Josefsson Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add tcp window tracking This is the tcp window tracking patch, incremental to all previous changes. It is now by default enabled (i.e. in 'conservative' mode). If you think it's better to leave it disabled ('liberal' mode), you can change ip_conntrack_tcp_be_liberal to a different default value. Cheers, Signed-off-by: Jozsef Kadlecski Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Missing sysctl.h bits from tcp window tracking changes. Signed-off-by: Harald Welte Signed-off-by: David S. Miller input: Re-add PC Speaker support for PPC Signed-off-by: Olaf Hering Signed-off-by: Vojtech Pavlik [PATCH] Remove obsolete code in 8390 driver The 8390 drivers had provision for using a single Tx buffer, which was educational back in the day when it served as an example driver, but it really hasn't been used and can go away which will make future maintenance easier. [PATCH] module_param for acenic Convert acenic driver to use module_param instead of the older MODULE_PARM macro. Someday, Rusty wants to get rid of MODULE_PARM. Signed-off-by: Stephen Hemminger [PATCH] acenic - don't print eth%d in messages Get rid of all the places the acenic driver could print "eth%d" because the device hasn't been registered yet. Use the method of having a name pointer in the private device structure that changes from pci_name() to dev->name. There was already a field named 'name[]' in the private data structure, but it was set and never used! Use netdev_priv(dev) rather than dev->priv as well. Signed-off-by: Stephen Hemminger [PATCH] remove old ifdefs net/eepro100.c Patches to remove some old ifdefs, 2.2 comptability. then remove unused #include applies cleanly to 2.6.8-rc2 From: Domen Puncer Signed-off-by: Maximilian Attems [PATCH] 2.6.8-rc1-mm1: 8139too: uninline rtl8139_start_thread On Wed, Jul 14, 2004 at 10:29:18PM +0200, Dominik Karall wrote: > On Wednesday 14 July 2004 03:25, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8-rc1/2.6 > >.8-rc1-mm1/ > > CC [M] drivers/net/8139too.o > drivers/net/8139too.c: In function `rtl8139_open': > drivers/net/8139too.c:616: nicht implementiert: >>inline<< beim Aufruf von > >>rtl8139_start_thread<< gescheitert: function body not available > drivers/net/8139too.c:1362: nicht implementiert: von hier aufgerufen > make[3]: *** [drivers/net/8139too.o] Fehler 1 > make[2]: *** [drivers/net] Fehler 2 > make[1]: *** [drivers] Fehler 2 > make[1]: Verlasse Verzeichnis »/usr/src/linux-2.6.6« > make: *** [stamp-build] Fehler 2 > > gcc 3.4 I should be fast at going through my gcc 3.4 TODO list... Fix below. > greets > dominik cu Adrian <-- snip --> uninline rtl8139_start_thread in drivers/net/8139too.c . Signed-off-by: Adrian Bunk 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 ALSA CVS update Intel8x0 driver set msbits for 20-bit sample format Signed-off-by: Clemens Ladisch ALSA CVS update OPL4 reorganize locking; optimize memory accesses Signed-off-by: Clemens Ladisch ALSA CVS update Generic drivers,AK4531 codec One space at the end of a line is evil. So how do we call it if a line has 300 of them? :) Signed-off-by: Clemens Ladisch ALSA CVS update USB generic driver remove whitespace at end of lines Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel fix memory leak Signed-off-by: Clemens Ladisch ALSA CVS update GUS Library,Wavefront drivers reduce stack usage; fix buffer overflow Signed-off-by: Clemens Ladisch ALSA CVS update AMD InterWave driver reduce stack usage; fix ROM checksum check Signed-off-by: Clemens Ladisch ALSA CVS update AC97 Codec Core fix odd comment :) Signed-off-by: Clemens Ladisch ALSA CVS update USB generic driver allow USB MIDI devices without audio control interface Signed-off-by: Clemens Ladisch ALSA CVS update Documentation,AC97 Codec Core,ATIIXP driver,CS4281 driver ENS1370/1+ driver,ES1968 driver,FM801 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,VIA82xx driver,ALI5451 driver au88x0 driver,CS46xx driver,EMU10K1/EMU10K2 driver,ICE1712 driver ICE1724 driver,NM256 driver,Trident driver,YMFPCI driver move AC'97 bus callbacks into seperate ops record; remove ac97_bus_t template requirement from snd_ac97_bus() Signed-off-by: Clemens Ladisch ALSA CVS update Documentation Removed obsolete sndmagic.h. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Fixed compile warnings withoug CONFIG_PM. Signed-off-by: Takashi Iwai ALSA CVS update Documentation Fixed missing . Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module - Don't mark pages from dma_alloc_coherent as reserved. The pages from __get_free_pages() are still marked as reserved, but this could be also unnecessary. - Fixed a typo in comment. - Fixed the pre-allocated buffer size for rme9652 & hdsp. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver change codec index computation in snd_cs46xx_read/write; replace ac97_t template with ac97_template_t Signed-off-by: Clemens Ladisch ALSA CVS update Documentation,AC97 Codec Core,ATIIXP driver,CS4281 driver ENS1370/1+ driver,ES1968 driver,FM801 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,VIA82xx driver,ALI5451 driver au88x0 driver,EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver NM256 driver,Trident driver,YMFPCI driver replace ac97_t template with ac97_template_t Signed-off-by: Clemens Ladisch ALSA CVS update ALSA<-OSS emulation fix missing semaphore release in snd_mixer_oss_build_input() Signed-off-by: Clemens Ladisch ALSA CVS update Documentation fix typo Signed-off-by: Clemens Ladisch ALSA CVS update RME HDSP driver ALSA rme9652/hdsp: remove inlines The patch below removes all inlines from hdsp.c. As a side effect, it showed that snd_hdsp_9652_disable_mixer() is completely unused, and it's therefore also removed in the patch. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai ALSA CVS update ATIIXP driver Fixed a typo in the check of buffer/period size configuration. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCI drivers,ATIIXP-modem driver Added snd-atiixp driver for ATI IXP AC97 modem controllers. Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module Mark the allocated DMA pages as reserved for certain architectures. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel Fixed the unbalanced spinlock in the error path. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0-modem driver Added -MODEM suffix to the driver name string to distinguish from the intel8x0 audio driver. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver Fixed a compile warning in the debug code. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCM Midlevel Changed the atomicity of PCM prepare callback. The PCM prepare callback is now non-atomic, so that the driver can use the functions calling schedule (e.g. kmalloc with GFP_KERNEL). Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver ES1968 driver,FM801 driver,Intel8x0 driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,VIA82xx driver,ALI5451 driver CS46xx driver,EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver KORG1212 driver,MIXART driver,NM256 driver,RME HDSP driver RME9652 driver,Trident driver,YMFPCI driver,PPC PMAC driver USB generic driver Clean up spinlocks. - Removed superfluous spinlocks. - Replaced spin_lock_irqsave() with spin_lock_irq() in the obvious places. - Make sure that prepare callback be non-atomic. - Removed SNDRV_PCM_INFO_NONATOMIC_OPS flag (which is default now). Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core,Intel8x0 driver,Intel8x0-modem driver Fixed the detection of sample rates with no VRA support. - Changed ac97bus->vra to ac97bus->no_vra to indicate the VRA is NOT supported. - In the case of no_vra=1, only 48k is set as the possible rates in snd_ac97_pcm_assign(). Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Enable low latency EFX capture on emu10k1 The following patch fixes EFX capture on the emu10k1. The capture_period_sizes table is in bytes, but the hardware constraint was being set in frames. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Added the ac97_quirk entry for ECS K7VTA3 v8.0 mobo. Signed-off-by: Takashi Iwai ALSA CVS update ALSA sequencer Fixed the bad check on copy_from_user() return value Signed-off-by: Mika Kukkonen Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Fixed the detection of Audigy 2 ZS. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai ALSA CVS update ALI5451 driver Fixed the suspend/resume. The suspend callback wasn't set the power state correctly, so the resume process was skipped. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver,Trident driver,ALS4000 driver,ATIIXP driver ATIIXP-modem driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver ALI5451 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,RME HDSP driver,RME9652 driver,Digigram VX222 driver Clean up the PCI resource allocation. Replaced the manual resource allocations with request_[mem_]region() with pci_request_regions(). Signed-off-by: Takashi Iwai ALSA CVS update Documentation Changed the description of PCI resource allocation to use pci_request_regions(). Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core,ATIIXP driver,ATIIXP-modem driver,Intel8x0 driver VIA82xx driver Clean up the suspend/resume: save/restore of pci state PCI status is restored in the common resume callback. (Stored in the saved_config array of pci_dev struct.) Signed-off-by: Takashi Iwai ALSA CVS update ALI5451 driver Added the missing snd_power_change_state() in the resume callback. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,SA11xx UDA1341 driver,PCM Midlevel,IOCTL32 emulation ALSA<-OSS emulation,Generic drivers,I2C cs8427,I2C tea6330t,L3 drivers OPL3SA2 driver,AD1816A driver,CS4231 driver,CS4236+ driver ES1688 driver,GUS Library,AMD InterWave driver,Opti9xx drivers EMU8000 driver,PARISC Harmony driver,AZT3328 driver,CMIPCI driver CS4281 driver,FM801 driver,Intel8x0 driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,AK4531 codec,CS46xx driver ICE1712 driver,KORG1212 driver,NM256 driver,RME HDSP driver RME9652 driver,YMFPCI driver,PPC AWACS driver,PPC Burgundy driver PPC DACA driver,SPARC AMD7930 driver,SPARC cs4231 driver Common EMU synth use ARRAY_SIZE() instead of sizeof() computations Signed-off-by: Clemens Ladisch ALSA CVS update BT87x driver use exact values of analog clock rate Signed-off-by: Clemens Ladisch ALSA CVS update PPC The alsa driver for powermacs requires i2c support. Signed-off-by: Olaf Hering Signed-off-by: Jaroslav Kysela ALSA CVS update ALSA Core use list_for_each() in core/memory.c Signed-off-by: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Jaroslav Kysela ALSA CVS update PPC PMAC driver Fixed typo. Signed-off-by: Nicolas Kaiser Signed-off-by: Jaroslav Kysela ALSA CVS update PPC PowerMac driver Fixed typo. Signed-off-by: Nicolas Kaiser Signed-off-by: Jaroslav Kysela ALSA CVS update ALSA Core,MIXART driver Removed the obsolete NONATOMIC_OPS flag. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added master volume control. The master volume control is added again, this time with the digital attenuation so that it works independently from the DAC volumes. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Added unlikely() to the debug check macros. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Clean up: removed ifdefs and obsolete codes. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,HWDEP Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel Timer Midlevel,ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer Unlock BKL in ioctl callback to avoid the long preempt-disabling. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel Fixed/improved XRUN detection - don't print XRUN message in the case of draining. - pointer callback can return SNDRV_PCM_POS_XRUN to notify the middle layer. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel Notify PCM buffer overrun of the intermidate buffer on capture. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Fixed the fullduplex mode. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Fixed the address mask to get the correct DMA pointer value. Signed-off-by: Pilo Chambert Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added the (experimental) support of Terratec Phase 88. Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Fixed the check of invalid DMA position. The workaround for buggy mobo to correct the DMA position is fixed so that it works properly on normal chips. Signed-off-by: Takashi Iwai [PATCH] orinoco merge preliminaries - squash backwards compatibility Remove various bits of code in the orinoco driver for backwards compatibility with older kernels: old versions of the wireless extensions, lack of MODULE_LICENSE, older PCMCIA interfaces. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - rearrange code Rearrange functions in the orinoco driver in a more logical order. This patch is large and looks complicated, but in fact only moves code around (within or between files) without changing it. The only exceptions are some extra comments describing the file's layout, and updated prototypes for the new function order. This makes the order of functions match the 0.15rc1 version, so later patches have a fighting chance of being meaningful. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - use netdev_priv() Use the netdev_priv() macro instead of directly accessing dev->priv. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - use ALIGN() Use the kernel's ALIGN macro instead of our own dodgy version for rounding things up to an even number. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - use ARRAY_SIZE() Use the built in ARRAY_SIZE macro, instead of hard coding it ourselves. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - spam stoppers Anti-spam obfuscate most email addresses in the orinoco driver files. Yes, this is closing gate long after the sheep have run, but I guess it can't hurt. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - comment/whitespace/spelling updates Various trivial cleanups to the orinoco driver: whitespace changes, spelling/capitalization errors corrected, some fairly insignificant comments added, removed or reformatted. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - use BUG_ON() Use BUG_ON() macro instead of explicit if(x) BUG() in various places. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - make things static Make various functions and variables static which always should have been, but weren't. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco_tmd.c =================================================================== [PATCH] orinoco merge preliminaries - miscelaneous Random trivial cleanups that don't belong with anything else: - Use ETH_DATA_LEN instead of hard-coded constant - Remove a duplicated constant in an | expression Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - use name/version macros Use some macros defining driver names and version to reduce the number of places that need to be changed when the version changes. Also use these to make it easier to keep printk() messages with a consistent prefix. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco.c =================================================================== [PATCH] orinoco merge preliminaries - remove unneeded #includes Remove some unnecessary #includes. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/orinoco_pci.c =================================================================== [PATCH] orinoco merge preliminaries - don't typedef structs In line with normal kernel conventions, don't create typedefs for structures. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/hermes.c =================================================================== [PATCH] orinoco merge preliminaries - more HW data Update various constants and structures in orinoco header files. The updates generally represent either newer hardware/firmware features, or corrections to what we know about hardware/firmware functions. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/hermes.h =================================================================== [PATCH] orinoco merge preliminaries - update authorship information Update copyright messages, module meta-information, banner comments and the MAINTAINERS file to better reflect the current authorship/maintainership status. In particular puts Pavel Roskin as the most prominently displayed maintainer, since he has done nearly all non-trivial work on the driver for a year or more. Signed-off-by: David Gibson Index: working-2.6/drivers/net/wireless/hermes.c =================================================================== [PATCH] natsemi netpoll support [PATCH] prism54 Clean up dev ids totally * As Jeff previously stated, we do not need all this bloat. An updated pci.ids, both kernel and user space, gives us all the required info :-) Just leave the stuff we are interested in. Proposed in prism54 devel with no objections. [ACPI] S3 is independent of CONFIG_X86_PAE (David Shaohua Li) [ACPI] synchronize_kernel for idle-loop unload (Zwane Mwaikambo) http://bugzilla.kernel.org/show_bug.cgi?id=1716 [ACPI] fix build warning (Andrew Morton) [PATCH] qla2xxx: EH host-reset fixes Fix issue where host-reset would incorrectly return a FAILED status. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: Set firmware options fixes Fix issue where firmware options were not properly being set before firmware initialization. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: TCQ fixes Correct usage of tag-command-queueing methods: o Properly call scsi_activate_tcq() rather than scsi_adjust_queue_depth(). o Properly retrieve tag message from command via scsi_populate_tag_msg(). Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: Update version Update version number to 8.00.00b15-k. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] drivers/scsi/sg.c kill local jiffies functions [patch] kill local sg_ms_to_jif/sg_jif_to_ms functions and use msecs_to_jiffies/jiffies_to_msecs instead Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] SCSI dc395x.c: fix inline compile errors Trying to compile drivers/scsi/dc395x.c in 2.6.8-rc1-mm1 using gcc 3.4 results in compile errors starting with the following: <-- snip --> ... CC drivers/scsi/dc395x.o drivers/scsi/dc395x.c: In function `dc395x_handle_interrupt': drivers/scsi/dc395x.c:388: sorry, unimplemented: inlining failed in call to 'enable_msgout_abort': function body not available drivers/scsi/dc395x.c:1740: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/dc395x.o] Error 1 <-- snip --> The patch below moves enable_msgout_abort above the place where it is called the first time and removes the bogus inline from the prototype of set_xfer_rate (the function itself isn't marked as inline). An alternative approach would be to remove the inline from enable_msgout_abort. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] SCSI nsp32.c: remove inlines Trying to compile drivers/scsi/nsp32.c in 2.6.8-rc1-mm1 using gcc 3.4 results in compile errors starting with the following: <-- snip --> ... CC drivers/scsi/nsp32.o drivers/scsi/nsp32.c: In function `nsp32_prom_start': drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3348: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3349: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3350: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3351: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3353: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/nsp32.o] Error 1 <-- snip --> The patch below removes the inlines from nsp32_prom_{get,set}. An alternative approach would be to move the functions above the place where they are called the first time. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] tmscsim: MAINTAINERS add new maintainer Signed-off-by: James Bottomley [PATCH] SCSI tmscsim.c: fix inline compile errors Original Patch From: Adrian Bunk I looked at those 3 functions. dc390_EnableMsgOut_Abort is called 5 times in the code and is 0x30 bytes long (as compiled with 3.3.2), so, uninlining it, probably, makes most sense. The other 2 functions are called only ones each and from the interrupt, so, I applied the "alternative approach" to them - moved above the calling functions. Signed-off-by: James Bottomley [PATCH] ibmvscsi driver v1.5.1 Based on comments from hch and jejb, an update to the ibmvscsi driver patch. Primarily style issues, though the removal of gratuitous casting lead to some significant refactoring of functions. - Moved #include after #include - removed the map_direct_data and map_indirect_data and moved the function inline - Fixed function declaration style issues (static on a line by itself) - Removed bogus cast from dma_map_single - Moved setting of data transfer direction to a single helper function - Fixed up some gratuitous casting of types - Collapsed a couple of other functions inline - Removed bogus check for NULL from remove - Removed the "evt_struct_for" routine as being needlessly obfuscatory Signed-off-by: James Bottomley [PATCH] add MODULE_VERSION to drivers/scsi Set MODULE_VERSION for drivers/scsi for Adaptec SCSI, megaraid qla1280, qla2x00 Signed-off-by: James Bottomley [PATCH] add MODULE_VERSION to drivers/scsi On Thu, Jul 22, 2004 at 01:28:23PM +0100, Matthew Wilcox wrote: > > +#define SYM_VERSION "2.1.18j" > > +#define SYM_DRIVER_NAME "sym-" SYM_VERSION > > Umm. No. This is ridiculous. I'm not having a 51 line copyright message > with 2 lines of #define. It's not even clear to me that these two lines > have artisitic merit. How about putting these defines in sym_defs.h, > at the top? It's already included in both sym_glue.c and sym_hipd.c by > being included by sym_glue.h. Indeed, point well taken. Done, they're now at the top of defines in sym_defs.h, and I've updated my BK tree accordingly. Signed-off-by: James Bottomley [PATCH] scsi/eata_pio: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: James Bottomley 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 ALSA CVS update ALSA<-OSS emulation Fixed a typo in the last change, resulting in the infinite loop. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver,ICE1724 driver Added the support of Pontis MS300 to snd-ice1724 driver. Signed-off-by: Takashi Iwai [PATCH] e1000 - ethtool support (register dump, interrupt [PATCH] e1000 - Enable TSO [PATCH] e1000 - Use vmalloc for data structures not shared [PATCH] e1000 - TSO fixes (in preparation for IPv6 TSO) [PATCH] e1000 - Avoid infinite loop while trying to [PATCH] e1000 - include work down in tx path to decide when [PATCH] e1000 - Use pci_dma_sync_single_[for_device|for_cpu] [PATCH] e1000 - Shutdown PHY while bringing the interface [PATCH] e1000 - add compiler hints (likely/unlikely), check [PATCH] e1000 - more DPRINTK messages to syslog [PATCH] e1000 - suspend/resume fix from alex@zodiac.dasalias.org [PATCH] e1000 - white space and related cleanup [PATCH] e100 - restore speed/duplex/autoneg settings after the completion of the diagnostic tests [PATCH] e100 - Support for Intel(R) PRO/100 VE Network Connection (82562) adapter [PATCH] e100 - fix stat counters rx_length_error and rx_over_errors [PATCH] e100 - Support to load device firmware [PATCH] e100 - Auto MDI/MDI-X support [PATCH] e100 - driver version update [PATCH] gcc-3.5 fixes to advansys From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] Fix double reset in aic7xxx driver From: Joe Korty Fix occasional PCI bus parity errors on the Dell PowerEdge 4600 during boot. Symptoms: The LCD display would turn orange and display "PCI SYSTEM E13F5", and the following message would appear in /var/log/dmesg: "Uhhuh. NMI received. Dazed and confused, but trying to continue". By inserting a PCI card with a PDC20268 IDE controller and attaching to that a Sony DRU-510A DVD RW burner with an unloaded tray, the failure can be made to happen on every boot. Cause: The aic7xxx driver was resetting the onboard AIC7891 SCSI controller while waiting for a previous reset to complete. This second reset confuses the controller causing it to put bad data onto the PCI bus. This is a backport of a RedHat 2.4.21-15.ELsmp fix. A letter discussing this problem, or one very close to it, may be found at: http://lists.us.dell.com/pipermail/linux-poweredge/2003-May/025010.html Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] fix aic driver build for db4 From: "J.A. Magallon" This allows to build aic with db4. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley NTFS: Fix compilation with gcc-2.95 in attrib.c::ntfs_find_vcn(). (Adrian Bunk) Signed-off-by: Anton Altaparmakov Signed-off-by: Adrian Bunk [PATCH] USB: Fix NULL-pointer bug in dummy_hcd This patch fixes a NULL-pointer-dereference bug in the dummy_hcd driver. It also makes the code slightly more elegant and removes an unnecessary buffer-overflow test. Unfortunately it's still a little bit racy, but this is a fault it shares with other gadget controller drivers, like net2280. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Make removable-LUN support a non-test option in the g_file_storage driver This patch follows the suggestions sent by Todd Fischer and Diego Dompe for making removable-LUN support part of the normal non-testing version of the g_file_storage driver. It also moves LUN device registration to the correct place and eliminates a code path that stalls the bulk-out pipe in a racy way. There are also some smaller changes: update some comments, add initial debugging support for USB suspend/resume, and miscellaneous code cleanups. Last but not least, the driver has been sufficiently stable for sufficiently long that it's fair to remove the "(DEVELOPMENT)" warning in Kconfig. Sent-by: Todd Fischer Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add CONFIG_USB_SUSPEND This is the core of the USB_SUSPEND functionality. Please merge. This adds an experimental CONFIG_USB_SUSPEND option, which supports the USB "suspend" state. Linux-USB hosts have previously ignored that state. - New driver API calls, usb_suspend_device() and its sibling usb_resume_device(). - Access to those calls through sysfs, such as echo -n 2 > power/state echo -n 0 > power/state That can be used to reduce the power consumption of any given USB device, then re-activate it later. Eventually, most USB device drivers should probably suspend idle USB devices. One problem with this patch: USB drivers without suspend() callbacks may badly misbehave. Right now only hub drivers know suspend(). If the driver core didn't self-deadlock when we try it, unbinding those drivers from those devices (then re-enumerating on resume) would be perfect... the current compromise is just to emit a warning message. In conjunction with host controller driver support (already merged for OHCI and EHCI), PCI host controllers will issue the PME# wakeup signal when a USB keyboard starts remote wakeup signaling. (But the keyboard wasn't usable later, since HID doesn't try to suspend.) I understand some ACPI patches are circulating, and maybe already in the MM tree, to make a suspended system wake up given PME# signaling. It'd be great if someone made that work transparently with USB, but for now I'm told it'll need some sysfs setup first. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb hub docs and locktree() Please merge; the CONFIG_USB_SUSPEND patch depends on it. This hub patch: - updates internal docs about locking, matching current usage for device state spinlock and dev->serialize semaphore - adds locktree() to use with signaling that affect everything downstream of a given device ... right now just khubd uses it, but usb_reset_device() should too (not just with hub resets...) - adds hub_quiesce()/hub_reactivate() ... former is used now during shutdown, both are needed in suspend/resume paths Net change in behavior for current systems should be nothing. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: gcc-3.5 fixes From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Hackish fix for cyberjack driver The following patch is in use by REINER-SCT customres for some time and works for them in about 90% of all cases. I would really appreciate this going in before 2.6.8-final, since the device doesn't work at all with current 2.6.x driver. Changes: - bump version number - open interrupt endpoint in startup() rather than open Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio doesn't re-assert DTR modem control line I've dredged up another old ftdi_sio patch that I never Cc'd to you the first time. Please see Nathan's description below. It applies okay against your usb-2.6 tree, with or without the patch I posted yesterday to support the FT2232C chip and neither patch invalidates the other in any way. On 25/06/2004 21:56, Croy, Nathan wrote: > SUMMARY > ======= > ftdi_sio never reasserts modem control lines once the baud has been set to > B0. > > DESCRIPTION > =========== > Setting the baud to B0 (hangup) drops DTR. When the baud is raised again, > DTR is not raised. This can cause a modem to ignore any commands sent to it > until the device is closed and reopened. This renders minicom (and other > software) useless, unless you instruct the modem to ignore DTR. > > The following patch is intended to make ftdi_sio act like other serial > devices I have used (i.e. the standard serial ports (/dev/ttyS*) and > stallion ports (/dev/ttyE*)). Upon setting the baud to something other than > B0, it ensures the modem control lines are set back to the way they were > when the port was opened. > > Thanks to Ian Abbott for confirming my suspicions: > http://sourceforge.net/mailarchive/forum.php?thread_id=4984710&forum_id=12120 Nathan's email suffered from a line-folding bug (blame M$, probably!), so his patch came out corrupted. I'm reposting an uncorrupted version. Signed off by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add support for FT2232C chip to ftdi_sio This patch adds support for the FTDI FT2232C USB to dual serial port converter to the ftdi_sio driver. The patch is based on a fork of the 2.4 ftdi_sio driver by Steven Turner of FTDI, and a preliminary port of these changes to the 2.6 ftdi_sio driver by Rus V. Brushkoff. I've tidied it up and fixed a couple of things. I don't have a FT2232C to test it with, but Steven Turner of FTDI has tested it. He mentioned a couple of known problems with the driver, but nothing to do with this patch. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Remove unneeded unusual_devs.h entry According to Jonas Fährmann, the very first entry in unusual_devs.h isn't needed. In fact, I can't tell why it was there in the first place... unless some earlier device in the product line had incorrect descriptor values. On Mon, 26 Jul 2004, Jonas Fährmann wrote: > usb-storage: This device (03ee,0000,0045 S 02 P 00) has unneeded SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Debug fix in pl2303 This is a simple patch to fix a debug statement where the arguements are in the wrong order. Resending it with a CC to Greg and a signed-off-by line. Signed-off-by: Phil Dibowitz Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix for ipaq.c as per pete and greg's input, fixing only the uninitialized variable. Signed-off-by: Ganesh Varadarajan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: use list_for_each() in class/audio.c Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] USB: use list_for_each() in class/usb-midi.c Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] USB: use list_for_each() in core/devices.c Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] USB: New unusual_devs.h entry Please merge this new entry for the unusual_devs.h database. From: Johann Cardon Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update Just like in as347, we have another example of descriptors that vary from device to device. Please apply this patch to suppress the warning message. On Fri, 16 Jul 2004, Ken Yap wrote: > Jul 16 21:44:20 media kernel: usb-storage: This device (090a,1001,0100 S 06 P 50) has an unneeded Protocol entry in unusual_devs.h > Jul 16 21:44:20 media kernel: Please send a copy of this message to Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update In view of the comments below, I think we should modify this unusual_devs.h entry to suppress the warning messages. Please apply. On Mon, 28 Jun 2004, Joël Bourquard wrote: > There seem to be two different flavors of ISD-300 (ie: 05ab,0060) > devices, one of which needs this entry to work, and the other doesn't. > > I have a 2 1/2'' HDD enclosure which (just like your device) doesn't > need the entry (so when I plug it, I get the same warning as you). > > However, I also happen to own two 5 1/4'' CD-ROM enclosures, for which > this entry *is* necessary. I tried again, very recently to remove my > unusual_devs.h entry, and it prevented them from working. > > So, I think the entry should be kept (it does more good than harm), but > maybe it could get some tweaking ? If there's a way to recognize these > "CD-ROM enclosure" bridge chips and exclude the others, I'm all for it. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: New entry in MAINTAINERS I forgot to add an entry in MAINTAINERS about the new SN9C10[12] driver. Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman USB: fix build error in the cyberjack driver Signed-off-by: Greg Kroah-Hartman [NETFILTER]: New ip_conntrack_sctp Incremental to all other patches so far, there is also the new SCTP conntrack helper by Kiran Kumar. Please apply for 2.6.9 ++, thanks. Signed-off-by: Kiran Kumar Immidi Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Fix broken debug assertion This patch fixes some more broken netfilter assertions in 2.6.x. Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [swsusp] Add big fat comment to calc_order(). [PATCH] sg.c: remove unused sg_jif_to_ms() Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [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(). [PATCH] let AIC7{9,X}XX_BUILD_FIRMWARE depend on The patch below lets AIC7{9,X}XX_BUILD_FIRMWARE depend on !PREVENT_FIRMWARE_BUILD. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [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. ALSA CVS update VIA82xx driver Added the quirk entry for ECS L7VMM2 uATX. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the support of nVidia CK804. Signed-off-by: Andrew Chew Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the support of MCP04. Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core,ATIIXP driver,ATIIXP-modem driver,Intel8x0 driver Intel8x0-modem driver Fixed the reset problem of shared audio/modem drivers. This patch fixes the problem that the shared audio/modem drivers reset the codecs with each other at loading time. Currently, intel8x0 and atiixp drivers are supported. The other drivers (if any) should add the new shared type in ac97_codec.h. Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module,PCM Midlevel,CS46xx driver,EMU10K1/EMU10K2 driver ALSA Core,YMFPCI driver,Sound Scape driver,ATIIXP driver ATIIXP-modem driver,BT87x driver,ENS1370/1+ driver,ES1968 driver Intel8x0 driver,Intel8x0-modem driver,VIA82xx driver,KORG1212 driver MIXART driver,RME HDSP driver,RME9652 driver,Trident driver Clean up DMA buffer allocation routines. - snd_dma_alloc_pages*() take the device type and device pointer directly as arguments. snd_dma_free_pages() takes only dma_buffer instance. - snd_dma_device struct is removed in each driver's instance (no longer needed due to the change above). - snd_malloc_pages_fallback() is removed since it's no longer used. - The buffer reservation / preallocation in snd-page-alloc module is performed only when the buffer id is given. Normal PCM buffers won't be reserved any more (unless the driver specifies). The module keeps the linked list of free-reserved buffers, instead of the whole buffers Reservation is done via snd_dma_reserve_buf(), and retrieved via snd_dma_get_reserved_buf()). - Other misc clean-ups/fixes. Signed-off-by: Takashi Iwai ALSA CVS update PARISC Harmony driver Clean up DMA buffer allocation routines. - snd_dma_alloc_pages*() take the device type and device pointer directly as arguments. snd_dma_free_pages() takes only dma_buffer instance. - snd_dma_device struct is removed in each driver's instance (no longer needed due to the change above). - snd_malloc_pages_fallback() is removed since it's no longer used. - The buffer reservation / preallocation in snd-page-alloc module is performed only when the buffer id is given. Normal PCM buffers won't be reserved any more (unless the driver specifies). The module keeps the linked list of free-reserved buffers, instead of the whole buffers Reservation is done via snd_dma_reserve_buf(), and retrieved via snd_dma_get_reserved_buf()). - Other misc clean-ups/fixes. Signed-off-by: Takashi Iwai ALSA CVS update PCI drivers,Intel8x0-modem driver Added the support of Nvidia modem. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Fixed the handling of unknown irqs on ICH5. This patch fixes (hopefully) the handling of unkown irqs triggered on some ICH5 mobo. Also, free_irq() is moved before releasing i/o ports to avoid hang-up at removal. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added an ac97 quirk for ICH/AD1885 mobo. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added the support of ZNF3-250 (supposed to be ZNF3-150 compatible). Signed-off-by: Takashi Iwai ALSA CVS update IOCTL32 emulation Added the wrapper for sync_ptr and hwsync ioctls. Signed-off-by: Takashi Iwai ALSA CVS update PPC,PPC AWACS driver,PPC Beep,PPC PMAC driver,PPC PowerMac driver Added the PCM beep support. enable_beep module option is back again (default = 1). Beep is emulated via PCM playback when enabled. Signed-off-by: Takashi Iwai ALSA CVS update PPC PMAC driver pmac also apply the DMA stop work around to fix capture on iBook2 the attached patch for the pmac driver fixes capture for at least all iBook2s I have access to. Without the fix arround 33% percent of all recordings are just white noise. Signed-off-by: Rene Rebe Signed-off-by: Takashi Iwai ALSA CVS update PPC PMAC driver Bailed a long delay out of the spin_lock_irq. Signed-off-by: Takashi Iwai [CPUFREQ] Longhaul compile fixes. Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [CPUFREQ] speedstep-smi: GET_SPEEDSTEP_FREQS may return bogus values On at least one system, the GET_SPEEDSTEP_FREQS call to the BIOS returns obviously incorrect data (0 and 4 MHz...). So, check whether the results look sane, if not, use the already existing workaround for ancient speedstep systems. Thanks to Pierre Maziere for reporting this issue and testing the fix. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] speedstep-centrino: ignore 0xffff'ed P-States Some ACPI tables contain 0xffff'ed entries for "P-States". This is obviously incorrect according to the ACPI specifications, nonetheless it should "just work". So, simply ignore such invalid P-States instead of aborting. Thanks to Frederik Reiss for testing (and fixing) this patch. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] speedstep-ich SMT support. i have noticed that the most recent vanilla kernel oopses on a P4M-HT (because only one CPU is registered in sysfs but 2 are informed of a change of state). also there are some returns out of subroutines before set_cpus_allowed() is performed to restore the mask prior to entering the subroutine (this should not matter on uniprocessor systems, but still...). this patch should fix these 2 issues. for the first one, it registers all logical cpu's and a tiny modification is made in cpufreq.c to perform a policy change on all siblings. From: Christian Hoelbling Signed-off-by: Dave Jones [CPUFREQ] A reduce-Jeremy's-mail patch: - Only Intel makes EST CPUs. (Some Cyrix M IIs have the EST bit set - I don't know what it means, but it isn't Enhanced Speedstep.) - If it's a known Dothan, but we're looking in the tables, give a useful message about using ACPI rather than mailing me. - Code cleanups: - Make the CPU ID stuff table driven - Turn centrino_verify_cpu_id into a proper boolean predicate - Diddle some whitespace Signed-off-by: Dave Jones [CPUFREQ] speedstep-centrino: Remove unnecessary vendor checks. This is only used on Intel, and if some other vendor ever clones speedstep, we can add an additional check in the init routine. Signed-off-by: Dave Jones [PATCH] d_unhash consolidation This removes a copy of d_unhash() from drivers/usb/core/inode.c and and exports d_unhash() from fs/namei.c as dentry_unhash(). Tested - compiled and running. Signed-off-by: Dan Aloni Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pxa2xx_udc.c: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ov511: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Mark McClelland Signed-off-by: Greg Kroah-Hartman [PATCH] USB: auerswald: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Delete unused UNLINK_TIMEOUT_JIFFIES #define. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [CPUFREQ] fix HT oops on speedstep-ich system Bugfix for #3012 @ http://bugme.osdl.org/show_bug.cgi?id=3012 The speedstep-ich driver only registers for CPU0 (which is a sane thing to do). However, cpufreq_notify_transition() currently assumes the CPU specified in the freqs.cpu parameter has actually been registered with the CPUfreq core. This is obviously not the case for HT speedstep-ich CPUs, causing an OOPS. The long-term solution will be to merge the "cpufreq CPU group awareness patches" already RFC'ed to this list; but they still need a bit of polishing and testing. Thanks to Boris Fersing for reporting the bug and testing this fix. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [AGPGART] License updates. These drivers 'inherited' the license of the old agpgart code, which was licensed as 'and additional rights' even though those rights were never publically documented anywhere to my knowledge. This was a hangover from the days when agpgart maintainence was done primarily in the X tree, where GPL code cannot live without 'additional rights'. These days, agpgart maintainence happens in the kernel tree, so these 'additional rights' mean nothing. Remove them from some drivers. (More to follow). Signed-off-by: Dave Jones [PATCH] USB: ACM USB modem on Kernel 2.6.8-rc2 this adds a workaround for a broken USB modem. Signed-Off-By: Oliver Neukum Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: fix Genesys Logic based on info from vendor In theory, this is the fix we need to make Genesys Logic devices work. This patch started life as as343, which was created based on some information which a user finally coaxed out of Genesys Logic. Limited end-user testing gives good results. As we expected, it's a bug in their device. This is really a workaround for what is almost certainly a timing problem. Apparently, the 'popular' OSes don't push the device as hard as Linux does. Although it is likely that this workaround is not needed for all Genesys devices, Genesys was unable/unwilling to provide us with the explicit list of VID/PIDs which required this -- thus we apply it to all Genesys devices. We have lots of good reports with max_sectors set to 128 with these devices, but the official recommendation is to set that to 64. End-users can experiment with higher values (for higher performance) via the runtime sysfs interface to that parameter. I would like to give special thanks to the users who hounded Genesys into giving up this information, and to Alan Stern for not giving up on this vendor long after I had. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: improve debugging output in usb-storage This patch started life as as294. All I did was to regenerate it to apply cleanly against current kernels. This just adds a couple of lines to the debugging output with some useful information, and removes some lines that nobody has looked at in a very long time. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: cleanups, mostly This patch is originally from Christoph Hellwig. This patch coverts from Scsi_Foo typefs to struct scsi_cmnd, and moved from the SCSI data direction constants to the DMA ones. It also switches to the proper (or so they tell me) use of headers. This also includes some additional reshuffling to avoid useless headers in the usb-storage local headers (to improve compile time). Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [CPUFREQ] compile fix Compile fix for speedstep-ich.c: missing forward declaration. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones PCI: update pci.ids from sf.net site. Patch taken from http://www.codemonkey.org.uk/projects/pci/pci.ids-2004-08-02.diff and tweaked by hand to build with no warnings. Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: use list_for_each() i386/pci/pcbios.c From: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: use list_for_each() i386/pci/common.c From: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: cpci_hotplug_core: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: ibmphp: remove long_delay Remove unused function long_delay(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: use list_for_each() drivers/pci/setup-bus.c From: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: ibmphp_core: replace long_delay() with msleep() Replace long_delay() with msleep() to guarantee the task delays as desired. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: ibmphp_hpc: replace long_delay() with msleep() Replace long_delay() with msleep() to guarantee the task delays as desired. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: shpchp_hpc: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix PCI access mode dependences in arch/i386/Kconfig While all ACPI stuff is deselected, and PCI access mode is set to "Any", CONFIG_ACPI_BOOT is going to be set because of CONFIG_PCI_MMCONFIG. If CONFIG_ACPI_BOOT is not allready set by other stuff, setting PCI access mode to "Any" shouldn't set CONFIG_PCI_MMCONFIG. Anyhow, setting PCI access mode to "MMConfig" should select CONFIG_ACPI_BOOT. Signed-off-by: Raphael Zimmerer Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: fix build warnings due to msleep() patches. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c-keywest: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c-algo-pcf: replace schedule_timeout() with msleep() Remove pcf_sleep() and replace invocations with msleep(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c-ite: replace schedule_timeout() with msleep() Remove iic_ite_sleep() and replace invocations with msleep(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Add Intel IXP2000 GPIO-based I2C adapter Following patch adds support for using GPIO pins on Intel's IXP2000 Network Processor as a bit-bang I2C adapter. IXP2000 support will be coming in via ARM updates once all the various drivers have been merged upstream. Signed-off-by: Deepak Saxena Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Fix debug in w83781d driver The trivial patch below fixes two debug prints in the w83781d driver (one needless dereference and one debug print without device info). Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: new device for sis630 this patch adds SiS 1039:0018 to PCI device list of sis630.c. This is needed, due to changes in pci quirks that cause sis630/sis730 LPC to change id from 008 -> 0018. This patch doesn't have any side effects, because i2c-sis630 checks for supported devices. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c-nforce2: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: scx200_acb: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays the requested time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: activate SMBus device on hp d300l From: Dominik Brodowski HP hides the SMBus on the HP D330L. Original patch by Stoyan Martinov. Signed-off-by: Örjan Persson Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb_get_descriptor, more error checks I've had different versions of this floating around for a while; basically, the goal is to be more robust against devices that misbehave by returning garbage descriptors in certain cases. Add an extra check when fetching descriptors: the type must be correct. This guards against different types of firmware (or maybe hardware) errors than the two checks already being made. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: hid intervals I noticed the HID driver had some potential misbehavior ... Bugfix handling for HID devices at high speed (interrupt interval encoding is log2 not linear), and for interrupt OUT transfers (use the interval the hardware actually supports). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix build error from previous patch. Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman KREF: shrink the size of struct kref down to just a single atomic_t This was based on a patch from Kiran, but tweaked further by me. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Greg Kroah-Hartman KREF: fix up the current kref users for the changed api. Based on work from Kiran, but fixed up by me to actually build and link properly. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Greg Kroah-Hartman From: "Andrew Chew" This patch updates include/linux/pci_ids.h with the CK804 audio controller ID, and adds the CK804 audio controller to the sound/pci/intel8x0.c audio driver. Signed-off-by: Andrew Morton From: Jaroslav Kysela ALSA patch Removed duplicate CK804_AUDIO from intel8x0.c USB: replace old usb-skeleton driver with a rewritten and simpler version. Signed-off-by: Greg Kroah-Hartman [CPUFREQ] Adding SMP capability to MSR based Enhanced Speedstep. At present, MSR based Enhanced Speedstep Technology (EST) is handled by speedstep-centrino.c. The attached patch adds more features to speedstep-centrino, making it more generic. With these changes, it can run on SMP systems which supports EST, based on the information provided by ACPI. The non-ACPI (static table based) driver will still be UP only. From: "Pallipadi, Venkatesh" Signed-off-by: Dave Jones [CPUFREQ] Whitespace cleanup for centrino speedstep. Signed-off-by: Dave Jones [CPUFREQ] Better fix for previous speedstep-ich breakage. Do away with the prototype by just moving some code around. Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [CPUFREQ] Whitespace/CodingStyle fixes for speedstep-ich Signed-off-by: Dave Jones ALSA CVS update VIA82xx driver Added the DXS whitelist entry for Acer Inspire 1353LM. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,USB,USB generic driver,USB USX2Y Added snd-usb-usx2y driver for Tascam US-122/224/428 support. Driver written by Karsten Wiese The shared code is split from usbaudio as snd-usb-lib module. Currently, only MIDI part is included there. In future, more audio part will be shared, too. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,Intel8x0 driver Added buggy_irq module parameter to intel8x0 driver. On some (broken :) motherboards, unknown irq is triggered when the audio is started. This this option, the irq handler returns IRQ_HANDLED for such an irq, so that the irq line won't be disabled. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver fix email address and license Signed-off-by: Clemens Ladisch [PPC32] Add a weak version of embed_config(). This allows boards with U-Boot to have a functional 'all' target. Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini [PPC32] Give PPC8xx a callback into board-specific code in m8xx_setup_arch(). Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini [PPC32] Add a watchdog driver on PPC8xx. Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini ALSA CVS update au88x0 driver Cleanup the private_data initialization Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela [AGPGART] Delete confusing message when not using onboard i815 gfx. If you use an external graphic card, the secondary device disappears, which makes agpgart spew a message like Detected an Intel i815 Chipset, but could not find the secondary device. Which is ok, as we don't want to use it anyway. This is confusing to users, as I've even had some people saying they thought it was a hardware fault. Signed-off-by: Dave Jones [AGPGART] Trailing whitespace cleanup Signed-off-by: Dave Jones [ACPI] BIOS workaround allowing devices to use reserved IO ports Author: David Shaohua Li http://bugzilla.kernel.org/show_bug.cgi?id=3049 USB: convert a lot of usb drivers from MODULE_PARM to module_param Signed-off-by: Greg Kroah-Hartman ALSA misc - control.c - compilation fixes - es1968.c - hw volume fix [1/3] Split pci quirks array to allow separate declarations. It's a pain in the arse to set up platform-specific PCI quirks -- you have to put your platform-specific quirk into the generic (or at least the architecture) array. This patch fixes that, allowing you to DECLARE_PCI_FIXUP_HEADER() or DECLARE_PCI_FIXUP_FINAL() anywhere you like. Note that a lot of the quirks can now be moved out of drivers/pci/quirks.c and put somewhere closer to where they belong. Signed-off-by: Greg Kroah-Hartman [2/3] PCI quirks -- PPC. Remove up the PPC pcibios_fixups[] array. Remove the ifdefs on CONFIG_PPC_PMAC in the kernel PPC code, moving that stuff into pmac-specific files where it lives. Add a quirk for the CardBus controller on WindRiver SBC8260. Signed-off-by: Greg Kroah-Hartman [3/3] PCI quirks -- i386. Probably best to make i386 build again too... people bitch if their favourite legacy architecture breaks. Signed-off-by: Greg Kroah-Hartman [4/3] PCI quirks -- MIPS. Remove the bazillion of pcibios_fixups[] arrays on MIPS and replace them with DECLARE_PCI_FIXUP_HEADER / DECLARE_PCI_FIXUP_FINAL where the array definition was non-empty. Signed-off-by: Greg Kroah-Hartman [5/3][ARM] PCI quirks update for ARM Good idea. Following is ARM patch. Signed-off-by: Greg Kroah-Hartman PCI quirks -- parisc. Remove pcibios_fixups[] from core code and declare the one fixup in the same place it's implemented. Signed-off-by: Greg Kroah-Hartman PCI quirks -- ppc64 Remove pcibios_fixups[] array and move the declarations to live with the implementations. Remove unneeded pcibios_name_device() on iSeries. Signed-off-by: Greg Kroah-Hartman PCI quirks -- other architectures Mostly just removing empty pcibios_fixups[] arrays. Signed-off-by: Greg Kroah-Hartman [ACPI] restore PCI Interrupt Link Devices upon resume * register as as a sys_device so that we can get resume callbacks and restore interrupt routing state. * add acpi_pci_link_resume(), which will be called when resuming from a suspend state that needs IRQ routing to be restored. This fixes issues reported on the mailing lists, e.g.: http://marc.theaimsgroup.com/?l=acpi4linux&m=109142999328643&w=2 * rename setonboot --> initialized * change to test acpi_noirq in init We want to initialize everything on S3 resume in case the BIOS points an interrupt link somewhere we didn't expect. (Doing so avoids "missing interrupt" or "irq x: nobody cared" problems.) According to Len, past experience has shown that it's a good idea to initialize only devices that exist or were explicitly asked for, so we try to initialize only the IRQ's that were previously initialized at some point before suspend, by checking the "initialized" flag. This corresponds to links that have PCI devices attached. Everything else, we leave alone. Assuming the BIOS does the same thing on resume that it did on boot, this will leave all the unused links in the same state that they were on boot. We are registered as a sysdev in order to do this work fairly early during resume, before devices are resumed; some devices may not call pci_device_enable. Previous "setonboot once" behavior is left in place, to be conservative. PCI: fix compiler warning in quirks file, and other minor quirks cleanup Signed-off-by: Greg Kroah-Hartman PCI: clean up code formatting of quirks.c Signed-off-by: Greg Kroah-Hartman PCI: oops, forgot to check in the pci.h changes so that the quirk cleanups will work Signed-off-by: Greg Kroah-Hartman USB: finish up the last of MODULE_PARM to module_param conversions Signed-off-by: Greg Kroah-Hartman [AGPGART] Sparse trivial warning fixes. Signed-off-by: Dave Jones MODULE: add byte type of module paramater, like the comments say we support... Signed-off-by: Greg Kroah-Hartman I2C: convert all drivers from MODULE_PARM to module_param [PATCH] I2C: bus driver for multiple PowerPCs The attached patch for Linux 2.6 adds an I2C driver for the MPC107 host bridge, plus the integrated controllers in the MPC824x, MPC85xx, and MPC52xx PowerPCs. The driver has been tested on a variety of systems, by people on the linuxppc-embedded list. Signed-off-by: Adrian Cox Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: fix up the order of bus drivers in the Kconfig and Makefile Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SN9C10[12] driver update This patch brings the driver up to the first stable version. Changes: * Remove "redblue" entry under /sys * Better coding style for comments * Fix the image downscaling factor calculation * Fix default color settings for some image sensors * Fix TAS5130D1B image sensor support * Other small cleanups * Remove "EXPERIMENTAL" symbol from KConfig + Add support for PAS202BCB sensor (thanks to Carlos Eduardo Medaglia Dyonisio) Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SN9C10[12] driver minor update Oops, one more. Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ipaq module: product id for HTC Himalaya This adds support for HTC Himalaya / XDA II Signed-off-by: Nabil Sayegh Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Don't track endpoint halts in usbcore This patch is a repeat of as331 as described in http://marc.theaimsgroup.com/?l=linux-usb-devel&m=108811725219677&w=2 It has been updated slightly to match the current source. It should be non-controversial; it has nothing to do with hubs or locking. Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Disallow probing etc. for suspended devices This patch is a repeat of as335, as described in http://marc.theaimsgroup.com/?l=linux-usb-devel&m=108861892700869&w=2 but updated to match the current source. It should be non-controversial; it has nothing to do with hubs or locking. Please apply. Alan Stern Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ehci and buggy BIOS handoff Be more forgiving of buggy BIOS code, which never hands the EHCI controller to Linux. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: net2280 minor fixes Collection of small net2280 driver fixes: - Byteswap bug for big-endian PIO paths From: Jon Neal - Highspeed electrical conformance fix From: Alex Sanks - Support new usb_gadget_{connect,disconnect}() API calls so that gadget drivers have softconnect control over the D+ pullup From: Alex Sanks And minor cleanups by me. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix deadlock in hub_reset usb_reset_device takes hdev->serialize. However, hub_reset is (only) called by hub_events, which already holds the lock. Thanks to Tyler Nielsen for the bug report and helpful backtrace. Signed-off-by: Duncan Sands Signed-off-by: Greg Kroah-Hartman [PATCH] USB: LEGO USB Tower, move reset from probe to open the following patch reduces the amount of garbage data sent by the device after open (must be the heat here causing trouble). Move the vendor-specific device reset from probe to open to reduce spurious data. Signed-off-by: Juergen Stuber Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: rpaphp build break - remove eeh register The following patch removes eeh function calls that currently break the RPA PCI Hotplug module. The functions in question were rejected from mainline, and an alternate solution is being worked. [PATCH] PCI: Document pci_disable_device() Add documentation for pci_disable_device(). We don't actually deallocate IRQ resources in pci_disable_device() yet, but I suspect we'll need to do so soon. Signed-off-by: Bjorn Helgaas Signed-off-by: Greg Kroah-Hartman I2C: rename i2c-sensor.c file to prepare for Rudolf's VRM patch. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: automatic VRM detection part1 This patch forms composite module with i2c-sensor.c and new file i2c-sensor-vid.c, which provides i2c_which_vrm function for detecting VRM version of processor using cpuid_eax func. Resulting module has unchanged name (i2c-sensor). Before applaying this patch, please rename i2c-sensor.c to i2c-sensor-detect.c This patch was briefly reviewed by Jean Delvare. Signed-off-by: Rudolf Marek Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: automatic VRM detection part2 This is second part, which just adds the functionality to existing code base, also including support of vid inputs for it8712 chip. This patch was also briefly reviewed by Jean Delvare. Signed-off-by: Rudolf Marek Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: algorithm and bus driver for PCA9564 Attached is a driver for the PCA9564 "Parallel to I2C" chip, it is similar in principle to the PCF8584 which is supported by the i2c-algo-pcf and i2c-elektor code, however it's not code compatible in any way: http://www.semiconductors.philips.com/pip/PCA9564PW.html The patch contains the PCA algorithm driver and a bus driver for an ISA card. It only supports master send and receive but I'm not sure that the Linux i2c stack supports client side operation anyhow, and I have no hardware to test on. It was tested on a PC104 card containing the PCA chip and an Atmel TPM device and also on a separate PC104 card with a DS1307 RTC hotwired onto it for testing purposes. The driver is against a 2.6 BK tree pulled on Friday. I also have a fairly trivial 2.4 backport if that is of interest. From: Ian Campbell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: autoconf for gadget serial Here is a patch to add endpoint autoconfiguration to the gadget serial driver. I pretty much copied gadget zero autoconfig for this. Tested with a NetChip 2280 development board. Signed-off-by: Al Borchers Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add Hardware implementing USB-OTG needs to use an OTG controller and/or transceiver driver to switch the Mini-AB connector between the host and peripheral side controller drivers (and the USB device role supported by that driver). This patch adds a simple "otg_transceiver" interface that can abstract implementation details for that port, as needed for some upcoming patches: - Neither host nor peripheral controller drivers need to know about how the OTG controller is implemented. Example: is the transceiver internal? If not, which external chip? - The OTG controller doesn't need to know if the Host Controller is OHCI, EHCI, or something custom ... all it knows is that the HCD looks like a "usb_bus". - In the same way, the peripheral controller is just a "usb_gadget". One implementation of this will be posted soon; the interface is by no means cast in stone, other implementations may need to morph this interface a bit. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman ALSA CVS update PPC PMAC driver Removed non-functional 48kHz support from pmac driver. Signed-off-by: Rene Rebe Signed-off-by: Takashi Iwai ALSA CVS update SoundFont,Common EMU synth Fixed messy locks in soundfont support code. Removed hacky down_trylock() in the interrupt context, and check the busy lock flag explicitly. Signed-off-by: Takashi Iwai ALSA CVS update PCI drivers,Intel8x0-modem driver Added the support of SIS7013 modem. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver,KORG1212 driver Fixed the compile warnings on 64bit architectures. Signed-off-by: Takashi Iwai ALSA CVS update USB USX2Y fix compilation on 2.2.x kernels Signed-off-by: Clemens Ladisch ALSA CVS update au88x0 driver Fixed asXtalkGainsAllChan problem for the solid kernel build. Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver Cleans up the equalizer code by converting some loops to proper for loops and fixes the conditions for looping. Signed-off-by: Jeff Muizelaar Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver some other misc eq cleanups Signed-off-by: Jeff Muizelaar Signed-off-by: Jaroslav Kysela MODULE: delete local static copy of param_set_byte as we now have a real version of it. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: scx200_i2c build fix drivers/i2c/busses/scx200_i2c.c: In function `__check_scl': drivers/i2c/busses/scx200_i2c.c:41: `scl' undeclared (first use in this function) drivers/i2c/busses/scx200_i2c.c:41: (Each undeclared identifier is reported only once Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbfs: drop the device semaphore in proc_bulk and proc_control usb_control_msg and usb_bulk_msg may sleep for a long time, so drop the per device semaphore before calling them. This fixes OSDL bug 3108. Dropping the semaphore is racy, but (1) the race is fairly harmless, (2) it can be occur elsewhere as an inevitable consequence of the current usbfs api, this just makes it fractionally more likely. Signed-off-by: Duncan Sands Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add ub driver From: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman USB: fix up ub.c due to usb_endpoint_running() going away. Signed-off-by: Greg Kroah-Hartman [PATCH] KOBJECT: add kobject_get_path Add a new kobject helper, kobject_get_path(), which is the greatest function ever. Signed-Off-By: Robert Love Signed-off-by: Greg Kroah-Hartman USB: fix up gadget driver usage of MODULE_PARM Signed-off-by: Greg Kroah-Hartman [PATCH] w1: attributes split, timeout unit changed. Creates w1_master_attribute_* attributes and 2 routings to control them: w1_create_master_attributes() and w1_destroy_master_attributes(). Timeout unit was changed from jiffies to seconds. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Added w1_read_block() and w1_write_block() callbacks. Added w1_read_block() and w1_write_block(). w1_therm.c now uses them. w1_therm: Chnaged snprintf to sprintf in w1_therm_read_bin() and added max_trying - number of tryings to read temperature before failng. By default it is 10. Added w1_therm_check_rom() - checks if read rom is in black list. If rom is in black list it is probably due to unsufficient of "power" in the sensor - either add strong pullup or connect it to Vcc. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Added w1_check_family(). w1_check_family() checks new family before registering it. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Changed printing format for slave names. %llx -> %012llx %x -> %02x Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [ARM] Switch CPU to BE mode before uncompressing when running BE This is needed for certain systems (IXP2000,IXP1200) where the bootloader switches back to LE before jumping into the kernel or when we are trying to boot a BE kernel from an LE bootloader. Signed-off-by: Deepak Saxena [PATCH] w1: Changed define for W1_FAMILY_SMEM. -#define W1_FAMILY_IBUT 0xff /* ? */ +#define W1_FAMILY_SMEM 0x01 Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Netlink update - changed event generating/processing. Added following self-explanatory netlink events. W1_SLAVE_ADD = 0, W1_SLAVE_REMOVE, W1_MASTER_ADD, W1_MASTER_REMOVE, Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Debug output cleanup. memcpy instead of direct structure copying. Debug output cleanup. memcpy instead of direct structure copying. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Spelling fix. Spelling fix. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Added w1_smem.c - driver for simple 64bit ROM devices. Added w1_smem.c - driver for simple 64bit ROM devices. Simple iButtons with ds2401/ds2411/ds1990* are handled by this driver. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Added driver for Dallas' DS9490* USB <-> W1 master. Added driver for Dallas' DS9490* USB <-> W1 master. Should handle any device based on DS2490 chip. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman kbuild: Check for undefined symbols in vmlinux At least one bin-utils version for ARM is know to ignore undefined symbols when performing the final link of vmlinux. Add an explicit check for undefined symbols to catch this. The check is made in combination with generating the System.map file and the actual algorithm is moved to a small shell script - mksysmap. External symbols with three leading underscores are ignored - sparc uses them for the BTFIXUP logic. Signed-off-by: Sam Ravnborg [ACPI] acpi_system_write_wakeup_device() has the wrong return type and is missing the __user attribution from its buffer argument. This patch shuts up the resulting warnings on x86-64. From: William Lee Irwin III Signed-off-by: Andrew Morton kbuild/sparc: Use new generic mksysmap script to generate System.map o Introduced usage of the mksysmap script. o Improved the non-verbose output to look like this: BTFIX arch/sparc/boot/btfix.S AS arch/sparc/boot/btfix.o LD arch/sparc/boot/image SYSMAP arch/sparc/boot/System.map o No longer generate System.map for each build o Use normal AS rule to compile btfix.S Signed-off-by: Sam Ravnborg kconfig: save kernel version in .config file Save kernel version info and date when writing .config file. Tested with 'make {menuconfig|xconfig|gconfig}'. Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg kbuild: Selective compile of targets in scripts/ Do not build executables unless needed. Same goes for scripts/mod/, descend only when CONFIG_MODULES are enabled. With inputs form: Russell King and Brian Gerst Signed-off-by: Sam Ravnborg kbuild: Use LINUXINCLUDE to specify include/ directory Peter Chubb reported that building i386 on a non-i386 platform failed, because gcc could not locate boot.h. Root cause was the extra include2 directory used when using O= to specify the output directory. Added LINUXINCLUDE as a portable way to specify the include/ directory, and changed the two users. This avoids hardcoding 'include2' in non-kbuild core files. Signed-off-by: Sam Ravnborg [AGPGART] SiS 635 support. From: Pavel Kysilka Signed-off-by: Dave Jones [ACPI] acpi for asus update from Karol Kozimor support for L4R and M5N, moves some bits for M6N and restores WLED functionality for M2N comment and whitespace cleanups fix get/set typo from /proc patch, delete trailing spaces [ACPI] acpi_bus_register_driver() now return a count consistent with pnp_register_driver() and pci_register_driver() All existing callers of acpi_bus_register_driver() either ignore the return value or check only for negative (error) return values. Signed-off-by: Bjorn Helgaas [ACPI] init wakeup devcies only if ACPI enabled (David Shaohua Li) [PATCH] USB: fix ub driver The problem is that the ub driver don't contain the terminating braces for the device id entries. You need to apply the following patch to get everything back to normal. From: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Added dynamic slave removal mechanism. Fixed bug when we have multiple slave with different families. Added dynamic slave removal mechanism by introducing u32 flags; in each slave. If slave was found during search process then set flag. If after search complete we have slave entryes without magic flag then remove them. Fixed bug when we have multiple slave with different families. Since attributes were static then each new family will rewrite static values with new function pointers... badly broken. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: update the lm83 driver This is an update to the Linux 2.6 lm83 hardware monitoring driver. * Follow the sysfs interface naming conventions. * Fix the "force" module parameter. * Fix limit settings checks. * Driver is no longer tagged experimental. These changes are the result of me finally succeeding in getting my LM83 evaluation board to work. If there are norms and standards about how evaluation boards can be wired, I guess I did not respect any of them, but it works ;) Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: port smsc47m1 to 2.6 Here is my port of the smsc47m1 i2c hardware monitoring driver to Linux 2.6. The original driver was written by Mark D. Studebaker, and my work is based on a preliminary port by Gabriele Gorla, who came in with an almost finished driver, but vanished before cleaning it up. I finished the job and improved things a bit. Credits go to Ivars Strazdins and Cassio Freitas for testing the driver (having no hardware, I couldn't test the code myself). Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] W1: fix some improper '{' style code. Signed-off-by: Greg Kroah-Hartman [PATCH] W1: removed some unneeded global symbols from the w1_smem module. Signed-off-by: Greg Kroah-Hartman kbuild: Accept absolute paths in clean-files and introduce clean-dirs Teach kbuild to accept absolute paths in clean-files. This avoids using clean-rules in several places. Introduced clean-dirs to delete complete directories. Kept clean-rule - but do not print anything when used. Cleaned up a few places now the infrastructure are improved. Signed-off-by: Sam Ravnborg [ARM] Add IXP2000 support to arch/arm/Makefile & Kconfig Signed-off-by: Deepak Saxena [ARM] Add IXP2000 support to arch/arm/kernel Signed-off-by: Deepak Saxena [ARM] Add IXP2000 CPU support to arch/arm/mm Signed-off-by: Deepak Saxena [ARM] Add IXP2000 support to arch/arm/boot Signed-off-by: Deepak Saxena [ARM] Add IXP2000 platform implementation (arch/arm/mach-ixp2000) Signed-off-by: Deepak Saxena [ARM] Add IXP2000 header files (include/asm-arm/arch-ixp2000) Signed-off-by: Deepak Saxena [ARM] Add IXP2000 documentation Signed-off-by: Deepak Saxena [PATCH] I2C: fix for previous lm83 driver update Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SN9C10[12] driver update Changes: - Correct calculation of R,G,B origin - Gain fixes for PAS106B and PAS202BCB image sensors Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbfs: check the buffer size in proc_bulk Use the same check as proc_submiturb. Signed-off-by: Duncan Sands Signed-off-by: Greg Kroah-Hartman PCI Hotplug: fix compiler warnings in pciehp driver. [ARM] Various IXP2000 fixes - Fix IXP2000_MSF_CLK_CNTRL typo - Use unsigned long instead of int for local_irq_save() flags variable - Fix "pci=firmware" handling - Remove redundant IXP2000 zreladdr - Fix IXP2000 def-configs Signed-off-by: Deepak Saxena [ARM] Add support for ENP-2611 platform Signed-off-by: Deepak Saxena [PATCH] PCI: saved_config_space -> u32 Match what the functions working on it expect. Signed-off-by: Roger Luethi Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix PCI access mode dependences in arch/i386/Kconfig again While all ACPI stuff is deselected, and PCI access mode is set to "Any", CONFIG_ACPI_BOOT is going to be set because of CONFIG_PCI_MMCONFIG. If CONFIG_ACPI_BOOT is not allready set by other stuff, setting PCI access mode to "Any" shouldn't set CONFIG_PCI_MMCONFIG. Anyhow, setting PCI access mode to "MMConfig" should select CONFIG_ACPI_BOOT. Signed-off-by: Raphael Zimmerer Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: ASUS L3C SMBus fixup Following the notes on bug #2976, here's the patch to add ASUS L3C notebook to the list of machines hiding SMBus chip. The patch is against 2.6.8-rc3-mm1. From: Karol Kozimor Signed-off-by: Greg Kroah-Hartman [AGPGART] Fix MVP3 typo. Spotted by Lars Gregori Signed-off-by: Dave Jones Cset exclude: davej@redhat.com|ChangeSet|20040809142517|56351 kbuild: Separate out host-progs handling Concentrating all host-progs functionality in one file made a more readable Makefile.lib - and allow for potential reuse of host-progs functionality. Processing of host-progs related stuff are avoided when no host-progs are specified. Signed-off-by: Sam Ravnborg kbuild: Introduce hostprogs-y, deprecate host-progs Introducing hostprogs-y allows a user to use the typical Kbuild pattern in a Kbuild file: hostprogs-$(CONFIG_KALLSYMS) += ... And then during cleaning the referenced file are still deleted. Deprecate the old host-progs assignment but kept the functionlity. External modules will continue to use host-progs for a while - drawback is that they now see a warning. Workaround - just assign both variables: hostprogs-y := foo host-progs := $(hostprogs-y) All in-kernel users will be converted in next patch. Signed-off-by: Sam Ravnborg kbuild: Replace host-progs with hostprogs-y Signed-off-by: Sam Ravnborg kbuild: Fix hostprogs-y Allow the same target to be specified more than once without causing a warnign from make. The same target may be specified twice when using the following pattern: hostprogs-$(CONFIG_FOO) += program hostprogs-$(CONFIG_BAR) += program Signed-off-by: Sam Ravnborg kbuild: Use POSIX headers for ntoh functions From: Benno When compiling Linux on Mac OSX I had trouble with scripts/sumversion.c. It includes to obtain to definitions of htonl and ntohl. On Mac OSX these are found in . After checking the POSIX specification it appears that this is the correct place to get the definitons for these functions. (http://www.opengroup.org/onlinepubs/009695399/functions/htonl.html) Using this header also appears to work on Linux (at least with Glibc-2.3.2). It seems clearer to me to go with the POSIX standard than implementing #if __APPLE__ style macros, but if such an approach is preferred I can supply patches for that instead. Signed-off-by: Sam Ravnborg [PATCH] PCI Hotplug: rpaphp_get_power_level bug fix Recently I have run into the problem where I got the power-level "0" while I was expecting "100" from a slot that had pwered on. The attached patch fixes rpaphp_slot.c to use an int pointer(instead of an u8 pointer) when calling rtas_get_power_level routine. Signed-off-by: Linda Xie Signed-off-by: Greg Kroah-Hartman [PATCH] export legacy pty info via sysfs You missed that one last year. export the legacy pty/tty device nodes via sysfs, so udev has a chance to create them if /dev is in tmpfs. Signed-off-by: Olaf Hering Signed-off-by: Greg Kroah-Hartman [PATCH] Driver Core: fix minor class reference counting issue on the error path Signed-off-by: Thomas Koeller Signed-off-by: Greg Kroah-Hartman [PATCH] Remove spaces from PCI IDE pci_driver.name field Spaces in driver names show up as spaces in sysfs. Annoying. I went ahead and changed ones that don't have spaces to use ${NAME}_IDE so they are all consistent. Signed-off-by: Deepak Saxena Signed-off-by: Greg Kroah-Hartman [PATCH] Remove spaces from PCI I2C pci_driver.name fields Same thing as IDE...spaces in PCI driver names show up in sysfs file names. I've also cleaned up all the .name fields to be in the format (${NAME}_i2c|${NAME}_smbus) so they are consistent. Signed-off-by: Deepak Saxena Signed-off-by: Greg Kroah-Hartman [PATCH] Remove spaces from PCI gameport pci_driver.name fields Signed-off-by: Deepak Saxena Signed-off-by: Greg Kroah-Hartman [PATCH] Remove spaces from Skystar2 pci_driver.name field Signed-off-by: Deepak Saxena Signed-off-by: Greg Kroah-Hartman [CRYPTO]: Typo in crypto/Kconfig From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Typo in crypto/twofish.c From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Typo in crypto/aes.c From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Typo in crypto/scatterwalk.c From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Typo in crypto/blowfish.c From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Typo in crypto/tcrypt.h From Nicolas Kaiser Signed-off-by: James Morris Signed-off-by: David S. Miller [CRYPTO]: Email update in crypto/arc4.c [EBTABLES]: Remove deprecated use of MODULE_PARM. From Stephen Hemminger Minor patch to change from MODULE_PARM to module_param. Using a char for a flag is not necessary, every else just uses an int. Signed-off-by: Stephen Hemminger Signed-off-by: Bart De Schuymer Signed-off-by: David S. Miller [IPV4]: Remove all references to IP_ROUTE_NAT support. It is totally broken, nobody is fixing it, and whoever wants to can resurrect it. Signed-off-by: David S. Miller [CPUFREQ] fix powernow-k8 compilation [bug 3180] Propagate the new CONFIG_X86_POWERNOW_K8_ACPI to powernow-k8.h to avoid compile breakage. Fixes bug 3180. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] avoid re-enabling of interrupts too early during resume Avoid re-enabling the interrupts in "write_sequnlock_irq" in cpufreq_timer_notifier() when it gets called in "CPUFREQ_RESUMECHANGE" state -- that happens if the CPU frequency is detected to be different now from what it was during suspension, and that's a resume call of a sys device, so with interrupts off. Without this patch, it can cause nasty oopses. IIRC resume is done on one CPU only, so we don't need no lock anyways. Right? Many thanks to Brian J. Murrell for debugging this issue. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] deprecate proc_intf, and inform of removal ~2005-01-01 The /proc/cpufreq interface was deprecated already when cpufreq was merged into the kernel. With 2.7. not appearing soon, let's do the same what's suggested for devfs and others: inform users of it being deprecated. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] deprecate proc_sys_intf, and inform users of removal ~2005-01-01 The /proc/sys/cpu/ interface was deprecated already when cpufreq was merged into the kernel. With 2.7. not appearing soon, let's do the same what's suggested for devfs and others: inform users of it being deprecated Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones 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 PPC32: Rename pq2ads_setup.c to pq2ads.c Signed-off-by: Tom Rini PPC32: Merge mcpn765_serial.h into mcpn765.h Signed-off-by: Tom Rini PPC32: Update the Motorola LoPEC support Signed-off-by: Tom Rini USB: hook the ub driver up to the sysfs tree so that tools like udev work better. Signed-off-by: Greg Kroah-Hartman PPC32: Finish cleanup of platforms that just needed _serial.h merged. Signed-off-by: Tom Rini [IPV4]: Move inetdev/ifa locking over to RCU. Multicast ipv4 address handling still uses rwlock and spinlock synchronization. Signed-off-by: David S. Miller PPC32: Update the Motorola MVME5100 support. Signed-off-by: Tom Rini [PATCH] PPC64 Segment table code cleanup - move to arch/ppc64/mm Move the segment table handling code from arch/ppc64/kernel to arch/ppc64/mm where it better belongs. This patch doesn't actually change the code at all. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras [PATCH] PPC64 Segment table code cleanup - kill bitfields Remove the overly verbose and hard to follow use of bitfields in the PPC64 segment table code, replacing it with explicit bitmask operations. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras [PATCH] PPC64 Segment table code cleanup - assorted cleanups Clean up various aspects of the PPC64 segment table management code: move code around to suit call order, remove redundant computations, and extra intermediate variables which don't really add to clarity. Signed-off-by: David Gibson Signed-off-by: Paul Mackerras [PATCH] PPC64 Segment table code cleanup - remove check duplication Rearrange the ste_allocate()/__ste_allocate() path in the PPC64 segment table code more sensibly. This moves various valid address checks into the lower-level __ste_allocate(), meaning the checks don't need to be duplicated in preload_stab(). Signed-off-by: David Gibson Signed-off-by: Paul Mackerras [PATCH] PPC64 Segment table code cleanup - replace flush_stab() with switch_stab() preload_stab() is only ever called (once) from flush_stab(), and flush_stab() is only ever called from switch_mm(). So, combine both functions into the more accurately named switch_stab(), called from switch_mm(). Signed-off-by: David Gibson Signed-off-by: Paul Mackerras [ARM PATCH] 2013/1: IXP4xx: Make clock monotonic Patch from David Vrabel ixp4xx_gettimeoffset uses an incorrectly rounded divisor. This results in a non-monotonic clock. [PATCH] fix imm to build with IMM_DEBUG Fix imm for IMM_DEBUG (changed device id struct). Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] SCSI nsp32.c: missing parts of inline removal patch The SCSI tree as included in 2.6.8-rc2-mm2 only removes the inline's from the functions prototypes, but the part of my original patch that also removes the inline's from the functions was lost. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] fd_mcs: fix __setup function Use correct __setup function type and parameters. Return result from __setup function. Don't confuse and . Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] NCR53c406a: fix __setup function Use correct __setup function type and parameters. Return result from __setup function. Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley kbuild: __crc_* symbols in System.map David S. Miller wrote: Shouldn't we be grepping __crc_ symbols out of the System.map file? For one thing, these can confuse readprofile. It's algorithm is to start at _stext, then stop when it sees a line in the System.map which is not text (mode is one of 'T' 't' 'W' or 'w') It will exit early if there are some intermixed __crc_* things in there (since they are are mode 'A'). For example, in my current sparc64 kernel I have this: 00000000004cef80 t do_split 00000000004cf2a0 t add_dirent_to_buf 00000000004cf5a7 A __crc_init_special_inode 00000000004cf640 t make_indexed_dir 00000000004cf900 t ext3_add_entry So no symbols after add_dirent_to_buf will be shown in the profiling output of readprofile. Implementation ported to mksysmap by Sam. Included two System.map related fixes: - Print "SYSMAP System.map" during build - Sort symbols in System.map Signed-off-by: Sam Ravnborg ppc32: Re-work the cpuinfo hooks on MPC82xx Now we define CPUINFO_VENDOR and CPUINFO_MACHINE in one callback instead of using show_cpuinfo and show_percpuinfo call-backs to print constant per-board information. Signed-off-by: Tom Rini [ACPI] clean out blacklist entries that do nothing [IPV4]: Fix race in inetdev RCU handling. ppc32: Small cleanups to the CPM2 PIC code. Signed-off-by: Tom Rini ppc32: Redo the MPC82xx set of call-backs. This removes at lot of the nearly empty files, and allows for boards to do the board-specific init stuff they need in their own file still. [libata] (cosmetic) minimize diff with 2.4.x libata Also, remove BenH's email address from SiI driver, to reduce email coming to him for a driver he didn't write (by request). [ACPI] Enter ACPI mode earlier Fixes two common boot failures due to buggy SMM BIOS code SMP boot crash if SMI_CMD=ACPI written from CPU1 http://bugzilla.kernel.org/show_bug.cgi?id=2941 laptop crash due to LAPIC timer before SMI_CMD=ACPI http://bugzilla.kernel.org/show_bug.cgi?id=1269 Make 'WRITE_BUFFER' require CAP_RAWIO capability Pointed out by Kai Makisara. Fix stupid thinkos in the fcntl f_op removal code. Tssk. [PATCH] Fix NFS client screw-up in fcntl f_op removal Fix stupid thinkos in the fcntl f_op removal code. Linux 2.6.8.1 [libata] support commands SYNCHRONIZE CACHE, VERIFY, VERIFY(16) [libata] fix PIO data xfer on big endian We were reading the data swapped, which was correct for the data page read from IDENTIFY DEVICE and incorrect for all other situations. Noticed by Ben Herrenschmidt. [libata] ATAPI PIO data xfer Abstract out PIO data xfer to xfer-a-sector and other-stuff pieces, then add new ATAPI code that uses the common xfer-a-sector code. [ARM PATCH] 1866/4: kernel support for iWMMXt present on some XScale cores Patch from Nicolas Pitre This is required for a system with user space binaries using iWMMXt instructions to even boot (revised again). It also moves defines for thread_info offsets from magic static values to the auto generated asm/constants.h in order to better cope with changing structure offsets and avoid user errors. [ARM PATCH] 1909/1: add a cached definition of ioremap Patch from Nicolas Pitre This would be used by MTD map drivers for example. [ARM PATCH] 1955/3: Motorola i.MX architecture support Patch from Sascha Hauer This patch adds support for the Motorola i.MX SoC. It has board support included for the MX1ADS Eval Board, but the patch has been tested on two other custom boards as well. Things changed since Patch 1955/2: - fixed according to Russell's comments. - removed unnecassary files from include/asm-arm/arch-imx. - removed cpufreq support (it needs rework). - made myself the Maintainer of mx1ads Sascha Hauer [ARM PATCH] 1995/1: S3C2410 - Clock controls Patch from Ben Dooks Code to deal with controlling the clock sources on the s3c2410, using the interface Includes Herbert Potzl's patch for the clock register include file [ARM PATCH] 2005/1: OMAP update 1/6: Add McBSP support Patch from Tony Lindgren Patch from Samuel Ortiz to add OMAP McBSP support [ARM PATCH] 2006/1: OMAP update 2/6: Board support files for OMAP H2 and H3 Patch from Tony Lindgren Patch adds board support files for OMAP H2 and H2 [ARM PATCH] 2007/1: OMAP update 3/6: Arch files Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The highlights of the patch are: - DMA fixes from Samuel Ortiz - USB low level configuration from David Brownell - H3 support from Nishant Kamat - TPS65010 power management interface from Dirk Behme [ARM PATCH] 2008/1: OMAP update 4/6: Include files Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The highlights of the patch are: - DMA fixes from Samuel Ortiz - USB low level configuration from David Brownell - H3 support from Nishant Kamat - TPS65010 power management interface from Dirk Behme [ARM PATCH] 2009/1: OMAP update 5/6: Remove old OMAP bus Patch from Tony Lindgren Patch removes old OMAP bus. Drivers now use platform_bus [ARM PATCH] 2010/1: OMAP update 6/6: Add leds support for H2 Patch from Tony Lindgren Patch from Kevin Hilman to replace old leds-perseus2.c with leds-h2p2-debug.c to add leds support for H2. [ARM PATCH] 1991/1: S3C2410 - irq updates Patch from Ben Dooks This patch adds the following - demux of the adc/touchscreen irqs - fix to allow setting of the external irq type Updated version of 1975/1 Thanks to Roc Wu, and Arnaud Patard for finding and fixing lib/bitmap.c: fix incorrect use of BITS_TO_LONGS() Bug spotted by: Ian Molton BITS_TO_LONGS() can't be used to derive an index into a bitmap array. Also put a BUG_ON() for the pages > BITS_PER_LONG case we don't cope with. [libata] add ioctl infrastructure Mainly adding the infrastructure for various ATA ioctls. Currently only supports two ATA-specific ioctls: HDIO_GET_32BIT and HDIO_SET_32BIT (hdparm -c) fix main.c build warning [ARM PATCH] 1993/3: S3C2410 DMA Support Patch from Ben Dooks Support for DMA controller on the Samsung S3C2410, and fixes to the header files for DMA register definitions Fixes the menuconfig problem from the original patch [PATCH] Add bus dependencies to two scsi drivers Two scsi drivers do not compile on systems without ISA/PCI. Therefore allyesconfig breaks on hardware like s390. Signed-off-by: Christian Bornträger Signed-off-by: James Bottomley [PATCH] tmscsim: (CH) Fix error handling I might be wrong, but it looks like the attached patch has still not been applied, although it is pretty important - it fixes error handling in tmscsim. E.g., it was reported, that this patch fixes a problem with tmscsim in 2.6.7 with a SCSI-3 scanner, that doesn't support REPORT LUNS command. Signed-off-by: James Bottomley [PATCH] ipr: Use sector_t type in sector_div call From: Pawel Sikora The first parameter for sector_div must be sector_t rather than int. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Use cancel all instead of abort task Currently, ABORT_TASK does not work properly on ipr adapters. It results in timeouts and eh ends up getting escalated to eh_host_reset to recover. The adapters are supposed to be fixed to properly handle this at some point in the future, but until that updated microcode is available, we need to send a cancel all to the device instead. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Bump driver version. Bump driver version. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Properly retry aborted reponse The ipr device driver runs tagged queuing with QERR=1. When a check condition occurs on a device running tagged queuing, the other queued commands get aborted by the ipr driver and will be returned by the adapter with the IPR_IOASC_ABORTED_CMD_TERM_BY_HOST response. These commands should be retried by the midlayer and their retry counter not decremented. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: New adapter support This patch adds support for 2 new ipr adapters. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: minor fixes and assorted nit From: Francois Romieu Subject: [PATCH 2.6.7-mm3] ipr: minor fixes and assorted nit - balance pci_enable_device() with pci_disable_device() where appropriate; - pci_release_regions() replaces release_mem_region(); - ipr_alloc_mem() can not simply issue a call to ipr_free_mem() when something goes wrong as it would lead to pci_free_consistent() of unset data. Let ipr_alloc_mem() carefully release whatever it has allocated instead; - no need to memset(..., 0, ...) an area returned by pci_alloc_consistent; - ipr_probe_ioa: + DMA_32BIT_MASK for all; + error path rework (includes bug fix when ipr_alloc_mem fails); - ipr_init() can fail: return adequate status code. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Use kref instead of a kobject The following patch converts ipr to use a kref rather than a kobject to do reference counting on an internal data structure. The added overhead of a kobject is not needed. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Add maintainers email address to comment block The following patch adds my email address to the block comment at the start of each file of the ipr driver to make it easier to find. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: New PCI IDs Add a couple new devices supported by the ipr device driver. This patch has already been sent to pciids-devel@lists.sourceforge.net. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Fix assorted dma_addr_t typing errors From: Alan Cox Subject: PATCH: Fix assorted dma_addr_t typing errors in ipr driver Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Properly enable/disable TCQ This patch correctly enables tagged command queuing for the ipr driver. I had misinterpreted scsi_mid_low_api.txt. The following patch has the appropriate scsi_activate_tcq/scsi_deactivate_tcq calls. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Sparse warnings fixes From: Mika Kukkonen The following patch fixes some sparse warnings. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Dead adapter I/O hang fix The following patch fixes a hang in i/o that could occur if an adapter was ever declared "dead" by the ipr driver due to repeated failed attempts to revive the card. The patch now allows ipr to fail new commands when in this state rather than endlessly return SCSI_MLQUEUE_HOST_BUSY. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Set allow_restart for disk devices only This fixes ipr to only allow eh initiated start_unit commands following erp to disk devices. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Don't log adapter shutdown error response code The following patch adds an adapter response code to the table in the driver to prevent an error from being logged when this response is received. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: replace schedule_timeout() with msleep() From: Nishanth Aravamudan Subject: [PATCH] scsi/ipr: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] aacraid patch for new device support Here is a patch from Adaptec for new adapter support. Signed-off-by: Mark Haverkamp Signed-off-by: James Bottomley [PATCH] SCSI gdth: kill #define __devinitdata I got the following warning in 2.6.8-rc3-mm2: <-- snip --> ... CC drivers/scsi/gdth.o drivers/scsi/gdth.c:622:1: warning: "__devinitdata" redefined In file included from include/linux/moduleparam.h:4, from include/linux/module.h:20, from drivers/scsi/gdth.c:375: include/linux/init.h:227:1: warning: this is the location of the previous definition ... <-- snip --> The #define in question seems bogus, and the following patch simply removes it: Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] Re: 2.6.8-rc3-mm2: Debug: sleeping function called from invalid > Andrew Vasquez wrote: > > > > >This allocation should be done with GFP_ATOMIC flags. The attached > >patch should apply cleanly to any recent kernel > > > > and seems to work fine. > Signed-off-by: James Bottomley [ACPI] ia64 build fix Signed-off-by: Jesse Barnes [PATCH] aacraid driver update Here are some changes from Adaptec for the AACRAID driver. Change the pae_support flag to dac_support. This was suggested sometime last year and never made it in. Fix some cast problems in pci_set_dma_mask. Was casting the mask to dma_addr_t when it should be a u64. Fix SCp.ptr problem, should be SCp.dma_handle. Applies to the scsi-misc bk tree. Signed-off by: Mark Haverkamp Signed-off-by: James Bottomley AUTOSENSE bug in NCR5380.c From: Kenn Humborg round line 2470 in NCR5380.c, if a command fails, and AUTOSENSE is on, the current command is converted into a REQUEST_SENSE command and put at the top of the request queue. Part of this setup, is setting up cmd->SCp to point at the sense_buffer, so that the received sense data goes straight into the sense buffer. Around line 1730, NCR5380_select() calls initialize_SCp() which ends up clobbering cmd->SCp, and the sense data get written into the original request buffer. This is what happens if cmd->use_sg = 0. I haven't looked at what happens if use_sg is non-zero, but I expect the effect will be the same. Signed-off-by: James Bottomley [PATCH] switch sd numbering to idr Switch sd.c device number allocation to use idr, this limits memory usage for lowend setups and highend setups are only limited by the available names now. Signed-off-by: James Bottomley ALSA CVS update PCM Midlevel Serialize runtime->status->state access Signed-off-by: Jaroslav Kysela ALSA CVS update Intel8x0-modem driver Added SiS, NVidia modem descriptions Signed-off-by: Jaroslav Kysela ALSA CVS update AC97 Codec Core Don't use mute bit in REC_GAIN register during tests. We have at least one case when the mute bit is zero. Signed-off-by: Jaroslav Kysela ALSA CVS update PCM Midlevel Fixed cut-n-paste typo Signed-off-by: Jaroslav Kysela ALSA CVS update AC97 Codec Core Add more timeout to avoid not respond messages Signed-off-by: Jaroslav Kysela ALSA CVS update USB generic driver add support for Yamaha CVP-301, CVP-303, CVP-305, CVP-307, CVP-309, CVP-309GP, PSR-1500, PSR-3000, ELS-01, ELS-01C, PSR-295, PSR-293, DGX-205, DGX-203, DGX-305, DGX-505, DGP-7, DGP-5, PM5D, DME64N, DME24N, DTX, UB99 Signed-off-by: Clemens Ladisch version.h: ALSA 1.0.6 kbuild: Bogus "has no CRC" in external module builds From: Pavel Roskin The recent fixes for the external module build have fixed the major breakage, but they left one annoyance unfixed. If CONFIG_MODVERSIONS is disabled, a warning is printed for every exported symbol that is has no CRC. For instance, I see this when compiling the standalone Orinoco driver on Linux 2.6.6-rc3: *** Warning: "__orinoco_down" [/usr/local/src/orinoco/spectrum_cs.ko] has no CRC! *** Warning: "hermes_struct_init" [/usr/local/src/orinoco/spectrum_cs.ko] has no CRC! *** Warning: "free_orinocodev" [/usr/local/src/orinoco/spectrum_cs.ko] has no CRC! [further warnings skipped] I have found that the "-i" option for modpost is used for external builds, whereas the internal modules use "-o". The "-i" option causes read_dump() in modpost.c to be called. This function sets "modversions" variable under some conditions that I don't understand. The comment before the modversions declarations says: "Are we using CONFIG_MODVERSIONS?" Apparently modpost fails to answer this question. I think it's better to use an explicit option rather than a kludge. The attached patch adds a new option "-m" that is specified if and only if CONFIG_MODVERSIONS is enabled. The patch has been successfully tested both with and without CONFIG_MODVERSIONS. Signed-off-by: Sam Ravnborg kbuild: Generate *.lds instead of *.lds.s When building a kernel on platforms where the filesytem do not distingush between upper and lower case the rule: .S -> .s did not work. In a normal build this is only used for linker scripts. So create a separate rule for .lds files, and use generic cpp flags. Patch from: Dan Aloni Modified to use cpp flags + added documentation. Signed-off-by: Sam Ravnborg [ARM] Move bootmem_init() call into paging_init() kbuild/all archs: Rename *.lds.s to *.lds For all architectures use the new name for linker definition scripts. Based on patch from: Dan Aloni Signed-off-by: Sam Ravnborg Cset exclude: adobriyan@mail.ru|ChangeSet|20040815084554|35832 bk: ignore arch/*/kernel/vmlinux.lds Needed now the lds files got renamed Signed-off-by: Sam Ravnborg kbuild: Remove wildcard on KBUILD_OUTPUT This patch removes unnecessary wildcard on KBUILD_OUTPUT Signed-off-by: Coywolf Qi Hunt Signed-off-by: Sam Ravnborg kconfig/all archs: Introduce Kconfig.debug Localize Kconfig debug options into one file (lib/Kconfig.debug) for easier maintenance, searching, and menu-building. Updated to 2.6.8. Summary of changes: . localizes the following symbols in lib/Kconfig.debug: DEBUG_KERNEL, MAGIC_SYSRQ, DEBUG_SLAB, DEBUG_SPINLOCK, DEBUG_SPINLOCK_SLEEP, DEBUG_HIGHMEM, DEBUG_BUGVERBOSE, DEBUG_INFO and FRAME_POINTER for some instances of it (if it's freely user-selectable) but not for the cases where it's forced or it depends on some other options. . adds DEBUG_KERNEL requirement to some DEBUG_vars; . remove KALLSYMS from S390-specific kernel hacking menu; use KALLSYMS in the EMBEDDED menu instead; . add CRIS and M68KNOMMU symbols for use in lib/Kconfig.debug; . eliminate duplicate "General setup" labels in sparc64 config; . whitespace cleanup; . fixed a few trival typos; Portions of the original patch were also done by Bartlomiej Zolnierkiewicz Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg kbuild: Allow external modules to use host-progs with no warning Only warn if $(host-progs) and $(hostptogs-y) are not equal. This allows external modules to use: hostprogs-y := file ... host-progs := $(hostprogs-y) This is backwards compatible and will not warn. Signed-off-by: Sam Ravnborg [ATM]: Missing static in atm. Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller [NET]: Add missing struct net_device forward decl to skbuff.h Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller [RBTREE]: Add rb_last() Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NET_SCHED]: Replace eligible list by rbtree in HFSC scheduler. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NET_SCHED]: Replace actlist by rbtrees in HFSC scheduler. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NET_SCHED]: O(1) children vtoff adjustment in HFSC scheduler Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [IPV6]: Add missing XFRM select in Kconfig. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: cacheline-align qdisc data in qdisc_create() Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [XFRM_USER]: Fill in x->props algo fields. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Fix aalg check in esp. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Move encap check back down to esp4.c In a previous, I moved the encap_type checks in esp4.c from the packet processing path to xfrm_user/af_key. This isn't ideal since those encap types only make sense for esp4. The following patch moves it back into esp4.c. The difference is that it's now done in init_state so that it's only done once rather than per-packet. I've also added encap_type checks for every transform. This means that people attaching encap objects to AH/IPCOMP/IPIP will now get errors. That should be fine as no major KM does this. Please note that the error returned is now EINVAL instead of ENOPROTOOPT. This shouldn't break anything since KMs only test the errno from setsockopt() for NAT-T support rather than add_sa where it would be too late anyway. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IRDA]: Trivial optimization in inetdev handling. No need to hold onto the idev. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: inetdev ifa_list handling fixes outside of net/ipv4. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: inetdev ifa_list handling fixes for s390 drivers Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Kill inetdev_lock, no longer needed. It no longer protects anything, all users held RTNL semaphore to boot. Also, fix a potential race in the new RCU inetdev code, grab the reference on the idev before attaching it via dev->ip_ptr. Based upon discussions with Herbert Xu. Signed-off-by: David S. Miller [IPV4]: Make inet_select_addr() logic clearer. It is harder to see, originally, how the __in_dev_get() == NULL case is handled. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Simplify ifa free handling code. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Enhanced version of net_random(). Here is another alternative, using tansworthe generator. It uses percpu state. The one small semantic change is the net_srandom() only affects the current cpu's seed. The problem was that having it change all cpu's seed would mean adding locking and the only user's today are a couple of places that feed in mac address to try make sure address resolution to collide. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller input: Update MAINTAINERS entries for Vojtech Pavlik. kbuild/ia64: Fix breakage in arch/ia64/kernel/Makefile Signed-off-by: Sam Ravnborg NTFS: Implement cluster (de-)allocation code (fs/ntfs/lcnalloc.[hc]). Signed-off-by: Anton Altaparmakov [PPC32] Default to conswitchp=&dummy_con if DUMMY_CONSOLE. Signed-off-by: Tom Rini ppc32: Fix MPC8260 with an initrd and no root=/dev/ram0 Signed-off-by: Tom Rini [PATCH] libata build fix drivers/scsi/libata-core.c: In function `swap_buf_le16': drivers/scsi/libata-core.c:2073: `words' undeclared (first use in this function) drivers/scsi/libata-core.c:2073: (Each undeclared identifier is reported only once Signed-off-by: Andrew Morton ppc32: Introduce a have_residual_data macro and switch to it. This is mainly to avoid my additions adding loads of ugly #ifdef CONFIG_RESIDUAL_DATA sections. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini This allows use of the IBM status LED if it's found in the residual data, plus a couple of other bells and whistles. It removes the 140-specific code. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: On PReP, use residual data for PCI dev -> IRQ, and use it. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: On PReP, allow for residual data to provide IRQ level/edge info This adds a function to determine the 8259 level/edge mask word. With this function we can now (in theory) support any IBM PReP machine. We therefore add a little bit more code to fallback to using residual data if we don't recognise the machine. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Use residual data to determine the addr to pass i8259_init() Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Add support for PCIBridgeRS6K to prep_find_bridges(). Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Fixup the OpenPIC code for older implementations. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: The planar id is only 1 byte, so only display that much. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Correct the output of /proc/interrupts on PReP. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini [IPV4]: Delete bogus newline in first TcpExt procsfs line. Signed-off-by: Cal Peake Signed-off-by: David S. Miller [NET]: Missing header includes and forward declarations. Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller [ARM] Add ARM AMBA CLCD framebuffer driver. This changeset adds the ARM AMBA CLCD framebuffer driver. This is a generic core driver; users are expected to add their platform specifics via the "platform_data" struct device entry. [ARM] Add CLCD support for Versatile platform. This adds the CLCD support code to support the variety of LCD panels and VGA output supported on ARMs Versatile platform. [ARM] Add CLCD support for Integrator/CP platform. This adds the CLCD support code to support VGA output on ARMs Integrator/CP platform. [ARM] Add CLCD support for IM-PD/1 board. This adds the CLCD support code for the LCD panel fitted to the Integrator/PP2 platform. Other LCD panel data (including VGA data) is included. [ARM] Fix Integrator CPUFREQ support. CPU masks are now contained within cpumask_t and must be manipulated with associated functions. [TIGON3]: Mention that firmware is copyrighted by Broadcom. MPT Fusion driver 3.01.15 update Highlights of this release: - Patch provided by Christoph Hellwig to remove the isense code. - Fix compile errors when CONFIG_PROC_FS=n. - A fix for the module parameter "mptscsih" which was not being exported. - The port of the 2.05.17 thru 2.05.23 of the lk 2.4 mpt driver. Signed-off-by: James Bottomley [PKT_SCHED]: Resolve race condition with module unload in qdisc_create() This patch resolves the race condition with module unload in qdisc_create by moving try_module_get up to the first qdisc_lookup_ops call. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Remove unnecessary memsets in packet schedulers This patch removes some more unnecessary memsets in packet schedulers. The qdisc's private data is already set to 0 in qdisc_create/qdisc_create_dflt. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [CPUFREQ] Typo fixes. From: Pavel Machek Signed-off-by: Dave Jones [TG3]: Revamp fibre PHY handling. - Clearly seperate hw-assisted vs. by-hand handling. - Seperate PHY ID vs. Serdes state. Should fix 5704 Fibre brokenness introduced by Sun patches. Signed-off-by: David S. Miller [IPV6] don't try to insert same local route multiple times. Signed-off-by: Hideaki YOSHIFUJI [IPV6] export rt6_ins() as ip6_ins_rt(). Signed-off-by: Hideaki YOSHIFUJI [IPV6] addrconf_dst_alloc() to allocate new route for local address. Signed-Off-By: Hideaki YOSHIFUJI [IPV4,IPV6] set idev/rt6i_idev to loopback instead of NULL, to omit checking if it is non-NULL. (Based on hint by David S. Miller ) Signed-off-by: Hideaki YOSHIFUJI [IPV6] ensure rt6i_idev is non-NULL when setting up new rt6_info{}. Signed-off-by: Hideaki YOSHIFUJI [IPV6] take rt6i_idev into account when looking up routes. This is required because we will add "same" routes (except for rt6i_idev) on loopback for routes for local address. Signed-off-by: Hideaki YOSHIFUJI [IPV6] refer inet6 device via corresponding local route from address structure. Signed-off-by: Hideaki YOSHIFUJI [PATCH] reorder call in scsi_remove_host This patch against scsi-misc-2.6 reorders a call to scsi_forget_host in the scsi_remove_host function. This removes the error message "Synchronizing SCSI cache..." on rmmod of a scsi host driver module as shown in example output 1 and 2 below. I had previous created a much more complicated patch to work around this problem. In response Christoph mention a simpler solution (pointer to thread below) which is this patch. http://marc.theaimsgroup.com/?l=linux-scsi&m=108720042210331&w=2 Example output. 1.) Before patch. elm:~# scsi1 : scsi_debug, version 1.73 [20040518], dev_size_mb=8, opts=0x0 Vendor: Linux Model: scsi_debug Rev: 0004 Type: Direct-Access ANSI SCSI revision: 03 SCSI device sdc: 16384 512-byte hdwr sectors (8 MB) SCSI device sdc: drive cache: write back sdc: unknown partition table Attached scsi disk sdc at scsi1, channel 0, id 0, lun 0 Attached scsi generic sg4 at scsi1, channel 0, id 0, lun 0, type 0 Synchronizing SCSI cache for disk sdc: <4>FAILED status = 0, message = 00, host = 1, driver = 00 2.) After patch. elm:~# scsi1 : scsi_debug, version 1.73 [20040518], dev_size_mb=8, opts=0x0 Vendor: Linux Model: scsi_debug Rev: 0004 Type: Direct-Access ANSI SCSI revision: 03 SCSI device sdc: 16384 512-byte hdwr sectors (8 MB) SCSI device sdc: drive cache: write back sdc: unknown partition table Attached scsi disk sdc at scsi1, channel 0, id 0, lun 0 Attached scsi generic sg4 at scsi1, channel 0, id 0, lun 0, type 0 Synchronizing SCSI cache for disk sdc: Signed-off-by: Mike Anderson Signed-off-by: James Bottomley [PCMCIA] Fix case of two "skt" variables. We want the value preserved across both sections of code such that the cleanup works as expected. [ARM PATCH] 1963/1: Intel XScale IOP310 removal Patch from Dave Jiang Code cleanup. Removed all IOP80310 support. Also some minor compile warning fixups for 80321. Preping for IOP321 and IOP331 code submissions. [ARM] Deprecate virt_to_bus/bus_to_virt. These macros don't take account of which bus is actually required, so they should not be used in new drivers; in fact, new drivers should use the DMA API. [ARM] Use bit 30 for PREEMPT_ACTIVE, delete unused TIF_USED_FPU. Make PREEMPT_ACTIVE use bit 30 not bit 26; this gives extra bits for hard IRQs. Delete TIF_USED_FPU - it's unused. [ARM] Remove unnecessary get_user/put_user checks. Remove unnecessary checks for addresses > TI_ADDR_LIMIT in get_user/put_user. The MMU will catch out of bounds accesses for us. [ARM PATCH] 2023/1: platform_device definitions no longer needed in include/asm-arm/hardware.h Patch from Michael Opdenacker Hello, platform_device definitions are no longer needed in include/asm-arm/hardware.h: - platform_add_device no longer exists anywhere else in the whole kernel - other definitions should be taken from include/linux/device.h instead The proposed patch removes these definitions. Cheers, Michael. [ARM] Update mach-types. NTFS: Minor update to fs/ntfs/bitmap.c to only perform rollback if at least one bit has actually been changed. Signed-off-by: Anton Altaparmakov [ARM PATCH] 2018/1: Fixed Patch 2017 Patch from Dave Jiang Removed unnecessary parens in patch 2017 per RMK Add new Megaraid driver version 2.20.0.1 From: Mukker, Atul This is a complete re-write to replace the now obsoleted megaraid2 driver. Signed-off-by: James Bottomley ppc32: Add a 'noresidual' option, to ignore residual data. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Fix an LSB floating-point test failure. Signed-off-by: Greg Weeks under TS0087 Signed-off-by: Tom Rini ppc32: Make use of cpufeatures in some flush rountines This is based on an observation from Pantelis Antoniou. We get a minor speedup of flush_icache_range, __flush_dcache_icache and __flush_dcache_icache_phys, in that we do not need to do this on CPUs with a unified cache (601), so check for that feature bit instead of a PVR check. Signed-off-by: Tom Rini kbuild: Fix parallel build in a distclean'ed tree Fixes the following error: make: *** No rule to make target `.tmp_kallsyms2.S', needed by `.tmp_kallsyms2.o'. Problem is that make does not know it have to visit scripts before it can use $(KALLSYMS) $(KALLSYMS) is a dependency to .tmp_kallsyms% but make suddenly complains about .tmp_kallsyms2 for some reasons. Signed-off-by: Sam Ravnborg NTFS: Fix fs/ntfs/lcnalloc.c::ntfs_cluster_alloc() to use LCN_RL_NOT_MAPPED rather than LCN_ENOENT as runlist terminator. Also, make it not create a LCN_RL_NOT_MAPPED element at the beginning. Signed-off-by: Anton Altaparmakov NTFS: Fix fs/ntfs/debug.c::ntfs_debug_dump_runlist() for the previous removal of LCN_EINVAL which was not used in the kernel NTFS driver. Signed-off-by: Anton Altaparmakov kbuild: make C=2 now force sparse to be run for all .c files With make C=2 sparse ($(CHECK)) will be run on all .c files also if they do not need to be compiled. Usefull to run sparse on a fully compiled kernel tree. Implemented on request from Al Viro (although he liked to be able to run sparse without building any source). Signed-off-by: Sam Ravnborg NTFS: Only need two spare runlist elements when reallocating memory in fs/ntfs/lcnalloc.c::ntfs_cluster_alloc(), not three since we no longer add a starting element. Signed-off-by: Anton Altaparmakov fix warnings in scripts/binoffset.c Correct gcc warnings for function return type, printf argument types, and signed/unsigned compare. Cross-compiled with no warnings/errors for alpha, ia64, ppc32, ppc64, sparc32, sparc64, x86_64, and native on i386. (-W -Wall) [pre-built tool chains are available from: http://developer.osdl.org/dev/plm/cross_compile/ ] Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg [ACPI] ia64 build fix Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] various issues in the IA64 swiotlb code The biggest change is better overflow handling, partly ported from the AMD64 IOMMU code. This is important for some 3d drivers who make use of this and can map a lot of memory. First it increases the default memory usage of swiotlb to 64MB. This was the value used in production systems in 2.4 (e.g. in SLES8) and the default was far too small. Note this is only allocated when the swiotlb is needed. pci_map_single will not panic anymore on an overflow. Instead it returns a pointer to a scratch area and allows the caller to check using dma_mapping_error(). It still panics when the overflow buffer is exceeded. dma_mapping_error support is implemented. pci_map_sg will never panic now, but just return 0. Near all callers of it seem to have proper error checking for this (IDE will even handle it without erroring out) The handling of passing a NULL device is improved, previously it would never map in this case. i386 and other architectures assume NULL means a 4GB limit instead. This code does this now too. I added support for swiotlb=force for easier testing. Patch supplied by Andi Kleen & Suresh Siddha Signed-off-by: Tony Luck [IA64] floating point regs are not 16-byte aligned inside SAL error record Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck [IA64] still declares deleted acpi_register_irq. Signed-off-by: Andreas Schwab Signed-off-by: Tony Luck [libata] fix error recovery reference count This bug could potentially lead to soft hangs (processes stuck in D state) if an error occurred. Yet another undocumented nuance of the ->eh_strategy_handler. Thanks to excellent detective work by Brad Campbell tracking this down. [libata] fix INQUIRY handling Changes: - send vendor, product and rev strings back for 36 byte INQUIRYs - set the additional length field to indicate 96 byte response is available [ata] remove 'packed' attributed from struct ata_prd It's not needed, and it generates very poor code on some platforms. Noticed by Bart and David Miller. [libata] improve translation of ATA errors to SCSI sense codes NTFS: - Load attribute definition table from $AttrDef at mount time. - Fix bugs in mount time error code paths involving (de)allocation of the default and volume upcase tables. - Remove ntfs_nr_mounts as it is no longer used. Signed-off-by: Anton Altaparmakov NTFS: 2.1.17 - Fix bugs in mount time error code paths. Signed-off-by: Anton Altaparmakov [XFRM] Fix selector comparison against icmp{,v6} flows. Signed-off-by: Hideaki YOSHIFUJI [IPV6] XFRM: decode icmpv6 session. Signed-off-by: Masahide Nakamura Signed-off-by: Hideaki YOSHIFUJI [IPV6] XFRM: probe icmpv6 type/code when sending packets via raw socket. Signed-off-by: Masahide Nakamura Signed-off-by: Hideaki YOSHIFUJI [IPV4] XFRM: decode icmp session. Signed-off-by: Masahide Nakamura Signed-off-by: Hideaki YOSHIFUJI [IPV4] XFRM: probe icmp type/code when sending packets via raw socket. Signed-off-by: Masahide Nakamura Signed-off-by: Hideaki YOSHIFUJI [IPV4] XFRM: don't probe icmp type/code for hdrincl sockets. Signed-off-by: Hideaki YOSHIFUJI [CPUFREQ] Support VIA C3 Nehemiah's with 200MHz FSB. Signed-off-by: Dave Jones [IA64-SGI] Assign parent to PCI devices. In working on the patch to export PCI ROM space via sysfs, I found that the sn2 PCI code doesn't assign a parent resource to any of the PCI device resources as it builds them. This provides a simple fix for that problem. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] bte.c: kill expression as lvalue warning A recent patch caused a warning about not using expressions as lvalues to crop up in bte.c (or maybe it's just that I'm using gcc-3.4.1 now). This patch fixes it by creating a temporary to store the register whose address we want to get and stuff into the per-bte info structure. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] The SN2 fakeprom directories/files should be deleted. Signed-off-by: Jack Steiner Signed-off-by: Tony Luck [IA64] ia32_support.c: Check whether page_alloc failed. It's pretty unlikely these page allocations would fail, but we should still check them. Signed-off-by: Greg Edwards Signed-off-by: Tony Luck [IA64] time.c: Downgrade printk of cpu speed to KERN_DEBUG This patch turns the per-CPU frequency printk into a KERN_DEBUG instead of a KERN_INFO so it'll show up in the system log but won't be printed at boot, since it's a big pain on system with a lot of CPUs. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] report coherence id in /proc/sgi_sn/coherence_id Current SGI Altix systems have a NUMAlink domain size of 1024 compute nodes and are fully cache coherent up to 256 compute nodes (compute nodes are even-numbered). Systems larger than 256 nodes are partitioned into multiple cache coherent systems. This patch exports a partition's coherence id to users via the /proc/sgi_sn/coherence_id file. Signed-off-by: Dean Roe Signed-off-by: Tony Luck [IA64] cyclone.c: Add includes for build on uni-processor. Small patch to fix the includes for the cyclone timer. We just happen to be getting these if CONFIG_SMP is on, but if it's turned off the build breaks. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] head.S: update comments to match code Update comments in function ia64_switch_mode_virt() to reflect actual implementation from recent region 5 init_task bug fix. Signed-off-by: Ken Chen Signed-off-by: Tony Luck ppc32: Move ppc32-specific sysctls to arch/ppc Remove both of the PPC32 && 6xx sysctls from kernel/sysctl.c to arch/ppc/ Signed-off-by: Tom Rini JFS: disk quota support This patch adds disk quota support to jfs. A patch is required for quota-tools to work with jfs. It can be found at http://oss.software.ibm.com/jfs/project/pub/quota-tools.patch Quota tools source can be downloaded from https://sourceforge.net/projects/linuxquota/ Written by: Karl Rister & Dave Kleikamp Signed-off-by: Dave Kleikamp Fix the new megaraid compat code to work on all 64 bit systems make it universally include linux/ioctl32.h for its compat ioctl. This fixes a build failure on parisc64 Signed-off-by: James Bottomley [ARM] Add a structure name to pxa_dma_desc. kbuild: Remove check for undefined symbols in vmlinux Russell King reported that some gcc / bin-utils combination may result in undefined symbols in vmlinux and implemented a check for that. Though the cause is very valid this check has proved to be a real pain for other users, especially sparc and um. Short term a similar check is asked to be implemented in arch/arm*/Makefile and long-term to bail out if too old gcc / bin-utils is used. Long term plan awaits a new gcc / bin-utils release. Signed-off-by: Sam Ravnborg kbuild: remove obsolete HEAD in kbuild Makefile: remove obsolete HEAD arch/cris/Makefile: replace HEAD with assignment to head-y Signed-off-by: Coywolf Qi Hunt Signed-off-by: Sam Ravnborg kbuild: add comments to Makefile.clean Chris Wedgwood wrote: > P.S. I'd love to see the rules in scripts/Makefile.* documented. I > would offer a patch for this but I don't understand the rules > myself... And provided the following patch, slightly modified by me. Signed-off-by: Sam Ravnborg [IPV4]: Fix theoretical loop on SMP in ip_evictor(). Snapshot the amount of work to do, and just do it. In this way we avoid a theoretical loop whereby one cpu sits in ip_evictor() tossing fragments while another keeps adding a fragment just as we bring ip_frag_mem down below the low threshold. Signed-off-by: David S. Miller kbuild/all archs: added CHECKFLAGS Using separate assignment for CHECKFLAGS allows convenient redefinition of CHECK on the command line: make CHECK=~/bin64/sparse C=2 to use a special 64 bit version. Introduced usage in all archs that assined values to CHECK. Signed-off-by: Sam Ravnborg [IPV6]: ip6_evictor() has same problem as ip_evictor(). Signed-off-by: David S. Miller [ATALK]: Fix build with SYSCTL=n Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [DECONET]: Fix build with SYSCTL=n Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [RXRPC]: Fix build with SYSCTL=n Signed-off-by: William Lee Irwin III Signed-off-by: David S. Miller [XFRM]: Kill unused flow_hash This patch removes a left-over from the days when the flow cache lived in xfrm_policy.c. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [ACPI] ia64 build fix Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IPSEC]: Call xfrm6_rcv in xfrm6_tunnel_rcv This patch reuses the code in xfrm6_input.c for receiving xfrm6_tunnel packets. This removes duplicate code as well as fixing the bugs unique to xfrm6_tunnel_input. For example, it didn't move the MAC header down. Nor did it do anything with ECN. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [ARM PATCH] 2025/1: S3C2410 - default platform devices Patch from Ben Dooks A set of default devices for the s3c2410 SoC for use with the machine(s) [ARM PATCH] 2026/1: S3C2410 - header text for arch/arm/mach-s3c2410/s3c2410.h Patch from Ben Dooks Attached is a copyright / explanation header for the arch/arm/mach-s3c2410/s3c2410.h header files [ARM PATCH] 2027/1: S3C2410 - initial documentation Patch from Ben Dooks Attached is a couple of initial help documents for the s3c2410, under Documents/arm/Samsung-S3C24XX [TG3]: Remove autoneg handling from fibre_autoneg() unneeded. Signed-off-by: David S. Miller [TG3]: Always set MAC_EVENT_LNKSTATE_CHANGED even when serdes polling. Signed-off-by: David S. Miller Cset exclude: davem@nuts.davemloft.net|ChangeSet|20040817010613|52352 [XFS] Permit buffered writes to the real-time subvolume. SGI Modid: xfs-linux:xfs-kern:174094a Signed-off-by: Nathan Scott [XFS] Sync up with the 2.4 fix for updating i_size under i_sem. SGI Modid: xfs-linux:xfs-kern:174249a Signed-off-by: Nathan Scott [XFS] Update documentation. [XFS] Export blk_get_backing_dev_info for filesystems to use. [XFS] Revert to using a separate inode for metadata buffers once more. SGI Modid: xfs-linux:xfs-kern:174253a Signed-off-by: Nathan Scott [XFS] Remove unneeded escape from printed string. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174336a Signed-off-by: Nathan Scott [XFS] sparse: remove unneeded casts for user buffers. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174335a Signed-off-by: Nathan Scott [XFS] sparse: annotate source for user pointers. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174337a Signed-off-by: Nathan Scott [XFS] sparse: annotate quota source for user pointers. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174338a Signed-off-by: Nathan Scott [NETFILTER]: Convert SCTP conntrack over to ip_ct_refresh_acct(). Signed-off-by: David S. Miller [NETFILTER]: Export ip_conntrack_count for ip_conntrack_standalone. Signed-off-by: David S. Miller [XFS] sparse: annotate vfs interfaces for user pointers. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174339a Signed-off-by: Nathan Scott [NETFILTER]: Need to export ip_ct_log_invalid to modules. [NET]: Add skb_header_pointer, and use it where possible. This greatly improves netfilter performance where the wanted header area is in the linear SKB data area, therefore no copy into the temporary buffer is needed. Signed-off-by: David S. Miller [XFS] sparse: fix warnings in debug/tracing code. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174341a Signed-off-by: Nathan Scott [XFS] Removed xfs_iflush_all and all usages of vn_purge, except one in clear_inode path. SGI Modid: xfs-linux:xfs-kern:174683a Signed-off-by: Nathan Scott [XFS] Fix a possible data loss issue after an unaligned unwritten extent write. SGI Modid: xfs-linux:xfs-kern:174810a Signed-off-by: Nathan Scott [XFS] Fix xfs_off_t to be signed, not unsigned; valid warnings emitted after stricter compilation options used by some OSDL folks. SGI Modid: xfs-linux:xfs-kern:174814a Signed-off-by: Nathan Scott [XFS] xfs_Gqm_init cannot fail, dont check return value. Removes a bit of dead code and a false positive from the Stanford lock checker to boot. SGI Modid: xfs-linux:xfs-kern:174815a Signed-off-by: Nathan Scott [TG3]: Do tg3_netif_start() under lock. Signed-off-by: David S. Miller [XFS] sparse: fix header include order to get cpp macros defined correctly. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174816a Signed-off-by: Nathan Scott [libata sata_nv] fix leak on error Spotted by Francois Romieu. [XFS] sparse: rework previous mods to fix warnings in DMAPI code. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174817a Signed-off-by: Nathan Scott [TCP]: When fetching srtt from metrics, do not forget to set rtt_seq. Otherwise RTT will end up being wrong for a long time, because tcp_rtt_estimator() requires that every time srtt is set, rtt_seq is set too. Signed-off-by: David S. Miller [XFS] sparse: fix warnings in IO path tracing code. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174818a Signed-off-by: Nathan Scott [XFS] sparse: fix uses of NULL in place of zero and vice versa. From Chris Wedgwood. SGI Modid: xfs-linux:xfs-kern:174819a Signed-off-by: Nathan Scott [XFS] sparse: fix remaining NULL vs zero uses. SGI Modid: xfs-linux:xfs-kern:174857a Signed-off-by: Nathan Scott [XFS] Restored xfs_iflush_all, which is still used to finish reclaims. SGI Modid: xfs-linux:xfs-kern:174868a Signed-off-by: Nathan Scott [XFS] Fix signed/unsigned issues in xfs_reserve_blocks routine. SGI Modid: xfs-linux:xfs-kern:174873a Signed-off-by: Nathan Scott [XFS] Add filesystem size limit even when XFS_BIG_BLKNOS is in effect; limited by page cache index size (16T on ia32) SGI Modid: xfs-linux:xfs-kern:175103a Signed-off-by: Nathan Scott [XFS] Code checks to trap access to fsb zero. SGI Modid: xfs-linux:xfs-kern:176159a Signed-off-by: Nathan Scott [XFS] Fix accidental reverting of sync write preallocations. SGI Modid: xfs-linux:xfs-kern:176195a Signed-off-by: Nathan Scott [XFS] Fix a blocksize-smaller-than-pagesize hang when writing buffers with a shared page. SGI Modid: xfs-linux:xfs-kern:176412a Signed-off-by: Nathan Scott [XFS] Fix lock leak in xfs_free_file_space SGI Modid: xfs-linux:xfs-kern:176905a Signed-off-by: Nathan Scott [XFS] Add support for unsetting realtime flag on realtime file which has no extents allocated. SGI Modid: xfs-linux:xfs-kern:18776a Signed-off-by: Nathan Scott [TG3]: Disable CIOBE split, as per Broadcom's driver. Signed-off-by: David S. Miller [XFS] Remove several macros which are no longer used anywhere. SGI Modid: xfs-linux:xfs-kern:177029a Signed-off-by: Nathan Scott [XFS] Use sparse whitespace approach that Al took to be more consistent. Couple more sparse fixes. SGI Modid: xfs-linux:xfs-kern:177030a Signed-off-by: Nathan Scott [XFS] Add a realtime inheritance bit for directory inodes so new files can be automatically created as realtime files. SGI Modid: xfs-linux:xfs-kern:177129a Signed-off-by: Nathan Scott [XFS] Add 32bit ioctl translation SGI Modid: xfs-linux:xfs-kern:177164a Signed-off-by: Nathan Scott [XFS] avoid using pid_t in ioctl ABI SGI Modid: xfs-linux:xfs-kern:177165a Signed-off-by: Nathan Scott [PATCH] megaraid build fix drivers/scsi/megaraid/megaraid_mm.c: In function `mraid_mm_init': drivers/scsi/megaraid/megaraid_mm.c:1069: `mraid_mm_compat_ioctl' undeclared (first use in this function) drivers/scsi/megaraid/megaraid_mm.c:1069: (Each undeclared identifier is reported only once drivers/scsi/megaraid/megaraid_mm.c:1069: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [IPV4/IPV6]: Fix direct user pointer deref in xfrm icmp changes. Signed-off-by: David S. Miller [XFS] Fix up handling of SB versionnum when filesystem on disk has newer bit features than the kernel. SGI Modid: xfs-linux:xfs-kern:177392a Signed-off-by: Nathan Scott [ACPI] fix __initdata bug in acpi_irq_penalty[] Signed-off-by: Bjorn Helgaas CIFS: fix 64 bit compiler warning in cifs debug code Signed-off-by: Steve French (sfrench@us.ibm.com) [IPSEC]: Use xfrm4_rcv in xfrm4_tunnel This is a trivial patch to use xfrm4_rcv in xfrm4_tunnel. It doesn't need the extra argument provided by xfrm4_rcv_encap. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Modularise xfrm_tunnel. This patch allows the the user to build xfrm4_tunnel/xfrm6_tunnel as modules. This makes sense because they're only used by IPComp/IPIP/IP6Tunnel which are modules themselves. It also means that distros can cut down on there core kernel size when compiling with IPsec support. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller input: Make sure the HID request queue survives report transfer failures gracefully. Signed-off-by: Vojtech Pavlik Problem-spotted-by: Alan Stern [NETFILTER]: Mark tcp_options skb arg as const. [CPUFREQ] fix typo on gx-suspmod.c this is patch to fix obvious typo of gx-suspmod cpufreq driver. Signed-off-by: Hiroshi Miura Signed-off-by: Dave Jones [CPUFREQ] Fix up deprecation notices. From: Pavel Machek - Add missing newlines - 80-column goodness. Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [MMC] Update PXAMCI for later kernels. Remove obsolete platform_device_resource/irq functions. The driver model now has equivalents, so these can be removed. Use pxa_set_cken() to enable/disable the clock to the MMC interface. [MMC] Fix race condition in MMCI write-path data channel. There seems to be a hardware race condition in the data channel where we could end up receiving IRQs for more data than we have available. Fix this by disabling IRQs when we run out of data; if the device really does want more data, we'll underrun and flag an error upstream. [MMC] Avoid potential oops in MMCI. Avoid calling mmci_data_irq if we do not have a data phase. [MMC] Cleanup: Make MMCI debug macro take host, format and arguments. [MMC] MMCI optimisations. Optimise register accesses; dereferencing "host" each time introduces extra loads. No need to check MCI_TXFIFOEMPTY when checking if we have a data IRQ. Since we support clock bypass mode, the maximum clock rate is the MCLK rate itself. get the kernel to warn about deprecated SCSI ioctls The non unique SCSI ioctls: SCSI_IOCTL_SEND_COMMAND SCSI_IOCTL_TEST_UNIT_READY SCSI_IOCTL_BENCHMARK_COMMAND SCSI_IOCTL_SYNC SCSI_IOCTL_START_UNIT SCSI_IOCTL_STOP_UNIT Have been deprecated for a while now. We should make the kernel complain when a program actually uses one of them, so users have had adequate warning before they are removed. Signed-off-by: James Bottomley [PATCH] Allow TCQ depth to be lowered properly Ran into a couple small issues with the patch. First, blk_queue_resize_tags wasn't getting exported, so I sent Jens a patch to fix this, which he has now sent upstream. Second, the comment above blk_queue_resize_tags says the queue_lock must be held when calling this routine. Attached is an updated patch that grabs the lock. Other than that, it looks good. James Bottomley wrote: > On Tue, 2004-08-03 at 10:50, Brian King wrote: >>Currently, it is possible to call scsi_activate_tcq with a small queue depth, >>then later call scsi_adjust_queue_depth with a larger queue depth. This results >>in the scsi layer having a larger queue depth than the block layer knows about. >>This results in these additional commands being issued as untagged ops rather than >>tagged ops. This patch changes scsi_activate_tcq to call blk_queue_init_tags with >>the maximum supported number of tags so this cannot occur. > > > Sorry, been away at conferences with not enough time to remember what > went on here. > > The reason it looks the way it does is historical...when the blk layer > tcq interfaces were created, there was no way to resize the queue. Jens > later added resize (for me) and I forgot to incorporate it into the > code. > > Another small point is that the max number of tags can be greater than > 256. 256 is a SPI limit only (and even the qla1280, a SPI card which > could use the tag as its global queue index would take > 256). The > limit in scsi_adjust_queue_depth has long since been obsoleted by our > dynamic command allocation. > > I think the attached should work correctly (as long as it compiles...I > coded it up on the flight home). Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] fix for Domain Validation hang on some devices with sym_2 There's a bad hang where the driver locks the system solid trying to do domain validation with certain devices. The one I've managed to reproduce it with is a Quantum Atlas. What happens is that setting the offset to zero is an async negotiation message. However, the driver still seems to have DT set (which is illegal). Most devices just reject this as stupid, but the Quantum seems to try to obey it and hangs the bus. The simple fix is to reset all PPR options when the offset is set to zero. Signed-off-by: James Bottomley [WATCHDOG] v2.6.8.1 compat_ioctl-patch The watchdog ioctl interface is defined correctly for 32 bit emulation, although WIOC_GETSUPPORT was not marked as such, for an unclear reason. WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT were added in may 2002 to the code but never to the ioctl list. This adds all three definitions. Signed-off-by: Arnd Bergmann Signed-off-by: Wim Van Sebroeck [WATCHDOG] pcwd-watchdog.txt-patch Fix example program in pcwd-watchdog.txt document. [WATCHDOG] v2.6.8.1 cpu5wdt.c-nonseekable_open-patch cpu5wdt also contains a VFS and thus should be "nonseekable_open" [WATCHDOG] v2.6.8.1 watchdog-llseek-patch The watchdog drivers use a VFS implementation and thus should not be lseek'able, so we put a '.llseek = no_llseek' in the file_operations structure. [VLAN]: __vlan_hwaccel_rx() needs to use dev_kfree_skb_any. Signed-off-by: David S. Miller [CPUFREQ] Recognise another Dothan variant in speedstep driver. From: Jeremy Fitzhardinge Signed-off-by: Dave Jones JFS: Trivial: remove dead code Signed-off-by: Dave Kleikamp [IPSEC]: Revert pskb change for x->type->output Since skb_checksum_help() has been moved to xfrm[46]_output(), we don't need the sk_buff ** argument in x->type->output anymore. This patch reverts it to a sk_buff *. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Use offsetof(). Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPV6]: Improve readability in ip6_flowlabel.c Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [PATCH] fix qla1280 build on visws From: Andrey Panin attached patch fixes qla1280 SCSI driver build failure on visws due to undefined RD_REG_WORD_dmasync() macro. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [ACPI] ACPICA 20040816 update from Bob Moore Designed and implemented support within the AML interpreter for the so-called implicit return. This support returns the result of the last ASL operation within a control method, in the absence of an explicit Return() operator. A few machines depend on this behavior, even though it is not explicitly supported by the ASL language. It is optional support that can be enabled at runtime via the acpi_gbl_enable_interpreter_slack flag. Removed support for the PCI_Config address space from the internal low level hardware interfaces (acpi_hw_low_level_read and acpi_hw_low_level_write). This support was not used internally, and would not work correctly anyway because the PCI bus number and segment number were not supported. There are separate interfaces for PCI configuration space access because of the unique interface. acpica-unix-20040816.patch AE_CODE_AML_MAX fix from Bjorn Helgaas CIFS: Workaround Samba bug in incorrectly setting extended security flag in negotiate response (which caused mounts to fail to Samba server which have short, one or two byte, domain names). Signed-off-by: Steve French (sfrench@us.ibm.com) CIFS: xsymlink support part 1 of 2 Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] kill tmscsim ->proc_info hrrible code like all proc_info implementations and no really usefull information. We might want to add sysfs attributes if some users really miss anything. Signed-off-by: James Bottomley [PATCH] clean up some more tmscsim scan logic - cleanup checks in ->queuecommand, we only get here either for inquiry or a found device now - DCBmap in the acb is gone, was only used for debug prints after the prevous changes - kill some more debugging keyed of by ->scan_devices Signed-off-by: James Bottomley [PATCH] tmscsim: remove unused / redundant bios_param Signed-off-by: James Bottomley [PATCH] add ssleep(), kill scsi_sleep() So, the kernel needs a 'sleep', but that token is far too common, so I chose ssleep(). scsi_sleep() is a manually implemented msleep(), so I remove it. Signed-off-by: James Bottomley Add accessor functons for scsi_device 56 byte inquiry data Signed-off-by: James Bottomley fix sym2 negotiation The problems with domain validation were just the tip of the iceberg in the sym2 driver. Most of its problems seem to come from an overly complex set of negotiating rules, which I've swept away with this patch. I also removed the ability to set parameters in the on-board bios and have the driver respect them. (this hasn't worked for a while in 2.6 because after the driver sets them, Domain Validation resets them again). Finally, there was a really nasty bug where the driver negotiates improperly when turning off DT clocking. If you simply turn it off, the driver originally fell back to using the old WDTR/SDTR method of negotiation. However, since it thought the bus was already wide, it only emitted a SDTR, which causes the device to reset from wide to narrow. Hence the driver thinks the device is wide and the device thinks it is narrow => boom. I redid the negotiation to predicate PPR messages on whether the device claims support for them or not. Signed-off-by: James Bottomley [ACPI] Enable ACPICA workarounds for 'RELAXED_AML' and 'implicit return' These workarounds are disabled if "acpi=strict" [XFRM]: Mark some functions/data static. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [VLAN]: Missing Kconfig help From: Francois Romieu Help message (2.4.x port + module name) for the configuration of vlan support. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller kbuild: Consolidated cc support function Added three function to top-level Makefile: cc-option (replacing check_gcc) cc-option-yn (as cc-option but return y or n) cc-version (numeric version of $(CC)) Documentation added to Documentation/kbuild/makefiles.txt The check_gcc version is still present, but now spit out a arning if used. The new naming where chosen to get consistent naming of all three functions Signed-off-by: Sam Ravnborg [PCMCIA] Use struct resource rather than sys_start/sys_stop Convert 16-bit PCMCIA socket drivers to use the struct resource rather than the sys_start and sys_stop members of pccard_mem_map. [PCMCIA] Convert PCI socket drivers to use struct resource. Convert PCI socket drivers to use the resource passed in rather than pccard_mem_map's sys_start and sys_stop elements. This also means that we convert the struct resource to a PCI bus region, thereby performing any platform specific fixups which may be necessary. [PCMCIA] Don't use sys_start for static-mapped sockets. Add static_start element to pccard_mem_map - which is used by statically mapped sockets to return the physical address which should be used to access the memory region. [PCMCIA] Remove pccard_mem_map's sys_start and sys_stop elements. Update to megaraid version 2.20.3.0 From: Mukker, Atul Signed-off-by: James Bottomley [PATCH] PA-RISC sound updates PA-RISC sound updates: - Do a DAC/ADC reset for sampling rate changes in ad1889 (Randolph Chung) - Set the ad1889 interrupt configuration properly (Randolph Chung) - Fix dependency for the OSS Harmony driver (Thibaut Varene) - Forward port Stuart Brady's 2.4 Harmony driver patches (Thibaut Varene) - Fix sample skipping (Stuart Brady) - Prevent harmony_silence being called wrongly (Stuart Brady) - Fix crash caused by buf_to_fill becoming -1 (Stuart Brady) - Improve naming of mixer channels (Stuart Brady) - Implement SNDCTL_DSP_CHANNELS ioctl (Stuart Brady) - Improve toggling the recording source (Stuart Brady) - Sanity check MIXER_WRITE volume levels (Stuart Brady) - Fix MIXER_READ right_level return (Stuart Brady) - Reject AFMT_S16_LE format (Stuart Brady) - Fail OSS Harmony initialisation if no irq (Helge Deller) - Fix typos in ALSA Harmony (Andy Walker, Grant Grundler, Stuart Brady) [PATCH] ACPI for 2.6 Define acpi_noirq on ia64 since it's used now in pci_link.c. All ia64 machines use ACPI, so we can just define it to 0 like we do for acpi_disabled and acpi_pci_disabled. Signed-off-by: Jesse Barnes Signed-off-by: Linus Torvalds [PATCH] Kconfig updates for PA-RISC Fix some Kconfig dependencies on PA-RISC (Grant Grundler, Martin Schulze, Helge Deller, Matthew Wilcox) [PATCH] Fix HPT374 merge problem This got accidentally reverted in merging HPT372N support. The following patch restores 50Mhz on the HPT374 using the 370a clocking tables. kbuild/all archs: Utilise the cc-* functions Searched through all architectures and utilised the cc-* functions when appropriate. Signed-off-by: Sam Ravnborg scripts/patch-kernel: use EXTRAVERSION Update 'scripts/patch-kernel' to support EXTRAVERSION. Update usage message text. Fix some whitespace. Handle command line arg3 (stop-version) more carefully. No changes to -ac patch updates. EXTRAVERSION handling: any leading '.' and any trailing modifier (beginning with any punctuation, like "-ac" or "_kexec" or "+mm") are stripped, trying to get down to just a number. Then 'patch-kernel' increments EXTRAVERSION as long as it can apply "patch-V.P.S.X*". When that file isn't found, it resets EXTRAVERSION to "" and increments SUBLEVEL (as before this patch). Works for me. Signed-off-by: Randy Dunlap Signed-off-by: Sam Ravnborg [PATCH] fix OProfile events with zero event values A silly bug prevented certain events from being used. [PATCH] update gianfar ethernet driver [PATCH] missing CPU descriptors There are a couple of cache descriptors in the current Intel manuals missing from our tables at least one of which appears in an actual processor in the real world. [PATCH] minix block usage counting fix In 2.5.18 some minix-specific stuff was moved to the minix subdirectory where it belonged. However, a typo crept in, causing inode disk usage to be incorrectly reported. A few people have complained, but so far not sufficiently loudly. Signed-off-by: Andries Brouwer Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix booting on some OldWolrd Macs It seems that on some OldWolrd macs, we don't get the OF stdout device, thus the new set_preferred_console() dies at boot trying to dereference a NULL pointer. Trivial fix. Add another Intel cache descriptor entry. This one from Dave Jones, who read the Intel docs even more. [PATCH] nsc-ircc driver crashes on shutdown From: Petr Vandrovec bk-dma-decleare-coherent-memory patch adds a requirement for dma_free_coherent that dev cannot be NULL... But it can (nsc-ircc has no suitable dev) and as dma_alloc_coherent allows NULL dev, dma_free_coherent should allow it too IMHO. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] fix /proc/net/netstat output net/ipv4/proc.c was updated to use a new mechanism for outputting /proc/net/snmp and /proc/net/netstat. However, a superfluous '\n' snuck in, breaking `netstat -s` Make some single-bit bitfields unsigned. Signed single-bit bitfields really are a pretty strange thing to have. They work, but it wasn't really intentional. [PKT_SCHED]: Fix class leak in CBQ scheduler. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PKT_SCHED]: Missing dev_put in error path Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [SUNGEM]: Fix locking in gem_interrupt(). Do not release lock unless actually taken. Noticed by Eric Lemoine. Signed-off-by: David S. Miller [PKT_SCHED]: Fix unused label warning in ingress_init(). Signed-off-by: David S. Miller We weren't including from , so _IO_BASE was defined to zero instead of isa_io_base. Signed-Off-By: David Woodhouse Signed-Off-By: Tom Rini [PATCH] context-switching overhead in X, ioport() while debugging/improving scheduling latencies i got the following strange latency report from Lee Revell: http://krustophenia.net/testresults.php?dataset=2.6.8.1-P6#/var/www/2.6.8.1-P6 this trace shows a 120 usec latency caused by XFree86, on a 600 MHz x86 system. Looking closer reveals: 00000002 0.006ms (+0.003ms): __switch_to (schedule) 00000002 0.088ms (+0.082ms): finish_task_switch (schedule) it took more than 80 usecs for XFree86 to do a context-switch! it turns out that the reason for this (massive) context-switching overhead is the following change in 2.6.8: [PATCH] larger IO bitmaps To demonstrate the effect of this change i've written ioperm-latency.c (attached), which gives the following on vanilla 2.6.8.1: # ./ioperm-latency default no ioperm: scheduling latency: 2528 cycles turning on port 80 ioperm: scheduling latency: 10563 cycles turning on port 65535 ioperm: scheduling latency: 10517 cycles the ChangeSet says: Now, with the lazy bitmap allocation and per-CPU TSS, this will really not drain any resources I think. this is plain wrong. An increase in the IO bitmap size introduces per-context-switch overhead as well: we now have to copy an 8K bitmap every time XFree86 context-switches - even though XFree86 never uses ports higher than 1024! I've straced XFree86 on a number of x86 systems and in every instance ioperm() was used - so i'd say the majority of x86 Linux systems running 2.6.8.1 are affected by this problem. This not only causes lots of overhead, it also trashes ~16K out of the L1 and L2 caches, on every context-switch. It's as if XFree86 did a L1 cache flush on every context-switch ... the simple solution would be to revert IO_BITMAP_BITS back to 1024 and release 2.6.8.2? I've implemented another solution as well, which tracks the highest-enabled port # for every task and does the copying of the bitmap intelligently. (patch attached) The patched kernel gives: # ./ioperm-latency default no ioperm: scheduling latency: 2423 cycles turning on port 80 ioperm: scheduling latency: 2503 cycles turning on port 65535 ioperm: scheduling latency: 10607 cycles this is much more acceptable - the full overhead only occurs in the very unlikely event of a task using the high ioport range. X doesnt suffer any significant overhead. (tracking the maximum allowed port # also allows a simplification of io_bitmap handling: e.g. we dont do the invalid-offset trick anymore - the IO bitmap in the TSS is always valid and secure.) I tested the patch on x86 SMP and UP, it works fine for me. I tested boundary conditions as well, it all seems secure. Ingo #include #include #include #include #include #include #include #include #define CYCLES(x) asm volatile ("rdtsc" :"=a" (x)::"edx") #define __NR_sched_set_affinity 241 _syscall3 (int, sched_set_affinity, pid_t, pid, unsigned int, mask_len, unsigned long *, mask) /* * Use a pair of RT processes bound to the same CPU to measure * context-switch overhead: */ static void measure(void) { unsigned long i, min = ~0UL, pid, mask = 1, t1, t2; sched_set_affinity(0, sizeof(mask), &mask); pid = fork(); if (!pid) for (;;) { asm volatile ("sti; nop; cli"); sched_yield(); } sched_yield(); for (i = 0; i < 100; i++) { asm volatile ("sti; nop; cli"); CYCLES(t1); sched_yield(); CYCLES(t2); if (i > 10) { if (t2 - t1 < min) min = t2 - t1; } } asm volatile ("sti"); kill(pid, 9); printf("scheduling latency: %ld cycles\n", min); sched_yield(); } int main(void) { struct sched_param p = { sched_priority: 2 }; unsigned long mask = 1; if (iopl(3)) { printf("need to run as root!\n"); exit(-1); } sched_setscheduler(0, SCHED_FIFO, &p); sched_set_affinity(0, sizeof(mask), &mask); printf("default no ioperm: "); measure(); printf("turning on port 80 ioperm: "); ioperm(0x80,1,1); measure(); printf("turning on port 65535 ioperm: "); if (ioperm(0xffff,1,1)) printf("FAILED - older kernel.\n"); else measure(); return 0; } Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tg3 section fix add_pin_to_irq() should not be __init; it is used after init code. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] proc fs task name locking fix Races have been observed between excec-time overwriting of task->comm and /proc accesses to the same data. This causes environment string information to appear in /proc. Fix that up by taking task_lock() around updates to and accesses to task->comm. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix reading string module parameters in sysfs Reading the contents of a module_param_string through sysfs currently oopses because the param_get_charp() function cannot operate on a kparam_string struct. This introduces the required param_get_string. Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NMI trigger switch support for debugging(updated) I made a patch for debugging with the help of NMI trigger switch. When kernel hangs severely, keyboard operation(e.g.Ctrl-Alt-Del) doesn't work properly. This patch enables debugging information to be displayed on console in this case. I think this feature is necessary as standard functionality. Please feel free to use this patch and let me know if you have any comments. Background: When a trouble occurs in kernel, we usually begin to investigate with following information: - panic >> panic message. - oops >> CPU registers and stack trace. - hang >> **NONE** no standard method established. How it works: Most IA32 servers have a NMI switch that fires NMI interrupt up. The NMI interrupt can interrupt even if kernel is serious state, for example deadlock under the interrupt disabled. When the NMI switch is pressed after this feature is activated, CPU registers and stack trace are displayed on console and then panic occurs. This feature is activated or deactivated with sysctl. On IA32 architecture, only the following are defined as reason of NMI interrupt: - memory parity error - I/O check error The reason code of NMI switch is not defined, so this patch assumes that all undefined NMI interrupts are fired by MNI switch. However, oprofile and NMI watchdog also use undefined NMI interrupt. Therefore this feature cannot be used at the same time with oprofile and NMI watchdog. This feature hands NMI interrupt over to oprofile and NMI watchdog. So, when they have been activated, this feature doesn't work even if it is activated. Supported architecture: IA32 Setup: Set up the system control parameter as follows: # sysctl -w kernel.unknown_nmi_panic=1 kernel.unknown_nmi_panic = 1 If the NMI switch is pressed, CPU registers and stack trace will be displayed on console and then panic occurs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make i386 die() more resilient against recursive errors Make i386 die() more resilient against recursive errors, almost a cut and paste of the ia64 die() routine. Much of the patch is indentation changes. Mainly to make it easier to add crash, lcrash, kmsgdump or other RAS patches. They are invoked from die() and if they crash themselves, we have to avoid recursive loops in die(). Signed-off-by: Keith Owens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: remove hardcoded offsets from ppc asm This patch by Vincent Hanquez removes some hard coded offsets for accessing thread info fields from assembly, uses the normal offset generation mecanism that we already have for other things instead. Signed-off-by: Vincent Hanquez Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: optimize/fix timer_interrupt loop The following patch fixes the situation where the loop condition could generate a next_dec of zero while exiting the loop. This is suboptimal on Classic PPC because it forces another interrupt to occur and reenter the handler. It is fatal on Book E cores, because their decrementer is stopped when writing a zero (Classic interrupts on a 0->-1 transition, Book E interrupts on a 1->0 transition). Instead, stay in the loop on a next_dec==0. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: make PPC40x large tlb mapping optional This makes the PPC40x lowmem large tlb mapping selectable via a cmdline option. This allows use of the normal page-sized mapping so that kernel text can be read only if desired. Signed-off-by: Josh Boyer Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: handle misaligned string/multiple insns This patch adds code to the ppc32 alignment exception handler to make it handle the load/store string and load/store multiple word instructions. This is an issue for older CPUs such as the PPC601, which traps on load/store string instructions which cross a page boundary (newer CPUs handle this in hardware). I have a little test program which exercises this code, so I am reasonably confident it's correct. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: emulate obsolete instructions This patch adds emulation in the illegal instruction handler for a couple of old instructions that are no longer implemented in the PPC970 and later chips. This patch adds the code for both ppc32 and ppc64, and cleans up the ppc64 traps.c a bit, along the lines of the ppc32 code. It also makes sure that the ppc64 code generates a SIGTRAP after emulating an instruction if single-stepping is enabled. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add docs for noltlbs and nobats parameters Adds documentation of the PPC noltlbs and nobats kernel cmdline parameters. noltlbs is a new option and nobats never had an entry. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: export __dma_sync & __dma_sync_page This patch adds missing exports for __dma_sync and __dma_sync_page (DMA API helpers for non-coherent cache PPCs). Signed-off-by: Eugene Surovegin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix bug in altivec emulation This patch fixes a bug in the kernel emulation of altivec instructions with denormalized operands. The emulation of the vmaddfp and vmnsubfp instructions was giving the wrong answer because I had the wrong order of operands to the fmadds and fnmsubs instructions. This patch fixes it for both ppc32 and ppc64. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix warnings on Ebony MTD build This patch removes warnings associated with Ebony MTD related defines. Please apply. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: reduce stack overflow warning threshold Reduce the stack overflow warning from 4kB to 2kB now that its been in and tested for a while. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove old asm offsets Remove some unused things in asm-offsets.c Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set time-related systemcfg fields Somewhere along the line we lost the code that updates some fields of the systemcfg structure that are used for translating timebase values to time of day. I want to get rid of the systemcfg structure eventually, but applications are using it (and in particular these fields) and I don't want to break the ABI in a stable kernel series. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: include profile.c in kernel/irq.c arch/ppc64/kernel/irq.c: In function `init_irq_proc': arch/ppc64/kernel/irq.c:797: warning: implicit declaration of function `create_prof_cpu_mask' Signed-off-by: Dave Hansen Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: use platform numbering of cpus for hypervisor calls. We were using Linux's cpu numbering for cpu-related hypervisor calls (e.g. vpa registration, H_CONFER). It happened to work most of the time because Linux and the hypervisor usually, but not always, have the same numbering for cpus. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: use cpu_present_map in ppc64 Adopt the "standard" cpu_present_map for describing cpus which are present in the system, but not necessarily online. cpu_present_map is meant to be a superset of cpu_online_map and a subset of cpu_possible_map. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: rework secondary SMT thread setup at boot Our (ab)use of cpu_possible_map in setup_system to start secondary SMT threads bothers me. Mark such threads in cpu_possible_map during early boot; let RTAS tell us which present cpus are still offline later so we can start them. I'm not totally sure about this one, it might be better to set up cpu_sibling_map in prom_hold_cpus and use that in setup_system. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove unnecessary cpu maps With cpu_present_map, we don't need these any longer. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: POWER4 oprofile update POWER4 oprofile updates from Carl Love. - Create mmcr0, mmcr1, mmcra oprofilefs files. - Use kernel and user profile disable bits. (Some modifications by me) Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: disable oprofile debug messages Disable oprofile debug messages. They arent much use now things are working reliably. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: allow oprofile module to be safely unloaded Allow the oprofile module to be unloaded, before we never removed the oprofile specific interrupt handler. Handle the pending exception case in the dummy interrupt handler instead. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: add missing EXPORT_SYMBOLS for oprofile Add some missing exports, required for oprofile to be compiled as a module. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix oprofile error messages Clean up an oprofile error message, it was missing a newline. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set tbl->it_type in iommu code Here is a patch that sets struct iommu_table->it_type to TCE_PCI in pSeries_iommu.c. This is just for code completeness (and it is updated in iSeries_iommu.c, but was somehow missed in pSeries_iommu.c). Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Don't call scheduler on offline cpu When taking a cpu offline, once the cpu has been removed from cpu_online_map, it is not supposed to service any more interrupts. This presents a problem on ppc64 because we cannot truly disable the decrementer. There used to be cpu_is_offline() checks in several scheduler functions (e.g. rebalance_tick()) which papered over this issue, but these checks were removed recently. So with recent 2.6 kernels, an attempt to offline a cpu can result in a crash in find_busiest_group(). This patch prevents such crashes. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix idle loop for offline cpu In the default_idle and dedicated_idle loops, there are some inner loops out of which we should break if the cpu is marked offline. Otherwise, it is possible for the cpu to get stuck and never actually go offline. shared_idle is unaffected. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: C99 initializers in INIT_THREAD Fairly trivial PPC64 cleanup. This patch makes the ppc64 INIT_THREAD #define use C99 initializers, which will make it less likely to get broken if we need to change thread_struct. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: log firmware errors during boot Firmware can report errors at any time, and not atypically during boot. However, these reports were being discarded until th rtasd comes up, which occurs fairly late in the boot cycle. As a result, firmware errors during boot were being silently ignored. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 Fix unbalanced pci_dev_put in EEH code The EEH code currently can end up doing an extra pci_dev_put() in the case where we hot-unplug a card for which we are ignoring EEH errors (e.g. a graphics card). This patch fixes that problem by only maintaining a reference to the PCI device if we have entered any of its resource addresses into our address -> PCI device cache. This patch is based on an earlier patch by Linas Vepstas. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Reduce verbosity of RTAS error logs Currently on pSeries systems the kernel will print out a hex dump of any error events reported by the platform at boot time. These can be rather large and are practically incomprehensible to humans. With this patch, the kernel will by default print a 1-line summary for each error reported with the severity, type, etc. printed as text strings. The old behaviour is still available by using the rtasmsgs=on kernel command line option. The patch also renames some RTAS-specific symbols to start with "RTAS_". Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix v_regs pointer setup During some signal test, we found that v_regs pointer was not setup correctly. v_regs was made to point to itself, as a result of which the pointer was corrupted when vec registers were copied over. When the signal handler returned, restore_sigcontext tried derefering the invalid pointer and in the process killed the app with SIGSEGV. Signed-off-by: Srivatsa Vaddagiri Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: HVSI driver This is a console driver for IBM's p5 servers; please consider it for inclusion. I've addressed all the comments I've received so far. Signed-off-by: Hollis Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: bolted SLB entry for iSeries Tested, at least basically, on Power4 iSeries with shared processors, on Power4 pSeries and RS64 (non-SLB) iSeries machines. On pSeries SLB machines we "bolt" an SLB entry for the first segment of the vmalloc() area into the SLB, to reduce the SLB miss rate. This caused problems, so was disabled, on iSeries because the bolted entry was not restored properly on shared processor switch. This patch adds information about the bolted vmalloc segment to the lpar map, which should be restored on shared processor switch. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: switch screen_info init to C99 Minor cleanup: Use C99 initializers for the screen_info struct. Signed-off-by: Olof Johansson Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: tweak schedule_timeout in __cpu_die The current code does schedule_timeout(HZ) when waiting for a cpu to die, which is a bit coarse and tends to limit the "throughput" of my stress tests :) Change the HZ timeout to HZ/5, increase the number of tries to 25 so the overall wait time is similar. In practice, I've never seen the loop need more than two iterations. Signed-off-by: Nathan Lynch Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix eeh_memcpy_toio() prototype Signed-off-by: Linas Vepstas Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: rtas_call was calling kmalloc too early At present rtas_call() can be called before the kmalloc subsystem is initialized, and if RTAS reports a hardware error, the code tries to do a kmalloc to make a copy of the error report. This patch changes it so that we don't do the kmalloc in that situation. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: better little-endian bitops Below patch reuses the big-endian bitops for the little endian ones, and moves the ext2_{set,clear}_bit_atomic functions to be truly atomic instead of lock based. This requires that the bitmaps passed to the ext2_* bitop functions are 8-byte aligned. I have been assured that they will be 512-byte or 1024-byte aligned, and sparc and ppc32 also impose an alignment requirement on the bitmap. Signed-off-by: Olof Johansson Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 iSeries virtual DVD-RAM This patch adds the ability to use DVD-RAM drives to the iSeries virtual cdrom driver. This version adresses (hopefully) Jens comments on the previous one. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Extend ioremap/iounmap infrastructure The patch below implements the ability to query outstanding imalloc regions for a given virtual address range. (Imalloc is the allocator of virtual space for ioremap.) The patch extends im_get_area() to allow a region criterion of IM_REGION_SUPERSET. For a particular "superset" virtual address and size passed into im_get_area(), the function returns the first outstanding region that is contained within this superset region. The patch also changes iounmap_explicit() to allow for the unmapping of all regions that fit under a "superset". This ability is necessary for dynamic (runtime) removal of pci host bridges (PHBs). For a PHB removal, the platform specification (the RPA) requires that all of its children slots already be dynamically removed. Each of these slot-level removals has fractured the imalloc region assigned to the PHB at boot. At PHB removal time, it is necessary to iounmap() the remaining artifacts of the initial PHB region. Signed-off-by: John Rose Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Use correct buffer size in RTAS call Firmware expects the size of the buffer that you hand it when you ask it for information about a hardware error to be of a very specific size, but different versions of firmware appearently expect different sizes; using the wrong size results in a painful, hard-to-debug crash in firmware. Benh provided a patch for this some months ago, but appreantly missed this code path. This patch sets up the log buffer size dynamically; it also fixes a bug with the return code not being handled correctly. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: mf_proc file position fix arch/ppc64/kernel/mf_proc.c uses a bad interface for moving along file position in a proc_write routine. This quit working altogether in 2.6.8. Patch to fix. And I did a quick scan of the kernel to see if anyone else was similarly broken...apparantly not :-) Fixes a broken update of f_pos in a proc file write routine. Signed-off-by: Dave Boutcher Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] HVCS fixes Here are a set of HVCS (drivers/char/hvcs.c) fixes that were suggested by Jeff Garzik on July 29th in his review of this driver as well as some other fixes for problems I found while reviewing the driver. These are all relatively minor, but necessary. - Cleaned up curly braces on single line conditional blocks. - Replaced debug memset(...,0x3F,...) with memset(...,0x00,...). - Removed explicit '= 0' after static int declarations since these default to zero. - Removed list_for_each_safe() instances and replaced with list_for_each_entry() which cut down on amt of code. The 'safe' version is un-needed now that the driver is using spinlocks. - Changed spin_lock_irqsave() to spin_lock() when locking hvcs_structs_lock and hvcs_pi_lock since these are not touched in an int handler. - changed spin_lock_irqsave() to spin_lock() in interrupt handler. - Initialized hvcs_structs_lock and hvcs_pi_lock to SPIN_LOCK_UNLOCKED at declaration tiem rather than in hvcs_module_init(). - Added spin_lock around list_del() in destroy_hvcs_struct() to protect the list traversal from deletion. The original omission was an oversight. - Removed '= NULL' from pointer declarations since they are initialized NULL by default. - Removed wmb() instance from hvcs_try_write(). They probably aren't needed with locking in place. - Added check and cleanup for hvcs_pi_buff = kmalloc() in hvcs_module_init(). - Exposed hvcs_struct.index via a sysfs attribute so that the coupling between /dev/hvcs* and a vty-server can be systematically determined. - Moved kobject_put() in hvcs_open() outside of the spin_unlock_irqrestore(). - In hvcs_probe() changed kmalloc(sizeof(*hvcsd),...) to kmalloc(sizeof(struct hvcs_struct)) because hvcsd references a NULL pointer at the time of kmalloc. - Incremented the HVCS_DRIVER_VERSION to 1.3.1 arch/ppc64/kernel/hvcserver.c: - Changed function documentation of EXPORTed functions to comply with proper kernel-doc documentation style. - Changed 'unsigned int' types to 'uint32_t' to comply with how unit addresses and partition IDs are handled in other arch/ppc64 vterm code. - Cleaned up curly braces on single line conditional blocks. include/asm-ppc64/hvcserver.h: - Added kernel-doc style documentation for hvcs_partner_info struct. - changed 'unsigned int' types to 'uint32_t' to comply with how unit addresses and partition IDs are handled in other arch/ppc64 vterm code. Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ibmveth: module tag fixes This and the following three patches contain bug fixes found in the stabilization of SLES9. This patch adds a call to MODULE_VERSION and changes the MODULE_AUTHOR call to me (obviously with Dave Larson's permission). It also increments the version number to keep track of the bug fixes. Please apply. Signed-off-by: Santiago Leon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ibmveth: race fixes This patch fixes a race condition that would panic the kernel when replenishing a buffer pool. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ibmveth: hypervisor return value fix This patch checks for the LongBusy return code from the hypervisor, and retries the operation (which is what the hypervisor expects the driver to do). Please apply. Signed-off-by: Santiago Leon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ibmveth: add memory barrier for hypervisor synchronisation This patch adds a memory barrier to ensure synchronization with the hypervisor (and avoid a panic when the hypervisor is halfway through writing to the descriptor). It also removes an unnecessary check that is flawed anyway because the value can change between the atomic_inc() and the assert. Signed-off-by: Santiago Leon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix visws kernel build CC arch/i386/kernel/cpu/intel.o In file included from arch/i386/kernel/cpu/intel.c:19: include/asm-i386/mach-visws/mach_apic.h: In function `cpu_present_to_apicid': include/asm-i386/mach-visws/mach_apic.h:67: error: `BAD_APICID' undeclared (first use in this function) include/asm-i386/mach-visws/mach_apic.h:67: error: (Each undeclared identifier is reported only once include/asm-i386/mach-visws/mach_apic.h:67: error: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 oops output: dump preceding code This teaches the i386 oops dumper to dump opcodes preceding and after the offending EIP. Supporting code against ksymoops has been tested and produces output like the below. Support for this was added to ksymoops-2.4.9. Note that ksymoops will guarantee that the disassembly after the value is always in sync - if the disassembly from the start of the Code: line does not sync up with the EIP address ksymoops will perform the resync. Warning (merge_maps): no symbols in merged map Mar 18 23:47:36 vmm kernel: kernel BUG at fs/open.c:802! Mar 18 23:47:36 vmm kernel: invalid operand: 0000 [#1] Mar 18 23:47:36 vmm kernel: CPU: 0 Mar 18 23:47:36 vmm kernel: EIP: 0060:[] VLI Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 Mar 18 23:47:36 vmm kernel: EFLAGS: 00010246 Mar 18 23:47:36 vmm kernel: eax: ccdfb900 ebx: 4001020d ecx: 00000000 edx: 0000007b Mar 18 23:47:36 vmm kernel: esi: 00000000 edi: bfffdd70 ebp: ccdfdfbc esp: ccdfdfb0 Mar 18 23:47:36 vmm kernel: ds: 007b es: 007b ss: 0068 Mar 18 23:47:36 vmm kernel: Stack: 4001020d 00000000 bfffdd70 ccdfc000 c0109213 4001020d 00000000 00000003 Mar 18 23:47:36 vmm kernel: 00000000 bfffdd70 bfffdc88 00000005 0000007b 0000007b 00000005 4000ef94 Mar 18 23:47:36 vmm kernel: 00000073 00000206 bfffdbd8 0000007b Mar 18 23:47:36 vmm kernel: Call Trace: Mar 18 23:47:36 vmm kernel: [] syscall_call+0x7/0xb Mar 18 23:47:36 vmm kernel: Code: 14 98 f0 81 41 04 00 00 00 01 5b 89 ec 5d c3 90 b8 00 e0 ff ff 21 e0 55 89 e5 57 56 53 8b 00 81 b8 e4 01 00 00 0f 27 00 00 75 08 <0f> 0b 22 03 85 18 2f c0 8b 45 08 50 e8 30 d4 00 00 89 c7 83 c4 >>EIP; c014fedf No symbols available <===== Trace; c0109213 No symbols available This architecture has variable length instructions, decoding before eip is unreliable, take these instructions with a pinch of salt. Code; c014feb4 No symbols available 00000000 <_EIP>: Code; c014feb4 No symbols available 0: 14 98 adc $0x98,%al Code; c014feb6 No symbols available 2: f0 81 41 04 00 00 00 lock addl $0x1000000,0x4(%ecx) Code; c014febd No symbols available 9: 01 Code; c014febe No symbols available a: 5b pop %ebx Code; c014febf No symbols available b: 89 ec mov %ebp,%esp Code; c014fec1 No symbols available d: 5d pop %ebp Code; c014fec2 No symbols available e: c3 ret Code; c014fec3 No symbols available f: 90 nop Code; c014fec4 No symbols available 10: b8 00 e0 ff ff mov $0xffffe000,%eax Code; c014fec9 No symbols available 15: 21 e0 and %esp,%eax Code; c014fecb No symbols available 17: 55 push %ebp Code; c014fecc No symbols available 18: 89 e5 mov %esp,%ebp Code; c014fece No symbols available 1a: 57 push %edi Code; c014fecf No symbols available 1b: 56 push %esi Code; c014fed0 No symbols available 1c: 53 push %ebx Code; c014fed1 No symbols available 1d: 8b 00 mov (%eax),%eax Code; c014fed3 No symbols available 1f: 81 b8 e4 01 00 00 0f cmpl $0x270f,0x1e4(%eax) Code; c014feda No symbols available 26: 27 00 00 Code; c014fedd No symbols available 29: 75 08 jne 33 <_EIP+0x33> c014fee7 No symbols available This decode from eip onwards should be reliable Code; c014fedf No symbols available 00000000 <_EIP>: Code; c014fedf No symbols available <===== 0: 0f 0b ud2a <===== Code; c014fee1 No symbols available 2: 22 03 and (%ebx),%al Code; c014fee3 No symbols available 4: 85 18 test %ebx,(%eax) Code; c014fee5 No symbols available 6: 2f das Code; c014fee6 No symbols available 7: c0 8b 45 08 50 e8 30 rorb $0x30,0xe8500845(%ebx) Code; c014feed No symbols available e: d4 00 aam $0x0 Code; c014feef No symbols available 10: 00 .byte 0x0 Code; c014fef0 No symbols available 11: 89 c7 mov %eax,%edi Code; c014fef2 No symbols available 13: 83 .byte 0x83 Code; c014fef3 No symbols available 14: c4 .byte 0xc4 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ptrace single-stepping fix This patch permits a ptrace process on x86 to "see" the instruction following the INT #80h op. This has been tested on 2.6.6 using the appended test source. Running over this: 80485a9: b8 14 00 00 00 mov $0x14,%eax 80485ae: cd 80 int $0x80 80485b0: 89 45 ec mov %eax,0xffffffec(%ebp) 80485b3: eb f4 jmp 80485a9 it produces: waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485a9 waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485ae waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485b0 waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485b3 (Andi says: "I think this patch is a bad idea. The ptrace handling is traditionally fragile (I remember when merging a rather simple patch from IBM for DR allocation long ago into the suse it broke several debuggers). If you really want to do that wait for 2.7.") test-program.c: #include #include #include #include #include #include #include #include #include #include int main(int ac, char **av) { int i, status, res; long start, end; pid_t cpid, pid; struct user_regs_struct ur; struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = SIG_DFL; sigaction(SIGCHLD, &sa, NULL); printf("nargs=%d\n", ac); if (ac == 1) goto tracer; printf("arg=%s\n", av[1]); loop: __asm__ volatile ("int $0x80" : "=a" (res) : "0" (__NR_getpid)); goto loop; endloop: exit(0); tracer: if ((cpid = fork()) != 0) goto parent; printf("child=%d\n", getpid()); ptrace(PTRACE_TRACEME, 0, NULL, NULL); execl(av[0], av[0], "child", NULL); exit(0); parent: start = (long) &&loop; end = (long) &&endloop; printf("pchild=%d\n", cpid); for (;;) { pid = wait(&status); if (pid != cpid) continue; res = WSTOPSIG(status); if (ptrace(PTRACE_GETREGS, pid, NULL, &ur)) { printf("[%d] error: ptrace(PTRACE_GETREGS, %d)\n", pid, pid); return 1; } if (ptrace(PTRACE_SINGLESTEP, pid, NULL, res != SIGTRAP ? res: 0)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } if (ur.eip >= start && ur.eip <= end) break; } for (i = 0; i < 15; i++) { printf("waiting ...\n"); pid = wait(&status); printf("done: pid=%d status=%d\n", pid, status); if (pid != cpid) continue; res = WSTOPSIG(status); printf("sig=%d\n", res); if (ptrace(PTRACE_GETREGS, pid, NULL, &ur)) { printf("[%d] error: ptrace(PTRACE_GETREGS, %d)\n", pid, pid); return 1; } printf("EIP=0x%08x\n", ur.eip); if (ptrace(PTRACE_SINGLESTEP, pid, NULL, res != SIGTRAP ? res: 0)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } } if (ptrace(PTRACE_CONT, cpid, NULL, SIGKILL)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } return 0; } Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] disk barriers: core IDE disk barrier core. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] disk barriers: IDE ide bits Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] disk barriers: scsi scsi bits Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] disk barriers: devicemapper dm bits Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] disk barriers: MD md bits Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make sync_dirty_buffer() return something useful Make sync_dirty_buffer() return the result of its syncing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add BH_Eopnotsupp for testing async barrier failures In order for filesystems to detect asynchronous ordered write failures for buffers sent via submit_bh, they need a bit they can test for in the buffer head. This adds BH_Eopnotsupp and the related buffer operations end_buffer_write_sync is changed to avoid a printk for BH_Eoptnotsupp related failures, since the FS is responsible for a retry. sync_dirty_buffer is changed to test for BH_Eopnotsupp and return -EOPNOTSUPP to the caller Some of this came from Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs v3 barrier support Add reiserfs support for flush barriers, mount with -o barrier=flush to enable them. Barriers are triggered on fsync and for log commits. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3 barrier support Mount with "mount -o barrier=1" to enable barriers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] blk_queue_free_tags() fix This is a resend of three ll_rw_blk patches related to tagged queuing. Currently blk_queue_free_tags cannot be called with ops outstanding. The scsi_tcq API defined to LLD scsi drivers allows for scsi_deactivate_tcq to be called (which calls blk_queue_free_tags) with ops outstanding. Change blk_queue_free_tags to no longer free the tags, but rather just disable tagged queuing and also modify blk_queue_init_tags to handle re-enabling tagged queuing after it has been disabled. Signed-off-by: Jens Axboe Signed-off-by: Brian King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] blk_resize_tags() fix init_tag_map should not initialize the busy_list, refcnt, or busy fields in the tag map since blk_queue_resize_tags can call it while requests are active. Patch moves this initialization into blk_queue_init_tags. Signed-off-by: Jens Axboe Signed-off-by: Brian King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] handle blk_queue_tags_resize() allocation failures Fixes blk_queue_resize_tags to properly handle allocation failures. Currently, if a memory allocation failure occurs during blk_queue_resize_tags, the tag map ends up getting freed, which should not happen. The old tag map should be preserved and only the resize should fail. Signed-off-by: Jens Axboe Signed-off-by: Brian King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] multipath readahead fix fix Make sure the right errno is return from a readahead error in multipath Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] memory-backed inodes fix If an inode is backed by a memory-backed backing_dev, and it is not a blockdev inode, we can skip the entire superblock duwing writeback scanning. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Don't use SYSGOOD for ptrace singlestep The ptrace single step mode should not use the SYSGOOD bit and should not report SIGTRAP|0x80 to the ptrace parent. The following patch add an explicit check and to not add 0x80 in this is a singlestep trap. Signed-off-by: Davide Libenzi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] err2-6: hashbin_remove_this() locking fix Fix locking error identified by the Stanford locking checker. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] devicemapper: use an IDR tree for tracking minors Keep track of allocated minor numbers with an IDR instead of a bit-set. Signed-off-by: Kevin Corry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ipc: Add refcount to ipc_rcu_alloc The lifetime of the ipc objects (sem array, msg queue, shm mapping) is controlled by kern_ipc_perms->lock - a spinlock. There is no simple way to reacquire this spinlock after it was dropped to schedule()/kmalloc/copy_{to,from}_user/whatever. The attached patch adds a reference count as a preparation to get rid of sem_revalidate(). Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ipc: remove sem_revalidate The attached patch removes sem_revalidate and replaces it with ipc_rcu_getref() calls followed by ipc_lock_by_ptr(). Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ipc: enforce SEMVMX limit for undo Independent from the other patches: undo operations should not result in out of range semaphore values. The test for newval > SEMVMX is missing. The attached patch adds the test and a comment. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cleanup of ipc/msg.c Attached is a cleanup of the main loops in sys_msgrcv and sys_msgsnd, based on ipc_lock_by_ptr(). Most backward gotos are gone, instead normal "for(;;)" loops until a suitable message is found. Description: - General cleanup of sys_msgrcv and sys_msgsnd: the function were too convoluted. - Enable lockless receive, update comments. - Use ipc_getref for sys_msgsnd(), it's better than rechecking that the msqid is still valid. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i810_audio: Fix the error path of resource management The patch adds the check of return value from resquest_region() to avoid the confliction of resource management with ALSA intel8x0 driver. Signed-off-by: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] idr.c: remove stale comment The generation counters were removed from the idr code. Update idr.c comments, now uses doc-book style API documentation. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] percpu: cpu_gdt_table Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] percpu: init_tss Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] percpu: cpu_tlbstate Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5: fixmap.h fix Not strictly needed, since we're forcing `inline' to always_inline, but it's good for documentation purposes - This function needs the always_inline otherwise you get a link error when the compile time test is not optimized away. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-3.5 fixes Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #define inline as __attribute__((always_inline)) also for gcc >= 3.4 Rationale: - if gcc 3.4 can't inline a function marked as "inline" that's a strong hint that further investigation is required - I strongly prefer a compile error over a potential runtime problem Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] clean up __always_inline__ usage I find it somewhat annoying that the preprocessor expands every "inline" to "__inline__ __attribute__((always_inline)) __attribute__((always_inline))" in the current code. Fix that up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] arch/i386/kernel/smp.c gcc341 inlining fix gcc-3.4.1 errors out in 2.6.8-rc1-mm1 at arch/i386/kernel/smp.c: arch/i386/kernel/smp.c: In function `flush_tlb_others': arch/i386/kernel/smp.c:161: sorry, unimplemented: inlining failed in call to 'send_IPI_mask_bitmask': function not considered for inlining arch/i386/kernel/smp.c:9: sorry, unimplemented: called from here make[1]: *** [arch/i386/kernel/smp.o] Error 1 make: *** [arch/i386/kernel] Error 2 The inlines depend on functions defined further down in smp.c. Moving the #include eliminates the problem. Signed-off-by: Mikael Pettersson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] split generic_file_aio_write into buffered and direct I/O parts If the generic code falls back to buffered I/O on a hole XFS needs to relock, so we need to have separate functions to call unless we want to duplicate everything. The XFS patch still needs some cleaning up, but I'll try to get it in before 2.6.8. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make i/dhash_entries cmdline work as it use to. I was looking at the recent for >MAX_ORDER hash tables but it seems that the patch limits the number of entries to what it thinks are good values and the i/dhash_entries cmdline options can not exceed this. This seems to limit the usability of the patch on systems were larger allocations that the ones the kernel calculates are desired. - Make ihash_entries and dhash_entries cmdline option behave like it use to. - Remove MAX_SYS_HASH_TABLE_ORDER. Limit the max size to 1/16 the total number of pages. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] send_IPI_mask_bitmask() build fix With gcc-3.4.1: arch/i386/kernel/smp.c: In function `flush_tlb_others': arch/i386/kernel/smp.c:161: sorry, unimplemented: inlining failed in call to 'send_IPI_mask_bitmask': function not considered for inlining arch/i386/kernel/smp.c:9: sorry, unimplemented: called from here Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Enable all events for initramfs Currently most driver events are not sent out when using initramfs as driver_init() (which triggers the events) is called before init_workqueues. This patch rearranges the init calls so that the hotplug event queue is enabled prior to calling driver_init(), hence we're getting all hotplug events again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] warning on NUMA-Q arch-i386-kernel-smpc-gcc341-inlining-fix.patch seems to cause the following warning: include/asm-i386/mach-numaq/mach_ipi.h:4: warning: static declaration for `send_ IPI_mask_sequence' follows non-static. This should fix it (and make it match the other subarches): Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove sync() from panic Various people have reported deadlocks and it has aways seemed a bit risky to try to sync the filesystems at this stage anyway. "I have seen panic failing two times lately on an SMP system. The box panic'ed but was running happily on the other cpus. The culprit of this failure is the fact, that these panics have been caused by a block device or a filesystem (e.g. using errors=panic). In these cases the likelihood of a failure/hang of sys_sync() is high. This is exactly what happened in both cases I have seen. Meanwhile the other cpus are happily continuing destroying data as the kernel has a severe problem but its not aware of that as smp_send_stop happens after sys_sync." Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Move cache_reap out of timer context I'm submitting two patches associated with moving cache_reap functionality out of timer context. Note that these patches do not make any further optimizations to cache_reap at this time. The first patch adds a function similiar to schedule_delayed_work to allow work to be scheduled on another cpu. The second patch makes use of schedule_delayed_work_on to schedule cache_reap to run from keventd. Signed-off-by: Dimitri Sivanich Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gettimeofday nanoseconds patch This issue was discussed on lkml and linux-ia64. The patch introduces "getnstimeofday" and removes all the code scaling gettimeofday to nanoseoncs. It makes it possible for the posix-timer functions to return higher accuracy. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix x86-64 singlestep through sigreturn system call This patch just directly clones Davide Libenzi's i386 code for x86-64 in both 64-bit and 32-bit cases. With this, the behavior of single-stepping all system calls is consistent. The syscall exit tracing caused by TIF_SINGLESTEP is superfluous in the case of sysret returns, but harmlessly so (since continuing afterward with PTRACE_CONT will have cleared TF as well as TIF_SINGLESTEP). I figured that little bit of extra processing in the single-step case was better than adding code to ignore the flag in the sysret case. Signed-off-by: Roland McGrath Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove dead prototypes Remove a whole bunch of prototypes which declare no-longer-present functions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: Use include/asm-generic/dma-mapping-broken.h ChangeSet 1.1371.413.23 [1] introduced the file include/asm-generic/dma-mapping-broken.h for architectures that don't support the new DMA API. I don't know if this is the case with s390, however, ChangeSet 1.1371.445.6 [2] introduced a set of changes that duplicate those in include/asm-generic/dma-mapping-broken.h. This patch squishes that duplication by simply including include/asm-generic/dma-mapping-broken.h in include/asm-s390/dma-mapping.h. Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Subject: cdrom.c get_last_written fixup There's something wrong in cdrom.c: cdrom_get_last_written() for instance calls cdrom_get_disc_info() and cdrom_get_track_info() to get information about tracks, but these functions don't ensure that all the track_information or disc_information structure is filled: /* (buflen was first set to 8 to get track_information_length field) */ if ((ret = cdo->generic_packet(cdi, &cgc))) return ret; cgc.buflen = be16_to_cpu(ti->track_information_length) + sizeof(ti->track_information_length); if (cgc.buflen > sizeof(track_information)) cgc.buflen = sizeof(track_information); cgc.cmd[8] = cgc.buflen; return cdo->generic_packet(cdi, &cgc); The second test ensures that at least we won't overflow the structure, but nothing ensures that all the structure will be filled. And indeed, we have a drive here that won't fill it all: the returned track_information_length field will be *less than* sizeof(track_information) - sizeof(ti->track_information_length), so that cdrom_get_last_written() reads values that weren't filled in! As a result, we are sometimes unable to read some parts of CDROMs, depending on the uninitialized state of the structure... Here is a patch that adds filling checks: cdrom_get_disc_info() and cdrom_get_track_info() return the actual filled length, and it's up to the caller to check that this is enough for him to get the values it wants. Note: adding something like a #define spanof(TYPE, MEMBER) ((size_t) ((&((TYPE *)0)->MEMBER)+1)) definition just near that of offsetof() in include/linux/stddef.h would make it more pretty, but still it won't help for bitfields :/ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] get_random_bytes() returns the same on every boot At boot time, get_random_bytes always returns the same random data, as if there were a constant random seed. For example, if I use the kernel level ip autoconfiguration with dhcp, the kernel will create a dhcp request packet with always the same transaction ID. (If you have more than one computers, and they are booting at the same time, then this is a big problem) That happens, because only the primary entropy pool is initialized with the system time, in function rand_initialize. The secondary pool is only cleared. In this early stage of booting, there is usually no user interaction, or usable disk interrupts, so the kernel can't add any real random bytes to the primary pool. And altough the system time is in the primary pool, the kernel does not consider it real random data, so you can't read from the primary pool, before at least a part of it will be filled with some real randomness (interrupt timing). Therefore all random data will come from the secondary pool, and the kernel cannot reseed the secondary pool, because there is no real randomness in the primary one. The solution is simple: Initialize not just the primary, but also the secondary pool with the system time. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] slab: locking optimization for cache_reap Here is another cache_reap optimization that reduces latency when applied after the 'Move cache_reap out of timer context' patch I submitted on 7/14 (for inclusion in -mm next week). Signed-off-by: Dimitri Sivanich Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: move PIT code to timer_pit Now that things got cleaned up a bit, there is no real reason why the pit initialisation code has to be in i8259.c. Move it to timer_pit.ca Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IO-APIC debug message reduction The APIC and IO-APIC code is very verbose on startup especially on SMP machines. This patch allows the verbosity of the APIC code to be controlled through the boot-time option apic= using three levels: quiet, verbose and debug. The default level is quiet. Signed-off-by: Mark Broadbent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make shrinker_sem an rwsem Use an rwsem to protect the shrinker list instead of a regular semaphore. Modifications to the list are now done under the write lock, shrink_slab takes the read lock, and access to shrinker->nr becomes racy (which is no different to how the page lru scanner is implemented). The shrinker functions become concurrent. Previously, having the slab scanner get preempted or scheduling while holding the semaphore would cause other tasks to skip putting pressure on the slab. Also, make shrink_icache_memory return -1 if it can't do anything in order to hold pressure on this cache and prevent useless looping in shrink_slab. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] break out zone free list initialization The following patch removes the individual free area initialization from free_area_init_core(), and puts it in a new function zone_init_free_lists(). It also creates pages_to_bitmap_size(), which is then used in zone_init_free_lists() as well as several times in my free area bitmap resizing patch. First of all, I think it looks nicer this way, but it's also necessary to have this if you want to initialize a zone after system boot, like if a NUMA node was hot-added. In any case, it should be functionally equivalent to the old code. Compiles and boots on x86. I've been running with this for a few weeks, and haven't seen any problems with it yet. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radeonfb: cleanup and little fixes Very similar to Francois Romieu's fixes for cirrusfb, here we: * Provide meaningful error values from radeonfb_pci_register() * Fix unbalanced pci_enable_device() * Fix unbalanced fb_alloc_cmap() * Fix a failure-case bug where we accidentally memset_io(0, 0, size); * Use pci_request_regions() instead of request_mem_region() Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Rivafb I2C fixes The I2C busses opened by rivafb were deleted immediately after reading the EDID, but they should be kept open, so user-space applications can use them. They are now deleted when the driver is unloaded. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: EDD-based blacklisting 1. Created a database of broken displays and their associated fixes. Original patch from Brian S. Julin . Only the monitor manufacturer and model is checked, perhaps we can also check for the serial number? 2. Added an all_null check in edid_checksum since the checksum will also be zero if the entire block is zeroed. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: ifferentiate bits_per_pixel from color depth 1. If you remember this thread (HP300 support checked in), one concern was how to support framebuffers with bpp == 8 but color depth < 8 (chunky layout). I suggested to use the fields in var->{red|green|blue} to differentiate between bits_per_pixel and depth. Included is a patch that does that. (The above assumes background/foreground of 0/1. If hardware needs a different value, such as 0 - black, 0xff - white, just indicate TRUECOLOR or DIRECTCOLOR and set info->pseudopalette correctly in xxxfb_setcolreg().) The patch will break the following drivers when in monochrome since they do not set the proper color bitfields. I've included a fix in patch #2. 68328fb bw2fb cirrusfb dnfb macfb stifb tx3912fb 2. Besides the change above, support for the inverse and underline attribute is added in monochrome mode. One should get text which are underlined/reversed if the corresponding attribute is set. 3. Because vt.c uses a 16-color palette, use fbcon_default_cmap if framebuffer can do less than 16 colors. In 4 colors, display will be grayscaled. In 8 colors, display should have the same colors as a 16-color console but will lack brightness/ intensity. 4. Fix monochrome logo drawing. 5. Reduce code of fbcon_putc so it just calls fbcon_putcs. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: set color fields correctly Although the depth can be correctly inferred from bits_per_pixel (if bits_per_pixel == 1), for the sake of consistency, drivers should still set the color fields correctly. True even if the first patch is not applied. (I've combined everything in a single diff since there is only 1 logical change) Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: ATTN: Maintainers - Set correct hardware capabilities With David Eger's patch for advertising hardware capabilities to fbcon, only a few drivers so far have been converted to do just that. As a result, scrolling speed of some drivers will not be optimal (SCROLL_REDRAW). The patch adds the correct flags for all drivers (except for matroxfb -leave this to Petr-, and a few drivers that are not ported yet to 2.6). *Majority of changes is FBINFO_FLAG_DEFAULT -> FBINFO_DEFAULT Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rivafb: Do not tap VGA ports if not X86 Do not tap VGA ports if arch is not X86. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i810fb fixes 1. Fixed cursor corruption if acceleration is enabled 2. Round up fields in var instead of rounding down 3. Set capabilities flags 4. Added myself to the MAINTAINERS file for i810fb 5. Make i810fb depend on X86 but not X86_64 6. Fixed typo in i810_init_monspecs(). Reported by Manuel Lauss . Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: find correct logo for directcolor < 24bpp Current algorithm does not choose correct logo type for directcolor < 24 bpp. It chooses logo_224, but this is too deep for bpp < 24. This should fix the problem. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rivafb: kill riva_chip_info and riva_chips Kill riva_chips_info and riva_chips and replace the NV_ARCH_ determination with a less error prone one. We better use the driver_data for something more interesting later. From: "Antonino A. Daplas" 1. modified patch so it's in -p1 form 2. killed compile warning when CONFIG_FB_RIVA_I2C is not set 3. changed U032 to u32 in riva_get_arch() Signed-of-by: Guido Guenther Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] include "compiler.h" in videodev.h This avoids compiler errors about undefined "__user" macros when including "videodev.h" in userspace applications. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev Kconfig dependency fixes radeonfb, rivafb and i810fb need CONFIG_FB_MODE_HELPERS. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Video Mode Handling - Linked list of video modes The patch adds support for a mode database in a linked list form. Included in the patch are exportable functions that will: a. convert struct fb_videomode to struct fb_var_screeninfo and vice versa b. search the mode list for matching or best-fit modes c. add/delete entries to the database d. convert a mode array to a mode list e. destroy the entire list d. compare 2 modes Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Video Mode Handling - Save per-display graphics/display settings This patch adds the following: a. convert struct fb_var_screeninfo to struct display and vice versa b. save settings of graphics card to struct display c. save settings of display to struct display as a pointer to a struct fb_videomode d. check var in fb_set_var for modes, and if unique, add them to the mode list. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Video Mode Handling - Delete entries from mode list This is optional but applying it should enhance fbdev functionality. The patch allows removal of entries to the mode list. This is done by setting the var->activate field to FB_ACTIVATE_INV_MODE. Only modes that are not in use by any of the console or by the current var will be deleted. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Video Mode Handling - Reduce memory footprint of fbdev This patch is entirely optional. Its only advantage is reduction of kernel size by ~5-6K. a. Mark modedb as __init. b. Add CONFIG_FB_MODE_HELPERS. Unselecting this will uninclude the code for Generalized Timing Formula and the EDID parser on kernel compilation. These are used only by radeonfb, rivafb and i810fb. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: do the deletion of mode entries at fbdev level If a request for deletion of an entry in the mode database is requested, do it at core fbdev level instead of doing it at the console level. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: support for bold attribute for monochrome framebuffers This patch adds support for the bold attribute for monochrome framebuffers. This fixes a regression from 2.4 where bold, underline and reverse attributes are supported. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: use 8-bit DAC for capable hardware The patch adds the ability for vesafb to switch the DAC from 6-bit to 8-bit at kernel boot. Besides fixing the failure to draw the 224-color logo, an 8-bit DAC will also provide a wider color range for user applications. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rivafb: directcolor mode and miscellaneous fixes Although the rivafb advertises its capability as DirectColor, the hardware is actually set in Truecolor (CLUT cannot be altered). This mismatch occasionally produces wrong colors, such as wrong logo colors at 32bpp and gamma utilities (such as xgamma) does not work at all. Changes: 1. Fixes the above problems by setting the hardware to accept changing of the CLUT. 2. Fixes color problems for NV_ARCH_03 (Riva128) 3. Build a private modelist from the EDID (for use by fbcon) 4. Mark several functions/data as __devinit/__initdata 5. Remove unused fields from struct riva_par Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] epson1355fb: salvage epson1355 code from James' tree This patch was submitted by James Hoover < ch@hpl.hp.com> to James a long time ago (2.5 development) which ports the epson driver to 2.6. Took the code from James tree to be hopefully included in the mm tree so it can get more testing. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] neofb: salvage neofb from James' tree Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sgivwfb: salvage sgivwfb from James' tree Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tdfxfb: salvage tdfxfb from James' tree Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] istallion: gcc-3.5 fixes CC drivers/char/istallion.o drivers/char/istallion.c: In function `stli_init': drivers/char/istallion.c:4603: sorry, unimplemented: inlining failed in call to 'stli_getbrdnr': function not considered for inlining drivers/char/istallion.c:4577: sorry, unimplemented: called from here drivers/char/istallion.c: At top level: drivers/char/istallion.c:422: warning: 'istallion_pci_tbl' defined but not used make[2]: *** [drivers/char/istallion.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mxser.c: gcc-3.5 fixes CC drivers/char/mxser.o drivers/char/mxser.c: In function `mxser_interrupt': drivers/char/mxser.c:352: sorry, unimplemented: inlining failed in call to 'mxser_receive_chars': function body not available drivers/char/mxser.c:1347: sorry, unimplemented: called from here drivers/char/mxser.c:354: sorry, unimplemented: inlining failed in call to 'mxser_check_modem_status': function body not available drivers/char/mxser.c:1350: sorry, unimplemented: called from here drivers/char/mxser.c:353: sorry, unimplemented: inlining failed in call to 'mxser_transmit_chars': function body not available drivers/char/mxser.c:1355: sorry, unimplemented: called from here make[2]: *** [drivers/char/mxser.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio-maestro.c: gcc-3.5 fixes CC drivers/media/radio/radio-maestro.o drivers/media/radio/radio-maestro.c: In function `maestro_radio_init': drivers/media/radio/radio-maestro.c:273: sorry, unimplemented: inlining failed in call to 'radio_install': function body not available drivers/media/radio/radio-maestro.c:291: sorry, unimplemented: called from here drivers/media/radio/radio-maestro.c:273: sorry, unimplemented: inlining failed in call to 'radio_install': function body not available drivers/media/radio/radio-maestro.c:295: sorry, unimplemented: called from here make[3]: *** [drivers/media/radio/radio-maestro.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] inlining errors in drivers/scsi/aic7xxx/aic79xx_osm.c This patch fixes the following build error (in 2.6.8-rc2-mm1) when using gcc 3.4.0 drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_dv_transition': drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3070: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3093: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3144: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3257: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3288: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3317: sorry, unimplemented: called from here It first removes a duplicate forward declaration of ahd_linux_dv_fallback and then moves the function before its first use so inlining can succeed. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix inline related gcc 3.4 build failures in drivers/net/wan/dscc4.c drivers/net/wan/dscc4.c: In function `dscc4_found1': drivers/net/wan/dscc4.c:369: sorry, unimplemented: inlining failed in call to 'dscc4_set_quartz': function body not available drivers/net/wan/dscc4.c:898: sorry, unimplemented: called from here Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext2_readdir() filp->f_pos fix If the whole directory is read, ext2_readdir() sets the f_pos to a multiple of the page size (because of the conditions of the outer for loop). This sets the wrong f_pos for directory inodes on ext2 partitions with a block size differing from the page size. Signed-off-by: Jan Blunck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] do_general_protection doesn't disable irq A trap gate shouldn't affect the irq status at all, so we don't need to test whether the trapping code had interrupts enabled. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] proc_pid_cmdline() race fix If you win the race with a starting process, you can read its environment. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Support for Exar XR17C158 Octal UART Here's a minimal patch to support the Exar Corp. XR17C158 Octal UART Chip (PCI). Signed-off-by: Raphael Zimmerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Altix system controller communication driver drivers/char/Kconfig Make a config option for the SGI Altix system controller communication driver. drivers/char/Makefile Add an object file target for the SGI Altix system controller communication driver. drivers/char/snsc.c This file implements a driver that allows an application to communicate with the SGI Altix system controller network. Most of the heavy lifting is done in SAL in order to allow Linux run-time applications to share the system controller link(s) with SAL run-time services. drivers/char/snsc.h Macros and data types for the Altix system controller driver (drivers/char/snsc.c). drivers/serial/sn_console.c Modify the SGI Altix console driver to share an interupt with the system controller communication driver. include/asm-ia64/sn/sn_sal.h Provide an interface to the SAL runtime services that allow the kernel or user applications to send/receive arbitary system controller data. Signed-off-by: Greg Howard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] move duplicate BUG and WARN_ON bits to asm-generic This moves duplicate BUG, PAGE_BUG, BUG_ON, and WARN_ON code to asm-generic and makes them slightly more consistent. This cleanup is also preparatory work for making BUG and WARN verbosity configurable. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix CON_BUF_SIZE usage Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vprintk support Add vprintk call. This lets us directly pass varargs stuff to the console without using vsnprintf to an intermediate buffer. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vprintk for ext2 errors Kill error_buf madness in ext2 Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vprintk for ext3 errors Kill error_buf madness in ext3 Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] prio_tree: kill vma_prio_tree_init() vma_prio_tree_insert() relies on the fact, that vma was vma_prio_tree_init()'ed. Content of vma->shared should be considered undefined, until this vma is inserted into i_mmap/i_mmap_nonlinear. It's better to do proper initialization in vma_prio_tree_add/insert. Signed-off-by: Oleg Nesterov Signed-off-by: Rajesh Venkatasubramanian Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] prio_tree: iterator + vma_prio_tree_next cleanup Currently we have: while ((vma = vma_prio_tree_next(vma, root, &iter, begin, end)) != NULL) do_something_with(vma); Then iter,root,begin,end are all transfered unchanged to various functions. This patch hides them in struct iter instead. It slightly lessens source, code size, and stack usage. Patch compiles and tested lightly. Signed-off-by: Oleg Nesterov Signed-off-by: Rajesh Venkatasubramanian Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RCU - cpu-offline-cleanup There is a series of patches in my tree and these 3 are the first ones that should probably be merged down the road. Descriptions are on top of the patches. Please include them in -mm. A lot of RCU code will be cleaned up later in order to support call_rcu_bh(), the separate RCU interface that considers softirq handler completion a quiescent state. This patch: Minor cleanup of the hotplug code to remove #ifdef in cpu event notifier handler. If CONFIG_HOTPLUG_CPU is not defined, CPU_DEAD case will be optimized off. Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RCU - cpu offline fix This fixes the RCU cpu offline code which was broken by singly-linked RCU changes. Nathan pointed out the problems and submitted a patch for this. This is an optimal fix - no need to iterate through the list of callbacks, just use the tail pointers and attach the list from the dead cpu. Signed-off-by: Nathan Lynch Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RCU: low latency rcu This patch makes RCU callbacks friendly to scheduler. It helps low latency by limiting the number of callbacks invoked per tasklet handler. Since we cannot schedule during a single softirq handler, this reduces size of non-preemptible section significantly, specially under heavy RCU updates. The limiting is done through a kernel parameter rcupdate.maxbatch which is the maximum number of RCU callbacks to invoke during a single tasklet handler. Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: clean up code Avoids per_cpu calculations and also prepares for call_rcu_bh(). At OLS, Rusty had suggested getting rid of many per_cpu() calculations in RCU code and making the code simpler. I had already done that for the rcu-softirq patch earlier, so I am splitting that into two patch. This first patch cleans up the macros and uses pointers to the rcu per-cpu data directly to manipulate the callback queues. This is useful for the call-rcu-bh patch (to follow) which introduces a new RCU mechanism - call_rcu_bh(). Both generic and softirq rcu can then use the same code, they work different global and percpu data. Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: fix spaces in rcupdate.h Somehow spaces replaced tabs in rcupdate.h and I would like to keep everything clean. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: introduce call_rcu_bh() Introduces call_rcu_bh() to be used when critical sections are mostly in softirq context. This patch introduces a new api - call_rcu_bh(). This is to be used for RCU callbacks for whom the critical sections are mostly in softirq context. These callbacks consider completion of a softirq handler to be a quiescent state. So, in order to make reader critical sections safe in process context, rcu_read_lock_bh() and rcu_read_unlock_bh() must be used. Use of softirq handler completion as a quiescent state speeds up RCU grace periods and prevents too many callbacks getting queued up in softirq-heavy workloads like network stack. Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: use call_rcu_bh() in route cache Use call_rcu_bh() in route cache. This allows faster grace periods and avoids dst cache overflows during DoS testing. This patch uses the call_rcu_bh() api in route cache code to facilitate quicker RCU grace periods. Quicker grace periods avoid overflow of dst cache in heavily loaded routers as seen in Robert Olsson's testing. Signed-off-by: Dipankar Sarma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: document RCU api Patch from Paul for additional documentation of api. Updated based on feedback, and to apply to 2.6.8-rc3. I will be adding more detailed documentation to the Documentation directory in a separate patch. Signed-off-by: Paul McKenney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rcu: abstracted RCU dereferencing Use abstracted RCU API to dereference RCU protected data. Hides barrier details. Patch from Paul McKenney. This patch introduced an rcu_dereference() macro that replaces most uses of smp_read_barrier_depends(). The new macro has the advantage of explicitly documenting which pointers are protected by RCU -- in contrast, it is sometimes difficult to figure out which pointer is being protected by a given smp_read_barrier_depends() call. Signed-off-by: Paul McKenney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha: print the symbol of pc and ra during Oops The below patch add the symbol information of the pc and ra to the Oops message. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] token based thrashing control The following experimental patch implements token based thrashing protection, using the algorithm described in: http://www.cs.wm.edu/~sjiang/token.htm When there are pageins going on, a task can grab a token, that protects the task from pageout (except by itself) until it is no longer doing heavy pageins, or until the maximum hold time of the token is over. If the maximum hold time is exceeded, the task isn't eligable to hold the token for a while more, since it wasn't doing it much good anyway. I have run a very unscientific benchmark on my system to test the effectiveness of the patch, timing how a 230MB two-process qsbench run takes, with and without the token thrashing protection present. normal 2.6.8-rc6: 6m45s 2.6.8-rc6 + token: 4m24s This is a quick hack, implemented without having talked to the inventor of the algorithm. He's copied on the mail and I suspect we'll be able to do better than my quick implementation ... Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Writeback page range hint Modify mpage_writepages to optionally only write back dirty pages within a specified range in a file (as in the case of O_SYNC). Cheat a little to avoid changes to prototypes of aops - just put the hint into the writeback_control struct instead. If are not set, then default to writing back all the mapping's dirty pages. Signed-off-by: Suparna Bhattacharya Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix writeback page range to use exact limits wait_on_page_writeback_range shouldn't wait for pages beyond the specified range. Ideally, the radix-tree-lookup could accept an end_index parameter so that it doesn't return the extra pages in the first place, but for now we just add a few extra checks to skip such pages. Signed-off-by: Suparna Bhattacharya Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mpage writepages range limit fix Safeguard to make sure we break out of pagevec_lookup_tag loop if we are beyond the specified range. Signed-off-by: Suparna Bhattacharya Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] filemap_fdatawrite range interface Range based equivalent of filemap_fdatawrite for O_SYNC writers (to go with writepages range support added to mpage_writepages). If both and are zero, then it defaults to writing back all of the mapping's dirty pages. Signed-off-by: Suparna Bhattacharya Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Concurrent O_SYNC write support In databases it is common to have multiple threads or processes performing O_SYNC writes against different parts of the same file. Our performance at this is poor, because each writer blocks access to the file by waiting on I/O completion while holding i_sem: everything is serialised. The patch improves things by moving the writing and waiting outside i_sem. So other threads can get in and submit their I/O and permit the disk scheduler to optimise the IO patterns better. Also, the O_SYNC writer only writes and waits on the pages which he wrote, rather than writing and waiting on all dirty pages in the file. The reason we haven't been able to do this before is that the required walk of the address_space page lists is easily livelockable without the i_sem serialisation. But in this patch we perform the waiting via a radix-tree walk of the affected pages. This cannot be livelocked. The sync of the inode's metadata is still performed inside i_sem. This is because it is list-based and is hence still livelockable. However it is usually the case that databases are overwriting existing file blocks and there will be no dirty buffers attached to the address_space anyway. The code is careful to ensure that the IO for the pages and the IO for the metadata are nonblockingly scheduled at the same time. This is am improvemtn over the current code, which will issue two separate write-and-wait cycles: one for metadata, one for pages. Note from Suparna: Reworked to use the tagged radix-tree based writeback infrastructure. Signed-off-by: Suparna Bhattacharya Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: force server-side TCP when NFSv4 enabled NFSv4 should really run over TCP, and clients will expect that; so there's no point letting people build kernels that support NFSv4 without also supporting server-side TCP. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: nfsd is missing a put_group_info in the auth_null nfsd is missing a put_group_info in the auth_null case. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: make cache_init initialize reference count to 1 Presumably anyone creating a new cache entry is going to want a reference on that cache; and indeed every caller of cache_init increments the reference count immediately afterwards. So may as well make cache_init set an initial reference count of 1. Also, note that cache_init initializes the flags; callers don't need to. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: simplify auth_domain_lookup The interface between the auth_domain and the cache code is messy; the auth_domain code is the only real user of the full 11-argument DefineCacheLookup, and does weird stuff with it (like passing in through one of the arguments a bit of code with a conditional return). We could further parametrize DefineCacheLookup, but I think it's already too complicated. My solution is to just ignore DefineCacheLookup and write the auth_domain_lookup function from scratch. It's actually a pretty short function (much simpler than DefineCacheLookup itself), and it's much easier to read this short function than it is to read some special-cased DefineCacheLookup to verify that it does what it says it does.... Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: fix ip_map cache reference count leak. Fix a leak: when auth_unix_lookup sets CACHE_NEGATIVE, it should also auth_domain_put() the reference it holds in ipm->m_client, since setting CACHE_NEGATIVE prevents ip_map_put() from putting the reference itself. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: basic v4 ACL definitions Basic v4 acl definitions, to be used by server ACL implementation Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: POSIX<->NFSv4 acl translation for nfsd Code to translate between Linux's POSIX ACLs and NFSv4 ACLs. Since NFSv4 ACLs are fundamentally richer, we are able to translate any POSIX ACL to NFSv4, but can only map NFSv4 ACLs that follow a certain format; see http://www.citi.umich.edu/u/marius/draft-eriksen-nfsv4-acl-02.txt for details of the mapping. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: ACL support for the NFSv4 server Server-side support for the limited portion of the NFSv4 ACL protocol necessary to support POSIX ACLs. Will return an error on an attempt to set any ACL that doesn't map to a POSIX ACL. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kNFSd: fix brokenness with fsid= export option Bruce Allan says: The user-specified fsid= export option still doesn't work after the changes made 5 months ago. Below is a patch against 2.6.7 through the recent 2.6.8-rc2-bk13. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kNFSd: get rid of open_private_file This is only used by nfsd to save one kmalloc, and the code is not always kept up-to-date with dentry_open, so just get rid of it. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kNFSd: minor memory leak fix. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kNFSd: fix two xdr-encode bugs for readdirplus reply More fall-out from the change to allow multi-page replies to readdir requests. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kNFSd: fix race with flushing nfsd cache. To purge an nfsd-authentication cache, we set the flush time to later than last-refresh time in the cache and call cache_flush. The easiest way to find 'later than last-refresh' is 'now+1'. This has two problems. 1/ if the time-of-day clock has gone bacwards, some entries might not be purged 2/ if a new entry is added in the same second as cache_purge ran, it will get ignored. To resolve these issues, we set the flushtime to the maximum possible time before calling cache_flush, and then set it back to the minimum time afterwards. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: fix server permission handling Fix a problem wherein device nodes on a ro-exported mount cannot be opened read/write. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdrom event notification fixes A few fixes related to cdrom media event notification. These are from Alexander Kern Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] new device driver to enable the IBM Multiport Serial Adapter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kill UDF registration/unregistration messages This patch kills two printks from UDF that announce its registration and unregistration. Since one can determine which filesystems are present by examining /proc/filesystems, these messages strike me as noise. Signed-off-by: Sean Neakums Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc: remove undefined symbol Nuke the real undefined symbol in sparc32. This is the only real hit from ldchk on sparc32; the rest are all btfixup-related (Sam Ravnborg and I are working on addressing that). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nbd: fix struct request race condition Here's a patch to fix a race condition in nbd that was causing struct request corruption (requests were being freed while still in use). This patch improves on the previous one, which admittedly was a bit dodgy, using struct request's ref_count field (I should have listened to Jens in the first place :). This should fix all the corner cases related to struct request usage/freeing in nbd. My stress tests do a lot better with this patch applied. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IPMI Watchdog handling updates Makes the IPMI watchdog more consistent with the other watchdog drivers. I have tested this and it seems to work correctly. I also added docs for the interface change. - support disabling watchdog by writing 'V' to device. - unify printk() - use atomic bit operations on ipmi_wdog_open Signed-off-by: Arkadiusz Miskiewicz Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IPMI driver updates Some people found some bugs and some missing functions in the IPMI driver, so I have patching things together for the next release. The attached patch moves to version 33 of the driver and contains: * SMBIOS table support for specifying register spacing. This allows non-contiguous registers to be specified and some machines do this. * ACPI table updates to support all the possible register sizes and bit offsets into the registers for the IPMI information. * Support for command line parameters to specify register spacing, sizes, and bit offsets. * Support for power control with IPMI. This allows a halt to power down a machine with IPMI. * A fix for a race condition with interrupts enabled on an SMP machine. A lock was released then reclaimed, but there was code later that assumed that had not happened. * A fix for protecting the driver against bad responses from the controller chip. In the past, the driver had assumed that the controller chip would not give it bad data. This has turned out to be a bad assumption * ACPI interrupt handlers now return a return value, adjust accordingly. Thank you to all the people who helped me with this. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] direct-io: size the BIOs more accurately We're being lazy when calculating the size of the needed BIO, allocating two extra pages to cope with funny alignments. Change that to be exact, thus allocating smaller BIOs someties. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] DIO pages-in-io accounting fix I found one more accounting inconsistency with dio_pages_in_io. This is a day-one bug and I started hitting it on latest -mm due to the recent changes to dio_pages_in_io calculations to be exact. If the file is badly fragmented (no contiguous blocks at all), and the user buffer is not page aligned - we need to create IO for each disk block with 2 pages. (bio with 2 vecs). dio_bio_add_page() should not decrement dio_pages_in_io for every add page. It should only decrement, it only if its done with that page and moving on to next page. (since dio_pages_in_io represent how many actual pages we are operating on). Here is the patch to fix this accounting. Without this patch, we will hit BUG() in dio_new_bio() with O_DIRECT on filesystems. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark IS_ERR as unlikely() It seems fair to assume that it is always unlikely that IS_ERR will return true. This patch changes the gcc-3.4-generated kernel text by ~500 bytes (less) so it's fair to assume that the compiler is indeed propagating unlikeliness out of inline functions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IS_ERR() unlikeliness cleanup Remove now-unneeded open-coded unlikelies around IS_ERR(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix netpoll cleanup on abort without dev If netpoll attempts to use a device without polling support, it will oops when shutting down. This adds a check that we've actually attached to a device. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] aio.c: rename 'struct timeout' to 'struct aio_timeout' This patch renames fs/aio.c:'struct timeout' to 'struct aio_timeout'. The rationale behind this decision is this type is used only inside the aforementioned aio.c file and being the type name very generic, it is likely to cause namespace conflicts in the future. I actually found it while working on an extended schedule_timeout()- like API used by robust mutexes but usable by anyone. There I declared a 'struct timeout' and aio.c complained about it. I could have also renamed the struct for the schedule_timeout() like API, but being the aio.c one specific to the file, I thought it might make more sense to rename the later. Signed-off-by: Inaky Perez-Gonzalez Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix compiling oldconfig with gcc-3.5 fix compiling oldconfig with gcc-3.5: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix might-sleep-in-atomic while dumping elf Here is a patch to fix a problem of might-sleep-in-atomic which David Mosberger mentioned at http://www.gelato.unsw.edu.au/linux-ia64/0407/10526.html On IA64 platform, a might-sleep-in-atomic warning raise while dumping a multi-thread process. That is because elf_core_dump holds the tasklist_lock before the kernel does a access_process_vm in elf_core_copy_task_regs, This patch detached elf_core_copy_task_regs function from inside tasklist_lock to remove the warning. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] awe_wave (OSS): too much __exit 'make buildcheck' indicates that these functions should not be in an __exit section, so undo that. Yes, they can be called from .text. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mark LOOP_CHANGE_FD as an ULONG compat ioctl LOOP_CHANGE_FD is an ULONG compatible ioctl, basically same calling convention as LOOP_SET_FD; mark it as such in the compat ioctl list. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: simplify recent fixes Ok I have enclosed the results for the recent readahead fixes. The summary is: there is no significant improvement or decrease in performance of (DSS workload, iozone, sysbench) The increase or decrease is in the margin of errors. I have enclosed a patch that partially backs off Miklos's fix. Shane Shrybman correctly pointed out that the real fix is to set ra->average value to max/2 when we move from readahead-off mode to readahead-on mode. The other part of Miklos's fix becomes irrelevent. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead fixes Here is a consolidated readahead patch that takes care of the performance regression seen with multiple threaded writes to the same file descriptor. The patch does the following: 1. Instead of calculating the average count of sequential access in the read patterns, it calculates the average amount of hits in the current window. 2. This average is used to guide the size of the next current window. 3. Since the field serial_cnt in the ra structure does not make sense with the introduction of the new logic, I have renamed that field as currnt_wnd_hit. This patch will help the read patterns that are not neccessarily sequential but have sufficient locality. However it may regress random workload. Results: 1. Berkley Shands has reported great performance with this patch. 2. iozone showed negligible effect on various read patterns. 3. DSS workload saw neglible change. 4. Sysbench saw a small improvement. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rlimit-based mlocks for unprivileged users Here is the last agreed-on patch that lets normal users mlock pages up to their rlimit. This patch addresses all the issues brought up by Chris and Andrea. From: Chris Wright Couple more nits. The default lockable amount is one page now (first patch is was 0). Why don't we keep it as 0, with the CAP_IPC_LOCK overrides in place? That way nothing is changed from user perspective, and the rest of the policy can be done by userspace as it should. This patch breaks in one scenario. When ulimit == 0, process has CAP_IPC_LOCK, and does SHM_LOCK. The subsequent unlock or destroy will corrupt the locked_shm count. It's also inconsistent in handling user_can_mlock/CAP_IPC_LOCK interaction betwen shm_lock and shm_hugetlb. SHM_HUGETLB can now only be done by the shm_group or CAP_IPC_LOCK. Not any can_do_mlock() user. Double check of can_do_mlock isn't needed in SHM_LOCK path. Interface names user_can_mlock and user_substract_mlock could be better. Incremental update below. Ran some simple sanity tests on this plus my patch below and didn't find any problems. * Make default RLIM_MEMLOCK limit 0. * Move CAP_IPC_LOCK check into user_can_mlock to be consistent and fix but with ulimit == 0 && CAP_IPC_LOCK with SHM_LOCK. * Allow can_do_mlock() user to try SHM_HUGETLB setup. * Remove unecessary extra can_do_mlock() test in shmem_lock(). * Rename user_can_mlock to user_shm_lock and user_subtract_mlock to user_shm_unlock. * Use user instead of current->user to fit in 80 cols on SHM_LOCK. Signed-off-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] increase per-user mlock limit default to 32k Since various gnupg users have indicated that gpg wants to mlock 32kB of memory, I created the patch below that increases the default mlock ulimit to 32kB. This is no security problem because it's trivial for processes to lock way more memory than this in page tables, network buffers, etc. In fact, since this patch allows gnupg to mlock to prevent passphrase data from being swapped out, the security people will probably like it ;) This gets the new per-user mlock limit a bit more testing, too. Signed-off-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix gcc 3.5 compile issue in mm/mempolicy.c Fix another gcc 3.5 compile issue, this time the default_policy prototype was not marked static whereas the definition was. There is no need for the prototype, so remove it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: fixes to 32/64-bit conversions This patch fixes our usage of copy_to_user. We were passing in the size of the address rather than the size of the struct. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: zero out buffer in passthru ioctls for HP utilities This patch addresses a problem with our utilities. We must zero out the buffer before copying their data into it to prevent bogus info when switching between SCSI & SATA or SAS drives. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: /proc fixes This patch fixes our output in /proc to display the logical volume sizes and RAID levels correctly. Without this patch RAID level will always be 0 and size may be displayed as 0GB. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: cylinder calculation fix This patch fixes our cylinder calculations. Without his fix the number of cylinders maxes out at 65535. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: id change for V100 controller This patch fixes the vendor ID for our cciss based SATA controller due out later this year and adds the new PCI ID to pci_ids.h. Also changes DRIVER_NAME to HP CCISS. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: V100 PCI ID fix again Somehow I managed to get the wrong PCI ID in pci_ids.h. 3210 is the correct PCI ID, 3211 is the subsystem ID. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: pdev->intr fix This patch fixes our usage of pdev->intr. We were truncating it to an unchar. We were also reading it before calling pci_enable_device. This patch fixes both of those. Thanks to Bjorn Helgaas for the patch. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss: read_ahead bumped to 1024 This patch changes our read_ahead to 1024. This has been shown to increase performance. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss update 8 maintainers update for HP This patch updates the maintainers list for HP drivers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cciss /proc dependency fix cciss uses /proc to hook into the SCSI subsystem. If you do not build /proc support into your kernel then you should also disable tape support in the driver. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CRC16 renaming in VIA Velocity ethernet driver Signed-off-by: Andrey Panin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] net/Kconfig crc16 warning fix drivers/net/Kconfig:1749:warning: 'select' used by config symbol 'VIA_VELOCITY' We renamed CONFIG_CRC16. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds KREF: make kref_get() return void as it makes sense to do so. Thanks to Kiran for bugging me to do this. Signed-off-by: Greg Kroah-Hartman [PATCH] update SG_IO command table Here's a better table of acceptable commands, I've added some more commands. Should be pretty complete from the cd/dvd side now. [PATCH] More HPT374 driver merge woes There's a misplaced check returning error for hpt_minimum_revision(dev,8) == TRUE still there, making the previous fixes useless for the early revision HPT cards. This fixes it. Run 'indent' on BusLogic driver to keep Alan sane. He got the "privilege" of cleaning the driver up, and to keep everybody happy, indent it sanely first. This is the result of: indent -kr -i8 -bri0 -l255 BusLogic.c BusLogic.h [PATCH] Fix posix file locking (1/9) VFS: Fix up posix_same_owner() so that it only uses the file_lock->fl_owner field when determining lock equality. VFS: Fix up posix locking routines to use posix_same_owner() instead of rolling their own checks. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (2/9) VFS: Enable filesystems and to hook certain functions for copying and freeing locks using the new struct file_lock_operations. VFS: Enable lock managers (i.e. lockd) to hook functions for comparing lock ownership using the new struct lock_manager_operations. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (3/9) NFSv4 server: fix locking code to use new posix locking callbacks. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (4/9) NLM: fix lockd to use the new posix locking callbacks. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (5/9) NLM: file_lock->fl_owner may live for longer than the pid of the original process that created it. Fix NFSv2/v3 client locking code to map file_lock->fl_owner into a unique 32-bit number or "pseudo-pid". Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (6/9) VFS: get rid of the fl_notify, fl_insert, fl_remove fields from struct file_lock. They belong in the new lock_manager_operations structure. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (7/9) VFS,CIFS,NLM,NFSv4: make filesystems directly responsible for calling posix_lock_file() if they need it. This fixes an NFS race whereby in case of a server reboot, the recovery thread could re-establish a lock that had just been freed. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (8/9) VFS: Fix up documentation for the new locking interfaces. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] Fix posix file locking (9/9) NFSv2/v3: Fix up a race in the case where the user presses ^C while a process is in the middle of setting up a posix lock. In case the server registered our lock, we need to make sure that it gets cleaned up during the resulting file close(). Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [SPARC64]: Fix PCI IOMMU invalid iopte handling. Instead of marking them as invalid, point them at a dummy page. This handles buggy third-party bridges that erroneously prefetch sometimes. Signed-off-by: David S. Miller [SPARC64]: Revamped memcpy infrastructure. - Make it easier to maintain the Ultra-I vs. Ultra-III memcpy implementations. Before you had to maintain 3 different entire copies of the routines. - Kill %asi register writing Ultra-I single memcpy loop for both user and kernel. Was not worth it. - Simplify exception detection and handling enormously. Signed-off-by: David S. Miller [SPARC64]: Fix bugs in new U1memcpy code. - U1copy_from_user needs PREAMBLE since it uses explicit ASI_BLK_AIUS references. - Need to use EX_RETVAL() in U1memcpy.S - U1memcpy.S can load one 64-bit word too many, passing the source buffer boundary and thus potentially causing exceptions. Signed-off-by: David S. Miller [SPARC64]: Kill bogus __strlen symbol and strncmp inline cruft. Signed-off-by: David S. Miller [SPARC64]: Implement little-endian bitops using normal ones. Just like s390 and ppc64. Signed-off-by: David S. Miller [SPARC64]: Durrrr, missed signal handling fix from 2.4.x Passing sigcontext info in UREG_I2, as needed. I only spotted this because I was diffing 2.4.x and 2.6.x sparc64 code. Signed-off-by: David S. Miller [SPARC64]: Update defconfig. NLM: Fix a bug which causes a newly granted lock to be immediately unlocked on the server side if blocking has occurred. Signed-off-by: Trond Myklebust RPC: Reduce stack utilization for all synchronous NFS operations by using a dynamically allocated rpc_task structure instead of allocating one on the stack. This reduces stack utilization by over 200 bytes for all synchronous NFS operations. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust NFSv4: ask the server to send us more readdir records per RPC call. Currently we are wasting considerable amounts of space in the page cache. NFSv4: fix buffer overrun bugs that were being hidden by the above. Signed-off-by: Trond Myklebust RPC: Add missing variable initialization in rpc_clone_client(). Signed-off-by: Trond Myklebust NFSv3/v4: be more efficient when doing ACCESS RPC calls. Always ask for the full set of permissions. Signed-off-by: Trond Myklebust NFSv4: Optimizing away the case of negative dentries in nfs_open_revalidate() avoids several atomicity problems. Signed-off-by: Trond Myklebust NFSv4: Fix the symlink overflow bug. Signed-off-by: Trond Myklebust RPC: Improved buffer overrun checking in call_verify Signed-off-by: Trond Myklebust RPCSEC_GSS: Remove an unused parameter. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust NFSv4: OK, so it's trivial and probably superfluous, but I don't see why we shouldn't be slightly stricter here, so I'm just going to keep sending this until I'm told to stop.... Make sure that unmapped errors are approximately in the range of defined NFS4 errors. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust RPCSEC_GSS: Missing newline in dprintk. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust RPCSEC_GSS: Add the spkm3 common and client-side code. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust NFS: Break the nfs_wreq_lock into per-mount locks. This helps prevent a heavy read and write workload on one mount point from interfering with workloads on other mount points. Note that there is still some serialization due to the big kernel lock. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust NFS: Clean up the logic that handles recovery from a failed mount request. Get rid of nfs_put_super. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust NFS: In 2.4, NFS O_DIRECT used the VFS's O_DIRECT logic to provide direct I/O support for NFS files. The 2.4 VFS O_DIRECT logic was block based, thus the NFS client had to provide a minimum allowable blocksize for O_DIRECT reads and writes on NFS files. For various reasons we chose 512 bytes. In 2.6, there is no requirement for a minimum blocksize. NFS O_DIRECT reads and writes can go to any byte at any offset in a file. Thus we revert the blocksize setting for NFS file systems to the previous behavior, which was to advertise the "wsize" setting as the optimal I/O block size. This improves the performance of applications like 'cp' which use this value as their transfer size. This patch also exposes the server's reported disk block size in the f_frsize of the vfsstat structure. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust NFS: While the storage container for NFS file handles must be able to store 128 bytes, usually NFS servers don't use file handles that are more than 32 bytes in size. This patch creates an efficient mechanism for comparing file handles that ignores the unused bytes in a file handle. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust NFS: Now that file handle comparison ignores the unused parts of the file handle container, there is no longer any need to clear the file handle container before copying in a file handle. This allows us to remove a 128 byte memset() from several hot paths. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust KCONFIG: In the kernel help for NFSv3 & NFSv4 client support both are listed as "the newer version ... of the NFS protocol". Obviously both can't be the newer version at the same time, so here's a patch to correct the text in such a way that only v4 is listed as the newer version. Patch is against 2.6.7-rc3 - please consider including it. Signed-off-by: Jesper Juhl Signed-off-by: Trond Myklebust NFSv2: In the NFSv3 RFC, the sattr3 structure passed in the SETATTR call allows for the client to request that the mtime and/or atime of an inode be set to the current server time, the given (client) time, or not changed. The set-to-current-server value is used when you run "touch file" on the client. The NFSv2 RFC defines no such encoding for the sattr structure. However Solaris and Irix machine obey a convention where passing the invalid value mtime.useconds=1000000 means "set both mtime and atime to the current server time". The convention is documented in the book "NFS Illustrated" by Brent Callaghan. The patch below implements this convention for the Linux client and server (hence multiple To:s). Signed-off-by: Greg Banks Signed-off-by: Trond Myklebust Fix i2c-keywest compile Declare probe _before_ using it. Duh. NFSv4: Fix up the exception handling. Ensure we always handle NFS4ERR_DELAY properly. Signed-off-by: Trond Myklebust Don't use signed one-bit bitfields. We assign 0 and 1 to it, but since it's signed, that's actually already overflowing the poor thing. So make it unsigned, which is what it really was supposed to be in the first place. NFSv4: Clean up the reboot recovery. Ensure that we exclude stateful operations by using a per-server read/write semaphore. Signed-off-by: Trond Myklebust sparse: don't use signed single-bit bitfields. K&R used to make bitfields unsigned. That hasn't been true for a long long time.. NFSv4: On server reboot we need to recover byte-range locks. Signed-off-by: Trond Myklebust Fix up 0/NULL confusion NFSv4: Prime SETCLIENTID call for the delegation callback info. Signed-off-by: Trond Myklebust Remove pointless cast-as-lvalue usage from modedb.c It's evil, people. Don't use that particular gcc extension. I've yet to meet anybody who could read the resulting code and tell me what the heck it does. NFSv2/v3/v4: Place NFS nfs_page shared data into a single structure that hangs off filp->private_data. As a side effect, this also cleans up the NFSv4 private file state info. Signed-off-by: Trond Myklebust Use inline function instead of macro. This means we won't get any warnings about unused variables - they _are_ used in some configurations. NFSv4: More cleanups of the NFSv4 state. Signed-off-by: Trond Myklebust NFSv4: don't retry CREATE operations if the server returns NFS4ERR_DELAY on the GETATTR call. NFSv2/v3/v4: Make the rpc_ops->getattr method take a filehandle rather than an inode argument. Fix up nfs_instantiate() and _nfs4_do_open to use this since doing a new lookup might be racy. NFSv4: Basic code for managing delegation state. Signed-off-by: Trond Myklebust NFSv4: Add support for a delegation callback server. Signed-off-by: Trond Myklebust NFSv4: XDR cleanups in preparation for delegations. Signed-off-by: Trond Myklebust NFSv4: Further XDR cleanups in preparation for delegations. Signed-off-by: Trond Myklebust NFSv4: Service delegation recall requests from the server. Signed-off-by: Trond Myklebust NFSv4: More delegation recall code Signed-off-by: Trond Myklebust NFSv4: Recover delegations on server reboot. Signed-off-by: Trond Myklebust NFSv4: Delegated open. Signed-off-by: Trond Myklebust NFSv4: More aggressive caching if we have a delegation. Signed-off-by: Trond Myklebust NFSv4: return all delegations we hold if the server issues a NFS4ERR_CB_PATH_DOWN error. NFSv4: Enable delegations by actually telling the server about our recall ability. Signed-off-by: Trond Myklebust RPC,NFSv4: NFSv4 operations that create or destroy state on the server are not allowed to be interrupted as that may result in the client and server disagreeing. Use F_SETLK instead of F_SETLK64 in nfs locking code. The code doesn't actually _care_ about 32/64-bit issues, only about F_SETLK vs F_SETLKW, and the F_SETLK64 doesn't exist except as a compatibility thing on 64-bit architectures (since the regular one already _is_ 64-bit, of course). [PATCH] ppc64: fix enable_surveillance() for power5 On some platforms (notably power5) you can't enable surveillance (firmware/service processor watchdog) from the kernel - you have to do it in the firmware. This patch changes enable_surveillance() to make the message that is printed in this situation more informative. Additionaly, the rtas_call was changed to rtas_set_indicator so as to avoid having to handle RTAS_BUSY returns. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] ppc64: use struct list_head for hose_list This patch changes hose_list from a simple linked list to a "list.h"-style list. This is in preparation for the runtime addition/removal of PCI Host Bridges. Signed-off-by: John Rose Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds Linux 2.6.9-rc1 [PATCH] Remove struct bus_type->add() I recently went looking for users of the add() method in struct bus_type, only to discover that there are none. A query to Pat confirmed that it is surplus and should come out. So here's a patch that does it. While I was at it, I updated Documentation/driver-model/bus.txt to at least get rid of the blatantly untrue stuff; it is still rather far from being up to date, however. I may be able to fix that later on. Signed-off-by: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [CPUFREQ] Introduce some defines for the longhaul version, and use them. This makes some of the code quite a bit cleaner, and a lot more obvious whats going on on which CPUs. Signed-off-by: Dave Jones [CPUFREQ] Powersaver also has voltage scaling abilities. We currently don't do voltage scaling, but we can at least set things up to prepare for when we do. Signed-off-by: Dave Jones [CPUFREQ] Remove extraneous comment Signed-off-by: Dave Jones ppc32: Fix a compile error when CONFIG_PREP && !CONFIG_PREP_RESIDUAL Signed-off-by: Tom Rini ppc32: Fix a typo in cputable.c Signed-off-by: Tom Rini [CPUFREQ] Prettyprint longhaul speeds. If its >= 1000MHz print it as GHz. Signed-off-by: Dave Jones [AGPGART] via-agp.c resume/suspend support From: Arkadiusz Miskiewicz With this patch I'm able to suspend to disk (well, works even without patch) and resume (without it my laptop hangs (even sysrq is not working) while resuming). Signed-off-by: Arkadiusz Miskiewicz Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [CPUFREQ] Further cleanups to longhaul driver using defines. By defining the cpu type at startup, we can make a lot of comparisons a lot more obvious what they are meaning. Signed-off-by: Dave Jones [CPUFREQ] fix up random CodingStyle /whitespace regressions. Signed-off-by: Dave Jones [CPUFREQ] Samuel2 can use eblcr to determine FSB. From: Sven Traenkle. here's a patch that solves some issues I have with the longhaul cpufreq driver on my epia 6000CL/Via EDEN (actually reporting as CentaurHauls, family 6, model 7, VIA Samuel 2). The driver tries to compute the fsb speed while it could actually use the fixed values (as it does for model == 6). I got this change from the via forum, so no credits to me. Signed-off-by: Dave Jones [CPUFREQ] Fix reset-to-max-speed on unloading of longhaul driver. From: Sven Traenkle The second part adresses a problem of resetting the max cpu-freq when unloading the driver. This didn't work for my cpu and I doubt it does for other. There is no need to pass the computed index of the max. multiplier in the clock_ratio[] table to longhault_table[] cause the longhaul_setstate function works with the clock_ratio[] index. Changing the while loop to a for loop with upper limit isn't actually necessary as long as the driver is bug free, but thats IMHO not yet the case, so I suggest this change in order to not loop endlessly or read beyond the limits of the clock_ratio array. Signed-off-by: Dave Jones [CPUFREQ] Merge on-demand cpufreq policy governor. From: "Pallipadi, Venkatesh" Signed-off-by: Dave Jones [CPUFREQ] Work around some broken userspace daemons. Some daemons try to set the speed to the same speed we're currently running at. Detect that, and bail out early before we fiddle with registers and such. Signed-off-by: Dave Jones [PATCH] sched: fix timeslice calculations for HZ=1000. The main benefit is that with the default HZ=1000 nice +19 tasks now get 5 msecs of timeslices, so the ratio of CPU use is linear. (nice 0 task gets 20 times more CPU time than a nice 19 task. Prior this change the ratio was 1:10) another effect is that nice 0 tasks now get a round 100 msecs of timeslices (as intended), instead of 102 msecs. here's a table of old/new timeslice values, for HZ=1000 and 100: HZ=1000 ( HZ=100 ) old new ( old new ) nice -20: 200 200 ( 200 200 ) nice -19: 195 195 ( 190 190 ) ... nice 0: 102 100 ( 100 100 ) nice 1: 97 95 ( 90 90 ) nice 2: 92 90 ( 90 90 ) ... nice 17: 19 15 ( 10 10 ) nice 18: 14 10 ( 10 10 ) nice 19: 10 5 ( 10 10 ) i've tested the patch on x86. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: cleanup init_idle() Clean up init_idle to not use wake_up_forked_process, then undo all the stuff that call does. Instead, do everything in init_idle. Make double_rq_lock depend on CONFIG_SMP because it is no longer used on UP. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: cleanup, improve sched <=> fork APIs Move balancing and child-runs-first logic from fork.c into sched.c where it belongs. * Consolidate wake_up_forked_process and wake_up_forked_thread into wake_up_new_process, and pass in clone_flags as suggested by Linus. This removes a lot of code duplication and allows all logic to be handled in that function. * Don't do balance-on-clone balancing for vfork'ed threads. * Don't do set_task_cpu or balance one clone in wake_up_new_process. Instead do it in sched_fork to fix set_cpus_allowed races. * Don't do child-runs-first for CLONE_VM processes, as there is obviously no COW benifit to be had. This is a big one, it enables Andi's workload to run well without clone balancing, because the OpenMP child threads can get balanced off to other nodes *before* they start running and allocating memory. * Rename sched_balance_exec to sched_exec: hide the policy from the API. From: Ingo Molnar rename wake_up_new_process -> wake_up_new_task. in sched.c we are gradually moving away from the overloaded 'process' or 'thread' notion to the traditional task (or context) naming. Signed-off-by: Nick Piggin Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kernel thread idle fix Now that init_idle does not remove tasks from the runqueue, those architectures that use kernel_thread instead of copy_process for the idle task will break. To fix, ensure that CLONE_IDLETASK tasks are not put on the runqueue in the first place. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: misc cleanups #2 - fix two stale comments - cleanup Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: make rt_task unlikely From: Ingo Molnar RT tasks are unlikely, move this into rt_task() instead of open-coding it. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: sched misc changes Add some likely/unliklies, a for_each_cpu => for_each_cpu_online, and close the sched_exit race. From: Ingo Molnar fix a typo in a previous patch breaking RT scheduling & interactivity. Signed-off-by: Nick Piggin Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: disable balance on clone Don't balance on clone by default. Balance on clone has a number of trivial performance failure cases, but it was needed to get decent OpenMP performance on NUMA (Opteron) systems. Not doing child-runs-first for new threads also solves this problem in a nicer way (implemented in a previous patch). Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: remove balance on clone This removes balance on clone capability altogether. I told Andi we wouldn't remove it yet, but provided it is in a single small patch, he mightn't get too upset. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: fork hotplug hanling cleanup - remove the hotplug lock from around much of fork(), and re-copy the cpus_allowed mask to solve the hotplug race cleanly. Signed-off-by: Ingo Molnar Signed-off-by: Srivatsa Vaddagiri Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: consolidate sched domains Teach the generic domains builder about SMT, and consolidate all architecture specific domain code into that. Also, the SD_*_INIT macros can now be redefined by arch code without duplicating the entire setup code. This can be done by defining ARCH_HASH_SCHED_TUNE. The generic builder has been simplified with the addition of a helper macro which will probably prove to be useful to arch specific code as well and should be exported if that is the case. Signed-off-by: Nick Piggin From: Matthew Dobson The attached patch is against 2.6.8-rc2-mm2, and removes Nick's conditional definition & population of cpu_sibling_map[] in favor of my unconditional ones. This does not affect how cpu_sibling_map is used, just gives it broader scope. From: Nick Piggin Small fix to sched-consolidate-domains.patch picked up by From: Suresh another sched consolidate domains fix From: Nick Piggin Don't use cpu_sibling_map if !CONFIG_SCHED_SMT This one spotted by Dimitri Sivanich Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: limit cpuspan of node scheduler domains This patch limits the cpu span of each node's scheduler domain to prevent balancing across too many cpus. The cpus included in a node's domain are determined by the SD_NODES_PER_DOMAIN define and the arch specific sched_domain_node_span routine if ARCH_HAS_SCHED_DOMAIN is defined. If ARCH_HAS_SCHED_DOMAIN is not defined, behavior is unchanged--all possible cpus will be included in each node's scheduling domain. Currently, only ia64 provides an arch specific sched_domain_node_span routine. From: Jesse Barnes This patch adds some more NUMA specific logic to the creation of scheduler domains. Domains spanning all CPUs in a large system are too large to schedule across efficiently, leading to livelocks and inordinate amounts of time being spent in scheduler routines. With this patch applied, the node scheduling domains for NUMA platforms will only contain a specified number of nearby CPUs, based on the value of SD_NODES_PER_DOMAIN. It also allows arches to override SD_NODE_INIT, which sets the domain scheduling parameters for each node's domain. This is necessary especially for large systems. Possible future directions: o multilevel node hierarchy (e.g. node domains could contain 4 nodes worth of CPUs, supernode domains could contain 32 nodes worth, etc. each with their own SD_NODE_INIT values) o more tweaking of SD_NODE_INIT values for good load balancing vs. overhead tradeoffs From: mita akinobu Compile fix Signed-off-by: Jesse Barnes Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: isolated sched domains Here's a version of the isolated scheduler domain code that I mentioned in an RFC on 7/22. This patch applies on top of 2.6.8-rc2-mm1 (to include all of the new arch_init_sched_domain code). This patch also contains the 2 line fix to remove the check of first_cpu(sd->groups->cpumask)) that Jesse sent in earlier. Note that this has not been tested with CONFIG_SCHED_SMT. I hope that my handling of those instances is OK. Signed-off-by: Dimitri Sivanich Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Create cpu_sibling_map for PPC64 In light of some proposed changes in the sched_domains code, I coded up this little ditty that simply creates and populates a cpu_sibling_map for PPC64 machines. The patch just checks the CPU flags to determine if the CPU supports SMT (aka Hyper-Threading aka Multi-Threading aka ...) and fills in a mask of the siblings for each CPU in the system. This should allow us to build sched_domains for PPC64 with generic code in kernel/sched.c for the SMT systems. SMT is becoming more popular and is turning up in more and more architectures. I don't think it will be too long until this feature is supported by most arches... Signed-off-by: Matthew Dobson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: adjust p4 per-cpu gain The smt-nice handling is a little too aggressive by not estimating the per cpu gain as high enough for pentium4 hyperthread. This patch changes the per sibling cpu gain from 15% to 25%. The true per cpu gain is entirely dependant on the workload but overall the 2 species of Pentium4 that support hyperthreading have about 20-30% gain. P.S: Anton - For the power processors that are now using this SMT nice infrastructure it would be worth setting this value separately at 40%. Signed-off-by: Con Kolivas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] scheduler statistics It adds lots of CPU scheduler stats in /proc/pid/stat. They are described in the new Documentation//sched-stats.txt We were carrying this patch offline for some time, but as there's still considerable ongoing work in this area, and as the new stats are a configuration option, I think it's best that this capability be in the base kernel. Nick removed a fair amount of statistics that he wasn't using. The full patch gathers more information. In particular, his patch doesn't include the code to measure the latency between the time a process is made runnable and the time it hits a processor which will be key to measuring interactivity changes. He passed his changes back to me and I got finished merging his changes with the current statistics patches just before OLS. I believe this is largely a superset of the patch you grabbed and should port relatively easily too. Versions also exist for 2.6.8-rc2 2.6.8-rc2-mm1 2.6.8-rc2-mm2 at http://eaglet.rain.com/rick/linux/schedstat/patches/ and within 24 hours at http://oss.software.ibm.com/linux/patches/?patch_id=730&show=all The version below is for 2.6.8-rc2-mm2 without the staircase code and has been compiled cleanly but not yet run. From: Ingo Molnar this code needs a couple of cleanups before it can go into mainline: fs/proc/array.c, fs/proc/base.c, fs/proc/proc_misc.c: - moved the new /proc//stat fields to /proc//schedstat, because the new fields break older procps. It's cleaner this way anyway. This moving of fields necessiated a bump to version 10. Documentation/sched-stats.txt: - updated sched-stats.txt for version 10 - wake_up_forked_thread() => wake_up_new_task() - updated the per-process field description Kconfig: - removed the default y and made the option dependent on DEBUG_KERNEL. This is really for scheduler analysis, normal users dont need the overhead. include/linux/sched.h: - moved the definitions into kernel/sched.c - this fixes UP compilation and is cleaner. - also moved the sched-domain definitions to sched.c - now that the sched-domains internals are not exposed to architectures this is doable. It's also necessary due to the previous change. kernel/fork.c: - moved the ->sched_info init to sched_fork() where it belongs. kernel/sched.c: - wake_up_forked_thread() -> wake_up_new_task(), wuft_cnt -> wunt_cnt, wuft_moved -> wunt_moved. - wunt_cnt and wunt_moved were defined by never updated - added the missing code to wake_up_new_task(). - whitespace/style police - removed whitespace changes done to code not related to schedstats - i'll send a separate patch for these (and more). Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] move CONFIG_SCHEDSTATS to arch/ppc64/Kconfig.debug Otherwise it shows up under "iSeries device drivers", which doesn't seem right. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: consolidate init_idle() and fork_by_hand() It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: sparc32 fixes Fix up sparc32 properly. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] schedstat: UP fix SMP fix -- for_each_domain() is not defined if not CONFIG_SMP, so show_schedstat needed a couple of extra ifdefs. Signed-off-by: Rick Lindsley Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: whitespace cleanups - whitespace and style cleanups Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: nonlinear timeslices * Nick Piggin wrote: > Increasing priority (negative nice) doesn't have much impact. -20 CPU > hog only gets about double the CPU of a 0 priority CPU hog and only > about 120% the CPU time of a nice -10 hog. this is a property of the base scheduler as well. We can do a nonlinear timeslice distribution trivially - the attached patch implements the following timeslice distribution ontop of 2.6.8-rc3-mm1: [ -20 ... 0 ... 19 ] => [800ms ... 100ms ... 5ms] the nice-20/nice+19 ratio is now 1:160 - sufficient for all aspects. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: new task fix Rusty noticed that we update the parent ->avg_sleep without holding the runqueue lock. Also the code needed cleanups. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] permit sleeping in release_task() release_task() calls proc_pid_flush() call dput(), which can sleep. But that's a late-in-exit no-preempt path with CONFIG_PREEMPT. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: self-reaping atomicity fix disable preemption in the self-reap codepath, as such tasks may not be on the tasklist anymore and CPU-hotplug relies on the tasklist to migrate tasks. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: smt fixes while looking at HT scheduler bugreports and boot failures i discovered a bad assumption in most of the HT scheduling code: that resched_task() can be called without holding the task's runqueue. This is most definitely not valid - doing it without locking can lead to the task on that CPU exiting, and this CPU corrupting the (ex-) task_info struct. It can also lead to HT-wakeup races with task switching on that other CPU. (this_CPU marking the wrong task on that_CPU as need_resched - resulting in e.g. idle wakeups not working.) The attached patch against fixes it all up. Changes: - resched_task() needs to touch the task so the runqueue lock of that CPU must be held: resched_task() now enforces this rule. - wake_priority_sleeper() was called without holding the runqueue lock. - wake_sleeping_dependent() needs to hold the runqueue locks of all siblings (2 typically). Effects of this ripples back to schedule() as well - in the non-SMT case it gets compiled out so it's fine. - dependent_sleeper() needs the runqueue locks too - and it's slightly harder because it wants to know the 'next task' info which might change during the lock-drop/reacquire. Ripple effect on schedule() => compiled out on non-SMT so fine. - resched_task() was disabling preemption for no good reason - all paths that called this function had either a spinlock held or irqs disabled. Compiled & booted on x86 SMP and UP, with and without SMT. Booted the SMT kernel on a real SMP+HT box as well. (Unpatched kernel wouldn't even boot with the resched_task() assert in place.) Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 virtual memory layout rework Rework the i386 mm layout to allow applications to allocate more virtual memory, and larger contiguous chunks. - the patch is compatible with existing architectures that either make use of HAVE_ARCH_UNMAPPED_AREA or use the default mmap() allocator - there is no change in behavior. - 64-bit architectures can use the same mechanism to clean up 32-bit compatibility layouts: by defining HAVE_ARCH_PICK_MMAP_LAYOUT and providing a arch_pick_mmap_layout() function - which can then decide between various mmap() layout functions. - I also introduced a new personality bit (ADDR_COMPAT_LAYOUT) to signal older binaries that dont have PT_GNU_STACK. x86 uses this to revert back to the stock layout. I also changed x86 to not clear the personality bits upon exec(), like x86-64 already does. - once every architecture that uses HAVE_ARCH_UNMAPPED_AREA has defined its arch_pick_mmap_layout() function, we can get rid of HAVE_ARCH_UNMAPPED_AREA altogether, as a final cleanup. the new layout generation function (__get_unmapped_area()) got significant testing in FC1/2, so i'm pretty confident it's robust. Compiles & boots fine on an 'old' and on a 'new' x86 distro as well. The two known breakages were: http://www.redhatconfig.com/msg/67248.html [ 'cyzload' third-party utility broke. ] http://www.zipworld.com/au/~akpm/dde.tar.gz [ your editor broke :-) ] both were caused by application bugs that did: int ret = malloc(); if (ret <= 0) failure; such bugs are easy to spot if they happen, and if it happens it's possible to work it around immediately without having to change the binary, via the setarch patch. No other application has been found to be affected, and this particular change got pretty wide coverage already over RHEL3 and exec-shield, it's in use for more than a year. The setarch utility can be used to trigger the compatibility layout on x86, the following version has been patched to take the `-L' option: http://people.redhat.com/mingo/flexible-mmap/setarch-1.4-2.tar.gz "setarch -L i386 " will run the command with the old layout. From: Hugh Dickins The problem is in the flexible mmap patch: arch_get_unmapped_area_topdown is liable to give your mmap vm_start above TASK_SIZE with vm_end wrapped; which is confusing, and ends up as that BUG_ON(mm->map_count). The patch below stops that behaviour, but it's not the full solution: wilson_mmap_test -s 1000 then simply cannot allocate memory for the large mmap, whereas it works fine non-top-down. I think it's wrong to interpret a large or rlim_infinite stack rlimit as an inviolable request to reserve that much for the stack: it makes much less VM available than bottom up, not what was intended. Perhaps top down should go bottom up (instead of belly up) when it fails - but I'd probably better leave that to Ingo. Or perhaps the default should place stack below text (as WLI suggested and ELF intended, with its text defaulting to 0x08048000, small progs sharing page table between stack and text and data); with a further personality for those needing bigger stack. From: Ingo Molnar - fall back to the bottom-up layout if the stack can grow unlimited (if the stack ulimit has been set to RLIM_INFINITY) - try the bottom-up allocator if the top-down allocator fails - this can utilize the hole between the true bottom of the stack and its ulimit, as a last-resort effort. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flexmmap patchkit: fix for 32 bit emu for 64 bit arches Utz Lehmann found a problem with the flexmmap patches on x86-64, what he is seeing is that the 32 bit personality isn't set at the first point of setting the allocator strategy. The solution is simple, in binfmt_elf the personality is set so put the pick-layout function there. Please consider, Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sysctl tunable for flexmmap Create /proc/sys/vm/legacy_va_layout. If this is non-zero, the kernel will use the old mmap layout for all tasks. it presently defaults to zero (the new layout). From: William Lee Irwin III hugetlb CONFIG_SYSCTL=n fix Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flex mmap for s390(x) Below is a patch from Pete Zaitcev (zaitcev@redhat.com) to also use the flex mmap infrastructure for s390(x). The IBM Domino guys *really* seem to want this. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flexible-mmap for ppc64 From: Implement the new address space layout for 32-bit apps running on ppc64. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Uml base patch The main part of UML; it is the last distributed patch for 2.6.7 Removes skas support from the main UML patch; apply or get conflicts. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML: remove the COW block driver The code is still there but it's not built. Below is a patch which removes it totally. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML updates The patch below brings UML up to date with some changes in the rest of the kernel: an updated defconfig checksum.h includes in6.h to get a definition of in6_addr added a missing cpu_{set,clear} change removed include/asm-um/module.h since it's really a link Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: CPU scheduler update Update UML for CPU scheduler changes Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: rename console_device In the -mm tree (in this moment) and not in 2.6.7 there is another console_device in include/linux/console.h; so I renamed the UML one (it's static). Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Readds (just for now) ghash.h for UML Just for now and just for UML; it will go away. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Avoid that gcc breaks UML with "unit at a time" compilation mode. Avoid that gcc breaks UML with "unit at a time" compilation mode. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Fixes an host fd leak caused by hostfs. In detail, on 2.4 we used force_delete() to make sure inode were not cached, and we then close the host file when the inode is cleared; when porting to 2.6 the "force_delete" thing was dropped, and this patch adds a fix for this (by setting drop_inode = generic_delete_inode). Search for drop_inode in the 2.6 Documentation/filesystems/vfs.txt for info about this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Adds LEGACY_PTY config option The second adds the LEGACY_PTY config option. Without it, with late 2.6 kernels /dev/ptyxx won't work. In fact, with those kernels, root_fs_toms does not work, because it's "unable to allocate TTY pair". And removes the dead option "UNIX98_PTY_COUNT" (just commented out for now). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Makes "make help ARCH=um" work. Makes "make help ARCH=um" work. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Fixes "fixdep.c" to support arch/um/include/uml-config.h. You probably saw that if you change one config option, even if linux/autoconf.h (which is included by everything) changes, the kernel is smart enough not to recompile everything. But with UML this no more holds. Why? Because, as you see in this patch, fixdep avoids making anything depend onto linux/autoconf.h *explicitly*, but nobody taught him to do the same for arch/um/include/uml-config.h. So apply this patch. Do not say "I don't want to change the generic Kbuild for one arch": this cannot hurt. It's a bugfix for us, a no-op for others. Note: with this patch, fixdep will still add a dependency from a file containing UML_CONFIG_BYE onto CONFIG_BYE. Since someone could think that fixdep should grep for [^A-Z_]CONFIG_ rather than simply for CONFIG_, I've added a comment that ask *not to fix* this "bug". Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Kill useless warnings Fixes some little warnings about "Defined but not used ..." by #ifdef'ing things Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Avoids compile failure when host misses tkill(). Avoids compile failure when host misses tkill(), by simply using kill() in that case. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Reduces code in *_user files, by moving it in _kern files if already possible. Reduces code in *_user files, by moving it in _kern files if already possible. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Fixes raw() and uses it in check_one_sigio; also fixes a silly panic (EINTR returned by call). Fixes raw() and uses it in check_one_sigio; also fixes a silly panic (EINTR returned by call). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Folds hostaudio_user.c into hostaudio_kern.c. Folds hostaudio_user.c into hostaudio_kern.c. A lot of code less. Also note that I no more update ppos(as I used to do in the 2.4 patch): I checked that OSS never changes ppos, so hostaudio did the right thing. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Use PTRACE_SCEMU (the so-called SYSEMU) to reduce syscall cost. Turns off syscall emulation patch for ptrace (SYSEMU) on. SYSEMU is a performance-patch introduced by Laurent Vivier. It changes behaviour of ptrace() and helps reducing host context switch rate. To make it working, you need a kernel patch for your host, too. See http://perso.wanadoo.fr/laurent.vivier/UML/ for further information. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Adds the "nosysemu" command line parameter to disable SYSEMU Adds the "nosysemu" command line parameter to disable SYSEMU Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Adds /proc/sysemu to toggle SYSEMU usage. Adds /proc/sysemu to toggle SYSEMU usage. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Fix for sysemu patches - Correct some silly errors (dereferencing a pointer before checking if it's != NULL when creating /proc/sysemu, some error messages) - separate using_sysemu from sysemu_supported (so to refuse to activate sysemu if it is not supported, avoiding panics) - not probe sysemu if in tt mode. Signed-off-by: Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Handles correctly errno == EINTR in lots of places. On various places (mostly waitpid() calls) this patch makes sure that if errno == EINTR on return, then the syscall is endlessly retried. It also defines a simple generic way to do this. Signed-off-by: Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Adds some exports Adds some exports Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [CPUFREQ] Fix silly typo that broke the compile. Signed-off-by: Dave Jones [PATCH] uml: Avoids a panic for a legal situation From: Alex Züpke , and me SKAS mode is like 4G/4G (here we have actually 3G/3G) for guest processes, so when checking for kernel stack overflow, we must first make sure we are checking a kernel-space address. Also, correctly test for stack overflows (i.e. check if there is less than 1k of stack left; see arch/i386/kernel/irq.c:do_IRQ()). And also, THREAD_SIZE != PAGE_SIZE * 2, in general (though this setting is almost never changed, so we didn't notice this1). Thanks to the good eye of Alex Züpke for first seeing this bug, and providing a test program: /* * trigger.c - triggers panic("Kernel stack overflow") in UML * * 20040630, azu@sysgo.de */ #include #include #include #include #include #include #include #define LOW 0xa0000000 #define HIGH 0xb0000000 int main(int argc, char **argv) { unsigned long addr; int fd; fd = open("/dev/zero", O_RDWR); printf("This may take some time ... one more cup of coffee ...\n"); for(addr = LOW; addr < HIGH; addr += 0x1000) { pid_t p; if(mmap((void*)addr, 0x1000, PROT_READ, MAP_SHARED | MAP_FIXED, fd, 0) == MAP_FAILED) printf("mmap failed\n"); p = fork(); if(p == -1) printf("fork failed\n"); if(p == 0) { /* child context */ int *p = (int *)addr; volatile int x; x = *p; return 0; } /* father context */ waitpid(p, 0, 0); if(munmap((void*)addr, 0x1000) == -1) printf("munmap failed\n"); } close(fd); printf("done\n"); } Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Removes dead code in trap_kern.c That code comes from the out_of_memory section; in 2.4 it was correct to put it for "default:", since it was called when handle_mm_fault() return value was != 0, 1, 2, i.e. it was 3, OOM (but the i386 code put it out of line, for better performance). Here, instead, the OOM case is handled on its own, so if handle_mm_fault() != from the listed cases we must BUG(). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Make malloc() call vmalloc if needed. Needed for hostfs on 2.6 host. From: Oleg Drokin , Jeff Dike , and me If size > 128K, with this patch malloc will call vmalloc; free will detect whether to call vfree or kfree or __real_free(). The 2.4 version could forget free()ing something; this has been fixed. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: little-kmalloc Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Fix os_process_pc and os_process_parent for corner cases. Update os_process_pc and os_process_parent: now a PID can be > 32768 (so increase number of digits) and make it work even with spaces in the command name. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove a group of unused bh functions This patch removes a group of unused bh functions in um. This 2.2 legacy code should be cleaned up. Signed-off-by: Coywolf Qi Hunt Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML updates The patch below brings UML up to date with interface changes and the like irq.c includes profile.h to bring in a missing definition use the cpu_{set,clear} interface use the new get_signal_to_deliver interface define instruction_pointer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML fixes The patch below fixes a few UML-specific bugs not related to the rest of the kernel a bogus error return and some formatting in the fork code correct calculation of task.thread.kernel_stack remove a bogus panic a couple of fixes to allow UML to boot in the presence of exec-shield Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make UML build and run This patch includes the following - updated defconfig move uml.lds.S and main.c from arch/um to arch/um/kernel per Sam's suggestions steal bitops.c from arch/i386 convert all calls to open_private_file to dentry_open Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix drivers/isdn/hisax/avm_pci.c build warning when !CONFIG_ISAPNP CC [M] drivers/isdn/hisax/avm_pci.o drivers/isdn/hisax/avm_pci.c: In function `setup_avm_pcipnp': drivers/isdn/hisax/avm_pci.c:817: warning: label `ready' defined but not used Patch is big because I replaced the '} else { ... }' with 'goto ready; }' and so had to remove one level of indentation from code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] preset loops_per_jiffy for faster booting Adds a kernel boot parameter "lpj=NNN" which allows the operator to specify the loops-per-jiffy value. This shaves up to a quarter of a second off boot times, which are critical for embedded appliances. It's a bit thin, but the code is in __init. Signed-off-by: Adam Kropelin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] New x86-64 merge This fixes various issues in the previous update, in particular a kernel without CONFIG_GART_IOMMU should boot now again, The kernel discoverys PCI BUS<->CPU affinity on AMD systems now. It is so far used by dma_alloc_coherent to allocate memory Experimental patches to add this to sysfs exist, but they're not included yet. On systems with no memory on a CPU this information may be wrong. It has a new experimental CONFIG_UNORDERED_IO option. When enabled it uses write combining for stores to device iomemory mapping. This may give better performance with some device drivers, but has a slight risk of breaking drivers (in general if a driver works on ia64,ppc64,sparc64 it should also work). Based on some discussions with Grant Grundler. It requires the driver to use memory barriers properly. I would be interested in feedback on any performance changes you're seeing. For a production system I would recommend to keep it turned off(although I run it on all my systems and haven't run into any problems yet) ACPI and Centrino speedstep is enabled now for Nocona systems. The IOMMU code does lazy merging by default now, which should be safe and may increase performance on block IO. It also avoids SAC force by default now. The machine check code has been improved again, hopefully it is good now. It will log now machine check events from before the last reset. And various other fixes. The x86-64 parts are now gcc 3.5 clean. And various other fixes - Update defconfig - Reset lost ticks on lost time warning, print RIP. - Make TASK_SIZE test for 32bit (Arjan van de Ven) - Work around bug in generic code that broke pcibus_to_cpumask - Actually fix dummy iommu code - Compile i386 acpi and speedstep-centrino cpufreq modules - Export cpu_khz - Fix compilation without GART_IOMMU - Optimize find_*_bit functions for small fields - Discover nodes near PCI busses on K8 (Travis Betak, changed by me) - Optimize gart tlb flush slightly - Add experimental CONFIG_UNORDERED_IO for unordered IO stores - Add 32bit emulation for PTRACE_GETEVENTMSG - Fix kernel_fpu_{begin,end} for preemptive kernels (Alexander Nyberg) - Readd proper check for biomerge (got lost) - Set up 32bit vsyscall page for ptrace early - Add 32bit emulation for lookup_dcookie() for oprofile - Export copy_page / clear_page - Use rex prefix in save_init_fpu fxsave (Jan Beulich) - Make it compile again - Fix handling of hwdev == NULL (= ISA/LPC devices) in swiotlb - Convert PCI DMA code to dma devices - Change IOMMU code to use dummy fallback device instead of hardcoded NULL tests everywhere. - Test iommu_sac_force instead of nommu for DAC supported macro (will cause more drivers to use DAC) - Harden non IOMMU dma_alloc_consistent code to fail less likely. - Remove use of strsep in option parsers - Remove duplicated exports (Arjan van der Ven) - Fix EFAULT checking in ptrace (John Blackwood) - Update defconfig - Remove dead URL from boot/setup.S (R.J. Wysocki) - Use compat_sigval_t instead of sigval_t32 (Al Viro) - Nanooptimization in 32bit ptregs calls - Fix gcc 3.5 compilation in mtrr.h - Pass pt_regs as pointer to avoid illegal pass by reference (for gcc 3.5) - Make set_bit take int not long (Harald Dunkel) - Avoid panic on pci_map_sg and pci_alloc_consistent overflow in GART IOMMU - Handle large lost time delays in HPET code (Suresh B. Siddha) - Work around theoretical bugs in prefetch handling (suggested by Jamie Lokier) - Remove mtrr_strings declaration for gcc 3.5 - Set KBUILD_IMAGE for make rpm (William Lee Irwin III) - Add iommu=noaperture to not touch the aperture - Clean up argument parsing for iommu= option - Export symbols for xchgadd based rwsems (still disabled) - Define iommu_bio_merge for !CONFIG_GART_IOMMU - Don't use backwards rep ; movsb for memmove - Out line bitmap search functions (saves 8k .text, from i386) - Convert bitmap search functions to 64bit accesses and optimize them a bit. - Handle corrupted page tables in page fault handler - Set iommu_merge (without force) to on by default again. - Don't do bio merging by default for iommu=merge. This should make it safe to use again - Add iommu=biomerge option to enable BIO merging (like old iommu=merge) - Fix iommu=memaper=... parsing - More MCE fixes (based on a patch by Eric Morton, heavily changed by me) - Fix check for banks causing exceptions - Allow to reinit MCEs later even after mce=off, fix wrong use of __initdata to disable at boot, but reenable later. - Log left over machine checks after boot and resume - Fix missing prototype warning with CPU_FREQ on - Fix parsing of noexec=on (Ian Hastie) - Fix warning in ia32_binfmt.c - Resync time variable cpu frequency handling with i386 - Resync msr.c with i386 - Add 0x60 level 1 intel cache descriptor (from i386) - Remove duplicated 32bit ioctls (Arnd Bergmann) - Enable -msoft-float (from i386) - Use faster version of FPU hang fix - handle the exception * a bit experimental, if you see "kernel ... math error" events in the log please report. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] first/next_cpu returns values > NR_CPUS Zwane Mwaikambo wrote: The following caused some fireworks whilst merging i386 cpu hotplug. any_online_cpu(0x2) returns 32 on i386 if we're forced to continue past the only set bit due to the additional find_first_bit in the find_next_bit i386 implementation. Not wanting to change current behaviour in the bitops primitives and since the NR_CPUS thing is a cpumask issue, i've opted to fix next_cpu() and first_cpu() instead. This might save a couple of lines of code. From: Fix cross-arch ulong/int disaster with find_next_bit(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] watchdog: fix warning "defined but not used" Function wdtpci_init_one() in file wdt_pci.c generates a warning when compiling the watchdog driver. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] don't pass mem_map into init functions When using CONFIG_NONLINEAR, a zone's mem_map isn't contiguous, and isn't allocated in the same place. This means that nonlinear doesn't really have a mem_map[] to pass into free_area_init_node() or memmap_init_zone() which makes any sense. So, this patch removes the 'struct page *mem_map' argument to both of those functions. All non-NUMA architectures just pass a NULL in there, which is ignored. The solution on the NUMA arches is to pass the mem_map in via the pgdat, which works just fine. To replace the removed arguments, a call to pfn_to_page(node_start_pfn) is made. This is valid because all of the pfn_to_page() implementations rely only on the pgdats, which are already set up at this time. Plus, the pfn_to_page() method should work for any future nonlinear-type code. Finally, the patch creates a function: node_alloc_mem_map(), which I plan to effectively #ifdef out for nonlinear at some future date. Compile tested and booted on SMP x86, NUMAQ, and ppc64. From: Jesse Barnes Fix up ia64 specific memory map init function in light of Dave's memmap_init cleanups. Signed-off-by: Jesse Barnes From: Dave Hansen Looks like I missed a couple of architectures. This patch, on top of my previous one and Jesse's should clean up the rest. From: William Lee Irwin III x86-64 wouldn't compile with NUMA support on, as node_alloc_mem_map() references mem_map outside #ifdefs on CONFIG_NUMA/CONFIG_DISCONTIGMEM. This patch wraps that reference in such an #ifdef. From: William Lee Irwin III Initializing NODE_DATA(nid)->node_mem_map prior to calling it should do. From: Dave Hansen Rick, I bet you didn't think your nerf weapons would be so effective in getting that compile error fixed, did you? Applying the attached patch and commenting out this line: arch/i386/kernel/nmi.c: In function `proc_unknown_nmi_panic': arch/i386/kernel/nmi.c:558: too few arguments to function `proc_dointvec' will let it compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] idt77252.c: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [IPV6]: Fix device handling in ip6_route_add(). Signed-off-by: HIDEAKI Yoshifuji Signed-off-by: David S. Miller [PATCH] ip2main.c: add missing pci_enable_device() I don't have this hardware, so this has been compiled but not tested. Add pci_enable_device()/pci_disable_device In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. In addition, this driver incorrectly used the IRQ value from PCI config space rather than the one in the struct pci_dev. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tpam_main.c: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ibmasm: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hp100.c: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ioc3-eth.c: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] de4x5.c: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpqfc: add missing pci_enable_device() Add pci_enable_device()/pci_disable_device(). In the past, drivers often worked without this, but it is now required in order to route PCI interrupts correctly. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] AIO: retry infrastructure fixes and enhancements From: Daniel McNeil From: Chris Mason AIO: retry infrastructure fixes and enhancements Reorganises, comments and fixes the AIO retry logic. Fixes and enhancements include: - Split iocb setup and execution in io_submit (also fixes io_submit error reporting) - Use aio workqueue instead of keventd for retries - Default high level retry methods - Subtle use_mm/unuse_mm fix - Code commenting - Fix aio process hang on EINVAL (Daniel McNeil) - Hold the context lock across unuse_mm - Acquire task_lock in use_mm() - Allow fops to override the retry method with their own - Elevated ref count for AIO retries (Daniel McNeil) - set_fs needed when calling use_mm - Flush workqueue on __put_ioctx (Chris Mason) - Fix io_cancel to work with retries (Chris Mason) - Read-immediate option for socket/pipe retry support Note on default high-level retry methods support ================================================ High-level retry methods allows an AIO request to be executed as a series of non-blocking iterations, where each iteration retries the remaining part of the request from where the last iteration left off, by reissuing the corresponding AIO fop routine with modified arguments representing the remaining I/O. The retries are "kicked" via the AIO waitqueue callback aio_wake_function() which replaces the default wait queue entry used for blocking waits. The high level retry infrastructure is responsible for running the iterations in the mm context (address space) of the caller, and ensures that only one retry instance is active at a given time, thus relieving the fops themselves from having to deal with potential races of that sort. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] AIO: Splice runlist for fairness across io contexts This patch tries be a little fairer across multiple io contexts in handling retries, helping make sure progress happens uniformly across different io contexts (especially if they are acting on independent queues). It splices the ioctx runlist before processing it in __aio_run_iocbs. If new iocbs get added to the ctx in meantime, it queues a fresh workqueue entry instead of handling them righaway, so that other ioctxs' retries get a chance to be processed before the newer entries in the queue. This might make a difference in a situation where retries are getting queued very fast on one ioctx, while the workqueue entry for another ioctx is stuck behind it. I've only seen this occasionally earlier and can't recreate it consistently, but may be worth including anyway. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] AIO: workqueue context switch reduction From: Chris Mason I compared the 2.6 pipetest results with the 2.4 suse kernel, and 2.6 was roughly 40% slower. During the pipetest run, 2.6 generates ~600,000 context switches per second while 2.4 generates 30 or so. aio-context-switch (attached) has a few changes that reduces our context switch rate, and bring performance back up to 2.4 levels. These have only really been tested against pipetest, they might make other workloads worse. The basic theory behind the patch is that it is better for the userland process to call run_iocbs than it is to schedule away and let the worker thread do it. 1) on io_submit, use run_iocbs instead of run_iocb 2) on io_getevents, call run_iocbs if no events were available. 3) don't let two procs call run_iocbs for the same context at the same time. They just end up bouncing on spinlocks. The first three optimizations got me down to 360,000 context switches per second, and they help build a little structure to allow optimization #4, which uses queue_delayed_work(HZ/10) instead of queue_work. That brings down the number of context switches to 2.4 levels. Adds aio_run_all_iocbs so that normal processes can run all the pending retries on the run list. This allows worker threads to keep using list splicing, but regular procs get to run the list until it stays empty. The end result should be less work for the worker threads. I was able to trigger short stalls (1sec) with aio-stress, and with the current patch they are gone. Could be wishful thinking on my part though, please let me know how this works for you. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make MAX_INIT_ARGS 32 We at Red Hat shipped a larger number of arguments for quite some time, it was required for installations on IBM mainframe (s390), which doesn't have a good way to pass arguments. There are a number of reasonable situations that go past the current limits of 8. One that comes to mind is when you want to perform a manual vnc install on a headless machine using anaconda. This requires passing in a number of parameters to get anaconda past the initial (no-gui) loader screens. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: make MD no device warning KERN_WARNING Prevents some noise during boot up when no MD volumes are found. I think I picked it up from someone else, but I cannot remember from whom (sorry) Cc: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ia64: dma_mapping fix We need to be able to dereference struct device in include/asm-ia64/dma-mapping.h. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Automatically enable bigsmp on big HP machines This enables apic=bigsmp automatically on some big HP machines that need it. This makes them boot without kernel parameters on a generic arch kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix /proc/pid/statm documentation I really wanted /proc/pid/statm to die and I still believe the reasoning is valid. As it doesn't look like that is going to happen, though, I offer this fix for the respective documentation. Note: lrs/drs fields are switched. Signed-off-by: Roger Luethi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [NETFILTER]: Missing netfilter_ipv4.c include in conntrack proto code. Signed-off-by: Felipe Alfaro Solana Signed-off-by: David S. Miller [PATCH] rmaplock: PageAnon in mapping First of a batch of five patches to eliminate rmap's page_map_lock, replace its trylocking by spinlocking, and use anon_vma to speed up swapoff. Patches updated from the originals against 2.6.7-mm7: nothing new so I won't spam the list, but including Manfred's SLAB_DESTROY_BY_RCU fixes, and omitting the unuse_process mmap_sem fix already in 2.6.8-rc3. This patch: Replace the PG_anon page->flags bit by setting the lower bit of the pointer in page->mapping when it's anon_vma: PAGE_MAPPING_ANON bit. We're about to eliminate the locking which kept the flags and mapping in synch: it's much easier to work on a local copy of page->mapping, than worry about whether flags and mapping are in synch (though I imagine it could be done, at greater cost, with some barriers). Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rmaplock: kill page_map_lock The pte_chains rmap used pte_chain_lock (bit_spin_lock on PG_chainlock) to lock its pte_chains. We kept this (as page_map_lock: bit_spin_lock on PG_maplock) when we moved to objrmap. But the file objrmap locks its vma tree with mapping->i_mmap_lock, and the anon objrmap locks its vma list with anon_vma->lock: so isn't the page_map_lock superfluous? Pretty much, yes. The mapcount was protected by it, and needs to become an atomic: starting at -1 like page _count, so nr_mapped can be tracked precisely up and down. The last page_remove_rmap can't clear anon page mapping any more, because of races with page_add_rmap; from which some BUG_ONs must go for the same reason, but they've served their purpose. vmscan decisions are naturally racy, little change there beyond removing page_map_lock/unlock. But to stabilize the file-backed page->mapping against truncation while acquiring i_mmap_lock, page_referenced_file now needs page lock to be held even for refill_inactive_zone. There's a similar issue in acquiring anon_vma->lock, where page lock doesn't help: which this patch pretends to handle, but actually it needs the next. Roughly 10% cut off lmbench fork numbers on my 2*HT*P4. Must confess my testing failed to show the races even while they were knowingly exposed: would benefit from testing on racier equipment. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rmaplock: SLAB_DESTROY_BY_RCU With page_map_lock gone, how to stabilize page->mapping's anon_vma while acquiring anon_vma->lock in page_referenced_anon and try_to_unmap_anon? The page cannot actually be freed (vmscan holds reference), but however much we check page_mapped (which guarantees that anon_vma is in use - or would guarantee that if we added suitable barriers), there's no locking against page becoming unmapped the instant after, then anon_vma freed. It's okay to take anon_vma->lock after it's freed, so long as it remains a struct anon_vma (its list would become empty, or perhaps reused for an unrelated anon_vma: but no problem since we always check that the page located is the right one); but corruption if that memory gets reused for some other purpose. This is not unique: it's liable to be problem whenever the kernel tries to approach a structure obliquely. It's generally solved with an atomic reference count; but one advantage of anon_vma over anonmm is that it does not have such a count, and it would be a backward step to add one. Therefore... implement SLAB_DESTROY_BY_RCU flag, to guarantee that such a kmem_cache_alloc'ed structure cannot get freed to other use while the rcu_read_lock is held i.e. preempt disabled; and use that for anon_vma. Fix concerns raised by Manfred: this flag is incompatible with poisoning and destructor, and kmem_cache_destroy needs to synchronize_kernel. I hope SLAB_DESTROY_BY_RCU may be useful elsewhere; but though it's safe for little anon_vma, I'd be reluctant to use it on any caches whose immediate shrinkage under pressure is important to the system. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rmaplock: mm lock ordering With page_map_lock out of the way, there's no need for page_referenced and try_to_unmap to use trylocks - provided we switch anon_vma->lock and mm->page_table_lock around in anon_vma_prepare. Though I suppose it's possible that we'll find that vmscan makes better progress with trylocks than spinning - we're free to choose trylocks again if so. Try to update the mm lock ordering documentation in filemap.c. But I still find it confusing, and I've no idea of where to stop. So add an mm lock ordering list I can understand to rmap.c. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rmaplock: swapoff use anon_vma Swapoff can make good use of a page's anon_vma and index, while it's still left in swapcache, or once it's brought back in and the first pte mapped back: unuse_vma go directly to just one page of only those vmas with the same anon_vma. And unuse_process can skip any vmas without an anon_vma (extending the hugetlb check: hugetlb vmas have no anon_vma). This just hacks in on top of the existing procedure, still going through all the vmas of all the mms in mmlist. A more elegant procedure might replace mmlist by a list of anon_vmas: but that would be more work to implement, with apparently more overhead in the common paths. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86 bitops.h commentary on instruction reordering Back when we were discussing the need for a memory barrier in sync_page(), it came to me (thanks Andrea!) that the bit operations can be perfectly reordered on architectures other than x86. I think the commentary on i386 bitops.h is misleading, its worth to note that that these operations are not guaranteed not to be reordered on different architectures. clear_bit() already does that: * clear_bit() is atomic and may not be reordered. However, it does * not contain a memory barrier, so if it is used for locking purposes, * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit() * in order to ensure changes are visible on other processors. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] clarify get_task_mm (mmgrab) Clarify mmgrab by collapsing it into get_task_mm (in fork.c not inline), and commenting on the special case it is guarding against: when use_mm in an AIO daemon temporarily adopts the mm while it's on its way out. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] simple fs stop -ve dentries A tmpfs user reported increasingly slow directory reads when repeatedly creating and unlinking in a mkstemp-like way. The negative dentries accumulate alarmingly (until memory pressure finally frees them), and are just a hindrance to any in-memory filesystem. simple_lookup set d_op to arrange for negative dentries to be deleted immediately. (But I failed to discover how it is that on-disk filesystems seem to keep their negative dentries within manageable bounds: this effect was gross with tmpfs or ramfs, but no problem at all with extN or reiser.) Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: writeout watermark tuning Slightly change the writeout watermark calculations so we keep background and synchronous writeout watermarks in the same ratios after adjusting them for the amout of mapped memory. This ensures we should always attempt to start background writeout before synchronous writeout and preserves the admin's desired background-versus-forground ratios after we've auto-adjusted one of them. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: alloc_pages watermark fixes Previously the ->protection[] logic was broken. It was difficult to follow and basically didn't use the asynch reclaim watermarks (pages_min, pages_low, pages_high) properly. Now use ->protection *only* for lower-zone protection. So the allocator now explicitly uses the ->pages_low, ->pages_min watermarks and adds ->protection on top of that, instead of trying to use ->protection for everything. Pages are allocated down to (->pages_low + ->protection), once this is reached, kswapd the background reclaim is started; after this, we can allocate down to (->pages_min + ->protection) without blocking; the memory below pages_min is reserved for __GFP_HIGH and PF_MEMALLOC allocations. kswapd attempts to reclaim memory until ->pages_high is reached. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alloc_pages priority tuning Fix up the logic which decides when the caller can dip into page reserves. - If the caller has realtime scheduling policy, or if the caller cannot run direct reclaim, then allow the caller to use up to a quarter of the page reserves. - If the caller has __GFP_HIGH then allow the caller to use up to half of the page reserves. - If the caller has PF_MEMALLOC then the caller can use 100% of the page reserves. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Correctly handle d_path error returns There's some minor bug in the d_path handling (the nfsd one may not the the correct fix, there's no failure path for it, so I just terminate the string, and the last one in the audit subsystem is just a robustness cleanup if somebody will extend d_path in the future, right now it's a noop). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] emu10k1 maintainer update Rui Sousa has been unreachable for a long time now, so I have taken over the emu10k1 project on sf.net. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: remove hard-coded numbers from ptr_ok() Looks like arch/i386/kernel/doublefault.c is one place in the code that hardcodes the assumption that PAGE_OFFSET == 0xC0000000. Here's a patch that fixes that. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix mpage_readpage() for big requests The problem is, if we increase our readhead size arbitrarily (say 2M), we call mpage_readpages() with 2M and when it tries to allocated a bio enough to fit 2M it fails, then we kick it back to "confused" code - which does 4K at a time. The fix is to ask for the maxium the driver can handle. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] improve speed of freeing bootmem Attached is a patch that greatly improves the speed of freeing boot memory. On ia64 machines with 2GB or more memory (I didn't test with less, but I can't imagine there being a problem), the speed improvement is about 75% for the function free_all_bootmem_core. This translates to savings on the order of 1 minute / TB of memory during boot time. That number comes from testing on a machine with 512GB, and extrapolating based on profiling of an unpatched 4TB machine. For 4 and 8 TB machines, the time spent in this function is about 1 minutes/TB, which is painful especially given that there is no indication of what is going on put to the console (this issue to possibly be addressed later). The basic idea is to free higher order pages instead of going through every single one. Also, some unnecessary atomic operations are done away with and replaced with non-atomic equivalents, and prefetching is done where it helps the most. For a more in-depth discusion of this patch, please see the linux-ia64 archives (topic is "free bootmem feedback patch"). The patch is originally Tony Luck's, and I added some further optimizations (non-atomic ops improvements and prefetching). Signed-off-by: Tony Luck Signed-off-by: Josh Aas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: consolidate CLONE_IDLETASK masking Every arch now bears the burden of sanitizing CLONE_IDLETASK out of the clone_flags passed to do_fork() by userspace. This patch hoists the masking of CLONE_IDLETASK out of the system call entrypoints into do_fork(), and thereby removes some small overheads from do_fork(), as do_fork() may now assume that CLONE_IDLETASK has been cleared. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kill CLONE_IDLETASK The sole remaining usage of CLONE_IDLETASK is to determine whether pid allocation should be performed in copy_process(). This patch eliminates that last branch on CLONE_IDLETASK in the normal process creation path, removes the masking of CLONE_IDLETASK from clone_flags as it's now ignored under all circumstances, and furthermore eliminates the symbol CLONE_IDLETASK entirely. From: William Lee Irwin III Fix the fork-idle consolidation. During that consolidation, the generic code was made to pass a pointer to on-stack pt_regs that had been memset() to 0. ia64, however, requires a NULL pt_regs pointer argument and dispatches on that in its copy_thread() function to do SMP trampoline-specific RSE -related setup. Passing pointers to zeroed pt_regs resulted in SMP wakeup -time deadlocks and exceptions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] OProfile/XScale fixes for PXA270/XScale2 The incorrect mask was being used when writing back to PMNC write-only-zero bits as well as only ticking the CCNT every 64 processor cycles. Tested on IOP331 and PXA270, i'm still looking for XScale1 users... Signed-off-by: Luca Rossato Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove magic +1 from shm segment count Michael Kerrisk found a bug in the shm accounting code: sysv shm allows to create SHMMNI+1 shared memory segments, instead of SHMMNI segments. The +1 is probably from the first shared anonymous mapping implementation that used the sysv code to implement shared anon mappings. The implementation got replaced, it's now the other way around (sysv uses the shared anon code), but the +1 remained. Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix i386/x86_64 idle routine selection This was broken when the mwait stuff went in since it executes after the initial idle_setup() has already selected an idle routine and overrides it with default_idle. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86 PAE swapspace expansion PAE is artificially limited in terms of swapspace to the same bitsplit as ordinary i386, a 5/24 split (32 swapfiles, 64GB max swapfile size), when a 5/27 split (32 swapfiles, 512GB max swapfile size) is feasible. This patch transparently removes that limitation by using more of the space available in PAE's wider ptes for swap ptes. While this is obviously not likely to be used directly, it is important from the standpoint of strict non-overcommit, where the swapspace must be potentially usable in order to be reserved for non-overcommit. There are workloads with Committed_AS of over 256GB on ia32 PAE wanting strict non-overcommit to prevent being OOM killed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [CRYPTO]: Add Whirlpool digest algorithm. Given the recent potential weaknesses in the SHA and MD families, I thought it might not be a bad idea to include another hash/digest algorithm in the kernel. So here is Whirlpool. I chose it for a couple of reasons. o - It is by the same people who did Khazad. I feel pretty good about their work. o - It has been evaluated by NESSIE https://www.cosic.esat.kuleuven.ac.be/nessie/reports/phase1/sagwp3-037_1.pdf o - NESSIE has accepted it as one of the cryptographic primitives o - It will be part of an ISO standard in the revised ISO/IEC 10118-3:2003(E) standard, thanks to NESSIE o - It is patent free and has an implementation in the public domain. Signed-off-by: Aaron Grothe Signed-off-by: James Morris Signed-off-by: David S. Miller [PATCH] hugetlb: permit executable mappings During the kernel summit, some discussion was had about the support requirements for a userspace program loader that loads executables into hugetlb on behalf of a major application (Oracle). In order to support this in a robust fashion, the cleanup of the hugetlb must be robust in the presence of disorderly termination of the programs (e.g. kill -9). Hence, the cleanup semantics are those of System V shared memory, but Linux' System V shared memory needs one critical extension for this use: executability. The following microscopic patch enables this major application to provide robust hugetlb cleanup. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: assorted fixes/improvemnet to generic md resync code. 1/ Introduce "mddev->resync_max_sectors" so that an md personality can ask for resync to cover a different address range than that of a single drive. raid10 will use this. 2/ fix is_mddev_idle so that if there seem to be a negative number of events, it doesn't immediately assume activity. 3/ make "sync_io" (the count of IO sectors used for array resync) an atomic_t to avoid SMP races. 4/ Pass md_sync_acct a "block_device" rather than the containing "rdev", as the whole rdev isn't needed. Also make this an inline function. 5/ Make sure recovery gets interrupted on any error. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: assorted minor md/raid1 fixes 1/ rationalise read_balance and "map" in raid1. Discard map and tidyup the interface to read_balance so it can be used instead. 2/ use offsetof rather than a caclulation to find the size of an structure with a var-length array at the end. 3/ remove some meaningless #defines 4/ use printk_ratelimit to limit reports of failed sectors being redirected. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: remove most calls to __bdevname from md.c __bdevname now only prints major/minor number which isn't much help. So remove most calls to it from md.c, replacing those that are useful by calls to bdevname (often printing the message when the error is first detected rather than higher up the call tree). Also discard hot_generate_error which doesn't do anything useful and never has. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: RAID10 module This patch adds a 'raid10' module which provides features similar to both raid0 and raid1 in the one array. Various combinations of layout are supported. This code is still "experimental", but appears to work. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix warnings in es7000 Fix warnings in es7000. Otherwise gcc 3.3 complains about too large integer values. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Reduce bkl usage in do_coredump A patch that reduces bkl usage in do_coredump. I don't see anywhere that it is necessary except for the call to format_corename, which is controlled via sysctl (sys_sysctl holds the bkl). Also make format_corename() static. Signed-off-by: Josh Aas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] apm_info.disabled fix This minor fix is required to proper init "APM emulation" on HP-OmniBooks. (An external patch). "APM emulation" is very useful if you want to use a tool which looks into /proc/apm for getting informations about battery charging. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix inlining failures arch/i386/mach-generic/summit.c: In function `send_IPI_all': include/asm/mach-summit/mach_ipi.h:4: sorry, unimplemented: inlining failed in call to 'send_IPI_mask_sequence': function body not available arch/i386/mach-generic/summit.c:8: sorry, unimplemented: called from here make[1]: *** [arch/i386/mach-generic/summit.o] Error 1 make: *** [arch/i386/mach-generic] Error 2 arch/i386/mach-generic/bigsmp.c: In function `send_IPI_all': include/asm/mach-bigsmp/mach_ipi.h:4: sorry, unimplemented: inlining failed in call to 'send_IPI_mask_sequence': function body not available arch/i386/mach-generic/bigsmp.c:8: sorry, unimplemented: called from here make[1]: *** [arch/i386/mach-generic/bigsmp.o] Error 1 make: *** [arch/i386/mach-generic] Error 2 arch/i386/mach-generic/es7000.c: In function `send_IPI_all': include/asm/mach-es7000/mach_ipi.h:4: sorry, unimplemented: inlining failed in call to 'send_IPI_mask_sequence': function body not available arch/i386/mach-generic/es7000.c:8: sorry, unimplemented: called from here make[1]: *** [arch/i386/mach-generic/es7000.o] Error 1 make: *** [arch/i386/mach-generic] Error 2 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hige2lowuid warning fixes fs/smbfs/inode.c: In function `smb_fill_super': fs/smbfs/inode.c:563: warning: comparison is always false due to limited range of data type Unfortunately, this patch uses the notorious "gcc warning suppression by obfuscation" technique. What seems to be going on is that the uid and gid convert macros in include/linux/highuid.h: #define __convert_uid(size, uid) \ (size >= sizeof(uid) ? (uid) : high2lowuid(uid)) only call high2lowuid in the case of trying to put a bigger (32 bit, say) uid/gid in a smaller (16 bit, in this case) word. Gcc is smart enough to see that the comparison in high2lowuid() macro is silly if called with a 16 bit source uid, but not smart enough to understand from the __convert_uid() logic that this is exactly the case that high2lowuid() won't be called. So replace the logical "<" operator with the bit op "&~". This obfuscates things enough to shut gcc up. Only build the half-dozen files that use SET_UID/SET_GID, on arch i386 and ia64. Only the file fs/smbfs/inode.c showed the warning, both arch's, and this patch fixed both. Untested further, past staring at the code long enough to convince myself the change has no actual affect on the code's results. Signed-off-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] New cpu_has_ flags Add a couple more accessors for xstore features. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds i20 rewrite From: Markus Lidel generic: - split i2o_core into several files, grouped by same function - I2O devices are now registered as devices and show up in sysfs - the various I2O OSM's (e.g. i2o_scsi) now register in the I2O core and also use the 2.6 driver mechanism. - I2O messages will be created in the message frame instead of creating it in local memory and copying it over later on. - context list for 64 pointer to 32 context conversion now uses a double linked list PCI: - driver now registers as a PCI device driver and uses probe function to get the possible controllers. (needed for hotplugging) - converted DMA handling from pci_* to generic dma_* functions Block OSM: - use one request queue per I2O block device instead of one per controller - I2O block devices and queues are allocated dynamically and therefore no more limit of block devices SCSI OSM: - corrected bug in SCSI reply function which caused the memory to be freed before the done function was called. - one I2O controller registers as one scsi host instead of one scsi host per channel - no more ch,id,lun => tid mapping table Config OSM: - added ioctl32 for passthru and getiops. - removed ioctl_html Documentation: - removed TODO entries from README - moved docs under Documentation/i2o Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] Fix get_nodes() mask miscalculation It appears there is a nodemask miscalculation in the get_nodes() function in mm/mempolicy.c. This bug has two effects: 1. It is impossible to specify a length 1 nodemask. 2. It is impossible to specify a nodemask containing the last node. The following patch has been confirmed to solve both problems. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [IPSEC]: Set TTL from route. Here is the promised patch that sets the TTL from the route parameter. I decided against adding an option to inherit the TTL like IPIP/GRE as I think that it doesn't really make sense with IPsec. But it can be easily added later if someone needs it. This isn't completely right when nested tunnels are involved. The TTL for intervening tunnels should be set from the routes to the intervening nodes. But fixing that involves using information that isn't currently in the bundle. I'll revisit this once the MTU stuff is fixed since that'll also involving adding the intervening routes to the bundle. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] Use posix headers in sumversion.c When compiling Linux on Mac OSX I had trouble with scripts/sumversion.c. It includes to obtain to definitions of htonl and ntohl. On Mac OSX these are found in . After checking the POSIX specification it appears that this is the correct place to get the definitons for these functions. (http://www.opengroup.org/onlinepubs/009695399/functions/htonl.html) Using this header also appears to work on Linux (at least with Glibc-2.3.2). It seems clearer to me to go with the POSIX standard than implementing #if __APPLE__ style macros, but if such an approach is preferred I can supply patches for that instead. A patch against 2.6.7 which change -> is attached. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: quieten the "ESR value" printks Only print out the ESR value if it changes after enabling vector. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ix86,x86_64 cpu features Attached patch fix/add several cpu features. refs: [1] Intel Processor Identification and the CPUID instruction Application Note 485. http://developer.intel.ru/download/design/Xeon/applnots/24161826.pdf [2] http://www.sandpile.org/ia32/cpuid.htm Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] libfs: move transaction file ops into libfs Below is an updated version of the patch which moves duplicated transaction-based file operation code into libfs. Since the last post, the patch has been through a couple of iterations with Al, who suggested a number of cleanups including locking and interface simplification. For filesystem writers, the interface is now much simpler. The simple_transaction_get() helper should be part of the file op write method. This safely obtains the transaction request data during write(), allocates a page for it and stores it there. The data is returned to the caller for potential further processing, which then makes it available for the next read() call via simple_transaction_set(). See the selinuxfs and nfsctl code for examples of use. Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] don't print per-cpu delay loop calibration People are mainly concerned with showing off their total bogomips, not per-cpu bogomips, so turn it into a KERN_DEBUG message for the benefit of systems with lots of CPUs. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix sn_console for CONFIG_SMP=n I found that sn_console was missing an include and a fix if CONFIG_SMP=n. This patch fixes up the two small problems I found. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce pty.c ifdef clutter - build only if either CONFIG_LEGACY_PTYS or CONFIG_UNIX98_PTYS are set instead of testing in the file - try to keep big CONFIG_LEGACY_PTYS and CONFIG_UNIX98_PTYS ifdef blocks at the end of the file instead of cluttering all over Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] BUG() on inconsistant dcache tree in may_delete This can't happen with a sane filesystem (but is triggered by the buggy clearcase bin only kernel module), so let's better BUG_ON early. Adopted from Al's patch in the RH tree. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: remove dead CONFIG_KERNEL_ELF Kconfig entry We don't allow non-ELF kernels since 2.0 days, and surprisingly this is not actually checked anywhere. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix some comments about epoch in arch/alpha/kernel/time.c (from the Debian kernel package) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small simplification for two SECURITY dependencies I'd suggest the patch below to let the SECURITY_CAPABILITIES and SECURITY_ROOTPLUG dependencies look a bit more simple. Signed-off-by: Adrian Bunk Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] I2O: add functionality to scsi_add_device to preset From: Markus Lidel - Add a new function __scsi_add_device, which has an additional parameter compared to scsi_add_device. This parameter is used to preset the hostdata pointer. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [IPSEC]: Add SCTP to xfrm_flowi_{sport,dport}() Signed-off-by: HIDEAKI Yoshifuji Signed-off-by: David S. Miller [PATCH] configurable SELinux bootparam value Add configure option for setting default SELinux bootparam value. Ack'd by James Morris. Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix typos in security/security.c Fix typos in security/security.c. From: Nicolas Kaiser Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use simple_read_from_buffer in selinuxfs Use simple_read_from_buffer. This also eliminates page allocation for the sprintf buffer. Switch to get_zeroed_page instead of open-coding it. Viro had ack'd this earlier. Still applies w/ the transaction update. Signed-off-by: Chris Wright Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use simple_read_from_buffer in proc_info_read and proc_pid_attr_read Use simple_read_from_buffer in proc_info_read and proc_pid_attr_read. Viro had ack'd this earlier. Signed-off-by: Chris Wright Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix ttyS0 vs. ttyS00 confusion According to devices.txt, serial ports are reffered as ttyS0 (and not ttyS00). It would be nice to use that convention in printks, too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce size of struct buffer_head on 64bit Reduce size of buffer_head from 96 to 88 bytes on 64bit architectures by putting b_count and b_size together. b_count will still be in the first 16 bytes on 32bit architectures, so 16 byte cacheline machines shouldnt be affected. With this change the number of objects per 4kB slab goes up from 40 to 44 on ppc64. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce size of struct dentry on 64bit Reduce size of struct dentry from 248 to 232 bytes on 64bit. - Reduce size of qstr by 8 bytes, placing int hash and int len together. We gain a further 4 byte saving when qstr is used in struct dentry since qstr goes from 24 to 16 bytes and the next member (d_lru) requires 8 byte alignment (which means 4 bytes of padding). - Move d_mounted to the end, since char d_iname[] only requires 1 byte alignment. This reduces struct dentry by another 4 bytes. With these changes the number of objects we can fit into a 4kB slab goes from 16 to 17 on ppc64. Note the above assumes the architecture naturally aligns types. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove cacheline alignment from inode slabs Most of the inode slabs are cacheline aligned. This can waste a fair amount of memory, especially on architectures with large cacheline sizes (eg 128 bytes). Alignment has a few advantages. It prevents 2 cpus from accessing 2 data structures in the same cacheline. Since struct inodes are well over a cacheline and there are so many of them, there is little chance we will hit this problem if we remove the alignment. Alignment also ensures the maximum amount of the data structure is in the same cacheline (instead of straddling 2 for example). The large size of struct inode reduces this advantage. With this patch the inode_cache slab goes from 640 bytes to 544 bytes, and the number that fits in a 4kB slab goes from 6 to 7 on ppc64. A number of other inode slabs also see improvements. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Read cpumasks every time when exporting through sysfs Paul Jackson points out that the sysfs code saves a node's cpumask in the sysfs node, although it can change with CPU hotplug. Don't do this. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] I2O: remove on-demand allocation of Scsi_Host's in From: Markus Lidel - New notification system for i2o_driver's which get now a notification if a I2O controller is added or removed. - SCSI-OSM now uses notifications to create the Scsi_Host to the corresponding I2O controller. - Use __scsi_add_device to preset hostdata. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [SELINUX]: Fix bugs introduced by skb_header_pointer() changes. Lines assigning initial value to 'ret' were removed erroneously. Signed-off-by: Stephen Smalley Signed-off-by: David S. Miller [PATCH] I2O: run linux/i2o.h and linux/i2o-dev.h through From: Markus Lidel - i2o.h and i2o-dev.h are now formated using Lindent. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] USB: USB PhidgetServo driver update Once again a (small) patch for the phidgetservo driver. Some servos have a very high maximum angle, set upper limit to the maximum allowed by the hardware. Reported by Mario Scholz Signed-off-by: Sean Young Signed-off-by: Greg Kroah-Hartman [PATCH] Centralize i386 Constants __FIXADDR_TOP and PAGE_OFFSET are hardcoded in various places. I had to change it to run the kernel under qemu-fast, so I wanted to centralize them. To do this, we rename vsyscall.lds to vsyscall.lds.s, and generate it from vsyscall.lds.S. Signed-off-by: Rusty Russell (created) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Permissions on module_param Usage module_param() and family take a "perms" argument; several people have incorrectly used "644" instead of "0644". (I have a patch which checks for sane perms at compile time, but it bloats modules, so I haven't included it.) Signed-off-by: Rusty Russell (authored) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Move param section out of init area, for export of built-in module params When exporting the module parameters of built-in modules, we need to access the respective struct kernel_parameters. Currently, they're freed at init time, and obviously this can't continue to be done. So, move them out of __init_begin and __init_end and into RODATA in asm-generic/vmlinux.lds.h. Signed-off-by: Rusty Russell (modified) Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: Set QH bit in UHCI framelist entries This patch fixes the error in the UHCI driver found by Stuart Hayes. It adds the UHCI_PTR_QH bit into the initial entries stored in the hardware framelist. It's not entirely clear how the driver ever managed to work with these bits not set; apparently by coincidence the QH entries resembled TD entries sufficiently closely to fool the hardware. On Tue, 10 Aug 2004 Stuart_Hayes@Dell.com wrote: > Never mind, I figured it out. It looks like the uhci-hcd driver > doesn't add a "| UHCI_PTR_QH" to the pointers that it puts > in the frame list. This causes the ICH to think that the frame list > is pointing to a bunch of TDs instead of QHs for purposes of > checking for TD errors. I can only assume that the ICH > is actually treating the frame list entries as QH pointers in spite > of that bit not being set when it is actually executing the > schedule, or else I don't think it would work generally. > > I guess the high addresses were just making the QH look like an > invalid TD instead of a valid TD... not sure exactly what the ICH > is checking for! Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] synclink.c: replace syncppp with genhdlc Replace syncppp interface with generic HDLC interface. Generic HDLC provides superset of syncppp function. Signed-off-by: Paul Fulghum Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] synclinkmp.c: replace syncppp with genhdlc Replace syncppp interface with generic HDLC interface. Generic HDLC provides superset of syncppp function. Signed-off-by: Paul Fulghum Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: SN9C10[12] driver update Changes: - Delete the correct entry in the outgoing queue during DQBUF - Implement correct image downscaling selection through VIDIOC_S_[CROP|FTM] - Replace darkness controls with brightness (simple swapping) for PAS106B and PAS202BCB - Implement gain control for TAS5110C1B and TAS5130D1B - Add a note to the documentation about correct image downscaling selection Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] synclink_cs.c: replace syncppp with genhdlc Replace syncppp interface with generic HDLC interface. Generic HDLC provides superset of syncppp function. Signed-off-by: Paul Fulghum Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: xattr/acl fixes Here are a few fixes for bugs noticed on reiserfs-list or our own bugzilla. Attached is a patch that fixes several problems with xattrs/acls: [SECURITY] Fixes the inode not getting dirtied when mode is set via setxattr() [CORRECTNESS] Fixes the inode not getting ctime updated when an xattr is removed [DATA] Fixes an issue with dcache hash colliding names in the filesystem root caused by the d_compare to hide .reiserfs_priv. The bug can only occur in the filesystem root, which is why we haven't seen many (any, outside of the suse bugzilla, afaik) reports on this. The results are that dcache operations on colliding entries in the fs root will choose the first match rather than the correct entry. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix access of files up to 4 GB support for ISO9660 filesystems Since the filesystem doesn't explicitly set s->s_maxbytes, seeks will fail beyond 2^32-1, due to s->s_maxbytes being set to the default of MAX_NON_LFS. Attached is the quick one liner fix. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: update Edgeport io_usbvend.h - Updated io_usbvend.h to the latest version of usbvend.h provided by IO Networks. - Removed Black Box OEM device ids--they are duplicates of existing Edgeport ids and no longer included in IO Networks version of usbvend.h. - Removed the 1 port device from the io_edgeport driver--this device is a parallel port handled by the usblp driver. Signed-off-by: Al Borchers Signed-off-by: Greg Kroah-Hartman [PATCH] SELinux: add null device node to selinuxfs, remove open_devnull This patch adds a null device node to selinuxfs and replaces the SELinux open_devnull() code by simply acquiring a reference to this node each time, based on a comment by Al Viro on lkml (see http://marc.theaimsgroup.com/?l=linux-kernel&m=108664922032035&w=2). Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: revalidate access to controlling tty This patch changes the SELinux flush_unauthorized_files function to also recheck access to the controlling tty and reset it if it is no longer accessible under the new security context. This patch is relative to the selinuxfs devnull patch. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: update Edgeport io_fw_down.h - Updated io_fw_down.h for the io_edgeport driver to firmware version 1.16.4 from IO Networks. Signed-off-by: Al Borchers Signed-off-by: Greg Kroah-Hartman [PATCH] SElinux; defer inode security initialization This patch defers setting the inode security state for newly created inodes until after policy has been loaded. Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: fix name_bind audit This patch restores the proper auditing behavior for the name_bind check. Author: James Morris Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Reduce SELinux kernel memory use on 64-bit systems The patch below reduces kernel memory used by SELinux policy rules by about 37% on 64-bit systems. This is because the size of struct avtab_node is 40 bytes on 64-bit, and defaults to a size-64 slab. Creating a slab cache specifically for these structs saves considerable amounts of kernel memory on 64-bit systems with large rulesets. 'Strict' policy has over 300k rules, while 'targeted' policy has around 3k rules. Here's the slabtop output with 64 and 40 byte sized slabs to show the memory savings, for strict policy: 303475 303447 99% 0.06K 4975 61 19900K avtab_node 303456 303447 99% 0.04K 3161 96 12644K avtab_node Also, there are 57% more objects per slab. Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: update Edgeport io_fw_down3.h - Updated io_fw_down3.h for the io_ti driver to firmware version 4.10.0 from IO Networks. Signed-off-by: Al Borchers Signed-off-by: Greg Kroah-Hartman [PATCH] remove last suser() call from drivers/char/rocket.c Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add pci dependencies to drivers/media/dvb/ttpci/Kconfig The drivers under drivers/media/dvb/ttpci depend on pci (especially since they select VIDEO_SAA7146, which depends on pci). Signed-off-by: Cornelia Huck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] compat_do_execve() fix For some reasons ls -l /proc/$$/exe doesnt work all time for me, with 2.6.8.1 on ppc64. Sometimes it does, sometimes not. No pattern. A few printks show that this check in proc_pid_readlink() triggers an -EACCES: current->fsuid != inode->i_uid proc_pid_readlink(755) error -13 ntptrace(11408) fsuid 100 i_uid 0 0 sys_readlink(281) ntptrace(11408) error -13 readlink Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: gadget drivers learn about LH7A40x Recognize the UDC for the Sharp LH7A40x chips (ARMv4t SOCs) - define gadget_is_lh7a40x() macro - gadget drivers use it to assign bcdDevice - supports CDC Ethernet (and RNDIS) From: Bo Henriksen Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] fix 4K ext2fs support in 2.6 initrd's The ramdisk_blocksize option has been broken for quite a while in 2.6. Making an initrd with a 4K ext2 filesystem impossible to use. After digging into this, the problem turned out to that rd.c was not setting the hard sector size. There were a few secondary problems like i_blkbits was not being set, and the number KiB in uncompressed ext2 images was not taking into account the block size. I have also corrected the surrounding comments as they were not just incorrect but misleading. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Coding style: do_this(a,b) vs. do_this(a, b) Coding style document is not consistent with itself on whether there should be space after ","... This makes it standardize on ", " option. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: net2280 patch Don't clear ep0 status phase handshake during endpoint reset ... at least one driver emits so much debug output before resetting endpoints that the reset happens late enough to make the chip break protocol. Also handle resets IRQs a bit differently: they can happen twice during enumeration, which can worsen the other problem. From: Alex Sanks Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] typo in laptop_mode.txt This patch is thanks to pavouk. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix permissions on the `tainted' sysctl From: Arjan van de Ven The patch below sets the tainted sysctl file to read only, otherwise userspace can just overwrite/reset it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: Fix submission-error bug in the USB scatter-gather This patch has been hanging around for a while and seems to have been forgotten. It fixes a bug in the USB scatter-gather library that crops up when submission of an URB fails, and it fixes a bug in the cleanup routine when some of the URBs being cleaned up have already completed. I think David will agree that the patch is correct. Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] s390: core changes From: Jan Glauber From: Martin Schwidefsky s390 core changes: - Use copy_siginfo_from_user32 instead of copy_from_user to get the siginfo structure in sys32_rt_sigqueueinfo. - Remove prototype for non-existant stop_timers function. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: zfcp host adapter From: Heiko Carstens From: Andreas Herrmann From: Maxim Shchetynin zfcp host adapter changes: - Use predefined macro to create in_recovery sysfs attributes. - Add function to check CT_IU response. - Fix handling of rejected ELS commands. - Change return value of zfcp_fsf_req_sbal_get to -ERESTARTSYS in some cases. - Return proper error code if control file upload/download failed. - Remove dead code. - Avoid sparse warnings. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix bio_uncopy_user() mem leak When using bounce buffers for SG_IO commands with unaligned buffers in blk_rq_map_user(), we should free the pages from blk_rq_unmap_user() which calls bio_uncopy_user() for the non-BIO_USER_MAPPED case. That function failed to free the pages for write requests. So we leaked pages and you machine would go OOM. Rebooting helped ;-) This bug was triggered by writing audio CDs (but not on data CDs), as the audio frames are not aligned well (2352 bytes), so the user pages don't just get mapped. Bug was reported by Mathias Homan and debugged by Chris Mason + me. (Jens is away.) From: Chris Mason Fix the leak for real Signed-off-by: Kurt Garloff Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: unusual_devs.h entry This patch adds an unusual_devs.h entry for the Apacer Audio Steno, which reports its capacity as total number of blocks rather than largest block number (i.e., the value is off by one). Please apply. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] i386-unbusy-tss cleanup The TSS no longer needs to be unbusied before loading the task register, since the set_tss_desc macros set the system gate type to Available IA-32 TSS. This obscure, uncommented legacy code can now be removed for better readability and saves 20 bytes of code space. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /proc/PID/cmdline truncates arguments early We received a bug report that /proc/PID/cmdline only shows argv[0] if the total length of all arguments exceeds PAGE_SIZE. The problem is that proc_pid_cmdline checks for the presence of a NUL byte at the end of the args list, and assumes that the application did a setproctitle if there's any other character. OTOH proc_pid_cmdline will read just the first PAGE_SIZE worth of arguments at most, and if you have more arguments, it's quite likely that there won't be a NUL byte at offset PAGE_SIZE-1. The attached patch fixes this. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB Storage: help vendors count to 1... It turns out that the Konica-Minolta DiMAGE A2 camera, in addition to all its other problems, returns a 0-length reply to the GetMaxLUN request. With this patch (accept a null reply as meaning a single LUN) it is somewhat useable. It's amazing to me that vendors have this much trouble counting to 1.... Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] Update ACI MIXER DRIVER webpage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove read-only/immutable checks from fat_truncate From: Christoph Hellwig There's two callers: - the truncate path via notify_change, ->setattr, vmtruncate. We already check for permissions here at the upper level - fat_delete_inode. This one looks bogus to me - even if we delete an read-only or immutable inode we want to free the space allocated by it, else you leak disk blocks. Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: legousbtower.c module_param fix drivers/usb/misc/legousbtower.c: In function `__check_read_buffer_size': drivers/usb/misc/legousbtower.c:119: warning: return from incompatible pointer type drivers/usb/misc/legousbtower.c: In function `__check_write_buffer_size': drivers/usb/misc/legousbtower.c:129: warning: return from incompatible pointer type The fix is awkward - module_param() doesn't like size_t's. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] ext3 documentation Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ad1816 sound driver web page and email address Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Firmware Loader is orphan The author and maintainer of the firmware loader died in May. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] file_ra_state_init speedup Marcelo points out that this function's main caller already memsets the structure, so avoid doing it again. Also, an earlier knfsd patch withdrew file_ra_state_init()'s other caller, so unexport this function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dev/random: Fix latency in rekeying sequence number Based on reports from Ingo's Latency Tracer that the TCP sequence number rekey code is causing latency problems, I've moved the sequence number rekey to be done out of a workqueue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /dev/random: Add pool name to entropy store This adds a pool name to the entropy_store data structure, which simplifies the debugging code, and makes the code more generic for adding additional entropy pools. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /dev/random: Use separate entropy store for /dev/urandom This patch adds a separate pool for use with /dev/urandom. This prevents a /dev/urandom read from being able to completely drain the entropy in the /dev/random pool, and also makes it much more difficult for an attacker to carry out a state extension attack. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /dev/random: Remove RNDGETPOOL ioctl Recently, someone has kvetched that RNDGETPOOL is a "security vulnerability". Never mind that it is superuser only, and with superuser privs you could load a nasty kernel module, or read the entropy pool out of /dev/mem directly, but they are nevertheless still spreading FUD. In any case, no one is using it (it was there for debugging purposes only), so we can remove it as dead code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix bad URL in BSD acct help entry Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] show Active/Inactive on per-node meminfo The patch below enable to display the size of Active/Inactive pages on per-node meminfo (/sys/devices/system/node/node%d/meminfo) like /proc/meminfo. By a little change to procps, "vmstat -a" can show these statistics about particular node. From: mita akinobu get_zone_counts() is used by max_sane_readahead(), and max_sane_readahead() is often called in filemap_nopage(). Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] inode time update funnies in ncpfs ncfpfs seems to update inode times by hand everywhere instead of using the proper helpers. This means: - the atime updates in mmap() and read() seems to miss various checks upodate_atime or one of the wrappers does. Also it doesn't mark the inode dirty. - in write() you update mtime and _a_time instead of ctime as expected, also the usual checks and optimizations are missing. In addition the fops contain some bogus checks like for a refular file (but the fops are only used of ISREG files) and inode->i_sb although that is guranteed to be non-zero. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove obsolete htab-reclaim in Documentation/sysctl/kernel.txt This entry is long gone, even 2.4 doesnt have it anymore. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove obsolete zero-paged in Documentation/sysctl/kernel.txt This entry was removed during 2.5 development. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix fs/locks.c init order The patch below fixes an interesting oddity we're seeing with fedora core development (where we recently started using udev heavily); basically right now filelock_init() is a module_init(), eg runs late. However that breaks down because there are earlier /sbin/hotplug callouts, which with udev, do locking operations. When that happens the kernel oopses because the slabs for file locks aren't initialized yet. Solution: initialize this way early. It's only a kmem_cache_create after all, so can happen early. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] describe Intel cache descriptors. Describe what the Intel cache descriptors actually mean in comments. Taken from 24151827.pdf. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Alex DeVries has moved The patch below replaces all occurences of two bouncing email addresses of Alex deVries in the kernel with his current address. It's already ACK'ed by Alex deVries. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB OTG: add usb_bus_start_enum() (1/5) Define a new usb_bus_start_enum() routine that's available with OTG. It starts immediate enumeration (port reset) and makes khubd wake up later. Non-OTG code could start to use this, given some attention to HC-specific reset timing issues. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB OTG: ohci reset updates (2/5) Generic OTG and reset support for OTG. - Declare and use a start_hnp() board-specific procedure. The OMAP implementation will come separately, it can't yet be configured. - When OTG is configured, implement the usb_bus_start_enum() hook; that just starts a root port reset. - When some task (usually khubd) resets a root port, make sure it takes the full 50 msec. The OHCI reset timer is in hardware, and the host may need to issue multiple resets to guard against concurrent resume. - For backward compatibility, don't kick in the new 50 msec logic unless it could be needed: without CONFIG_USB_SUSPEND, nothing will suspend so nothing could resume. Which is good, at least until we start to measure how long a reset takes ... it seems chip-specific. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB OTG: usbcore enumeration (3/5) Teach usbcore how to enumerate OTG devices and perform HNP: - CONFIG_USB_OTG is a boolean; it selects CONFIG_USB_SUSPEND. Boards with a Mini-AB connector should offer it as a config option; no other hardware could support OTG. - Before resetting a port, make sure it's not still suspended. (For example, after an HNP role switch.) - When an OTG A-Host enumerates a dual-role device, set the appropriate device feature: B_HNP_ENABLE if it's connected to the OTG port, otherwise A_ALT_HNP_SUPPORT. - When an OTG B-Host enumerates a dual-role device, don't bother debouncing ... the power session is stable already, the A-Host already debounced. - The OTG "Targeted Peripheral List" lives in a product-customized "otg_whitelist.h" header. - CONFIG_USB_OTG_WHITELIST lets developers choose to ignore whitelist failures, so unsupported devices can be configured anyway. - If the whitelist check fails, immediately suspend the device. * For dual-role devices, that triggers HNP so the other device can try to act as host. * For peripheral-only devices, that conserves power ... but not quite as much as turning off power on that port, which should eventually be done with OTG ports (and all other ports that support SRP). The whitelist logic tries to make use of the existing usb_device_id logic, but since the interface info isn't available that early it's a bit awkward use information anywhere outside the device descriptor. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB OTG: gadget zero (4/5) Minor gadget zero fixes: - correct string descriptions: they're always UTF-8 - for OTG, report HNP and remote wakeup support Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB OTG: doc updates (5/5) Gadget API update. Covers OTG support, lists a few more types of hardware support, mentions gadget driver updates including RNDIS, serial with CDC-ACM, and gadgetfs AIO. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman USB: fix bad value in kaweth.c driver Signed-off-by: Greg Kroah-Hartman [PATCH] Undo broken FH conversion that broke nfsroot compile That conversion to nfs_fh_copy() is bogus since we're not copying into an nfs_fh anyway. Just revert it. [PATCH] Missing free_area_init_node() conversions Update architectures for the free_area_init_node() API change. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /dev/ptmx open() fixes If tty_open() fails for a normal serial device, we end up doing cleanups that should only happen for failed open of /dev/ptmx. The results are not pretty - devpts et.al. end up very confused. That's what gave problems with ptmx. This splits ptmx file_operations from the normal case and cleans up both tty_open() and (new) ptmx_open(). Survived serious beating. [PATCH] GPCMD_SEND_CUE_SHEET missing in scsi_ioctl Forgot one command, GPCMD_SEND_CUE_SHEET is also ok for write open. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] I2O: fixes compiler warning on x86_64 in i2o_config From: Markus Lidel - use compat_ptr to convert 32-bit pointer to 64-bit pointer in i2o_cfg_passthru32. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [CPUFREQ] Remove fsb argument from longhauls calc_speed() It's being passed a global everywhere, so it may as well directly reference it. Signed-off-by: Dave Jones kbuild: fix cc-version cc-version needs to use $(shell to get the gcc version. Before if gave the following error when building the kernel: /bin/sh: line 1: [: too many arguments And all checks for gcc version were broken. Signed-off-by: Sam Ravnborg [PATCH] USB: ub patch to use add_timer It just occured to me that urb->timeout is not functional. [PATCH] I2O: removes multiplexer notification and use From: Markus Lidel - remove the multiplexer notification and replace it with a type-safe function for each event (controller add/remove, device add/remove). Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] i2o maintainer From: Markus Lidel Signed-off-by: Andrew Morton Signed-off-by: James Bottomley USB: Remove struct urb->timeout as it does not work Well, it works only for UHCI controllers, but that's not acceptable... Signed-off-by: Greg Kroah-Hartman [PATCH] eata_pio.c warning fix drivers/scsi/eata_pio.c: In function `eata_pio_host_reset': drivers/scsi/eata_pio.c:514: warning: implicit declaration of function `msleep' Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] reduce aacraid namespace polution From: Jens Axboe This easily clashes with others (it's been seen, hence the patch), so lets move aacraid log levels to something a little more private. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] scsi_level constants in scsi.h The scsi_level value in struct scsi_device is a bit mysterious. Hopefully this patch makes it a bit clearer since it is visible via sysfs. Changes: - add scsi_level constants for SPC-2 and SPC-3 - comment on relationship between scsi_level and INQUIRY response Signed-off-by: James Bottomley CIFS: remove deprecated sleep_on_timeout Signed-off-by: Steve French (sfrench@us.ibm.com) USB: rip the pwc decompressor hooks out of the kernel, as they are a GPL violation. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ohci_omap updates This updates the OMAP OHCI support to match the latest from the Linux-OMAP tree. Notable changes from the preceding version: - Use the new USB init model (arch/arm/mach-omap/usb.c). - The OMAP-specific bus is gone; it now uses platform_device. (Update from Tony Lindgren.) - Works on the H2 board, which requires the external isp1301 transceiver even in non-OTG configurations. - Adds OTG support. - Adds basic power management calls. The mach-omap/Kconfig file in the main Linux tree is a bit out of date, it doesn't know about CONFIG_ARCH_OMAP_OTG (for the OMAPs that have OTG silicon). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: isp1301_omap driver (OTG core) This adds the isp1301_omap driver, supporting USB OTG on OMAP systems. The driver tightly couples two different chunks of hardware, which are used to implement the OTG protocols: - The Philips ISP1301 OTG transceiver (an I2C device) senses voltage levels and sources VBUS current in the A-Device roles. - OMAP's OTG controller handles lots of OTG transitions, and tells the transceiver what to do. The driver implements the abstract "otg_transceiver" API, since it's got to talk to both the host controller (OHCI on current OMAPs) and the peripheral controller (omap_udc) while hiding a variety of implementation details. It should be easy to tweak to work on other OMAP boards using the isp1301 chip; OMAP boards with other transceivers, or non-OMAP boards using isp1301, will probably find things to learn from. Note that this also supports two non-OTG modes, with the OTG controller disabled; very handy for debugging just the host side USB stack, or just the peripheral side USB stack. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] kobject: fix kobject_set_name comment. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Update unlink testing code in the usbtest driver Greg: This patch updates the part of the usbtest driver that tests URB unlinking. The move to usb_kill_urb() invalidated some of the old tests. There's a corresponding change to the UHCI driver, causing it to return a more descriptive error code in the rare event that an URB is cancelled after it has been linked but before it has been queued. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [SPARC64]: Save/restore %asi properly in signal handling. Signed-off-by: David S. Miller fix NC5380 locking and delayed work handling From: Christoph Hellwig - move delayed workqueue handling to schedule_delayed_work instead of the old horrible global list thing - add NCR5380_exit to make sure all delayed work is flushed on HBA (or module) removal - fix locking Patch fixed up to apply and Signed-off-by: James Bottomley [NET]: Use pskb_expand_head() instead of skb_copy() in skb_checksum_help(). Here is the patch that you wanted to shoot holes at :) The idea is simple. None of the callers of skb_checksum are passing it skb's which are shared. They may be cloned however. But the application checksum is always in the skb header so there is no need to linearise it. Supposing all these assumptions are correct, then we can avoid the overhead of skb_copy() and get away with pskb_expand_head(). If the assumption is wrong, we will find out because pskb_expand_head() will BUG() if skb_shared() is true. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: deliver_skb() cleanup Cleanup of deliver_skb: get rid of unused argument and use it in the NET_CLS_ACT hook. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Another cleanup in netif_receive_skb() Move rcu_read_lock up a little, since it needs to be done in both branches anyway. Also whitespace fix. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Device mtu/txqlen/ifmap via rtnetlink. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [ACPI] quiet ACPI NUMA boot messages Signed-off-by: Jesse Barnes [PATCH] R8169_NAPI help text From: Adrian Bunk Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] sk98lin procfs fix From: Christoph Hellwig sk98line tries to register a procfile with the interfacename of the struct net_device. The patch below (ontop of the previous one) makes it work unless you change the interface name manually, but as Linux explicitly allows that the interface is fundamentally broken and probably should just go away. Signed-off-by: Andrew Morton [PATCH] e1000 build fix drivers/net/e1000/e1000_main.c: In function `e1000_up': drivers/net/e1000/e1000_main.c:136: sorry, unimplemented: inlining failed in call to 'e1000_irq_enable': function body not available drivers/net/e1000/e1000_main.c:274: sorry, unimplemented: called from here Signed-off-by: Andrew Morton [PATCH] e1000 inlining fix From: Nick Orlov e1000 fixes for gcc-3.4.1 Signed-off-by: Andrew Morton [PATCH] net/smc9194.c: fix gcc-3.5 inline compile errors From: Adrian Bunk CC drivers/net/smc9194.o drivers/net/smc9194.c: In function `smc_interrupt': drivers/net/smc9194.c:278: sorry, unimplemented: inlining failed in call to 'smc_rcv': function body not available drivers/net/smc9194.c:1254: sorry, unimplemented: called from here drivers/net/smc9194.c:283: sorry, unimplemented: inlining failed in call to 'smc_tx': function body not available drivers/net/smc9194.c:1258: sorry, unimplemented: called from here make[2]: *** [drivers/net/smc9194.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] net/hamachi.c: gcc-3.5 build fixes From: Adrian Bunk CC drivers/net/hamachi.o drivers/net/hamachi.c: In function `hamachi_interrupt': drivers/net/hamachi.c:562: sorry, unimplemented: inlining failed in call to 'hamachi_rx': function body not available drivers/net/hamachi.c:1402: sorry, unimplemented: called from here make[2]: *** [drivers/net/hamachi.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] net/rrunner.c: gcc-3.5 fixes From: Adrian Bunk CC drivers/net/rrunner.o drivers/net/rrunner.c: In function `rr_timer': drivers/net/rrunner.h:846: sorry, unimplemented: inlining failed in call to 'rr_raz_tx': function body not available drivers/net/rrunner.c:1155: sorry, unimplemented: called from here drivers/net/rrunner.h:847: sorry, unimplemented: inlining failed in call to 'rr_raz_rx': function body not available drivers/net/rrunner.c:1156: sorry, unimplemented: called from here make[2]: *** [drivers/net/rrunner.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] net/tulip/dmfe.c: gcc-3.5 fixes From: Adrian Bunk CC drivers/net/tulip/dmfe.o drivers/net/tulip/dmfe.c: In function `dmfe_rx_packet': drivers/net/tulip/dmfe.c:323: sorry, unimplemented: inlining failed in call to 'cal_CRC': function body not available drivers/net/tulip/dmfe.c:936: sorry, unimplemented: called from here make[3]: *** [drivers/net/tulip/dmfe.o] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] ixgb_main.c: fix inline compile errors From: Adrian Bunk drivers/net/ixgb/ixgb_main.c: In function `ixgb_up': drivers/net/ixgb/ixgb_main.c:86: sorry, unimplemented: inlining failed in call to 'ixgb_irq_enable': function body not available drivers/net/ixgb/ixgb_main.c:234: sorry, unimplemented: called from here Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] via-velocity: more inetaddr_notifier fix From: Francois Romieu There is no guarantee that the event which gets passed is associated to a via-velocity device, thus preventing to dereference dev->priv as if it always was a struct velocity_info *. The via-velocity devices are kept in a module private list for comparison. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton scsi_mid_low_api.txt update From: Douglas Gilbert Signed-off-by: James Bottomley [PATCH] sk98lin/skge.c doesn't compile with PROC_FS=n From: Adrian Bunk drivers/net/sk98lin/skge.c: In function `skge_remove_one': drivers/net/sk98lin/skge.c:5116: warning: implicit declaration of function `remove_proc_entry' drivers/net/sk98lin/skge.c:5116: `pSkRootDir' undeclared (first use in this function) drivers/net/sk98lin/skge.c:5116: (Each undeclared identifier is reported only once drivers/net/sk98lin/skge.c:5116: for each function it appears in.) drivers/net/sk98lin/skge.c: In function `skge_init': drivers/net/sk98lin/skge.c:5188: `SK_Root_Dir_entry' undeclared (first use in this function) Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] fix net/hamradio/dmascc with gcc 3.4 From: Adrian Bunk drivers/net/hamradio/dmascc.c: In function `scc_isr': drivers/net/hamradio/dmascc.c:250: sorry, unimplemented: inlining failed in call to 'z8530_isr': function body not available drivers/net/hamradio/dmascc.c:969: sorry, unimplemented: called from here drivers/net/hamradio/dmascc.c:250: sorry, unimplemented: inlining failed in call to 'z8530_isr': function body not available drivers/net/hamradio/dmascc.c:978: sorry, unimplemented: called from here Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton [PATCH] drivers/net/wan/cycx_x25.c:189: warning: conflicting types for built-in function 'log2' From: Jesper Juhl To silence the warning in $subject, rename log2 to cycx_log2 in this file to remove the clash, so there's no doubt that this file uses it's own defined log2 function. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton [PATCH] via-velocity: wrong module name in Kconfig documentation From: Francois Romieu Copy/paste abuse. Signed-off-by: Andrew Morton [PATCH] 8139too: Rx fifo/overflow recovery From: Francois Romieu This patch allows to update the interrupt status register after an Rx overflow or a Rx fifo error even when the Rx buffer contains no packet. The update must be kept in the packet processing loop to prevent an Rx error storm. As an interesting behavior, the status of the interrupt status register must not be read early. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton [PATCH] 8139too: be sure to progress during rtl8139_rx() From: Francois Romieu If the Rx buffer gets corrupted or the FIFO hangs in new interesting ways, this code prevents the driver from looping in ksoftirqd context without making any progress. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton [PATCH] Typo in drivers/net/dl2k.h From: Alexander Shatohin Signed-off-by: Andrew Morton [PATCH] netdrv gianfar: fix printk output From: Kumar Gala Fix usage of printk on the output of mac address. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton [PATCH] via-rhine: suspend/resume support From: Roger Luethi From: Arkadiusz Miskiewicz Signed-off-by: Arkadiusz Miskiewicz Signed-off-by: Roger Luethi Signed-off-by: Andrew Morton [PATCH] via-rhine: de-isolate PHY From: Roger Luethi PHYs may come up isolated. Make sure we can send data to them. This code section needs a clean-up, but I prefer to merge this fix in isolation. Report and suggested fix by Tam, Ming Dat (Tommy). Signed-off-by: Roger Luethi Signed-off-by: Andrew Morton [PATCH] via-rhine: small fixes From: Roger Luethi - remove Rhine model names (per Jeff's request) - remove redundant calls to clear MII cmd - fill some rhine_private fields earlier Signed-off-by: Roger Luethi Signed-off-by: Andrew Morton Use "insert_resource()" to add the PCI resources to the resource tree. In contrast to the old "request_resource()", this allows us to add a resource even when firmware (ACPI) has marked part of it as being in use. [PATCH] ppc64: better handling of H_ENTER failures This changes the hash insertion routines to return an error instead of calling panic() when HV refuses to insert a HPTE (the hypervisor call to set up a hashtable PTE is H_ENTER). The error is now propagated upstream, and either bad_page_fault() is called (kernel mode) or a SIGBUS signal is forced (user mode). Some other panic() cases are also turned into BUG_ON. Overall, this should provide us with better debugging data if the problem happens, and avoids errors from userland mapping /dev/mem and trying to use forbidden IOs (XFree ?) to bring the whole kernel down. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [ARM] Correct dma_to_virt()/virt_to_dma() return types. ALSA CVS update ALSA sequencer don't fake the sender address in messages forwarded by snd-seq-dummy to prevent confusing other clients (e.g. snd-seq-oss) Signed-off-by: Clemens Ladisch ALSA CVS update ALSA<-OSS sequencer remove superfluous snd_seq_oss_readq_clear call Signed-off-by: Clemens Ladisch ALSA CVS update ALSA<-OSS sequencer don't copy uninitialized kernel stack data to userspace Signed-off-by: Clemens Ladisch ALSA CVS update ALSA<-OSS sequencer rewrote snd_seq_oss_read/snd_seq_oss_write to fix various buffer overflow/locking/nonstandard behaviour bugs Signed-off-by: Clemens Ladisch ALSA CVS update PPC PMAC driver,PPC Tumbler driver pmac mixer update from shadow register on resume and switching DRC on headphone plug The attached patch improved the pmac driver by implementing updating the mixer from the shadow register after a resume or headphone interrupt, as well as automatically selecting DRC on headphone plug. For normal line-out one does not want the DRC, but it should automatically be reenabled after the headphone is unplugged: Otherwise the power to the internal speakers is high enought to destroy them (happend once to my iBook - when it still had warrenty ... ;-) Signed-off-by: Rene Rebe Signed-off-by: Takashi Iwai ALSA CVS update ES1938 driver Added (experimental) PM support. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Fix Audigy + AC97 Master Volume This patch sets AC97 Master volume to 0 (0 dB). Previous value was 0x0202 (-3 dB) (this was my misstake). Signed-off-by: Peter Zubaj Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Add to snd-intel8x0 AC97 quirk list Additions for Dell Precision 450, HP xw4200 and xw8200. Signed-off-by: John W. Linville Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Removed MPU401 detection from Aureon and Prodigy boards. The bogus mpu401 may cause hang-up on some apps. Now the detection bit in EEPROM image is removed. Signed-off-by: Takashi Iwai ALSA CVS update PPC AWACS driver awacs.c num_controls -> ARRAY_SIZE fix Signed-off-by: Joseph Fannin Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Added the DXS entry for Uniwill/Targa Visionary XP-210. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Fixed the master volume control. The master volume control was inverted, fixed now. The volume range is narrowed to -64dB. Signed-off-by: Takashi Iwai ALSA CVS update Maestro3 driver Call pci_set_master() in resume (to be sure) Signed-off-by: Takashi Iwai ALSA CVS update Maestro3 driver Fixed the typo in the last change for pci_set_master() call... Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core Added jack sense switches for AD1885 'Headphone Jack Sense' and 'Line Jack Sense' switches are added for AD1885. This will enable the h/w swich between the headphone and the internal speaker on some laptops. Signed-off-by: Takashi Iwai ALSA CVS update MPU401 UART use acpi_register_gsi Signed-off-by: Clemens Ladisch ALSA CVS update PPC beep support depends on INPUT Signed-off-by: Jaroslav Kysela ALSA CVS update ATIIXP driver add IXP400 support Signed-off-by: Clemens Ladisch ALSA CVS update RawMidi Midlevel fix handling of EFAULT errors in snd_rawmidi_read/write; fix hang when writing to /dev/midi* with O_SYNC Signed-off-by: Clemens Ladisch ALSA CVS update ALSA sequencer remove (now obsolete) support for _KERNEL_QUOTE events Signed-off-by: Clemens Ladisch ALSA CVS update Intel8x0 driver intel8x0: Fixed a long mdelay() A long mdelay() call in prepration of 4/6 channels on nForce is optimized and replaced with msleep(). Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver,Intel8x0-modem driver Fixed resume when interrupts are shared with another devices. Signed-off-by: Jozef Vesely Signed-off-by: Jaroslav Kysela ALSA CVS update ICE1712 driver Misc fixes for Aureon boards. - Fixed center/LFE volume controls. - Provide individual driver names for Aureon and Prodigy boards since they have different channel assignment from Revo, etc. Signed-off-by: Takashi Iwai [ARM] Move DMA mask-based bounce detection to dmabounce code. ppc32: Fix compiling of SBC82xx. Noticed by David Woodhouse. Signed-off-by: Tom Rini ppc32: Rework the hooks for serial in the bootwrapper. Signed-off-by: Hollis Blanchard Signed-off-by: Tom Rini [ARM PATCH] 2042/1: S3C2410 - Clock fixes, added watchdog clock Patch from Ben Dooks Added clock definition for watchdog, and fixed it so that clocks that cannot be enabled/disabled will be left alone. Fixed typo in naming of clocks when registering [ARM PATCH] 2043/1: S3C2410 update to registered devices Patch from Ben Dooks Updated all arch/arm/mach-s3c2410/mach-XXX.c files to register default set of devices Added new board struct to keep this sort of info, as it isn't possible to register platform_devices until after the init_io functions have been called. [ARM PATCH] 2044/1: S3C2410 - missing IRQ_TICK from RTC resources Patch from Ben Dooks Fixes missing IRQ_TICK from RTC resources Add internal API to remove reliance on deprecated SCSI_IOCTL_TEST_UNIT_READY This was used by sd and sr Instead make them use scsi_test_unit_ready() which is exported now from scsi_lib.c Signed-off-by: James Bottomley [ARM PATCH] 2046/1: fix nwfpe for double arithmetic on big-endian platforms Patch from Lennert Buytenhek Hi, I need the patch below (against 2.6.8-rc1-ds1) to make nwfpe properly emulate arithmetic with doubles on a big endian ARM platform. From reading the mailing list archives and from helpful comments I've received from people on this list, I gather that this has come up in the past, but it appears that Russell King was never really convinced as to why this patch is needed. I think I understand what's going on, and will try to explain. On little endian ARM, the double value 1.0 looks like this when stored in memory in FPA word ordering: bytes: 0x00 0x00 0xf0 0x3f 0x00 0x00 0x00 0x00 u32s: 0x3ff00000 0x00000000 u64: 0x000000003ff00000 On big endian, it looks like this: bytes: 0x3f 0xf0 0x00 0x00 0x00 0x00 0x00 0x00 u32s: 0x3ff00000 0x00000000 u64: 0x3ff0000000000000 It appears to be this way because once upon a time, somebody decided that the sub-words of a double will use native endian word ordering within themselves, but the two separate words will always be stored with the most significant one first. God knows why they did it this way, but they did. Anyway. The key observation is that nwfpe internally stores double values in the type 'float64', which is basically just a typedef for unsigned long long. It never accesses 'float64's on the byte level by casting pointers around or anything like that, it just uses direct u64 arithmetic primitives (add, shift, or, and) for float64 manipulations and that's it. So. For little endian platforms, 1.0 looks like: 0x00 0x00 0xf0 0x3f 0x00 0x00 0x00 0x00 But since nwfpe treats it as a u64, it wants it to look like: 0x00 0x00 0x00 0x00 0x00 0x00 0xf0 0x3f So, that's why the current code swaps the words around when getting doubles from userspace and putting them back (see fpa11_cpdt.c, loadDouble and storeDouble.) On big endian, 1.0 looks like: 0x3f 0xf0 0x00 0x00 0x00 0x00 0x00 0x00 Since nwfpe treats it as a u64, it wants it to look like: 0x3f 0xf0 0x00 0x00 0x00 0x00 0x00 0x00 Hey! That's exactly the same. So in this case, it shouldn't be swapping the halves around. However, it currently does that swapping unconditionally, and that's why floating point emulation messes up. This is how I understand things -- hope it makes sense to other people too. cheers, Lennert [ARM PATCH] 2047/1: disable NWFPE_XP on big endian Patch from Lennert Buytenhek Hi, gcc doesn't understand 80-bit floating point on the ARM currently, according to the kernel's Kconfig docs, but it would seem that the current extended double emulation code is broken for big endian platforms. So, this patch disables NWFPE_XP on big endian architectures, until someone comes round and fixes it. cheers, Lennert [ARM PATCH] 2040/1: Increase ARM HARDIRQ_BITS to 9, version 2 Patch from Tony Lindgren This is an updated version of patch 2004/1 to optimize for immediate constant [PATCH] USB: add lh7a40x_udc driver This patch implements the USB client controller (UDC) driver from scratch on the LPD-LH7A40X development boards. Signed-off-by: Bo Henriksen Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add omap_udc driver This patch adds a UDC driver for OMAP, which should work on most OMAP processors. It's been tested most on OMAP 1611/5912. The driver supports all USB transfer types (including ISO), has limited DMA support, and seems to work with all gadget drivers, both to Linux hosts and to MS-Windows ones. One reason this UDC is particularly interesting is that recent OMAP processors all support "USB On-The-Go" (OTG) ... and this driver supports it on at least "H2-like" boards. Another reason is that the UDC is very flexible and fully featured; gadget drivers can allocate fifo space to endpoints in the way that's most convenient for the application. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ethernet gadget, minor fixes Minor tweaks to the ethernet gadget driver: - mention that it requires full-duplex hardware - correct the string description: they're always UTF-8 - fix minor C error: don't "&array" (Al Borchers) Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [IA64-SGI] Add full PROM version banner to /proc/sgi_prominfo/nodeXX/version. Signed-off-by: Brian J. Johnson Signed-off-by: Tony Luck [IA64] Add include pagemap.h to tlb.h to fix warnings when CONFIG_SWAP=n. I noticed when building with CONFIG_SWAP=n that tlb.h gave a warning about some undefined symbols. This is because it was pulling them in through swap.h, but when CONFIG_SWAP=n, they're no longer pulled in. Adding pagemap.h to tlb.h fixes the problem. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] generic_defconfig: Enable codepage/iocharset for VFAT filesystems. VFAT filesystems need to have codepages and iocharsets specified these days, so build some into the kernel to make it easier to mount /boot/efi on ia64 systems. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [PATCH] MTD: Additional JEDEC device types Add support for a couple of BIOS ROM devices. The patch has been committed to the MTD CVS tree and adds entries to jedec_probe.c for AMD AM29F002T, Hyundai HY29F002T and Macronix MX29F002T parts. This version is slightly updated from the previous once since I accidentally added MANUFACTURER_MACRONIX when it already existed. I also moved the new definitions to go along with the alphabetical by manufacturer layout of the file. Signed-off-by: Ian Campbell Signed-off-by: Linus Torvalds [PATCH] USB: Use 8-byte hub status URB buffer This patch changes the size of the buffer allocated for each hub's status URB from 3 bytes to 8. The purpose is to avoid "babble" errors with certain buggy hubs. Although I only know of one type of device which does this, the patch does solve its problem and it adds no overhead for anyone else since kmalloc doesn't dole out memory in chunks smaller than 8 bytes (32 actually, on a PC). This is a small thing, but it doesn't hurt and it will make life easier for a few people. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add missing cleanup to usb_register_root_hub() This patch adds some simple cleanups that are missing for one of the error case in usb_register_root_hub(). I would be very surprised if this code ever gets executed, but we might as well be correct. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [IA64] Fix boot problems when using "mem=" boot parameter. My tiger-4 machine has 16GB memory. Kernel 2.6.8 fails to boot on it when command line parameter mem=8G, and it also fails when mem being set to other value, such as 7G, 10G. Basically, in function efi_memmap_walk, md->num_pages might be decreased if mem_limit is set, and then at the next time when efi_memmap_walk is called, trim_top might trim the md again because of IA64_GRANULE_SIZE alignment, then another md which is beyond mem_limit at the beginning will be chosen, and its physical page number is larger than max_pfn. Then, a BUG check is triggered. Signed-off-by: Zhang Yanmin Signed-off-by: Yao Jun Signed-off-by: Tony Luck [IA64] contig.c: Function find_bootmap_location has 2 bugs. Firstly, if it's done successfully, it should return -1 instead of 1 because its caller, efi_memmap_walk, will end when find_bootmap_location returns a value smaller than 0. Secondly, statement "free_start = PAGE_ALIGN(rsvd_region[i].end)" should been moved forward. free_start needs to be initialized for every loop iteration. Current implementation is buggy where initialization is skipped if range_end <= range_start. Skipping initializing will leads to overlapping bootmap with one of the rsvd_regions and subsequently kernel hang at boot time. Singed-off-by:(sic) Zhang Yanmin Signed-off-by: Yao Jun Signed-off-by: Tony Luck [IA64] Remove extraneous MMU_TRACE debugging macros Patch created by Ian Wienand. Signed-off-by: Tony Luck [IA64] allow OEM written modules to make calls to ia64 OEM SAL functions. Add wrapper functions for SAL_CALL(), SAL_CALL_NOLOCK(), and SAL_CALL_REENTRANT() that allow OEM written modules to make calls to ia64 OEM SAL functions. Signed-off-by: Dean Nelson Signed-off-by: Tony Luck [ARM] Fix some sparse complaints: Pointers are NULL not 0. Remove obviously unnecessary iBCS2 shm stuff... we're ARM after all. kobject: convert struct kobject use kref. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: rename in0_ref to cpu0_vid This patch changes all the i2c chip drivers and documentation to use the name "cpu0_vid" instead of "in0_ref". The name "in0_ref" was an error in the first place as motherboard manufacturers may fail to follow the chip manufacturer's recommendation about which "in" channel to use for VCore monitoring. The new name leaves room for chips able to monitor more than 1 vid value, such as the LM93 and, to a lesser extent, the PC87360 family (all by National Semiconductor). These chips are typically designed for dual-CPU motherboards. This breaks the interface (obviously) so libsensors has been updated to support both names. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: update kernel credits/maintainers Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] pci-driver: function documentation fix The returned value can not be null. Yet its description suggests differently. From: Francois Romieu Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: create pci_remove_bus() The following patch implements a pci_remove_bus() that can be used by hotplug drivers for the removal of root buses. It also defines a release function that frees the device struct for pci_bus->bridge when a root bus class device is unregistered. Signed-off-by: John Rose Signed-off-by: Greg Kroah-Hartman [ADFS] Fix sparse signed bitfield warning [IA64] support for IA64 hardware performance counters via the perfmon interface This patch provides support for IA64 hardware performance counters via the perfmon interface. Please consider applying. Signed-off-by: John Levon Signed-off-by: Tony Luck [PATCH] removed bogus casts of SPIN_LOCK_UNLOCKED [PATCH] annotation of ki_buf ->ki_buf is always a userland pointer. [PATCH] annotation of xfs sendfile ->sendfile() takes kernel pointer, not userland one. [PATCH] killed check_region() in ixj Killed check_region(), fixed an old bug in ISA case (we checked the wrong region before claiming the right one - dumb typo back in 2.4.early) [PATCH] signed char bugs in ixj Fixed assumption that char is always unsigned [PATCH] warning fix in usb/gadget/inode.c wrong type of return value. [PATCH] usb alignment fixes Several places did le16_to_cpup() on misaligned address, which blows on any little-endian platform that doesn't like misaligned reads. [PATCH] mda dependency MDA is ISA-only ;-) [BRIDGE]: Fix oops when mangling and brouting and tcpdumping packets The ebtables brouting chain, traversed through the call br_should_route_hook(), can alter a packet. The redirect target does this, f.e., to change the MAC destination. Bart discovered this and proposed a patch; this is a revised version. This version cleans up the handle_bridge code in net/core/dev.c as well as getting rid of extra rcu_read_lock and only does the br_port checking once. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller vt: don't bother doing UTF translation in control states. And don't accept UTF translations as the start of a control state either. Merge common signal handling fault handling in generic code. [PATCH] signal handling race fix The problem: In arch/i386/signal.c, in the do_signal() function, it calls get_signal_to_deliver() which returns the signal number to deliver (along with siginfo). get_signal_to_deliver() grabs and releases the lock, so the signal handler lock is not held in do_signal(). Then the do_signal() calls handle_signal(), which uses the signal number to extract the sa_handler, etc. Since no lock is held, it seems like another thread with the same signal handler set can come in and call sigaction(), it can change sa_handler between the call to get_signal_to_deliver() and fetching the value of sa_handler. If the sigaction() call set it to SIG_IGN, SIG_DFL, or some other fundamental change, that bad things can happen. The patch: You have to get the sigaction information that will be delivered while holding sighand->siglock in get_signal_to_deliver(). In 2.4, it can be fixed per-arch and requires no change to the arch-independent code because the arch fetches the signal with dequeue_signal() and does all the checking. The test app: The program below has three threads that share signal handlers. Thread 1 changes the signal handler for a signal from a handler to SIG_IGN and back. Thread 0 sends signals to thread 3, which just receives them. What I believe is happening is that thread 1 changes the signal handler in the process of thread 3 receiving the signal, between the time that thread 3 fetches the signal info using get_signal_to_deliver() and actually delivers the signal with handle_signal(). Although the program is obvously an extreme case, it seems like any time you set the handler value of a signal to SIG_IGN or SIG_DFL, you can have this happen. Changing signal attributes might also cause problems, although I am not so sure about that. (akpm: this test app segv'd on SMP within milliseconds for me) #include #include #include char stack1[16384]; char stack2[16384]; void sighnd(int sig) { } int child1(void *data) { struct sigaction act; sigemptyset(&act.sa_mask); act.sa_flags = 0; for (;;) { act.sa_handler = sighnd; sigaction(45, &act, NULL); act.sa_handler = SIG_IGN; sigaction(45, &act, NULL); } } int child2(void *data) { for (;;) { sleep(100); } } int main(int argc, char *argv[]) { int pid1, pid2; signal(45, SIG_IGN); pid2 = clone(child2, stack2 + sizeof(stack2) - 8, CLONE_SIGHAND | CLONE_VM, NULL); pid1 = clone(child1, stack1 + sizeof(stack2) - 8, CLONE_SIGHAND | CLONE_VM, NULL); for (;;) { kill(pid2, 45); } } Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] signal-race fixes for s390 Update s30 for the signal race fix From: Mikael Pettersson The signal-race-fixes patch in 2.6.8-rc2-mm1 appears to be a bit broken on s390. When forcing a SIGSEGV the old code updated "*ka", where ka was a pointer to current's k_sigaction for SIGSEGV. Now "ka_copy" points to a copy of that structure, so assigning "*ka_copy" doesn't do what we want. Instead do the assignment via current->... just like i386 and x86_64 do. Furthermore, the SA_ONESHOT handling wasn't deleted. That is now handled by generic code in the kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc signal handling fixes 2.6.8-rc2-mm1 reintroduced the signal-race-fixes patch for i386, x86_64, s390, and ia64, breaking all other archs. The patch below updates ppc, following the pattern of i386. Compiled & runtime tested. No observable breakage. Signed-off-by: Mikael Pettersson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] signal-race-fixes: x86-64 support Add the signal race changes to x86-64 to make it compile again. Didn't merge the more pointless changes from i386. Also remove the special SA_ONESHOT handling, doesn't seem to be needed anymore. From: Mikael Pettersson The signal-race-fixes patch in 2.6.8-rc2-mm1 appears to have broken x86-64's ia32 emulation. When forcing a SIGSEGV the old code updated "*ka", where ka was a pointer to current's k_sigaction for SIGSEGV. Now "ka_copy" points to a copy of that structure, so assigning "*ka_copy" doesn't do what we want. Instead do the assignment via current->... just like the normal signal delivery code does. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] signal handling race fixes: sparc and sparc64 Ok, here are the sparc64 and sparc32 versions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: signal race fix Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha signal race fixes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] signal-race-fix: ia64 It looks fine to me, except that I decided to play chicken as far as the give_sigsegv update of sa_handler is concerned. Arun, I hope I got the ia32 emulation parts right, but you may want to double-check. The patch seems to work fine as far as I have tested. I'm seeing some oddity in context-switch overhead and pipe latency as reported by LMbench, but I suspect that's due to another change that happened somewhere between 2.6.5-rc1 and Linus' bk tree as of this morning. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [NETFILTER]: Fix ip_nat_find_helper() locking. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [CIFS] cifs ipv6 support part 2 Signed-off-by: Steve French (sfrench@us.ibm.com) [ACPI] fix numa build warnings (Keith Owens) Signed-off-by: Takayoshi Kochi USB: rip out the whole pwc driver as the author wishes to have done. Signed-off-by: Greg Kroah-Hartman Revert I2C keywest class fixup Benh says: "Please revert that for now, I need to figure out what they were exactly trying to do and will come up with something if it makes sense but the patch as-is doesn't" Cset exclude: khali@linux-fr.org|ChangeSet|20040825202122|07524 [SPARC64]: Update defconfig. [SPARC64]: Use force_{sig,sigsegv}() in sparc signal handling. Signed-off-by: David S. Miller [SPARC64]: Hack fix, force DTR/RTS on in sunsab console. [SPARC64]: Fix direct f_pos fiddling in openpromfs. Signed-off-by: David S. Miller ALSA CVS update VIA82xx driver Disable legacy FM and SB to prevent lock-ups. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Pontis board: Misc fixes - buggy SPI communcation is fixed - fixed the return value of put callbacks of GPIO controls - corrected the initial register value of CS8416 Signed-off-by: Takashi Iwai ALSA CVS update ICE1724 driver Fixed the internal clock control. This fixes a bug that SPDIF-in mode can't be reset once after it's set. Signed-off-by: Takashi Iwai ALSA CVS update ATIIXP-modem driver Added workaround for buggy BIOS Force to set MODEM_PRESENT bit for some buggy BIOS which don't set this bit. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai [PATCH] update scsi_eh_get_sense commentary Signed-off-by: James Bottomley BKL removal for EH thread startup From: Christoph Hellwig We don't need the BKL anymore for thread startup. Patch rejections fixed up and Signed-off-by: James Bottomley [PATCH] mesh is ppc32-only mesh is only present on older 32bit pmac boards and doesn't compile on ppc64. Signed-off-by: James Bottomley [PATCH] sym_requeue_awaiting_cmds() warning fix drivers/scsi/sym53c8xx_2/sym_glue.c: In function `sym_requeue_awaiting_cmds': drivers/scsi/sym53c8xx_2/sym_glue.c:671: warning: 'cmd' is used uninitialized in this function Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] mpoa warning fix Forgot to switch return type from ssize_t to int when switching to seq_file Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] NULL noise removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] missing export of memchr on arm arm forgot to export memchr(); everybody else does export it and it's used in modules. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] missing include of config.h in asm-alpha/page.h That was a nasty one - missing include of config.h in a file that has non-trivial ifdefs. With some configs it ended up with very odd conflicts (we get included early, take the wrong branch of ifdef, then get another file included, it pulls in config.h and picks the right branch of its ifdef; surprise, surprise, they conflict). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] bad names of local-in-macros in arm io.h "v" and "r" are not good names for variables local in macro... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] check_region() removal in tc/zs.c Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] check_region() removal in fdomain.c Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] any2_scsi() cleaned up Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] signed char fixes in qd65xx qd65xx assumed that char is always signed Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more size_t portability fixes Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] check_region() removal in waveartist Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] preprocessor mess in msnd msnd #defined outb to outb_p, which wasn't a good idea on platforms that had outb_p #defined to outb ;-) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ppc32: PowerMac trackpad problems The trackpad on recent Apple laptops tend to emmit spurrious 'right clicks' apparently. This patch from Alex Clausen fixes it, please apply. The trackpad cannot normally emit a right click, so just filter those out. Signed-off-by: Alexander Clausen Signed-off-by: Michael Schmitz Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: properly export some pcibios_* functions Recent yenta_socket (and maybe others) rely on some pcibios_* functions to be available to modules. This exports them. [PATCH] ppc32: Improve workaround for 74xx CPUs with broken BTIC The previous workaround didn't enable the BTIC bit on CPUs where it is broken. However, it seems some firmwares will unconditionally set it, so this new patch will actually _clear_ it on CPUs where it is broken. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [ACPI] Export acpi_strict for use in modular drivers. This will enable drivers to work around BIOS deficiencies, while still allowing the drivers to be more picky with "acpi=strict" Signed-off-by: Bjorn Helgaas kbuild: Fix make O= A bug that slipped through when introducing Makefile.host. A good way to check if people actually uses make O= ;-) Signed-off-by: Sam Ravnborg kbuild: use *.lds infrastructure in arch/i386/kernel Rusty decided to preprocess a *.lds.S file in parallele with the new *.lds infrastructure being added to kbuild. Fix that up. Also added the file to targets so we do not see recompile each time the kernel is build. Signed-off-by: Sam Ravnborg [NETFILTER]: Fix pointer deref'ing in ip6t_LOG.c Signed-off-by: Olaf Kirch Signed-off-by: David S. Miller [TCP]: Automatically compute tcp_default_win_scale. This patch gets rid of the tcp_default_win_scale sysctl and instead computes the optimum maximum window scale. It just means one less thing to have to tune. I also moved the code out of the inline because it gets called three places and isn't in the critical path. As a side effect, it will cause a smaller window scale for many people since the default tcp_rmem fits in a win_scale of 2. This is allows for finer grain windows (good), but may mask some of the problems with bad implementations we have already seen (bad). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [CIFS] cifs ipv6 part 3 Signed-off-by: Steve French (sfrench@us.ibm.com) [SPARC64]: Add .type and .size directives to some asm files. Signed-off-by: David S. Miller [ARM] signal handling fixes Patch from: Linus Torvalds Update ARM signal handling for Andrew's series of fixes. [SPARC64]: Fix some tabbing in xor.S [CIFS] misc kmalloc and kernel_thread failure checks Signed-off-by: Steve French (sfrench@us.ibm.com) Update megaraid to version 2.20.3.1 From: Mukker, Atul i. Function reordering so that inline functions are defined before they are actually used. It is now mandatory for GCC 3.4.1 (current stable) Declare some heavy-weight functions to be non-inlined, megaraid_mbox_build_cmd, megaraid_mbox_runpendq, megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru, megaraid_busywait_mbox - Andrew Morton , 08.19.2004 linux-scsi mailing list "Something else to clean up after inclusion: every instance of an inline function is actually rendered as a full function call, because the function is always used before it is defined. Atul, please re-arrange the code to eliminate the need for most (all) of the function prototypes at the top of each file, and define (not just declare with a prototype) each inline function before its first use" - Matt Domsch , 07.27.2004 linux-scsi mailing list ii. Display elapsed time (countdown) while waiting for FW to boot. iii. Module compilation reorder in Makefile so that unresolved symbols do not occur when driver is compiled non-modular. Patrick J. LoPresti , 8.22.2004 linux-scsi mailing list Signed-off-by: James Bottomley [SUNSAB]: Remove CRTSCTS handling in set_termios. Higher layers call set_mctrl if necessary. Signed-off-by: David S. Miller fix dma mapping leak in fusion From: Moore, Eric Dean Remove the internal queueing so that commands aren't stored in the driver and thus it doesn't have to worry about whether the IOMMU resources are allocated or not. Signed-off-by: James Bottomley [PATCH] USB: cdc acm patch Fix tty layer sleep/locking problem (again) ... when this is called through the network stack (PPP) sleeping isn't allowed. There's some bugtraq ID for this. From: Oliver Neukum Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: gadgetfs minor updates Gadgetfs updates: - Resolve a problem that came from a change in the API to AIO: kiocb->private type and size changed, but the name remained the same ... so GCC wouldn't report pending memory-corruption. - Probe the controller at runtime, eliminatingting config-specific defines which need to be updated for each new controller. Rip out the old #defines. - Use newish APIs to let VBUS current be used to recharge batteries (or whatever). - Use no_llseek() ... endpoints are pure data streams. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [SPARC64]: Sign extend correct args of sys_syslog(). [SPARC64]: Fix copyarea bug and set default flags in ffb driver. - copyarea checking of src/dst y being equal was buggy. - set optimal FBINFO flags for this device. Signed-off-by: David S. Miller [SPARC64]: Speed up ffb font rendering. Render left to right instead of top to bottom. This shaved a whole second off the: time cat MAINTAINERS benchmark. Signed-off-by: David S. Miller [CIFS] Various fixes to bugs pointed out by Stanford checker SWAT tool (mostly missing checks on small kmallocs and some out of order null pointer checks) Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Update cifs change log [XFS] Change DMAPI dm_punch_hole to punch holes, rather than just truncate files. SGI Modid: xfs-linux:xfs-kern:177585a Signed-off-by: Nathan Scott [XFS] Support for default quota limits via the zero dquot (ala grace times). SGI Modid: xfs-linux:xfs-kern:177627a Signed-off-by: Nathan Scott [XFS] Fix warnings in xfs_bmap.c SGI Modid: xfs-linux:xfs-kern:177663a Signed-off-by: Nathan Scott [XFS] Ensure maxagi not updated early during growfs, conflicts with concurrent inode allocations. Fix from ASANO Masahiro. SGI Modid: xfs-linux:xfs-kern:177699a Signed-off-by: Nathan Scott [XFS] Export sync_page_range to fix O_SYNC in XFS. Signed-off-by: Nathan Scott [XFS] Rework parts of the write path so that when a direct write needs to fallback to buffered in the generic code, we are able to relock the XFS inode correctly. Signed-off-by: Nathan Scott [XFS] Fix O_SYNC flushing in XFS which regressed with concurrent O_SYNC write improvements recently. Signed-off-by: Nathan Scott [XFS] Fix compiler warnings on IA64 builds in ioctl compat code. SGI Modid: xfs-linux:xfs-kern:177850a Signed-off-by: Nathan Scott Add new i915 driver from Tungsten Graphics Inc. This driver covers the i830 chipsets also, a new X 2D + 3D driver are needed to use this but they have been integrated into at least the X.org tree at this point and I think the XFree86 tree. There are probably a few cleanups necessary for this driver. From: Keith Whitwell Signed-off-by: Dave Airlie remove __NO_VERSION__ relic from the past... 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 [PATCH] ipr.c build fix Greg's tree changes the kref API. James's tree adds usage of the old API. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [IPV6] XFRM: extract xfrm_lookup() from ip6_dst_lookup() to support source routing appropriately. This patch extracts xfrm_lookup() from ip6_dst_lookup() to support source routing appropriately. This is because xfrm_lookup() should be performed with the final destination while ip6_dst_lookup() is called with the next-hop. Signed-off-by: Kazunori Miyazawa Signed-off-by: Hideaki YOSHIFUJI [PATCH] Use fixed size buffer instead of kmalloc for m_class in ip_map This avoids lots of bothersome memory management and is generally cleaner. Signed-off-by: Neil Brown Signed-off-by: J. Bruce Fields Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix show_mem on discontig machines Dave Hansen recently did some bootmem and paging init cleanups, but I missed this little bit when I tested his original patches. We need to initialize pgdat->node_mem_map correctly since a) we're using vmem_map, and b) the core won't do it for us since we have a valid node_start_pfn I believe. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix sysrq support in sn_console.c In porting the sn_console driver to the serial core, we lost sysrq support. This patch fixes it and removes a few unncessary #ifdefs. Can you please send it on to Linus asap? sysrq is a *really* nice thing to have. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: fix problems with checksum handling in MD superblocks. md currently uses csum_partial to calculate checksums for superblocks. However this function is not consistent across all architectures. Some (i386) to a 32bit csum. Some (alpha) do a 16 bit csum. This makes it hard for userspace to keep up. So we provide a generic routine (that does exactly what the i386 csum_partial does) and: - When setting the csum, use csum_partial so that old kernels will still recognise the superblock - When checking the csum, allow either csum_partial or the new generic code to provide the right csum. This allows user-space to just use the common code and always work. Also modify the csum for version-1 superblock (which currently aren't being used) to always user a predictable checksum algorithm. Thanks to Mike Tran for noticing this. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix CPU Hotplug: neaten migrate_all_tasks. A followup patch wants to do forced migration, so separate that part of the code out of migrate_all_tasks(). Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Hotplug CPU vs TASK_ZOMBIEs: The Sequel to Hotplug CPU vs TASK_DEAD release_task can sleep. Sleeping allows a CPU to go down underneath you. release_task removes you from the tasklist, so you don't get migrated off the CPU: BUG() in sched.c. In last week's episode, our dashing hero (Ingo Molnar) solved this for self-reaping tasks by grabbing the hotplug cpu lock to prevent this. However, in an unexpected twist, the problem remains for tasks whose parents call release_task on them: the zombies are off the task list, and lurk on the dead CPU. Fortunately, the comedic sidekick (Rusty Russell) has an answer: let's make the hotplug callback walk the runqueue of the dead CPU as well, taking care of the zombies. 1) Restore exit.c to its former form. The comment is incorrect: sched.c checks PF_DEAD, not the state, to decide to do the final put_task_struct(), and it does it for all tasks, self-reaping or no. 2) Implement migrate_dead_tasks() in the sched.c hotplug CPU callback. 3) Rename migrate_all_tasks() to migrate_live_tasks(). Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] schedule profileing From: William Lee Irwin III The patch (from Ingo) below is quite interesting, it allows the use of readprofile not for statistical tine sampling, but for seeing where calls to schedule() come from, so it can give some insight to the "where do my context switches come from" question. Boot with `profile=schedul2' to activate this feature. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] consolidate prof_cpu_mask Handling of prof_cpu_mask is grossly inconsistent. Some arches have it as a cpumask_t, others unsigned long, and even within arches it's treated inconsistently. This makes it cpumask_t across the board, and consolidates the handling in kernel/profile.c Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] introduce profile_pc() The program counter calculation from pt_regs is the only portion of profile accounting that differs across various architectures. This is usually instruction_pointer(regs), but to handle the few arches where it isn't, introduce profile_pc(). Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] consolidate hit count increments in profile_tick() With prof_cpu_mask and profile_pc() in hand, the core is now able to perform all the profile accounting work on behalf of arches. Consolidate the profile accounting and convert all arches to call the core function. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] move profile_operations proc_misc.c is a trainwreck. Move the file_operations for /proc/profile into kernel/profile.c and call the profiling setup via initcall. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make private profile state static Make the various bits of state no longer used anywhere else static to kernel/profile.c Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make prof_buffer atomic_t Convert prof_buffer to an array of atomic_t instead of sometimes atomic_t, sometimes unsigned int. Also, bootmem rounds up internally, so blow away some crap code there. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove iseries profiling From: Anton Blanchard - Remove iseries specific profiling, there were no complaints when I suggested removal on the linuxppc64 list a few weeks ago. - Also remove another instance of that pesky abs() function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] [un]register_ioctl32_conversion() stubs The megaraid driver is calling these, but they don't exist if !CONFIG_COMPAT. Add the necessary stubs, and clean a few things up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce size of struct inode on 64bit Reduce the size of struct inode on 64bit architectures by reducing padding. This assumes spinlocks are 32bit or less which is the case on most architectures. This reduces inode structs by 24 bytes on ppc64, and on ext2 increases the number of inodes in a 4kB slab from 5 to 6. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: refactor common Book-E exception handling macros Refefactor common Book-E exception handling macros into a single file to reduce code duplication. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: clean up unused macro After the recent SLB and STAB cleanups, the ppc64 KERNEL_CONTEXT() macro is no longer used anywhere. This patch removes it. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add a few might_sleep() checks Add a whole bunch more might_sleep() checks. We also enable might_sleep() checking in copy_*_user(). This was non-trivial because of the "copy_*_user() in atomic regions" trick would generate false positives. Fix that up by adding a new __copy_*_user_inatomic(), which avoids the might_sleep() check. Only i386 is supported in this patch. With: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tmpfs atomicity fix tmpfs must use __copy_from_user_inatomic now, to avoid might_sleep warning, when knowingly using __copy_from_user with an atomic kmap. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dnotify + autofs may create signal/restart syscall loop I saw a recent bug report that showed when a process set up a dnotify against the autofs root and then attempted an access(2) call inside the autofs namespace on a mount that would fail, it would create a signal/restart loop. The cause is that the autofs code checks to see if any signals are pending after it waits on a response from the autofs daemon. If it finds any, it assumes that autofs_wait was interrupted, and that it should return -ERESTARTNOINTR. The problem with this is that a signal_pending(current) check will return true if *any* signals were received, not just if a signal that interrupted the wait was received. autofs_wait explicitly blocks all signals except for SIGKILL, SIGQUIT, and SIGINT before calling interruptible_sleep_on. The effect is that if a dnotify is set against the autofs root, when the autofs daemon creates the directory, a dnotify event will be sent to the originating process. Since the code in autofs_root_lookup doesn't check to see what signals are actually pending, it bails early, telling the caller to try again. The loop goes on forever until interrupted via one of the actual interrupting signals. The following patch makes both autofs_root_lookup and autofs4_root_lookup verify that one of its defined "shutdown" signals are pending before bailing out early. Any other signal should be delivered later, as expected. It doesn't matter if the signal occured outside of the sleep in autofs_wait. The calling process will either go away or try again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mostly remove module_parm() MODULE_PARM() was marked obsolete. Remove it from everything except drivers/ and arch/. Naturally, such a widespread change may introduce bugs for some of the non-trivial cases, and where in doubt I used "0" as permissions arg (ie. won't appear in sysfs). Individual authors should think about whether that would be useful. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix MT reparenting when thread group leader dies When the initial thread in a multi-threaded program dies (the thread group leader), its child processes are wrongly orphaned, and thereafter when other threads die their child processes are also orphaned even though live threads remain in the parent process that can call wait. I have a small (under 100 lines), POSIX-compliant test program that demonstrates this using -lpthread (NPTL) if anyone is interested in seeing it. The bug is that forget_original_parent moves children to the dead parent's group leader if it's alive, but if not it orphans them. I've changed it so it instead reparents children to any other live thread in the dead parent's group (not even preferring the group leader). Children go to init only if there are no live threads in the parent's group at all. These are the correct semantics for fork children of POSIX threads. The second part of the change is to do the CLONE_PARENT behavior always for CLONE_THREAD, i.e. make sure that each new thread's parent link points to the real parent of the process and never another thread in its own group. Without this, when the group leader dies leaving a sole live thread in the group, forget_original_parent will try to reparent that thread to itself because it's a child of the dying group leader. Rather handling this case specially to reparent to the group leader's parent instead, it's more efficient just to make sure that noone ever has a parent link to inside his own thread group. Now the reparenting work never needs to be done for threads created in the same group when their creator thread dies. The only change from losing the who-created-whom information is when you look at "PPid:" in /proc/PID/task/TID/status. For purposes of all direct system calls, it was already as if CLONE_THREAD threads had the parent of the group leader. (POSIX provides no way to keep track of which thread created which other thread with pthread_create.) Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] copy_mount_options size fix davem says that copy_mount_options is failing in obscure ways if the architecture's copy_from_user() doesn't return an exact count of the number of uncopied bytes. Fixing that up in each architecture is a pain - it involves falling back to byte-at-a-time copies. It's simple to open-code this in namespace.c. If we find other places in the kernel which care about this we can promote this to a global function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] improve OProfile on many-way systems Anton prompted me to get this patch merged. It changes the core buffer sync algorithm of OProfile to avoid global locks wherever possible. Anton tested an earlier version of this patch with some success. I've lightly tested this applied against 2.6.8.1-mm3 on my two-way machine. The changes also have the happy side-effect of losing less samples after munmap operations, and removing the blind spot of tasks exiting inside the kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Split timer resources The kernel currently allocates the range 0x40-0x5f for timer calls. This causes conflicts with other hardware using these ports (In my case a Winbond W83L519D SD/MMC card reader). This patch splits the resource into the ports actually needed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce casting in sysenter.c Ran across this because it's another place where an unsigned long is passed directly to __pa(). Making the "page" variable a void* seems a bit more natural than an unsigned long and reduces the net number of casts by 1. Without it, we probably need another (void *) cast in the __pa() call. For more explanation as to why this was probably done originally, see this post: http://marc.theaimsgroup.com/?l=linux-mm&m=109155379124628&w=2 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cast PAGE_OFFSET math to void* in early printk __pa() should take a void*. This adds the proper cast. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] call virt_to_page() with void*, not UL I'm sure there's a good reason for these functions to take virtual addresses as unsigned longs, so suppress the warnings and cast them to the proper types before calling the virt/phys conversion functions A perfectly acceptable alternative would be to go and change free_pages() to stop taking unsigned longs for virtual addresses, but this has a much smaller impact. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmalloc_fault() cleanup Store the physical pgd address in a different variable than the virtual address. There's no real reason to only use 1 variable here, other than saving a line of code. But, the types really are different and we might as well just spell that out explicitly. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] don't align virt_to_page() args __pa() is always be consistent inside of a single page. The next thing virt_to_page() does after that is shift down the address, killing the bits that __change_page_attr() just masked off. Remove the superfluous masking. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] include asm/page.h for virt_to_page() asm/page.h seems to be the accepted place to declare virt_to_page() on a vast majority of architectures. This patch makes sure that a few files which use that function also directly include the header. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] task_vsize() locking cleanup task_vsize() doesn't need mm->mmap_sem for the CONFIG_MMU case; the semaphore doesn't prevent mm->total_vm from going stale or getting inconsistent with other numbers regardless. Also, KSTK_EIP() and KSTK_ESP() don't want or need protection from mm->mmap_sem either. So this pushes mm->mmap_sem to task_vsize() in the CONFIG_MMU=n task_vsize(). Also, hoist the prototype of task_vsize() into proc_fs.h The net result of this is a small speedup of procps for CONFIG_MMU. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] O(1) proc_pid_statm() Merely removing down_read(&mm->mmap_sem) from task_vsize() is too half-assed to let stand. The following patch removes the vma iteration as well as the down_read(&mm->mmap_sem) from both task_mem() and task_statm() and callers for the CONFIG_MMU=y case in favor of accounting the various stats reported at the times of vma creation, destruction, and modification. Unlike the 2.4.x patches of the same name, this has no per-pte-modification overhead whatsoever. This patch quashes end user complaints of top(1) being slow as well as kernel hacker complaints of per-pte accounting overhead simultaneously. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix text reporting in O(1) proc_pid_statm() Some kind of brainfart happened here, though it's not visible on the default display from top(1) etc. This patch fixes up the gibberish I mistakenly put down for text with the proper text size, and subtracts it from data as per the O(vmas) code beforehand. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] speed up /proc/pid/statm for !CONFIG_PROC_FS Remove the accounting overhead when CONFIG_PROC_FS is not defined. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /proc/pid/statm accounting fixes Account reserved memory properly as per acahalan's speecified semantics. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Unaccount VM_DONTCOPY vmas properly Unaccount VM_DONTCOPY vmas properly; the child inherits the whole of the parent's virtual accounting from the memcpy() in copy_mm(), but the VM_DONTCOPY check here is where a decision is made for the child not to inherit the vmas corresponding to some accounted memory usages. Hence, unaccount them when skipping over them here. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sane mlock_limit As David M-T points out, the default per-user mlock limit should be at least a single page. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] LANANA: maintainer update I took over LANANA maintainership from John Cagle. Patch updates MAINTAINERS accordingly. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] LANANA: devices.txt update Patch brings devices.txt up-to-date with LANANA. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] parport: NetMOS 9805 interface Add support for netmos devices to the parallel port driver. NetMOS 9805 support is already in the kernel, this patch adds the support for the missing 9735,9855,9755 and 9715 chips. And another remark: The 9735 and 9835 seem to be chips with serial *and* parallel interfaces, so I suppose they are already claimed somewhere in the serial driver. I don't know whether this causes any problems. I'm sorry that I can't test, I've only a 9805 here. Any idea how these "dual" chips have to be handled by the kernel? Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: lcs network driver lcs network driver changes: - Allocate the reply structure instead of taking it from the stack. - Use del_timer_sync instead of del_timer. - Clean up helper threads creation/shutdown. - Split lcs_register_mc_addresses to make it readable again. - Free multicast list entries when device is going down. - Retransmit multicast list in device recovery. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer common i/o layer change: - Correct check in qdio_stop_polling to avoid loosing initiative on the qdio inbound queue. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: sclp driver changes sclp driver changes: - Add reboot notifier to reset the sclp send/receive masks on shutdown. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth network driver qeth network driver change: - Make qeth devices which are present but not up addressable by snmp ioctls. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifdef fixes for drivers/isdn/hifax/* This patch changes a bunch of '#if CONFIG_PCI' to '#ifdef' instead, to make the kernel source cleaner for compiling with 'gcc -Wundef'. Signed-off-by: Karsten keil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifdef cleanup for sh64 Another small cleanup patch for #if/#ifdef usage. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifdef cleanup for cris port Another small #if/#ifdef cleanup, to make things safer for compiling with -Wundef Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifdef cleanup for PPC Another few #if/#ifdef cleanups, this time for the PPC architecture. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifdef cleanups in drivers/net Here's the last of them for 2.6.9-rc1 - two more #if/#ifdef cleanups. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make oom killer points unsigned long It seems a little unsafe to me to have oom killer badness points of type int, when all the underlying objects are unsigned long. I can't immediately think of a case where this matters much, but e.g. a long-running job or daemon on a 64 bit machine might lose it's bonus because of that. Signed-off-by: Tim Schmielau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dvb pci_enable_device() fix Call pci_enable_device() before looking at pci_dev. Also, call pci_disable_device() when releasing the device. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix copying of unaligned data across user/kernel boundary 32 bit compatibility code sometimes needs to copy unaligned data across kernel/user boundary and currently there is no architecture independent API to do it. (1) Introduce new APIs __{get,put}_user_unaligned. These APIs are necessary because the optimal way to copy unaligned data across kernel/user boundary is different on different architectures. Some architectures don't even care about alignment. On some __put_user is faster than __copy_to_user for small sizes. (2) Optimize __{get,put}_user_unaligned for ia64, x86-64, s390, ppc64. (3) Fix compat_filldir64() which is broken on big-endian machines Thanks to Arnd Bergmann for his help. Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] WAITQUEUE_DEBUG cleanup While trying out compiling of reiser4 on sparc64, ppc64, alpha, and ia64, I discovered that WAITQUEUE_DEBUG is nowhere defined in 2.6.x, and various compiler versions spew copious warnings at #if on it. Convert __SEMAPHORE_INITIALIZER() to C99 initializers while in the area. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ftape support for x86_64 We have this patch that adds ftape support for x86_64 and cleans up the alpha support a little. The comments look like Vojtech did the x86_64 part and I guess the alpha bits are from Herbert Xu. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Keep sparc32 config consistent This patch changes the name of the sparc32 Kconfig menu from "General Setup" to "General Machine Setup", to match the changes committed to most other arches in 2.6.9-rc1. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix typo in bw2.c Patch to fix typo in bw2.c, added in 2.6.9-rc1. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] interrupt is enabled before it should be when kernel is booted There is a minor problem in function start_kernel. start_kernel will enable interrupt after calling profile_init. However, before that, function time_init on IA64 platform could enable interrupt. See this call sequence: start_kernel ->time_init ->ia64_init_itm ->register_time_interpolator ->write_seqlock_irq. Signed-off-by: Zhang Yanmin Signed-off-by: Yao Jun Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] HVCS hotplug fixes Here is an HVCS (drivers/char/hvcs.c) patch which fixes the hvcs driver problems with hotplugged vty-server adapters. The current driver handles the adapter index assignment improperly so after a number of device removals and insertions the driver could no longer map a tty->index to a vty-server properly and tty_open() attempts would fail. This patch solves this problem by always assigning the lowest available index to the new adapters and returning an index to the list when the adapter is removed. changelog: drivers/char/hvcs.c =================== -Added hvcs_index_list to manage the lowest available index. -Added four helper functions to manage the list, which include the creation and destruction of the list, the get'ing of the lowest index, and the returning of an index. -Moved free_irq() outside of the hvcs_final_close() function in order to get it out of the spinlock. -Rearranged hvcs_close() to accomodate the previous change. -Removed local CLC_LENGTH define and used HVCS_CLC_LENGTH from arch/ppc64/hvcserver.h instead. -Cleaned up some printks and did some house keeping on the changelog. Documentation/powerpc/hvcs.txt ============================== -Added information on sysfs 'index' attribute added in previous hvcs patch. -Added Q & A section on how to find the proper dev node for a newly added adapter. I think this is the last of the HVCS patches for a while, as all of my oustanding issues have been dealt with. Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] revert ioc3-eth.c pci_enable_device() changes Revert addition of pci_enable_device(). It wasn't appropriate to this device, apparently. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix hp100.c for pci_enable_device() changes Don't look at pci_resource_start() before pci_enable_device(). Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix x86_64 vs select.c namespace clash fs/select.c:122:1: warning: "__IN" redefined In file included from include/linux/timex.h:61, from include/linux/sched.h:11, from include/linux/module.h:10, from fs/select.c:17: include/asm/io.h:70:1: warning: this is the location of the previous definition fs/select.c:123:1: warning: "__OUT" redefined include/asm/io.h:60:1: warning: this is the location of the previous definition Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] must_check copy_to_user() Add __must_check tags to the x86 copy_*_user() functions. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] copy_to_user checking in select.c Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Use Name cramfs in Kconfig Message A senior kernel hacker couldn't find the cramfs option. No wonder, the message doesn't mention cramfs at all. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] really uninline lmc_trace As part of some gcc 3.4 fixes, someone removed the inline from the prototype of lmc_trace in lmc_debug.c, but the useless inline at the actual function remained. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: force_sigsegv name clash. The recent signal fix broke s390 because of a name clash. Rename the s390 arch function to do_sigsegv. Signed-off-by: Martin Schwidefsky Signed-off-by: Linus Torvalds [PATCH] drm: missing bus_address assignment Patch from Tom Arbuckle for missing bus_address Signed-off-by: Dave Airlie Signed-off-by: Linus Torvalds [PATCH] drm: optimise i8x0 accesses.. This optimises the drm code to not do put_user() on memory the kernel allocated and then mmap-installed to userspace, but instead makes it use the kernel virtual address directly instead. From: Arjan van de Ven Signed-off-by: Dave Airlie Signed-off-by: Linus Torvalds [IA64] perfmon.c: file descriptor fixes - fix pfm_free_fd() to clear current->files->fd[fd] in case of error during PFM_CONTEXT_CREATE, i.e., undo the effect of fd_install(). This could cause kernel panic if the file descriptor gets used by error through perfmon. - fix pfm_context_create() to correctly propagate the return value of pfm_alloc_fd(). signed-off-by: stephane eranian Signed-off-by: Tony Luck [UACCESS]: Fix typo in generic __get_user_unaligned(). Signed-off-by: David S. Miller [PATCH] fix PA-RISC fork_idle() sweep Whether a brainfart or a mismerge, I inadvertently broke PA-RISC during the fork_by_hand()/init_idle() consolidation. The following patch repairs a compilebug/thinko pair, consisting of the use of an undeclared variable cpunum, and not attempting fork_idle() until after the check for IS_ERR(idle) reported by James Bottomley. Signed-off-by: William Irwin Signed-off-by: Linus Torvalds [PATCH] 2.6 ISDN CAPI: low-level drivers skb free fix CAPI skb freeing fix. On sending, the hardware/low-level driver may free a skb on no error only. The application/core side must take care otherwise. Author: Carsten Paeth, Armin Schindler [NETFILTER]: Consistent IP address access in arp_tables.c Use memcpy just like net/ipv4/arp.c does since these u32 values can be arbitrarily aligned and this is not exactly a hot code path. Signed-off-by: Antti P Miettinen Signed-off-by: David S. Miller [SPARC64]: Fix delay with HZ==1000. When I moved sparc64 over to HZ==1000 this added some problems to the udelay() handling. Specifically, with slower cpus we could now get underflows to zero for things like udelay(1) due to the order of multiplies and shifts. Fix this, and move it out to arch/sparc64/lib/delay.c so it is easier to tinker with this in the future and also to optimize away one of the multiplies for the constant delay case just like other platforms do. Signed-off-by: David S. Miller [MAINTAINERS]: Update my email contact info. [AF_PACKET]: Use void * for virtual addresses. I've been auditing code, cleaning up warning where code passes unsigned long's to functions and macros that really take pointers. Here's some explanation as to why I think these types were coded up this way originally: http://marc.theaimsgroup.com/?l=linux-mm&m=109155379124628&w=2 The attached patch make packet_opt->pg_vec a pointer to an array of char*'s instead of a pointer to an array of unsigned [PKT_SCHED]: Update for netem scheduler. This is a third revision of the netem extensions which provides * packet duplication * correlated random number * loading distribution table The API is backwards compatible and now uses nested elements to allow for easier future changes. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NETFILTER]: Remove unused file. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller ' Add some missing NULL->0 and __user annotiations Signed-off-by: Dave Airlie [NETLINK]: Remove duplicate declarations Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [AMD7930]: Fix kcalloc() args. [SPARC64]: Update defconfig. [CREDITS]: Update my entry. [PATCH] casts are not lvalues Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] soundblaster check_region() removal moved request_region() to callers of sb_dsp_...() Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sscape cleanup, fixes and check_region() removal * general cleanup of probing code * claim codec ports * sizeof(char *) had been used instead of intended sizeof(char[4]); it even worked on x86... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] trix cleanup and check_region() removal probing cleaned up, claiming of ports mostly fixed (will be finished in ad1848 patch later in series) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] mad16 cleanup, fixes and check_region() removal * probing cleaned up * register ports claimed * handling of other ports mostly fixed (will be completed later in series) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] pss cleanup, fixes and check_region() removal probing cleaned up, handling of ports mostly fixed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sgalaxy cleanup and check_region() removal probing cleaned up, handling of ports mostly fixed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] opl3 cleanup and check_region() removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ad1848 check_region() removal * ports for ad1848 are now claimed by callers * ad1848_detect() gets pointer to struct resource in question * ad1848_init() gets the same pointer and consumes it * ports for mss are now claimed by callers (both config and ad1848 ones) * probe_ms_sound() gets pointer to ad1848 ports * attach_ms_sound() gets the same pointer and consumes both regions. * callers updated. That had killed a *lot* of check_region() and closed corresponding races. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] maui cleanup, fixes and check_region() removal probing cleaned up leaks on failure exits fixed ports handling mostly cleaned up (will be completed later, when we do mpu401) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cmpci cleanup cmpci probing partially cleaned up in preparation to mpu401 fixes Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] mpu401 check_region() removal mpu401 ports are claimed by callers now probe_mpu401() gets pointer to resulting struct resource callers updated, a bunch of check_region() calls eliminated Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] wf_midi check_region() removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] 64bit cleanup in bt878 and btaudio ~0x0UL passed in u32 argument will do what the authors wanted, but it's a hell of a silly way to spell ~0U on 32bit boxen and it generates warnings on 64bit boxen (we get correct value after truncation, but compiler doesn't know that ;-) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] 64bit portability fixes (pointer-to-int stuff) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] arm Kconfig fixes ARM dependency and makefile fixes (ACKed by rmk) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds Fix "insert_resource()" nesting bug It used to create totally impossible resource trees in some circumstances where it was asked to insert a conflicting resource. We never noticed, because it wasn't used that much. Make it return the proper error instead. [PATCH] misc sound/oss bits - a couple of PCI drivers made dependent on CONFIG_PCI - signed char fix in wavfront.c Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] checksum.h annotations missing annotations in csum_partial_copy_from_user() on arm and ppc Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] misc alpha bits * long constant in a.out.h * missing cast to pointer in pgtable.h * removed useless __chk_user_ptr() in get_user() and put_user() - with fixed typeof handling in sparse we are getting the check from __typeof__(*(ptr)) __user *__pu_addr = (ptr); \ anyway, so __chk_user_ptr() is redundant there. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ifdef fixes smc91x.c: missing ifdef CONFIG_ISA around ISA-only code. asm-arm/apm.h: ifdef CONFIG_APM breaks if APM is a module. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] NULL noise removal in usb/gadget Signed-off-by: Al Viro Signed-off-by: Linus Torvalds Remove QIC-02 tape from Kconfig. Let's leave the code for a while yet, and see if somebody screams. But both Red Hat and SuSE claim it is unused, so it probably is. The driver hasn't gotten updated in years, and google doesn't seem to show any usage either. [PATCH] ide: remove /proc/ide/hd?/settings:ide-scsi & HDIO_SET_IDE_SCSI ioctl As noticed by Alan Cox: "It doesn't work now so it clearly isnt being used 8). We hold the lock because its a proc function and we then replace the proc functions in the attach method -> deadlock. It is also incredibly hard to fix without a major rewrite." The same is true for HDIO_SET_IDE_SCSI ioctl. Both were broken 18 months ago in 2.5.63 as a side-effect of locking fixes. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: do hwif spin up for all platforms From: Alan Cox This was put in for PPC specifically and defined in the 2.4 tree to be paranoid about breaking stuff. The actual wait for hwif spin up is however perfectly correct for all drives. In the normal PC case the PC BIOS has done this but with other embedded boxes and with things like LinuxBIOS it may not have done. Thus it should always be done. Signed-off-by: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: quiten hwif spin up From: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: fix bad disk geometry hang From: Alan Cox If you get invalid geometry (eg a failed drive) the box hangs on boot because we try and unregister the registered driver and end up in a locking mess. We change the behaviour to simply leave the device unattached which avoids the mess. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: identify non decoded master/slave by serial and model From: Alan Cox Some interfaces (notably PCMCIA ones) don't decode the master/slave select so you get two copies of a device appearing and bad things happening if a user accidentally uses both. This checks for the model/serial matching but also knows about non ATA drives ide=noprobe and a Maxtor problem that was found in Andrew's testing of an earlier patch. Although M00000.. drives should be RMA'd to Maxtor (and with info on where they were obtained...) we don't want to break anyone who has them. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: check the return value of pci_set_dma_mask() in cs5520.c From: Arjan van de Ven Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: small drivers/ide/legacy/Makefile cleanup Let's kill the obsolete CONFIG_BLK_DEV_HD98 entry. Signed-off-by: Adrian Bunk Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove CONFIG_IDE_TASKFILE_IO code from pdc4030.c It seems that CONFIG_IDE_TASKFILE_IO code in pdc4030.c was never tested (i.e. writes don't work et all because of bogus rq->cmd check). Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove unused IDETAPE_DEBUG_LOG_VERBOSE code from ide-tape.c Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds JFS: fix memory leak in __invalidate_metapages Signed-off-by: Dave Kleikamp [SERIAL] Factor out "clear fifo" functionality. Move "clear fifo" into separate function dependent on UART_CLEAR_FIFO capability. We take note of the comment about Lucent Venus and always use the two-stage enable-then-clear as we do on startup. [SERIAL] Move XR16C850 Tx/Rx trigger level setup to startup code [PATCH] Problem with SiS900 - Unknown PHY From: Laurent Some time ago, I sent on this list a mail about my strange problem with my SiS900 network card (Subject was Sluggish performances with FreeBSD) To sum up, when my card is in 100Mb mode, I have poor throughput but in 10Mb, all seems normal. After some tests, it seems these results was due to a misdetection of the PHY device. mii-tool reports : product info: vendor 08:00:17, model 3 rev 0 and after some search on the web, I found it's a NS DP83847 which is very similar. Signed-off-by: Andrew Morton [netdrvr e1000] disable DITR, which apparently hurts performance [PATCH] Fix DMA boundary overflow bug We seem to have found an overflow problem in libata-core.c. We were trying to DMA to the address range 0xffff8000-0xffffbfff. In the original version of the code, given that address and count (0xffff8000 and 0x4000), the variable "boundary" would be set to 0, causing len to be set to 0x8000 (which is greater than sg_len). Then at the bottom of the loop, sg_len would be set to 0xffffc000 (0x4000 - 0x8000), which would then cause the loop never to terminate (until much of memory was scribbled over or the kernel died). The code below should be functionally identical, but not be subject to the same overflow problem (boundary needs to be a u33). Signed-off-by: jeremy@sgi.com ===== drivers/scsi/libata-core.c 1.94 vs edited ===== [SERIAL] 8250: We can only use the FIFO if fifosize > 1. [PATCH] ibm_emac driver updates Optimizes transmit windows for improved performance and to prevent TX underruns. Fixes driver registration error handling. Fixes ZMII and RGMII thinkos. Fixes for MDIO handling issues from Ralph Siemsen. Please apply. Signed-off-by: Matt Porter [PATCH] sata_nv: fix CK804 support This patch fixes a problem introduced when CK804 support was added. mmio_base can only be set in the CK804 case, else libata will attempt to iounmap mmio_base, which isn't iomapped for the non-CK804 case. Still need the bar 5 address, so steal from host_set->ports[0]->ioaddr.scr_addr. Jeff, let me know if this is a bad thing to do. [SERIAL] 8250: Add serial8250_config structure definition. This structure replaces serial_uart_config to allow the 8250 driver to extend it without breaking all the other users. [SERIAL] 8250: tell transmit path the data transfer size. Some UARTs give us a transmit interrupt when the TX FIFO is less than half empty. This means we should not transfer a FIFO-full of data to the device. Introduce "tx_loadsz" to indicate the size of this transfer. [PATCH] ISDN Eicon driver: maint/trace fix and update Fix of the debug/trace driver and removal of irq locks. - Only spinlocks[bh] are used now. - Removed obsolete direct debug /proc interface. - Update of internal trace features and its API. - Use common definition of MAX_DESCRIPTORS. [PPP]: Fix assertion trigger with NET_CLS_ACT. Missing setting of skb->input_dev when changing skb->dev Signed-off-by: Jamal Hadi Salim Signed-off-by; David S. Miller [NETFILTER]: One missed case in arp_tables.c unaligned fixes. Signed-off-by: Antti P Miettinen Signed-off-by: David S. Miller [IPV4/IPV6]: Fix fragment creation. We have two problem in ipv4 and ipv6 wrt. to fragmentation on output. Both of which result in fragmentation when it is really not needed. When fragmenting both ipv4 and ipv6 need to make the post IP-header portion of the packet have a length of modulo 8. This means that if the PMTU is not a multiple of 8 after the IP header size is subtracted, we will fragment for full sized frames for the modulo 8 bytes. Furthermore, IPV6 subtracts out space for the fragmentation header it must add, making unnecessary fragmentation even more likely. We still need to handle ip*_append_page() and that will happen in a followup fix. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller kbuild: Use inttypes.h when stdint.h are not available The following is from Jean-Christophe Dubois . On Solaris 2.8, does not exist, but does. However, on Cygwin (the other odd place that the kernel is compiled on) doesn't exist. So we end up testing for __sun__ and using there, and everywhere else. Signed-off-by: Tom Rini Signed-off-by: Sam Ravnborg kbuild: Use getopt_long in genksyms only when available Use getopt_long() or getopt(), depending on the host From: Jean-Christophe Dubois . We do not always have GNU getopt_long(), so when we don't, just use getopt() and the short options. We do this based on __GNU_LIBRARY__ being set, or not. Originally from Jean-Christophe Dubois . Signed-off-by: Tom Rini Signed-off-by: Sam Ravnborg kbuild: Solaris fixes in various kbuild Makfiles's Additional Makefile fixes for Solaris 2.8 On Solaris, 'head' doesn't take a -q argument. But we can use 'grep -h' instead, so do that in Makefile.mod{inst,post}. The built-in test to /bin/sh doesn't like 'if ! cmd' syntax, so when determining if we need to do modversion stuff, invert the if/else cases. The built-in test also doesn't understand -ef, so invoke a real version of test which does. Signed-off-by: Tom Rini Signed-off-by: Sam Ravnborg kbuild: Add 'make namespacecheck' make namespacecheck lists globally visible symbols that are not used outside the file that defines them. These symbols are candidates for static declarations. It also lists multiply defined symbols. namespace.pl knows about lots of special cases in the kernel code, including exported symbols and conglomerate objects. The patch also corrects the usage of scripts/reference*.pl, they need $(src). Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg Index: 2.6.9-rc1/Makefile =================================================================== [SERIAL] 8250: combine UART_CLEAR_FIFO/UART_USE_FIFO into one flag. Combine UART_CLEAR_FIFO and UART_USE_FIFO into one capability - UART_CAP_FIFO. There is only one UART with an unused FIFO - ST16650. Since we check the fifo size before enabling, we maintain the existing behaviour. [SERIAL] 8250: serial8250_set_sleep Add container function for UART sleep code. Currently only Startech and TI16750 uses this. [SERIAL] 8250: add UART_CAP_SLEEP capability. [SERIAL] 8250: Rename UART_STARTECH to UART_CAP_EFR UART_STARTECH is really telling us that the UART has an EFR register, so call this flag UART_CAP_EFR. Undo UML mis-merge of jiffies initialization. Paolo Giarrusso points out that the UML merge incorrectly caused INITIAL_JIFFIES to be reset back to zero, instead of the debug value for getting an early jiffies wrap. Fix it back up. [CIFS] Fix incorrect byte count in unlock SMB [NETFILTER]: Flush fragment queue on conntrack unload Problem discovered, and original version of patch, by Olaf Kirch. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Fix race when flushing fragment queue Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [MMC] Use local card pointer rather than md->queue.card [MMC] Remove unused host->priv [MMC] Add host specific block queue parameters Allow MMC host drivers to specify their data phase capabilities to the block queue. This will eventually allow us to perform SG data phase operations, thereby processing a single request in one go. [MMC] Give the MMC host the full-sized request. Pass the total number of MMC data blocks in the request to the host driver. Since existing MMC host drivers do not support scatter-gather at present, the block queue defaults have been chosen to prevent scatter-gather block requests for MMC. A host can alter these parameters when it wishes to take advantage of SG capabilities. [MMC] MMCI: Remove hardcoded MCI_IRQMASK definition [MMC] MMCI: data FSM handling updates - Use mmci_stop_host() to ensure that the data FSM is shut down and any driver held data is properly released. - FIFO size is 64 bytes not 16. [MMC] MMCI: Manipulate IRQ masks according to the data FSM state. Prevent IRQ race conditions between the two handlers and within the primecell itself. Unfortunately, the primecell does not always mask the FIFO empty interrupt we reach the end of a transfer to the card. Also, we may receive the "data end" interrupt prior to finishing a transfer from the card, so mask this off until we've read the last bytes from the FIFO. [MMC] MMCI: split the PIO data read and write paths. [MMC] MMCI: Maintain offset rather than buffer pointer for PIO [MMC] MMCI: use bio_kmap_irq() rather than req->buffer This is in preparation for SG data IO. [MMC] MMCI: Add SG support to PIO data transfers This allows us to transfer a whole request for multiple pages in one transaction with the MMC card, resulting in higher overall throughput. [MMC] MMCI: Ensure that we read all data from FIFO. When we are nearing the end of a transfer from the card, we may not have sufficient data in the FIFO to trigger a "half FIFO full" IRQ. Therefore, when we have less than MCI_FIFOSIZE bytes left, switch to "FIFO contains data" IRQ mode instead. [MMC] PXAMCI: Bracket power management calls with CONFIG_PM. [PATCH] megaraid warning fix The ioctl32 conversion registration stubs are in ioctl32.h now. Signed-off-by: Andrew Morton kbuild: fix stage 2 of module build When building allmodconfig the following error were seen: scripts/Makefile.modpost:86: target `fs/nls/nls_koi8-ru.ko' given more than once in the same rule. This happened for all modules with 'ko' inside their name. This bug were introduced when head ... were replaced by grep. Signed off by: Sam Ravnborg bk: Ignore arch/i386/kernel/vsyscall.lds Signed-off-by: Sam Ravnborg [PATCH] libata: ata_piix.c PIO fix [patch] libata: ata_piix.c PIO fix "[libata] transfer mode cleanup" introduced bug in ata_piix.c: previously PIO number (not mode) was passed to piix_set_piomode(). Fortunately this function is only used for (disabled) PATA support. I bet that this is the reason why MWDMA didn't work for PATA. Signed-off-by: Bartlomiej Zolnierkiewicz kbuild: Updates to namespacecheck.pl From: Keith Owens This now supports the absolute symbols from modversions, handles recent binutils changes and supports O=. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg kbuild: Add stactic analyser tools to make help Added the tools that seems to be maintained. There is a bunch that has not been touched for a while - ignore them for now. Signed-off-by: Sam Ravnborg [IA64-SGI] sn2_defconfig: Enable preempt, CPU hotplug, ext2 and IDE. o enable preempt per Andrew's request for testing o enable CPU hotplug for testing o add EXT2 and IDE disk support to make simulation easy Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [ETH]: Zap NET_CLS_ACT ifdef. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [IA64] palinfo.c: typo s/BEER/BERR/ - fix a typo in the file /proc/pal/CPU*/processor_info w.r.t. to BERR promotion. Initially reported by Danny Kwong from HP. Signed-off-by: stephane eranian Signed-off-by: Tony Luck [IA64] perfmon.c: cleanup system-wide context when closed from another cpu - fix pfm_stop() and pfm_flush_pmds() to correctly cleanup in case of a system-wide context which is closed while running from another processor. This was leading to an assertion failure in pfm_loads_regs() for the next user of the PMU on the monitored CPU. signed-off-by: stephane eranian Signed-off-by: Tony Luck [TG3]: Add 5750 A3 workaround. Signed-off-by: David S. Miller [TG3]: Check MAC_STATUS_SIGNAL_DET in serdes polling. Otherwise we do not handle properly the case where the switch/hub does not support auto- negotiation. This is what was breaking 5704 hw fiber autoneg. Signed-off-by: David S. Miller [TG3]: Add capacitive coupling support. Signed-off-by: David S. Miller [TG3]: Fix clock control programming on 5705/5750. Need to clear one bit at a time, so if we are clearing both 625_CORE_CLOCK and ALTCLOCK we first clear the latter then the final write will clear the former. Signed-off-by: David S. Miller [TG3]: Update driver version and reldate. [ARM PATCH] 2055/1: S3C2410 - add timer0 deadzone definition Patch from Ben Dooks Add the definition of timer 0's dead-zone capability [ARM PATCH] 2056/1: S3C2410 - check for IRQ pending in gettimeoffset() Patch from Ben Dooks Ensure we check for IRQ pending for the gettimeoffset() function [ARM PATCH] 2061/1: S3C2410 - Drive strength control for s3c2440 Patch from Ben Dooks Register definitions, and support for modifying the Drive Strength Control registers on the S3C2440 Signed-off-by: Ben Dooks [NET]: net_random_init needs to get seed later in boot process Argh.. random_init isn't called until the device's are initialized. Rather than mess with random.c initialization, how about this; it resets the net_random state late in initialization when get_random_bytes is ready. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PKT_SCHED]: Distribution table fixes for netem. Fix some issues with netem. * fix memory link in q_destroy where distribution table not freed * fix math error in tabledist that made it work for only small values * change API for distribution table so scaling factor is constant and table size is determined by looking at the rtnetlink payload size. this is faster and simpler. Since haven't actually released the tools to load the table yet, this is the chance to get it right ;-) Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [IPV4]: Push ip_append_data() frag bug fix into ip_append_page() Based upon implementation suggestions from Yoshifuji Hideaki. Signed-off-by: David S. Miller [TG3]: Kill all on-chip send BD support code. People can resurrect from the revision history if we ever want to investigate using this again and it kills tests from several fast paths. Signed-off-by: Jeff Garzik Signed-off-by: David S. Miller [PATCH] Alpha: generic dma mapping From: Ivan Kokshaysky - big functions moved out of line; - handle dev == NULL case, which apparently means the isa device. As before, this is needed for Jensen. This also makes the isa sound drivers working again with recent kernels. [PATCH] Fix up Centaur CPU feature enabling. Nehemiah wasn't having the CX8 bit enabled before. In fixing it up, I rewrote the code to be a little clearer. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [netdrvr 8139cp,r8169] fix dma_addr_t sizeof test [PATCH] prio-tree: remove function prototype inside function I had a problem when compiling a 2.6 kernel with gcc 3.5 CVS. The prototype for prio_tree_remove in mm/prio_tree.c is inside another function. gcc 3.5 gets upset and removes the function completely. Apparently this isnt valid C, so lets fix it up. Details can be found here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17205 Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make assign_irq_vector() non-__init Make assign_irq_vector() non-__init always (it's called from io_apic_set_pci_routing(), which is used in the pci_enable_device() path). Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] platform update for ES7000 This update only applies to Unisys' ES7000 server machines. The patch adds a OEM id check to verify the current machine running is actually a Unisys type box before executing the Unisys OEM parser routine. It also increases the MAX_MP_BUSSES definition from 32 to 256. On the ES7000s, bus ID numbering can range from 0 to 255. Without the patch, the system panics if booted with acpi=off. This patch has been tested and verified on an authentic ES7000 machine. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix oops with nmi-watchdog=2 Contributions from Zarakin Intel removed two msrs: MSR_P4_IQ_ESCR_0|1 (0x3ba/0x3bb), P4 model >= 3. See Intel documentation Vol. 3 System Programming Guide Appendix B. nmi_watchdog=2 oopsed at boot time and oprofile at driver load. Avoid touching them when model >= 3. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 exceptions notifier for kprobes This patch provides notifiers for i386 architecture exceptions. This patch has been ported from x86_64 architecture as suggested by Andi Kleen. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kprobes base patch This patch helps developers to trap at almost any kernel code address, specifying a handler routine to be invoked when the breakpoint is hit. Useful for analysing the Linux kernel by collecting debugging information non-disruptively. Employs single-stepping out-of-line to avoid probe misses on SMP and may be especially useful in aiding debugging elusive races and problems on live systems. More elaborate dynamic tracing tools such as DProbes can be built over the kprobes interface. Helps developers to trap at almost any kernel code address, specifying a handler routine to be invoked when the breakpoint is hit. Useful for analysing the Linux kernel by collecting debugging information non-disruptively. Employs single-stepping out-of-line to avoid probe misses on SMP and may be especially useful in aiding debugging elusive races and problems on live systems. More elaborate dynamic tracing tools such as DProbes can be built over the kprobes interface. Sample usage: To place a probe on __blockdev_direct_IO: static int probe_handler(struct kprobe *p, struct pt_regs *) { ... whatever ... } struct kprobe kp = { .addr = __blockdev_direct_IO, .pre_handler = probe_handler }; register_kprobe(&kp); Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Jumper Probes to provide function arguments A special kprobe type which can be placed on function entry points, and employs a simple mirroring principle to allow seamless access to the arguments of a function being probed. The probe handler routine should have the same prototype as the function being probed. Currently implemented for x86. The way it works is that when the probe is hit, the breakpoint handler simply irets to the probe handler's eip while retaining register and stack state corresponding to the function entry. After it is done, the probe handler calls jprobe_return() which traps again to restore processor state and switch back to the probed function. Linus noted correctly at KS that we need to be careful as gcc assumes that the callee owns arguments. We save and restore enough stack bytes to cover argument space. Sample Usage: static int jip_queue_xmit(struct sk_buff *skb, int ipfragok) { ... whatever ... jprobe_return(); return 0; } struct jprobe jp = { {.addr = (kprobe_opcode_t *) ip_queue_xmit}, .entry = (kprobe_opcode_t *) jip_queue_xmit }; register_jprobe(&jp); Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix the unnecessary entropy call in the irq handler Currently add_interrupt_randomness() is called at each interrupt when one of the handlers has SA_SAMPLE_RANDOM flag, regardless whether the interrupt is processed by that handler or not. This results in the higher latency and perfomance loss. The patch fixes this behavior to avoid the unnecessary call by checking the return value from each handler. Signed-off-by: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Update PPC MAINTAINERS & CREDITS David Engebretsen has moved on to other things and is no longer maintaining ppc64. This patch adds an entry in CREDITS to note his contribution in leading the team that did the PPC64 port originally and updates various PPC-related MAINTAINERS entries. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: rework PPC64 cpu map setup Move all cpu map initializations to one place (except for the online map -- cpus mark themselves online as they come up). This sets up cpu_possible_map early enough that we can use num_possible_cpus for allocating irqstacks instead of NR_CPUS. Hopefully this should also help set the stage for kexec. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set platform cpuids later in boot Move the initialization of the per-cpu paca->hw_cpu_id out of the Open Firmware client boot code and into a common location which is executed later. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: allocate irqstacks only for possible cpus With earlier setup of cpu_possible_map the number of irqstacks shrinks from NR_CPUS to the number of possible cpus. Signed-off-by: Nathan Lynch Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: add a pfn_to_kaddr() function This is a helper function that a few architectures already have. This just copies the i386 implementation to ppc64. Signed-off-by: Dave Hansen Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] /dev/zero vs hugetlb mappings. Hugetlbfs mmap with MAP_PRIVATE becomes MAP_SHARED silently, but vma->vm_flags have no VM_SHARED bit. Reading from /dev/zero into hugetlb area will do: read_zero() read_zero_pagealigned() if (vma->vm_flags & VM_SHARED) break; // fallback to clear_user() zap_page_range(); zeromap_page_range(); It will hit BUG_ON() in unmap_hugepage_range() if region is not huge page aligned, or silently convert it into the private anonymous mapping. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlbfs private mappings Hugetlbfs silently coerce private mappings of hugetlb files into shared ones. So private writable mapping has MAP_SHARED semantics. I think, such mappings should be disallowed. First, such behavior allows open hugetlbfs file O_RDONLY, and overwrite it via mmap(PROT_READ|PROT_WRITE, MAP_PRIVATE), so it is security bug. Second, private writable mmap() should fail just because kernel does not support this. I belisve, it is ok to allow private readonly hugetlb mappings, sys_mprotect() does not work with hugetlb vmas. There is another problem. Hugetlb mapping is always prefaulted, pages allocated at mmap() time. So even readonly mapping allows to enlarge the size of the hugetlbfs file, and steal huge pages without appropriative permissions. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] truncate_inode_pages latency fix Fix scheduling latency issues with large truncates. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] VLAN support for 3c59x/3c90x This adds VLAN support to the 3c59x/90x series hardware. Stefan de Konink ported this code from the 2.4 VLAN patches and tested it extensively. I cleaned up the ifdefs and fixed a problem with bracketing that made older cards fail. -- Developer's Certificate of Origin 1.0 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. I, Stefan de Konink, certify that: The contribution is based upon previous work that, again is based on GPL code and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license. I, Alan Cox, certify likewise. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tiny shmem/tmpfs replacement A patch to replace tmpfs/shmem with ramfs for systems without swap, incorporating the suggestions from Andi and Hugh. It uses ramfs instead. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: emulate NUMA on non-NUMA hardware Apply this handy patch and boot with numa=fake=4 (or how many nodes you want, 8 max right now). There is a minor issue with the hash function, which can make the last node be bigger than the others. Is probably fixable if it should be a problem. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Using get_cycles for add_timer_randomness I tested how long it took to do a dd from /dev/random on ppc64 before and after this patch, while doing a ping flood from another machine. before: # /usr/bin/time dd if=/dev/random of=/dev/zero count=1k 0+51 records in Command terminated by signal 2 0.00user 0.00system 19:18.46elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k I gave up after 19 minutes. after: # /usr/bin/time dd if=/dev/random of=/dev/zero count=1k 0+1024 records in 0.00user 0.00system 0:33.38elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k Just over 33 seconds. Better. From: Arnd Bergmann I noticed that only i386 and x86-64 are currently using a high resolution timer source when adding randomness. Since many architectures have a working get_cycles() implementation, it seems rather straightforward to use that. Has this been discussed before, or can anyone comment on the implementation below? This patch attempts to take into account the size of cycles_t, which is either 32 or 64 bits wide but independent of the architecture's word size. The behavior should be nearly identical to the old one on i386, x86-64 and all architectures without a time stamp counter, while finding more entropy on the other architectures. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] waitid system call This patch adds a new system call `waitid'. This is a new POSIX call that subsumes the rest of the wait* family and can do some things the older calls cannot. A minor addition is the ability to select what kinds of status to check for with a mask of independent bits, so you can wait for just stops and not terminations, for example. A more significant improvement is the WNOWAIT flag, which allows for polling child status without reaping. This interface fills in a siginfo_t with the same details that a SIGCHLD for the status change has; some of that info (e.g. si_uid) is not available via wait4 or other calls. I've added a new system call that has the parameter conventions of the POSIX function because that seems like the cleanest thing. This patch includes the actual system call table additions for i386 and x86-64; other architectures will need to assign the system call number, and 64-bit ones may need to implement 32-bit compat support for it as I did for x86-64. The new features could instead be provided by some new kludge inventions in the wait4 system call interface (that's what BSD did). If kludges are preferable to adding a system call, I can work up something different. I added a struct rusage field si_rusage to siginfo_t in the SIGCHLD case (this does not affect the size or layout of the struct). This is not part of the POSIX interface, but it makes it so that `waitid' subsumes all the functionality of `wait4'. Future kernel ABIs (new arch's or whatnot) can have only the `waitid' system call and the rest of the wait* family including wait3 and wait4 can be implemented in user space using waitid. There is nothing in user space as yet that would make use of the new field. Most of the new functionality is implemented purely in the waitid system call itself. POSIX also provides for the WCONTINUED flag to report when a child process had been stopped by job control and then resumed with SIGCONT. Corresponding to this, a SIGCHLD is now generated when a child resumes (unless SA_NOCLDSTOP is set), with the value CLD_CONTINUED in siginfo_t.si_code. To implement this, some additional bookkeeping is required in the signal code handling job control stops. The motivation for this work is to make it possible to implement the POSIX semantics of the `waitid' function in glibc completely and correctly. If changing either the system call interface used to accomplish that, or any details of the kernel implementation work, would improve the chances of getting this incorporated, I am more than happy to work through any issues. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix rusage semantics This patch changes the rusage bookkeeping and the semantics of the getrusage and times calls in a couple of ways. The first change is in the c* fields counting dead child processes. POSIX requires that children that have died be counted in these fields when they are reaped by a wait* call, and that if they are never reaped (e.g. because of ignoring SIGCHLD, or exitting yourself first) then they are never counted. These were counted in release_task for all threads. I've changed it so they are counted in wait_task_zombie, i.e. exactly when being reaped. POSIX also specifies for RUSAGE_CHILDREN that the report include the reaped child processes of the calling process, i.e. whole thread group in Linux, not just ones forked by the calling thread. POSIX specifies tms_c[us]time fields in the times call the same way. I've moved the c* fields that contain this information into signal_struct, where the single set of counters accumulates data from any thread in the group that calls wait*. Finally, POSIX specifies getrusage and times as returning cumulative totals for the whole process (aka thread group), not just the calling thread. I've added fields in signal_struct to accumulate the stats of detached threads as they die. The process stats are the sums of these records plus the stats of remaining each live/zombie thread. The times and getrusage calls, and the internal uses for filling in wait4 results and siginfo_t, now iterate over the threads in the thread group and sum up their stats along with the stats recorded for threads already dead and gone. I added a new value RUSAGE_GROUP (-3) for the getrusage system call rather than changing the behavior of the old RUSAGE_SELF (0). POSIX specifies RUSAGE_SELF to mean all threads, so the glibc getrusage call will just translate it to RUSAGE_GROUP for new kernels. I did this thinking that someone somewhere might want the old behavior with an old glibc and a new kernel (it is only different if they are using CLONE_THREAD anyway). However, I've changed the times system call to conform to POSIX as well and did not provide any backward compatibility there. In that case there is nothing easy like a parameter value to use, it would have to be a new system call number. That seems pretty pointless. Given that, I wonder if it is worth bothering to preserve the compatible RUSAGE_SELF behavior by introducing RUSAGE_GROUP instead of just changing RUSAGE_SELF's meaning. Comments? I've done some basic testing on x86 and x86-64, and all the numbers come out right after these fixes. (I have a test program that shows a few Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix PID hash sizing A 4GB, 4-way Opteron would create the smallest size table (16 entries) because pidhash_init is called before mem_init which is where x86-64 sets up max_pfn. nr_kernel_pages is setup by paging_init, called from setup_arch, which is also where i386 sets up max_pfn. So export nr_kernel_pages, nr_all_pages. Use nr_kernel_pages when sizing the PID hash. This fixes the problem. This also makes the pid hash dependant on the size of ZONE_NORMAL instead of total size of memory. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use hlist for pid hash Use hlists for the PID hashes. This halves the memory footprint of these hashes. No benchmarks, but I think this is a worthy improvement because the hashes are something that would be likely to have significant portions loaded into the cache of every CPU on some workloads. This comes at the "expense" of 1. reintroducing the memory prefetch into the hash traversal loop; 2. adding new pids to the head of the list instead of the tail. I suspect that if this was a big problem then the hash isn't sized well or could benefit from moving hot entries to the head. Also, account for all the pid hashes when reporting hash memory usage. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use hlist for pid hash: cache friendliness Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Amiga partition reading fix I have a large archive of files stored on Amiga volumes. Many of these volumes are on Fujitsu magneto-optical disks with 2k sector size. The existing partitioning code cannot properly read them since it appears the OS automatically deblocks the large sectors into logical 512 byte sectors, something AmigaDOS never did. I arranged the partitioning code to handle this situation. Second I have some rather strange test case disks, including my largest storage partition, that have somewhat unusual partition values. As such I needed additional information in addition to the first and last block number information. AmigaDOS reserves N blocks, with N greater than or equal to 1 and less than the size of the partition, for some boot time information and signatures. I have some partitions that use other than the usual value of 2. There is one more "fix" that could be put in if someone needs it. Another value in the "Rigid Disk Blocks" description of a partition is a "PreAlloc" value. It defines a number of blocks at the end of the disk that are not considered to be a real part of the partition. This was "important" in the days of 20 meg and 40 meg hard disks. It is hardly important and not used on modern drives without special user intervention. This partitioning information is known correct. I wrote the low level portion of the hard disk partitioning code for AmigaDOS 3.5 and 3.9. I am also responsible for one of the more frequently used partitioning tools, RDPrepX, before that. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Prevent memory leak in devpts There is a dentry refcount leak in devpts_get_tty. struct tty_struct *devpts_get_tty(int number) { struct dentry *dentry = get_node(number); struct tty_struct *tty; tty = (IS_ERR(dentry) || !dentry->d_inode) ? NULL : dentry->d_inode->u.generic_ip; up(&devpts_root->d_inode->i_sem); return tty; } The get_node function does a lookup on /dev/pts/ and returns the dentry, taking a reference. We should dput the dentry after extracting the tty pointer. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Don't OOPS on stripped modules Don't want to go overboard with the checks, but this is simple and reasonable. Signed-off-by: Rusty Russell (modified) Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 bootmem restrictions (Comment changes only) The bootmem allocator is initialised before the kernel virtual address space has been fully established. As a result, any allocations which are made before paging_init() has completed may point to invalid kernel addresses. This patch notes this limitation and indicates where the allocator is fully available. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use page_to_nid There are a couple of places where we seem to go round the houses to get the numa node id from a page. We have a macro for this so it seems sensible to use that. Both lookup_node and enqueue_huge_page use page_zone() to locate the zone, that to locate node pgdat_t and that to get the node_id. Its more efficient to use page_to_nid() which gets the nid from the page flags, especially if we are not using the zone for anything else it. Change these to use page_to_nid(). Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tdfx linkage fix drivers/built-in.o(.data+0x40a68): undefined reference to `cfb_fillrect' drivers/built-in.o(.data+0x40a6c): undefined reference to `cfb_copyarea' 3dfx framebuffer driver depends on "cfb_fillrect.c" and "cfb_copyarea.c" if it's compiled without CONFIG_FB_3DFX_ACCEL turned on... Signed-off-by: Paolo Ornati Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll: fix unaligned accesses Avoid some alignment traps. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll: revert queue stopped change Here's the first of the broken out patch set. This puts the check for netif_queue_stopped back into netpoll_send_skb. Network drivers are not designed to have their hard_start_xmit routines called when the queue is stopped. Signed-off-by: Jeff Moyer Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll: kill CONFIG_NETPOLL_RX This patch removes CONFIG_NETPOLL_RX, as discussed. Signed-off-by: Jeff Moyer Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll: increase NAPI budget I've upped the poll budget to 16 and added a comment explaining why. I definitely ran into this problem when testing netdump. Signed-off-by: Jeff Moyer Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] netpoll: fix up trapped logic This patch contains the updates necessary to fix the hangs in netconsole. This includes the changing of trapped to an atomic_t, and the addition of a netpoll_poll_lock. It also turns dev->netpoll_rx into a bitfield which is used to keep from running the networking code from the netpoll_poll call path. Signed-off-by: Jeff Moyer Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make i386 signal delivery work with -mregparm This patch allows i386 signal delivery to work correctly when userspace is compiled with -mregparm. This is somewhat hacky: it passes the arguments *both* on the stack and in registers, but it works because there are only one or three (depending on SA_SIGINFO) official arguments. If you're relying on the unofficial arguments then you're doing something nonportable anyway and can put in the __attribute__((cdecl,regparm(0))) in the correct place. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix a NULL pointer bug in do_generic_file_read() The attached patch fixes a bug introduced into do_generic_mapping_read() by which a file pointer becomes required. I'd arranged things so that the file pointer was optional so that I could call the function directly on an inode. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] synclinkmp transmit eom fix Bug Fixes: * Fix transmit end of message (EOM) processing to work correctly with hardware auto CTS feature * Fix oops in error path if hardware diags fail during device initialization Cosmetic change: * Use existing macros for address space size instead of hardcoded values Signed-off-by: Paul Fulghum Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] interrupt driven hvc_console as vio device This is an hvc_console patch which provides driver and ppc64 architecture fixes to enable the hvc_console driver to register itself as a vio device with the vio bus, provide hotplug add/remove for vty adapters, and act as an interrupt driven driver on Power-5 hardware or remain as a polling driver on Power-4 hardware. arch/ppc64/kernel/hvconsole.c ============================= - Changed hvc_get_chars() and hvc_put_chars() api to take vtermno rather than index number. - Added hvc_find_vtys() function which walks the bus looking for vterm/vty devices to callback to the hvc_console driver. This provides console output functionality prior to early console init (pre mem init and pre device probe). include/asm-ppc64/hvconsole.h ============================= - Changed hvc_get_chars() and hvc_put_chars() api to take vtermno rather than index number. - Added hvc_find_vtys() function. - Added hvc_instantiate() function which is implemented by a console driver wanting to receive a callback of and early console init. drivers/char/hvc_console.c ========================== - Switch khvcd from kernel_threads to kthreads which got rid of deprecated daemonize(). - Added module exit clause to be thorough (not terribly necessary with a console driver of course) - Added early discovery of vterm/vty adapters by doing a bus walk on early console init which results in hvc_instantiate() callback and addition of the vtermno into a static array of vtermnos supported as console adapters (meaning the console api's work against these vtermnos prior to full console initialization). - This driver is now registered as a vio driver which means that vty adapters are now managed via probe/remove. This means hvc_console supports hotplug vty adapters. - Driver now requests more device nodes than what was found on the initial bus walk when registered as a tty driver to make room for hotplug vty adapters. These secondary vty adapters provide a tty tunnel between partitions. - Removed static hvc_struct array and replaced with a linux list that has elements (hvc_struct instances) added/removed on probe/remove AFTER early console init. This is important because kmalloc can't be done at early console init. - Driver now either runs in interrupt driven mode or in polling mode on older hardware. The khvcd is smart enough to not 'schedule()' when there are no interrupts. - kobjects are now used for ref counting on the hvc_struct instances. - This driver puts the tty layer to sleep on hvc_close() if there are pending data writes being blocked by firmware. - Removed useless spinlocks in hvc_chars_in_buffer() and hvc_write_room. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Ryan S. Arnold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove ext2_panic() prototype Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] export more symbols on sparc32 Cc: William Lee Irwin III Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix hardcoded value in vsyscall.lds The last attempt to clean this up still left a hardcoded constant (the offset from __FIXADDR_TOP). This patch moves VSYSCALL_BASE to asm-offsets.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zr36067 driver - correct i2c-algo-bit dependency in Kconfig attached patch correctly makes the zr36067 driver depend on i2c-ago-bit in the kernel config. Bug reported and patch sent to me by Adrian Bunk (6/21). It wasn't signed off. Signed-off-by: Ronald Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zr36067 driver - use msleep() instead of schedule_timeout() attached patch makes the zr36067 driver use msleep() instead of schedule_timeout() with uninterruptible state. Patch originally submitted by Nishanth Aravamudan (7/26). Signed-off-by: Ronald Bultje Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zr36067 driver - correct subfrequency carrier attached patch changes the subfrequency carrier value in the adv7175 video output driver which is part of the zr36067 driver package. The practical consequence is that the picture will be more stable on non-passthrough video mode in NTSC. It does not affect PAL/SECAM. Patch originally submitted by Douglas Fraser (8/21). Signed-off-by: Ronald Bultje Signed-off-by: Douglas Fraser Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hfs/hfsplus is missing .sendfile There seem to be some crazy mac users that want to use the loop driver on hfsplus. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make topology.h macros safer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix devfs name for microcode driver Seem like devfsd expects it in /dev/cpu/microcode and Debian users do as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] BeFS: load default nls if none is specified in mount options Makes the BeOS File Systen driver load the default nls if none is specified in the "iocharset" mount option. Signed-off-by: Vegard Wærp Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: fix kernel panic from FBIO_CURSOR ioctl 1. This fixes a kernel oops when issuing an FBIO_CURSOR ioctl if struct fb_cursor_user is filled with zero/NULLs. Reported by Yuval Kogman . 2. This also fixes the cursor corruption in soft_cursor when sprite.scan_align != 1. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: fix copy_to/from_user in fbmem.c:fb_read/write This patch fixes a problem reported by David S. Miller "I just noticed that fb_{read,write}() uses copy_*_user() with the kernel buffer being the frame buffer. It needs to use the proper device address accessor functions." The patch will do an intermediate copy of the contents to a page-sized, kmalloc'ed buffer. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l/bttv: add sanity check (bug #3309) Missing sanity check, overlay is supported for packed pixel formats only. Patch below. It's not API related btw, the bug can be triggered using the v4l2 API as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kernel/fork.c add missing unlikely(). Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] stv0299 device naming fix Name of device has been changed in 2.6.9-rc1 to "SkyStar2", but module stv0299 still compares name with "Technisat SkyStar2 driver", strings are different, and result is that stv0299 detects invalid tuner type. Cc: Johannes Stezenbach Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes s390 core changes: - Fix a race condition between kernel thread creation and preemption. - Fix idal_is_needed for the border case 0x7ffff000. - Get rid of compiler warnings in compat_signal.c and profile.c. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: kernel stack options. This adds support for the new compiler options -mkernel-backchain, -mstack-size, -mstack-guard, -mwarn-dynamicstack and -mwarn-framesize. The option -mkernel-backchain enables the use of modified layout for the stack frames of kernel functions. This breaks the ABI, modules compiled with the option won't work on a kernel compiled with the option and vice versa. The positive effect of the option is a drastic reduction of kernel stack use. The trick is that the new frame layout allows to overlap the 96 (31 bit)/160 (64 bit) byte bias areas of the functions on the call chain. This lowers the minimal stack usage of a function from 96 bytes to 16 bytes (31 bit) and 160 bytes to 24 bytes (64 bit). The kernel stack use is decreased to a point where it is possible to use 4K (31 bit) / 8K (64 bit) stacks. The split into process stack and interrupt stack is already in place. The options -mstack-size and -mstack-guard are used to detect kernel stack overflows. The compiler adds code to the prolog of every function that causes an illegal operation if the kernel stack is about to overflow. The options -mwarn-dynamicstack and -mwarn-framesize cause the compiler to emit warnings if a function uses dynamic stack allocation or if the function frame size is bigger then a specified limit. To play safe all the new options are configurable. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: zfcp host adapater zfcp host adapater changes: - Add ability to enqueue other WKA ports besides the nameserver port. - Document and cleanup sg_list functions. - Add get_port_by_did/get_adapater_by_busid functions. - Improve documentation of some functions and structures. - Fix error handling for nameserver requests. - Correct size check in zfcp_sg_list_copy_to_user. - Correct parameter description for loglevel parameter. - Remove unsused code, types and definitions. - Add support for exchange_port_data command. - Add infrastructure to set timers for ELS and SCSI commands. - Avoid adapter shutdown after receiving FSF_SQ_ULP_PROGRAMMING_ERROR. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] isdn debug build fix On x86_64: drivers/isdn/hardware/eicon/debug.c: In function `DI_format': drivers/isdn/hardware/eicon/debug.c:599: incompatible types in assignment Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [ARM] Fix VMALLOC range check in IXP4xx I/O routines I found a problem in the implementation of io.h for the ixp425. It wasn't letting me access memory at VMALLOC_START, only after it. I've included a patch to fix this problem. This patch is for the 2.4.x kernel, but it looks like it needs fixing in the 2.6.x kernel as well. Signed-off-by: Deepak Saxena kbuild: Fix modules_install modules_install failed for modules with 'ko' in their name. Fixes this. Signed-off-by: Sam Ravnborg Revert "mark pcxx as broken" Not only did it mark the wrong driver, Christoph reports that somebody might have even made the driver compile these days.. Cset exclude: hch@lst.de[torvalds]|ChangeSet|20040831174055|41082 [SPARC64]: SA_SAMPLE_RANDOMNESS fix. Signed-off-by: David S. Miller [CPUFREQ] Fix up ARM drivers 'out of sync' problem. The SA1100 and SA1110 platforms can handle situations well where the CPU frequency is different to the value the cpufreq (and timing) code thinks it is, e.g. when resuming from sleep. So, remove the flags noting the opposite. Signed-off-by: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] Remove duplicate information brought in with the new governor. The current CPU frequency is already exported one directory upwards, so there is no need to duplicate it in the ondemand governor. From: Dominik Brodowski Signed-off-by: Dave Jones [CPUFREQ] Fix cosmetic issue in powernow-k8 error handling I tried to load the new SMP capable powernow k8 driver on a machine with an too old BIOS. I got a lot of cryptic "init not cpu 0" messages until the "MP systems not supported by PSB ..." message. This patch switches the order of the checks around to print the other message first. It will be still printed multiple times because the cpufreq setup will probe all CPUs, but that's probably ok. From: Andi Kleen Signed-off-by: Dave Jones [PATCH] missing includes from irq changes Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] mmc annotation Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] missing include compiler.h in arm memory.h use of __deprecated requires compiler.h Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] alpha warning fixes pci_dma_sync_single_for_device() had wrong prototype [who TF had come up with that name, anyway?] ->cpu in thread_info was long; it should be unsigned int. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] usx2y cleanups and fixes Sigh... a) mixing of userland and kernel pointers is bad b) so's not checking result of kmalloc() c) so's not checking result of copy_from_user() d) use of do { .... break; ... break; ... } while(0); is *highly* unidiomatic. Do not confuse kernel with IOCCC, please. And if you have religious aversion to multiple return statements in a function, at least learn the reasons why it is frowned upon in many situations. Hint: they all apply to use of break in that manner. e) 0 instead of NULL Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] missing include in pcm_native.c compile fix for alpha - io.h is needed there for io_remap_...() Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] acpi/processor.c 64bit portability wrong type of return value for ->write() Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] acpiphp_ibm.c 64bit portability Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] alpha csum_partial_copy.c annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] netfilter warning (alpha) On alpha u64 is unsigned long; %llu is unsigned long long... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] mixart cleanups * check result of pci_set_dma_mask() instead of looking at pci_dma_supported() * size_t => %zd Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sparc64 vga.h fix Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] __setup fixes fd_mcs and NCR53c406a forget to parse string -> int array in their setup functions. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more NULL noise removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] eicon annotation Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] megaraid annotation Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [SPARC]: Add sys_waitid support. Signed-off-by: David S. Miller Annotate sys_wait4() user pointers Allow the compiler to notice "constant" header file. Both gcc and sparse will speed up tokenization by noticing when a header file is protected by the standard preprocessor #ifndef .. #endif exclusion. However, that requires that the headers actually _use_ that standard exclusion. Some did their own little broken dance. [PATCH] afs ->follow_link() fixes * fixed leaks on failure exits * got rid of useless struct nameidata instance Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sysfs ->follow_link() switched to new scheme Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs ->follow_link() switched to new scheme Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs ->follow_link() switched to new scheme, cleaned up Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] reduce stack use in altroot handling Massaged altroot handling to avoid on-stack struct nameidata instance (and got it faster, actually). We are in the middle of do_follow_link() recursion here, so the stack footprint is critical. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] misc cleanup in symlink-handling part of namei.c page_follow_link_light() should just call nd_set_link() - error handling will come for free. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] nfs ->follow_link() switched to new scheme NFS takes some thought to switch to the new symlink scheme, because we can't rely on the pagecache lookup to find the symlink page when freeing it - the cache might have been invalidated in the meantime. So we hide the page information in the symlink data area itself, by stealing the last pointer in the page used for the cache. That way nfs_put_link() can just look up the page directly. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ppc32: fix the 'checkbin' target The checkbin target on PPC32 isn't quite right. First, one of the tests (to ensure that some instructions are known to gas) is never actually invoked because 'checkbin' doesn't know about stuff set in .config, so we always have the 'else' case run. This changes to always running the test and telling the user to upgrade to at least binutils 2.12.1. The next problem is that we were doing $(AS) -o /dev/null ... in both that test, as well as another. The problem here is that the checkbin target is run on the install targets, meaning that /dev/null will get unlinked when the test passes. To get around this we use .tmp_gas_check as the output file instead. Acked by Sam. Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds kbuild: Remove last signs of LDFLAGS_BLOB From: Paolo 'Blaisorblade' Giarrusso The LDFLAGS_BLOB var (which used to be defined in arch Makefiles) is now unused,as specified inside usr/initramfs_data.S. So this patch removes the remaining references. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Sam Ravnborg kbuild: Set cflags before including arch Makefile Please note that this patch, even if UML-related, should be immediately discussed for merging in mainline, if possible. The UML patch to handle this has therefore been separated. Patch purpose: If arch/$(ARCH)/Makefile is included before adding -O2 (and the rest) to CFLAGS, I must duplicate the addition of it to USER_CFLAGS for UML. So let's fix this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Sam Ravnborg [SPARC64]: Fix set_utsname returning with uts semaphore held. Based upon a patch from Alexander Stohr. This thing was also reimplementing strnchr() as well. Signed-off-by: David S. Miller [SPARC64]: Use list_for_each in pci_common.c Replace for/while loops with list_for_each*. Signed-off-by: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: David S. Miller [SPARC64]: Zap pci_controller_lock. It is only taken during boot time bus probe, thus protects nothing at run time and causes bogus bug messages when PREEMPT is enabled. When we support PCI controller hot plug we will add a suitable locking mechanism. Signed-off-by: David S. Miller [BRIDGE]: Add ipv6 packet filtering. Signed-off-by: Bart De Schuymer Signed-off-by: David S. Miller [SPARC64]: Kill unused 'flags' in pci_sabre.c Signed-off-by: David S. Miller [SPARC64]: Add sparc64die_chain as on x86{,_64} [CIFS] fix recent cifs symlink change so as not call kfree on null path Signed-off-by: Steve French (sfrench@us.ibm.com) Use "ifdef" rather than "if" to test for __KERNEL__ Both work, but the latter can cause warnings in user space from compilers that don't like using undefined identifiers in preprocessor expressions (quite reasonable). Pointed out by Randy Dunlap. [KPROBES]: Pass integer addresses, not pointers, to flush_icache_range(). Signed-off-by: David S. Miller [ACPI] cleanup: use ioapic_register_intr() [SPARC64]: Initial KPROBES implementation. Signed-off-by: David S. Miller [SPARC64]: Use list_for_each in pci_sabre.c Signed-off-by: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [IPV4]: Need to clear nf_debug parp_redo(). Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Add some missing help entries. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Sort Kconfig entries into reasonable order. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [ACPI] allow config to specify custom DSDT (Ulf Dambacher) [ACPI] debugging enhancements (Yi Zhu) new cmdline options: "acpi_dbg_layer=", "acpi_dbg_level=" and /proc/acpi/debug_layer, debug_level now describe levels http://bugzilla.kernel.org/show_bug.cgi?id=2398 [ACPI] move acpi_bios_year() to blacklist.c from dmi_scan.c (Pavel Machek) [CIFS] Fix CIFS symlink regression when long symlink paths Signed-of-by: Steve French (sfrench@us.ibm.com) [NET]: Free neigh_parms using RCU to fix neigh_create/inetdev_destroy race. Signed-off-by: David S. Miller [IPV4/IPV6]: Fixup checksums properly when fragmenting. If we end up with a fraggap, when we copy the data over to the next frag being built we must compute a checksum for the bit we copy over for the new fragment and subtract that checksum from the place we are copying it from. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Add gact generic actions. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [PKT_SCHED]: Kill bogus spaces in Kconfig strings. Signed-off-by: David S. Miller [ACPI] delete ACPI DMI/BIOS cutoff year by default CONFIG_ACPI_BLACKLIST_YEAR=2001 for old behaviour [ARM] IXP2000 cleanups to get code upstream This changeset fixes up all the IXP2000 issues mentioned in the following message: http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-August/024156.html - Remove page table fixups for IXP2400 systems. There is actually some confusion b/w myself and Intel on what mappings really needs this and we still need to determine a proper clean way to do this. When we have that, we'll add support back in. For now I am still able to boot on IXP2400 systems. - Replaced __asm__ __volatile__("":::"memory") with barrier() - Remove inclusion of mach-types.h in ixdp2x01.h. The machine_is_ixdp2x01() macro was only being used in one place, so just check for (machine_is_ixdp2401() || machine_is_ixdp2801()) Signed-off-by: Deepak Saxena [ARM] Remove support for XScale BDI2000 This accidently made it into my upstream tree and is not meant to go upstream. Signed-off-by: Deepak Saxena Mark gamma as broken Signed-off-by: Dave Airlie Initial DRM function table removes some if the DRIVER_ macros. Signed-off-by: Dave Airlie [PATCH] Eicon ISDN: fix leak in eicon debug code. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Armin Schindler [IPV4]: Use nf_reset() in parp_redo(). Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NET]: Allow get/set of dev->weight via netlink. Signed-off-by: David S. Miller [IPV4/IPV6]: Fix suboptimal fragment sizing for last fragment Yoshifuji's recent fragment patch prevents unnecessary fragmentation when the data can be kept in a single packet, but only for the first packet. When fragmenting, all fragments are still truncated to multiples of 8 and we might end up creating an unnecessary fragment. This dump shows the problem (MTU 1499): 172.16.1.123.32771 > 172.16.195.3.4135: udp 2937 (frag 7066:1472@0+) 172.16.1.123 > 172.16.195.3: udp (frag 7066:1472@1472+) 172.16.1.123 > 172.16.195.3: udp (frag 7066:1@2944) This patch always builds mtu sized fragments and truncates the previous fragment to a multiple of 8 bytes when allocating a new one. With the patch the dump looks like this: 172.16.1.123.32772 > 172.16.195.3.4135: udp 2937 (frag 49641:1472@0+) 172.16.1.123 > 172.16.195.3: udp (frag 49641:1473@1472) Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [PATCH] Fix NULL derefence in OSS MAUI driver. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix leak in PNP interface code. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Remove pointless code from ALSA emu10k1 midi driver. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Clean up failure path in DAC960 1. If the ScatterGatherPool allocation fails, its pointless trying to allocate a RequestSensePool. 2. Free up the ScatterGatherPool if the RequestSensePool allocation fails. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Remove pointless check in zlib We dereference 'z' a few lines above this check. If it was possible to hit this condition, it wouldve triggered long ago, in the form of a crash. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix NULL dereference in OSS v_midi driver Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix another PNP leak. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix leaks in ISOFS. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix potential leaks in pc300_tty driver It appears that 'new' can be allocated, and next time around the loop, if something goes wrong, we lose the reference.. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix leak in atmel wireless driver. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Fix leak in ISAPNP core This looks odd, but there doesn't seem to be an isapnp_free() or similar.. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] More PNP leaks. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] Check find_vma return code in make_pages_present() It can return NULL, so check for it. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] i386 reduce spurious interrupt noise i386 hardware can (and does) see spurious interrupts from time to tome. Ideally I would like the printk removed completely but this is probably good enough for now. Signed-off-by: Chris Wedgwood Signed-off-by: Linus Torvalds [PATCH] fixed pidhashing patch This patch fixes strange and obscure pid implementation in current kernels: - it removes calling of put_task_struct() from detach_pid() under tasklist_lock. This allows to use blocking calls in security_task_free() hooks (in __put_task_struct()). - it saves some space = 5*5 ints = 100 bytes in task_struct - it's smaller and tidy, more straigthforward and doesn't use any knowledge about pids using and assignment. - it removes pid_links and pid_struct doesn't hold reference counters on task_struct. instead, new pid_structs and linked altogether and only one of them is inserted in hash_list. Signed-off-by: Kirill Korotaev (kksx@mail.ru) Signed-off-by: William Irwin Signed-off-by: Linus Torvalds [SPARC64]: Support 64-bit initrd addresses. Needs a SILO update too which is forthcoming. Signed-off-by: Peter Jones Signed-off-by: Ben Collins Signed-off-by: David S. Miller [IPV4/IPV6]: Use csum_sub() instead of csum_block_sub() w/zero 3rd arg. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IA64] VIRTUAL_MEM_MAP can be set when DISCONTIGMEM isn't; handle it Patch developed by Ian Wienand under advice from Bill Irwin. Signed-off-by: William Irwin Signed-off-by: Tony Luck The coverity source checker is wrong. Revert some of the "leak fixes". Thanks to Davem for noticing. We probably should _not_ trust the coverity reports that much. Cset exclude: davej@redhat.com[torvalds]|ChangeSet|20040902213928|62770 Cset exclude: davej@redhat.com[torvalds]|ChangeSet|20040902213829|63705 [PATCH] NFS: clean up the new symlink code - Now that the VFS no longer uses it, we don't need to cache the symlink string length. - Make ->readlink() take page offset+length arguments - Fix up page under/overflow checking on the readlink XDR code so that it matches read/write. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] NFS: fix problem of ESTALE errors on NFSv2 symlinks NFSv2: Fix another bad filehandle cast. NFSv2: The symlink operation does not return a valid filehandle. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] NFSv3: Fix up an unaligned access error in nfs3_proc_unlink_setup() Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] NFS: older gcc's don't like unsized arrays The NFS symlink code cleanup causes older gcc's to barf. Signed-off-by: Linus Torvalds [SPARC64]: Update defconfig. [NETFILTER]: Fix confusing naming in NAT-helpers Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: Fix deadlock condition in conntrack/nat-helpers There is a possible deadlock condition with conntrack/nat-helpers: CPU1: conntrack-helper:help: lock(private_lock) ip_conntrack_expect_related: write_lock(ip_conntrack_lock) CPU2: nat-core:do_bindings: read_lock(ip_conntrack_lock) nat-helper:help: lock(private_lock) The lock in the nat-helper is unneccessary because the expectation is never changed and is protected by ip_conntrack_lock. Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PKT_SCHED]: Fixed missed return in tcf_hash_init(). Noticed by Andrew Morton. Signed-off-by: David S. Miller [CREDITS]: Update netfilter entries. Add missing entries for netfilter core team members, and update Rusty's personal URL. Signed-off-by: Harald Welte Signed-off-by: David S. Miller Remove DRIVER_CTX_[CD]TOR, HAVE_KERNEL_CTX_SWITCH, DRIVER_BUF_PRIV_T, DRIVER_AGP_BUFFERS_MAP Signed-off-by: Dave Airlie remove DRIVER_FOPS and related macros Signed-off-by: Dave Airlie Dump __HAVE_DMA_FREELIST is only used by gamma. Signed-off-by: Dave Airlie remove __HAVE_DMA_SCHEDULE was only used by gamma. Signed-off-by: Dave Airlie remove HAVE_DMA_WAITLIST as it was only used by gamma Signed-off-by: Dave Airlie remove DRM_IOREMAP* and DRM_FIND_MAP macros replace them with inline fns Signed-off-by: Dave Airlie [NET]: Add reference counting to neigh_parms. I've added a refcnt on neigh_parms as well as a dead flag. The latter is checked under the tbl_lock before adding a neigh entry to the hash table. The non-trivial bit of the patch is the first chunk of net/core/neighbour.c. I removed that line because not doing so would mean that I have to drop the reference to the parms right there. That would've lead to race conditions since many places dereference neigh->parms without holding locks. It's also unnecessary to reset n->parms since we're no longer in a hurry to see it go due to the new ref counting. You'll also notice that I've put all dereferences of dev->*_ptr under the rcu_read_lock(). Without this we may get a neigh_parms that's already been released. Incidentally a lot of these places were racy even before the RCU change. For example, in the IPv6 case neigh->parms may be set to a value that's just been released. Finally in order to make sure that all stale entries are purged as quickly as possible I've added neigh_ifdown/arp_ifdown calls after every neigh_parms_release call. In many cases we now have multiple calls to neigh_ifdown in the shutdown path. I didn't remove the earlier calls because there may be hidden dependencies for them to be there. Once the respective maintainers have looked at them we can probably remove most of them. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] Fix do_each_task_pid() loop with 'continue' inside Dmitry Torokhov triggered a problem in the new pidhash macros: These do_each_task_pid()/while_each_task_pid() do loop forever if you use a 'continue' inside them. The end of the loop has to be inside the "while()" statement, so as to not make "continue" jump over it. [PATCH] x86_64 waitid syscall number fix I mucked this up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix shmem.c stubs Fix the build with CONFIG_SHMEM=n Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc ALSA fix sound/core/pcm_native.c was assuming that all architectures implement io_remap_page_range() in the same way. They don't, so the sparc64 build broke. mmap callback is added to PCM ops. The driver can implement its own mmap method. Also, mmapping of the status and control records is available only on known coherent architectures now. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add_to_swap(): suppress oom message Page allocation failures are expected when add_to_swap() tries to allocate radix-tree nodes without PF_MEMALLOC. Kill the __alloc_pages() warnings. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] request_region for winbond and smsc parport drivers An attempt to fix the random poking in legacy io space... ask for permissions before poking at io ports. this affects detect_and_report_winbond() and detect_and_report_smsc(). Its unclear what port number is returned in show_parconfig_winbond(), so just request the region as well and free the probing region. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ES7000: increase MAX_MP_BUSSES Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix target_cpus() for summit subarch I've been hunting down a bug affecting IBM x440/x445 systems where the floppy driver would get spurious interrupts and would not initialize properly. After digging James Cleverdon and Bill Irwin pointed out that target_cpus() is routing the interrupts to the clustered apic broadcast mask using destFixed deliver mode. This was causing multiple interrupts to show up, breaking the floppy init code. This fix simply changes the delivery mode to dest_LowestPrio and initially routes interrupts to the first cpu to resolve this issue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ipr.c build fix drivers/scsi/ipr.c: In function `ipr_worker_thread': drivers/scsi/ipr.c:1825: wrong type argument to unary exclamation mark drivers/scsi/ipr.c: In function `ipr_read_dump': drivers/scsi/ipr.c:2426: wrong type argument to unary exclamation mark Cc: James Bottomley Cc: Brian King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc[64]: increase max auxv entries ... but a better solution should probably be found, that's saved_auxv in struct mm_struct is ... hrm... disgusting at least ;) So the problem is that we currently do unsigned long saved_auxv[40]; That is we assume that all archs will have an AUXV entry of no more than 2 unsigned longs and we'll have no more than 20 entries in the table. Unfortunately, this is wrong. PPC/PPC64 adds 5 platform entries. then we add 14 in the common code, and then we have if (k_platform) { NEW_AUX_ENT(AT_PLATFORM, (elf_addr_t)(unsigned long)u_platform); } if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) { NEW_AUX_ENT(AT_EXECFD, (elf_addr_t) bprm->interp_data); } which may add a 20th entry... which means we are already out of room for the terminating AT_NULL entry... bad bad bad. Now I'm adding AT_SYSINFO_EHDR to ppc/ppc64 and it breaks all the time. The quick fix is to bump the number of entries in struct mm_struct to 42, though that's worth a big BOLD comment in binfmt_elf in case anybody adds a new entry in there. (Patch below). I wonder if we shouldn't add a ARCH_MAX_AUXV_ENTRIES macro to the asm-arch/elf.h though to get the max amount of entry the arch may add to the normal count, and have the mm struct array use that plus the number of "normal" entries... This patch increase the max amount of auxv entries in struct mm_struct to 42 so that ppc & ppc64 don't get a chance to blow the array up. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: pin the kernel stack's SLB entry This has been given basic testing on Power4 pSeries and iSeries machines. At present, the SLB miss handler has to check the SLB slot it is about to use to ensure that it does not contain the SLBE for the current kernel stack - throwing out the SLBE for the kernel stack can trigger the "megabug": we have no SLBE for the stack, but we don't fault immediately because we have an ERAT entry for it. The ERAT entry is then lost due to a tlbie on another CPU during the unrecoverable section of the exception return path. This patch implements a different approach - with this patch SLB slot 2 always (well, nearly always) contains an SLBE for the stack. This slot is never cast out by the normal SLB miss path. On context switch, an SLBE for the new stack is pinned into this slot, unless the new stack is the the bolted segment. For iSeries we need a special workaround because there is no way of ensuring the stack SLBE is preserved an a shared processor switch. So, we still need to handle taking an SLB miss on the stack, in which case we must make sure it is loaded into slot 2, rather than using the normal round-robin. This approach shaves a few ns off the slb miss time (on pSeries), but more importantly makes it easier to experiment with different SLB castout aporoaches without worrying about reinstating the megabug. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: enable DEBUG_SPINLOCK_SLEEP DEBUG_SPINLOCK_SLEEP is useful on ppc64, so allow it to be selected. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: test for EEH error in PCI Config-Read path This patch adds explicit checking for EEH slot isolation events into the PCI config space read path. The change itself would have been minor, except that pci config reads don't have a pointer to a struct pci_dev. Thus, I had to restructure the eeh code to accomodate this, which seems to be a good thing anyway, making it a tad cleaner. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: print backtrace in EEH code We should print a stack backtrace when we get EEH errors, it makes debugging the cause of the fail easier. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: topdown support Recent patches introduced a top down user process address space allocation policy; further patches enable this for ppc64. Although these work correctly for normal maps, the topdown algorithm does not take into account stringent mixing constraints for small and large pages on this architecture. These patches introduce a ppc64 specific arch_get_unused_area_topdown() variant. The first introduces infrastructure to allow replacement of the generic arch_get_unused_area_topdown() and the second utilises this infrastructure. In this patch I have followed the pattern set by the arch_get_unused_area() using HAVE_ARCH_UNMAPPED_AREA_TOPDOWN to be consistent. However, it would also be possible to simply have a ppc64_get_unused_area_topdown() in the arch/ppc64/mm/mmap.c or to use weak bindings. This patch: Allow an architecture to override the default definition of arch_get_unmapped_area_topdown(). Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 topdown support: arch-specific get_unmapped_area() ppc64 has constraints on the mixing of small and large pages, such that they cannot be mixed in the same 256Mb segment. This patch provides an architecture specific arch_get_unmapped_area_topdown() which implements these contraints. Signed-off-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Setup fw_features before init_early calls on pSeries To be able to use the cur_cpu_spec->firmware_features values in early setup, the function initializing them has to be moved up to before the early init calls. Signed-off-by: Olof Johansson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Make use of batched IOMMU calls on pSeries LPARs Implement the HCALLs to do more than one TCE setup or invalidation at a time on pSeries LPAR. Previous implementation did one hypervisor call per setup or teardown, resulting in significant overhead. A simple test of "time dd if=/dev/sda of=/dev/null bs=128k" shows the amount of system time go down by about 5% by using the multi-tce calls. Signed-off-by: Olof Johansson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 another log buffer length fix This patch uses the firmware-defined error log buffer length for calls to the firmware routine 'check-exception'. It also simplifies code in rtasd.c that is attempting to obtain the error log length. Signed-off-by: Linas Vepstas Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: dynamically allocate emergency stacks Now we set up cpu_possible_map early we can dynamically allocate the emergency stacks. Previously we would allocate NR_CPUS * PAGE_SIZE, potentially wasting quite a lot of memory. Clean a comment up in irqstack_early_init and use unsigned int for cpu ids while in the area. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: update pSeries_defconfig Update pSeries_defconfig. This config should better cover POWER5 systems with SPLPAR spinlocks, IPR SCSI, NR_CPUS = 128, NUMA, HVCS, and irq stacks enabled, VSCSI and VETH as modules. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: update iSeries_defconfig Update iSeries_defconfig. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: quieten NUMA boot messages On some machines we would print hundreds of lines of NUMA debug output. The following patch cleans it up so we only print a summary of cpus and memory vs nodes: Node 0 CPUs: 0-1 Node 1 CPUs: 16-17 Node 2 CPUs: 32-33 Node 3 CPUs: 48-49 Node 0 Memory: 0x0-0x400000000 Node 1 Memory: 0x400000000-0x800000000 I lifted the code to do this out of xmon. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: allocate NUMA node data node locally Instead of statically allocating the NUMA node structures, do it at runtime with node local memory where possible. With NR_CPUS=128 we had over 800kB of memory allocated before this patch, now we allocate only as many nodes as the machine requires. We have to do some fancy footwork in do_init_bootmem since we use both the LMB allocator and the bootmem allocator at the same time. The problem has always been there although I only recently found a test case that hit it. Wrap that logic in careful_allocation which uses the LMB allocator then falls back to the bootmem allocator if required. Now alloc_bootmem on a node with no memory doesnt panic, we dont need the hack in paging_init so remove it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: cleanup asm/processor.h Wrap a lot more of processor.h in #ifdef __KERNEL__ / __ASSEMBLY__. Remove now unised EXC_FRAME_SIZE. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: implement page_is_ram This patch contains - Removes __initdata from lmb definition (struct lmb lmb;) and modified the existing page_is_ram function. Also changed the current argument from physical address to pfn to make it compatible across architectures. Please review them and send me your comments/suggestions. If you are OK with any one patch, please include it in the mainline kernel. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add support for NUMA discovery on AMD dual core to x86-64 Following the CPUID extensions and APIC-ID setup presented by Richard Brunner at Kernel Summit. Without this the kernel's node discovery would assign the wrong nodes on dual core systems and cause performance degradation. Only handles power of two cored CPUs, others will be ignored. /proc/cpuinfo has a new field cpu cores: and also show the other core as HT sibling (this is needed to make old CPU based license managers to count one CPU package as only one physical CPU) FIXME this currently misses the disable code for SMT idle. That's because 2.6.9rc1-bk6 removed the arch hooks need for that. Needs to be readded later. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix boot_cpu_data on x86-64 From: Andreas Gruenbacher Add brackets to boot_cpu_data to fix compilation of centrino cpufreq driver. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Increase bus/apic limits on x86-64 This patch increases some hardcoded limits people have already run into or plan to go towards eventually. Increase max MP busses on x86-64. Needed for some machines. Suggested by Andrew Chen and James Cleverdon. MAX_IRQ_SOURCES kept at 256 for now, matching i386. Increase MAX_IO_APICS to 32 following i386. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix argument checking in sched_setaffinity This patch fixes the argument length checking in sched_setaffinity. Previously it would error out when the length passed was smaller than sizeof(cpumask_t). And any bits beyond cpumask_s would be silently ignored. First this assumes that the user application knows the size of cpumask_t, which should be kernel internal. When you increase cpumask_t old applications break and there is no good way for the application to find out the cpumask_t size the kernel uses. This patch changes it to do similar checking to the NUMA API calls: - Any length is ok as long as all online CPUs are covered (this could still cause application breakage with more CPUs, but there is no good way around it) - When the user passes more than cpumask_t bytes the excess bytes are checked to be zero. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add IXDP2x01 board support to CS89x0 driver The following patch modifies the CS89x0 driver to work on Intel's IXDP2401 and IXDP2801 (Intel ARm/XScale based) platforms: - The main change requried is that the IXDP2x01 boards have the chip connected through a CPLD so all registers appear at dword-aligned addresses. A macro in the header adjusts the register offsets appropriately. - The boards do not have ISA, so we need to explicitly check for IXDP2X01 in Kconfig. - There is what I believe is a bug in the driver as it currently only asks for the signature if ioaddr & 1 is set but then reads and checks against the expected signature even when !(ioaddr & 1). This causes the driver to not load on the IXDP2x01 since our ioaddr does not have bit 1 set. - #ifdef out some bits of code that assume the chip is really sitting on an ISA bus. The main IXDP2x01 support will be coming in through rmk's tree at a later date when all the drivers are merged upstream. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix proc_symlink() warning with CONFIG_PROC_FS=n The last parameter of proc_symlink is usually a "const char *", but the stub in for CONFIG_PROC_FS=n omits the const and makes its last parameter a "char *". This causes a warning about discarding qualifiers for any code that passes something const for that last parameter. This patch fixes that up and also, for neatness's sake, makes the stub for create_proc_read_entry() match the usual prototype more exactly (use read_proc_t rather than the underlying function pointer type). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] urandom initialisation fix The urandom driver returns the same thing after every boot. The urandom pool is only cleared, and not initialized, and because there is nothing in the primary pool, the reseeding is not successful. The solution is also the same, initialize not just the primary and secondary, but also the urandom pool. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] read_ldt() neglects to check clear_user() return value akpm: It's a bit debatable. The user passed in a buffer of a particular size, and we successfully sopied the LDT info into it, but we got a fault when clearing out the rest of the user's buffer. Is that worth a -EFAULT? I suppose so... Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: read_ldt() clear_user() return value checking Signed-off-by: Jesper Juhl Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] FAT: document fix/update Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] NLS: nls_cp932 fix Some unicode chars is missing to convert on nls_cp932. This patch fixes the following chars. U+00A2, U+00A3, U+00A7, U+00A8, U+00AC, U+00B0, U+00B1, U+00B4, U+00B6, U+00D7, U+00F7, U+FFE2 Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: i2c cleanups This patch has some minor cleanups for the v4l i2c modules: Don't ignore the i2c_add_driver return value and mark the init+exit functions with __init + __exit. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: i2c tuner modules update This patch updates the tuner and tda9887 i2c modules which handle the tv card tuning. - some cleanups (don't ignore i2c_add_driver return value, add __init and __exit). - add support for new tuners. - allow to pass configuration info (tv card specific stuff) to the tda9887 module. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: bttv driver update. This patch is a minor update for the bttv driver. - add a few new tv cards. - add some infrastructure needed by the dvb drivers (for bt878-based dvb cards). - improve croma line selection for planar video formats, - some new debug printk's Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] v4l: saa7134 driver update This is a minor update for the saa7134 driver. Changes: - i2c cleanups (i2c_add_driver return value, add __init & __exit). - fix radio tuning (last update broke this ...). - adds support for new tv cards. - add config info for the tda9887 (thus this one depends on the tuner update patch mailed earlier). - add configuration help printk's for some cards, for stuff which can't be autodetected. - make automute switchable via v4l2 API, without driver reload. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pcxx.c build fix CC drivers/char/pcxx.o drivers/char/pcxx.c: In function `pcxe_cleanup': drivers/char/pcxx.c:209: warning: unused variable `e2' drivers/char/pcxx.c: At top level: drivers/char/pcxx.c:229: `pcxe_init' undeclared here (not in a function) drivers/char/pcxx.c:230: warning: type defaults to `int' in declaration of `module_cleanup' drivers/char/pcxx.c:230: warning: parameter names (without types) in function declaration drivers/char/pcxx.c:230: warning: data definition has no type or storage class drivers/char/pcxx.c:1016: redefinition of `__initcall_pcxe_init' drivers/char/pcxx.c:229: `__initcall_pcxe_init' previously defined here drivers/char/pcxx.c:1016: `pcxe_init' undeclared here (not in a function) drivers/char/pcxx.c:1017: `pcxe_exit' undeclared here (not in a function) drivers/char/pcxx.c: In function `pcxe_tiocmget': drivers/char/pcxx.c:2009: `mstat' undeclared (first use in this function) drivers/char/pcxx.c:2009: (Each undeclared identifier is reported only once drivers/char/pcxx.c:2009: for each function it appears in.) drivers/char/pcxx.c: In function `pcxe_tiocmset': drivers/char/pcxx.c:2072: warning: control reaches end of non-void function drivers/char/pcxx.c: At top level: drivers/char/pcxx.c:1044: warning: `pcxe_init' defined but not used Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Root reservations for strict overcommit This was on my TODO list for a while and it turns out someone already fixed the armwaving overcommit mode for the same problem. It is easy to get into a situation where you have no overcommit and nothing can be done because there is no memory to clean up the stable but non-useful state of the machine. The fix is trivial and duplicated from the armwaving overcommit code path. The last 3% of the memory can be claimed by root processes only. It isn't a cure but it does seem to solve the real world problems - at least providing you have enough memory for 3% to be useful 8). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix the barrier IDE detection logic This fixes the logic so we always check for the cache. It also defaults to safer behaviour for the non cache flush case now we have the right bits in the right places. I've also played a bit with timings - the worst case timings I can get for the flush are about 7 seconds (which I'd expect as the engineering worst cases will include retries) Probably what should happen is that the barrier logic is enabled providing the wcache is disabled. I've not meddled with this as I don't know what the intended semantics and rules are for disabling barrier on a live disk (eg when a user uses hdparm to turn on the write cache). In the current code as with Jens original that cannot occur. I've also fixed the new printk's as per a private request from Matt Domsch. Cc: Jens Axboe Cc: Bartlomiej Zolnierkiewicz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Disable colour conversion in the CPiA Video Camera driver Since in-kernel colorspace conversion is not allowed, this patch disables it in the CPiA video camera driver by default. Users should fix the applications in case they don't work without conversion reenabled by setting the new 'colorspace_conv' module parameter to 1. This is a temporary solution, so within a few months deprecated code will be entirely removed. Signed-off-by: Luca Risolia Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make bad_page() print all of page->flags bad_page() only prints out 8 hexadecimal digits of page->flags regardless of sizeof(page_flags_t). This leads to confusing and/or incomplete bug reports. The following patch uses a field width argument to replace the hardcoded %08lx so that bad_page() may print the whole of page->flags. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix compile warning in ppc64 pmac_feature.c dump_HT_speeds is only used by #if 0'ed code so if 0 it as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix compile warnings in via-pmu.c for !CONFIG_PMAC_PBOOK There's some scoping problems so we get unused variables for that config. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] stop ->put_inode abuse in vxfs ->clear_inode is the right place to free private inode parts. No idea what I though when using ->put_inode and i_count check. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] some missing statics in mm/ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove ptrinfo It's defined in slab.c but not used anywhere. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix compile warning in rivafb on ppc riva_get_EDID_i2c is only used on !CONFIG_PPC_OF, so don't compile it on ppc either. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix drivers/net/cs89x0.c warning. drivers/net/cs89x0.c: In function `net_close': drivers/net/cs89x0.c:1601: warning: unused variable `lp' 'lp'is only used when ALLOW_DMA is defined. Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] announce hpet devices claimed I think the HPET driver should announce the hardware it claims. Here's a patch that prints this: hpet0: at MMIO 0xc0000ffffc002000, IRQs 74, 75, 76 hpet0: 4ns tick, 3 64-bit timers hpet1: at MMIO 0xc0000ffffc082000, IRQs 77, 78, 79 hpet1: 4ns tick, 3 64-bit timers This has been acked by Bob. I haven't heard from Venkatesh. Print basic information (MMIO address, IRQs used, tick rate, number of timers) when claiming an HPET device. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] silence sn_console driver on non-SGI boxes Acked by Jesse. sn_console: don't print anything unless we're actually on an SGI box. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/amiserial.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/epca.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/esp.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/isicom.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/mxser.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/pcmcia/synclink_cs.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/pcxx.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/riscom8.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/rocket.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/rocket_int.h MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/selection.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/serial167.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/specialix.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/synclink.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/synclinkmp.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] include/linux/isicom.h MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/tc/zs.c MIN/MAX removal Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ds1620: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dsp56k: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ec3104: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] isicom: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nwflash: replace schedule_timeout() with msleep() Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pcwd: replace schedule_timeout() with msleep() Replace set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(some_time); with msleep(jiffies_to_msecs(some_time)); Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] synclink: replace jiffies_from_ms() with msecs_to_jiffies() Uses msecs_to_jiffies() instead of the custom jiffies_from_ms(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add msleep_interruptible() function to kernel/timer.c Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] coda: fix ifdefs for CONFIG_CODA_FS_OLD_API Trivial fix to make the CODA_FS_OLD_API config option actually work as expected. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] coda: add sendfile wrapper Add a wrapper for sendfile support in Coda. Signed-off-by: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Sort the CREDITS file properly (and add Jesper) Many entries in the CREDITS file are not properly sorted in alphabetical order, despite the note in the file that it is supposed to be sorted like that. This patch attempts to sort the CREDITS file properly. No existing entries were changed, merely moved around in the file. There where a few tricky names that I was unsure how to sort (names with characters such as ü, ö, and people with many names where it was unclear to me what name to sort by etc), in those cases I've usually left the names where they were unless it was glaringly obvious they were in the wrong spot. I've also taken the liberty to add my own name to the file - I have contributed several tiny/small fixes/cleanups etc over the years. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdu31a: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mcd: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-maestro: replace schedule_timeout() with msleep() Replaced sleep_125ms() with msleep(125), udelay2() with udelay(2), udelay4() with udelay(4) and udelay16() with udelay(16) and removed the replaced functions' definitions. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-cadet: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-aimslab: replace while/schedule() with msleep() Uses msleep() instead of a while-loop and schedule(). Thus the CPU is given up for the time desired. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/miropcm20-rds: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-maxiradio: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] saa7146_i2c.c: use msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-sf16fmi: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radio/radio-sf16fmr2: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] message/mptscsih: replace schedule_timeout() with msleep() Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] message/i2o_core: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mtd/cfi_cmdset_0001: replace schedule_timeout() with msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update parport MAINTAINERS entry Add correct email for parport entry in MAINTAINERS. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make hugetlb expansion allocation nowarn a user can do echo 32000 > /proc/sys/vm/nr_hugepapges; at which point most boxes will get spew about allocation failure. This of course isn't a real bug so the patch below quiets that. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix warning in pc300_tty driver. ..caused by my last patch to this file. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds [PATCH] tdfxfb linkage fix v2.0 (the previous one is broken) This patch _really_ fixes tdfxfb linkage [PATCH] fix sched_domains hotplug bootstrap ordering vs. cpu_online_map issue cpu_online_map is not set up at the time of sched domain initialization when hotplug cpu paths are used for SMP booting. At this phase of bootstrapping, cpu_possible_map can be used by the various architectures using cpu hotplugging for SMP bootstrap, but the manipulations of cpu_online_map done on behalf of NUMA architectures, done indirectly via node_to_cpumask(), can't, because cpu_online_map starts depopulated and hasn't yet been populated. On true NUMA architectures this is a distinct cpumask_t from cpu_online_map and so the unpatched code works on NUMA; on non-NUMA architectures the definition of node_to_cpumask() this way breaks and would require an invasive sweeping of users of node_to_cpumask() to change it to e.g. cpu_possible_map, as cpu_possible_map is not suitable for use at runtime as a substitute for cpu_online_map. Signed-off-by: William Irwin Signed-off-by: Linus Torvalds [PATCH] 3c527 possible oops. If the alloc_skb() fails, we dereference it in the skb_reserve() call. Move the skb_reserve() call to after the NULL check. Also clean up some CodingStyle violations whilst in the vicinity. Signed-off-by: Dave Jones [PATCH] wavelan uninitalised var. This seems a little odd, printing out the value of a variable we haven't read yet. Signed-off-by: Dave Jones [PATCH] airo build fix drivers/net/wireless/airo.c: In function `issuecommand': drivers/net/wireless/airo.c:3812: warning: implicit declaration of function `kernel_locked' *** Warning: "kernel_locked" [drivers/net/wireless/airo.ko] undefined! Signed-off-by: Andrew Morton [PATCH] fix media detection for nForce 2 nics attached is a patch that polls the media setting for non GigE nForce nics: Without polling, media changes are not autodetected. This is fatal, because the nic initialization is asynchroneous, thus "modprobe;ifup" resulted in a dead network connection. The attached patch fixes that problem. It's a repost of a patch I sent around three weeks ago: you objected that I rely on the nic irq instead of a software timer. I've documented why this is ok. Remove extra tests from get_user_cpu_mask(). They aren't internally consistent. [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 [PATCH] fat: add static In the long sequence of static additions, here some fat ones. [PATCH] out-of-line locks / generic This patch achieves out of line spinlocks by creating kernel/spinlock.c and using the _raw_* inline locking functions. Now, as much as this is supposed to be arch agnostic, there was still a fair amount of rummaging about in archs, mostly for the cases where the arch already has out of line locks and i wanted to avoid the extra call, saving that extra call also makes lock profiling easier. PPC32/64 was an example of such an arch and i have added the necessary profile_pc() function as an example. Size differences are with CONFIG_PREEMPT enabled since we wanted to determine how much could be saved by moving that lot out of line too. ppc64 = 259897 bytes: text data bss dec hex filename 5489808 1962724 709064 8161596 7c893c vmlinux-after 5749577 1962852 709064 8421493 808075 vmlinux-before sparc64 = 193368 bytes: text data bss dec hex filename 3472037 633712 308920 4414669 435ccd vmlinux-after 3665285 633832 308920 4608037 465025 vmlinux-before i386 = 416075 bytes text data bss dec hex filename 5808371 867442 326864 7002677 6ada35 vmlinux-after 6221254 870634 326864 7418752 713380 vmlinux-before x86-64 = 282446 bytes text data bss dec hex filename 4598025 1450644 523632 6572301 64490d vmlinux-after 4881679 1449436 523632 6854747 68985b vmlinux-before It has been compile tested (UP, SMP, PREEMPT) on i386, x86-64, sparc, sparc64, ppc64, ppc32 and runtime tested on i386, x86-64 and sparc64. Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / arm Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / i386 Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / x86_64 Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / ppc32 Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / ppc64 Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / sparc64 Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] out-of-line locks / other Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds Remove __HAVE_AGP and __HAVE_MTRR, add driver features bitmask, Cleaned up a lot of #ifdef in functions using suggestions from Arjan. Signed-off-by: Dave Airlie ppc64: move C declaration in ptrace.h into "ifndef __ASSEMBLY__" The assembler gets quite confused otherwise. Drop __HAVE_CTX_BITMAP, __HAVE_SG, __HAVE_PCI_DMA, these are fairly straightforward removals.. Signed-off-by: Dave Airlie remove DRIVER_FILE_FIELDS, replace with a private driver structure allocated in open helper and freed in free_filp_priv. Signed-off-by: Dave Airlie [PATCH] adfs endianness fixes Thus starts the series of endianness problems found by sparse tricks.. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ext2 endianness fixes Several places printk a little-endian number without any conversions. Ones in super.c are particulary unpleasant - there we are getting told that fs couldn't be mounted because of the following set of incompat features and it would be nice to have the printed number matching what one could find in headers... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] msdos and vfat endianness fixes Some callers of fat_date_unix2dos() (in msdos/namei.c and vfat/namei.c) forgot to convert returned host-endian date and time to little-endian. Since all callers want to get little-endian values, moved the conversion into function itself. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] acorn partitions endianness fixes Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] UDF endianness fixes Lots of crap. It looks like the thing had never been really tested on big-endian boxen... Aside of usual "forgot to convert" bugs there's a cute one - foo->le16field = cpu_to_le32(bar) does not work on big-endian... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] quota minor endianness fixes missing le32_to_cpu() in printk Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [ARM PATCH] 2060/1: make /proc/cpuinfo report missing EDSP and Java support Patch from David Brownell This makes /proc/cpuinfo more accurate on many ARM processors, so that for example ARMv5TEJ processors always show they have Thumb (T), EDSP (E), and Java (J) capability. [ARM PATCH] 2062/2: Initial support for s3c2440 cpus Patch from Ben Dooks Resend of Patch 2062/1 with the commenbts from rmk applied, so that CPU_S3C2410 / CPU_S3C2440 are automatically selected without user intervention Signed-off-by: Ben Dooks [ARM PATCH] 2063/1: BAST - CPLD register updates Patch from Ben Dooks Added CTRL2,CTLR3 and CTRL4 definitions to bast-cpld.h Signed-off-by: Ben Dooks [ARM PATCH] 2065/1: LH7A40X UDC ARCH changes Patch from Bo Henriksen This patch is part of the UDC driver for the lh7a40x sdk. Please submit this patch for 2.6.9, otherwise the UDC driver will not work. [ARM PATCH] 2072/1: lh7a40x Timer device change Patch from Marc Singer This patch changes the system jiffies timer to use TIMER2 so that a given platform can use TIMER1 to drive the buzzer. Note that only TIMER1 can be used to drive a buzzer. Signed-off-by: Marc Singer [ARM PATCH] 2074/1: S3C2410 - fix reboot by watchdog Patch from Ben Dooks Fix erroneously removed IO region which causes the reboot by watchdog to fail to reboot with an OOPS. Thanks to Herber Potzl for finding this. Signed-off-by: Ben Dooks [ARM PATCH] 2028/1: S3C2410 - SDIO/MMC register definitions Patch from Ben Dooks Definitions for the SDIO/MMC controller on the S3C2410 [ARM PATCH] 2029/1: S3C2410 - nand controller register definitions Patch from Ben Dooks NAND flash controller register definitions [PATCH] x86-64: split timer resources This splits timer resource from 0x40-0x5f to 0x40-0x43, 0x50-053 for x86_64. A patch doing this for i386 was released earlier. Forgot that we have two x86 platforms. [ARM PATCH] 2058/2: S3C2410 - Add PWM devices, update ID on existing devices Patch from Ben Dooks Add PWM timers 0 through 3 Update ID on single devices to -1 Signed-off-by: Ben Dooks [PATCH] fix for integer overflow in hd6457[02] driver code The attached patch fixes an integer overflow in drivers for N2, C101, PCI200SYN WAN cards (brv * port->settings.clock_rate overflowed at requested clock rate of 8*1024*1024 bps, problem noted by Nagaraj Kanniah). [ARM PATCH] 2033/1: IOP3xx patch submission (1/6) Patch from Dave Jiang This patch depends on the applied patches of 1963/1 2017/1 This is the arch/arm/boot directory As to address RMK's previous questions in head-xscale.S, all that are workarounds for improper things coming from redboot. Currently the distribution redboot for IOP does not pass in correct MACH ID or setup the memory map correctly after exec (according to Deepak). So we have to fix it. I'm working on pushing the IOP redboot developer to fix those things at a later date. [PATCH] prism54 Bug - Fix frequency reporting * prism54_get_freq is incorrectly returning channel * and not frequency. Wireless tools detect this, but * other programs do not, leading to insane reported * values. (As Jean documents, drivers should really be * reporting the frequency). * An example is wavemon. [ARM PATCH] 2034/1: 2033/2 - IOP3xx patch submission (2/6) Patch from Dave Jiang arch/arm/configs updates for defconfigs for all IOP platforms [ARM PATCH] 2035/1: 2033/3 - IOP3xx patch submission (3/6) Patch from Dave Jiang arch/arm/kernel changes [ARM PATCH] 2048/1: Patch 2036/1 (2033/4) resubmission Patch from Dave Jiang arch/arm/mach-iop3xx update Removed busy while loop and replaced with mdelay() from patch 2036/1 [ARM PATCH] 2049/1: 2037/1 (2033/5) resubmission Patch from Dave Jiang arch/arm/mm Removed offending #ifdefs for MACH names. Grouped into different IOP families. [ARM PATCH] 2039/1: 2033/6 resubmission Patch from Dave Jiang Rewrite if uncompress.h to use the proper machine_is_X function call. kbuild: use KERNELRELEASE This patch changes several places where the kernel version string is put together from it's components with $KERNELRELEASE. From: Brian Gerst Signed-off-by: Sam Ravnborg kbuild: Support LOCALVERSION Add LOCALVERSION so we can append strings that show up in uname without having to fiddle with the Makefile and EXTRAVERSION, etc. * localversion* files are read first * config variable is appended last * LOCALVERSION from the command line overrides all of this * check is forced on build, since we can't really know when the config or environment options change. Signed-off-by: Ian Wienand Signed-off-by: Sam Ravnborg kbuild: Simplify generating vmlinux Generating vmlinux in top-level Makefile were getting a bit messy after kallsyms support were added. Also the full link of all the .o files were duplicaed a number of times. This patch does the following: - Introduce built-in.o which is a prelink of most .o files - Make the build process a bit more verbose telling when linking .tmpvmlinux* - Use less magic when determing when to generate a new version - Allow architectures to override the defineition of cmd_vmlinux__ - Add more comments to the MAkefile and clean up soem other comments - Display more commends during V=1 builds The resulting kernel boots and rn here. Signed-off-by: Sam Ravnborg scripts: Update ver_linux for recent reiserfsprogs The ver_linux script is fixed to report recent versions of reiserfsprogs. (Older versions had "reiserfsprogs" in the line containing the version number, while recent versions report "reiserfsck" followed by version number). The ver_linux script is updated to report the reiser4progs version number. This was tested with reiserfsprogs 3.6.11, 3.6.18 and reiser4progs 1.0.0. Signed-off-by: Steven Cole Signed-off-by: Sam Ravnborg [ARM PATCH] 2076/1: S3C2410 - s3c2440 support and machine updates Patch from Ben Dooks Include the central code for detecting the cpu in use, and initialising it's IO. Updated all mach-XXX.c files to use this new init. Added the first stage of the new serial port code by calling s3c2410_init_uarts() instead of just setting a variable. Updates mach-h1940.c to prefix with h1940_ instead of ipaq_ Small fixes for redundant code Signed-off-by: Ben Dooks [XFS] Fix up header length miscalculation affecting version 1 logs. SGI Modid: xfs-linux:xfs-kern:178055a Signed-off-by: Nathan Scott [XFS] Remove a readahead page allocation failure warning, this will happen under normal workloads and does not indicate a problem. [XFS] Fix use of AIO wait_on_sync_kiocb and a deadlock in O_SYNC inode semaphore handling. [ALPHA] Fix raising of ieee exceptions from userland software. [PATCH] Correct ELF section used for out of line spinlocks Anton Blanchard noted that vmlinux.lds is using .lock.text but __lockfunc was using .spinlock.text. Make them consistent. Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds drm: remove __HAVE_DMA/IRQ and mapping offset macros Remove __HAVE_DMA and __HAVE_IRQ and associated macros. Also remove GET_MAP related macros... Signed-off-by: Dave Airlie drm: Sparc64 ffb compile fixes Fixup ffb driver and interfaces it uses, also avoid bus_to_virt on sparc, I'll look into using the proper APIs for the DRM soon. Signed-off-by: Dave Airlie kbuild: Enable compile after localversion change Last minute change to localversion patch were faulty. filechk needs a valid '$^' file. In this case unused but make sure to supply one. Signed-off-by: Sam Ravnborg [MMC] MMC_RSP_xxx combined response types. Create a set of MMC_RSP_xxx definitions which correspond to the response type we expect at a high level. These are created from a set of flags; a MMC host driver can either interpret the flags as the high level response type, or the low level individual flags. kbuild: Drop use of built-in.o in top level makefile built-in.o were introduced in top-level Makefile to saves us from linking the same .o files several times when kallsyms were enabled. Unfortunately this caused a hard lock-up on x86_64 - so this patch drops built-in.o again. Please note is was working on i386. This patch also fixes some wording/spellings noticed by: Horst von Brand Signed-off-by: Sam Ravnborg drm: remove virt_to_bus remove virt_to_bus completely.. will fix up drm to use proper interfaces instead later.. Signed-off-by: Dave Airlie x86-64: tell sparse we're a 64-bit platform. Otherwise sparse will complain about constants that don't fit in "long" etc. [PATCH] ppc64: Fix POWER5/JS20 SMP init My recent change to dynamically allocate emergency stacks broke JS20 blades and POWER5. Since we use the emergency stacks in real mode during secondary CPU bringup they must be below the RMO. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [ARM] Move flush_dcache_page Move flush_dcache_page into flush.c - it shouldn't be in the middle of the VIVT mmap alias coherency code. [ARM] Optimise __flush_dcache_page calls. [ARM] Add cache_is_xxxx() functions for cache type identification. Add cache_is_xxxx() functions so we can easily identify the cache type of the CPU we're running on. [ARM] Fix copy/clear user page functions for VIPT aliasing caches. This fixes the copy and clear user page functions for ARMv6 aliasing caches. When we copy data into a page destined for user space, we must make sure that there are no dirty cache lines associated with the kernel space mapping of this page. [ARM] Fix/Optimise flush_dcache_page() for VIPT aliasing caches. Fix flush_dcache_page() for ARMv6 VIPT aliasing caches, and ignore it for non-aliasing caches. [ARM] Add flush_cache_user_page() for sys_cacheflush() Add flush_cache_user_page() to handle sys_cacheflush. Userspace wants to use this call to ensure I/D cache coherency for runtime- built code (eg, used by Java etc). This does not fit well with the purpose of flush_cache_range(), so provide flush_cache_user_range() instead. [SPARC64]: Fix spinlock macros. This undoes bugs introduced by the generic out-of-line spinlock patches. Signed-off-by: David S. Miller [ARM PATCH] 2052/2: extra IRQ handling for PXA27x Patch from Nicolas Pitre Signed-off-by: Nicolas Pitre [ARM PATCH] 2053/2: more atomic ops factorization Patch from Nicolas Pitre Reduce code duplication. Resulting assembly is identical. Signed-off-by: Nicolas Pitre [TCP]: Make TSO play nice with congestion window. Previously TSO would not abide by the congestion window properly. Essentially, each TSO packet would be trated just like 1 normal packet, even though a TSO packet generates more than 1 normal packet. This violates congestion window rules entirely. So now we record the TSO factor, a count of how many real packets a TSO packet will generate, and include this in all the packet counting routines. This initial version has a bug in that skb_entail() is not the correct time to figure out the TSO factor for the SKB, and tp->mss_tso_factor is not necessarily the right value for a given SKB. Will fix this up next. Signed-off-by: David S. Miller [ARM PATCH] 2064/2: fix some gcc-3.4 warnings Patch from Nicolas Pitre warning: use of conditional expressions as lvalues is deprecated Signed-off-by: Nicolas Pitre [ARM PATCH] 2068/2: fix more gcc-3.4.1 warnings Patch from Nicolas Pitre This patch removes a bunch of inline functions from unistd.h on ARM. Some of them were conflicting with gcc's idea of how they should normally be declared, and none of them are used anymore. Signed-off-by: Nicolas Pitre [ARM PATCH] 2069/2: fix compile error with newer gcc Patch from Nicolas Pitre At least with gcc-3.4.1... Error: use of old and new-style options to set FPU type Signed-off-by: Nicolas Pitre [TCP]: Calculate SKB tso factor more accurately. Eliminate tp->mss_tso_factor. Instead, we calculate the SKB tso factor as we walk the write queue for initial transmit or fragment SKBs. Signed-off-by: David S. Miller [TCP]: Make sure SKB tso factor is setup early enough. It needs to be set so that congestion window calculations have a valid value to work with. This means that doing it at write queue running time is too late. Signed-off-by: David S. Miller [ARM] Don't include asm/arch/param.h for non-kernel build uses. [ARM] Eliminate ARM private __KERNEL_HZ. [NET]: Fix CONFIG_COMPAT build with networking disabled. Signed-off-by: David S. Miller [SUNGEM]: Add NAPI support. Signed-off-by: David S. Miller [AX25]: Fix digipeat leak. Signed-off-by: Dave Jones Signed-off-by: David S. Miller [PACKET]: Fix deref before NULL check in packet_release() Using the automated source checker at coverity.com, they picked up on some code in packet_release() where a NULL check was done after dereferencing. Patch below. Signed-off-by: Dave Jones Signed-off-by: David S. Miller [NET]: Fully plug netigh_create/inetdev_destroy race. So here is a patch to make sure that there is a barrier between the reading of dev->*_ptr and *dev->neigh_parms. With these barriers in place, it's clear that *dev->neigh_parms can no longer be NULL since once the parms are allocated, that pointer is never reset to NULL again. Therefore I've also removed the parms check in these paths. They were bogus to begin with since if they ever triggered then we'll have dead neigh entries stuck in the hash table. Unfortunately I couldn't arrange for this to happen with DECnet due to the dn_db->parms.up() call that's sandwiched between the assignment of dev->dn_ptr and dn_db->neigh_parms. So I've kept the parms check there but it will now fail instead of continuing. I've also added an smp_wmb() there so that at least we won't be reading garbage from dn_db->neigh_parms. DECnet is also buggy since there is no locking at all in the destruction path. It either needs locking or RCU like IPv4. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Do less atomic count changes in dev_queue_xmit. With suggestions from Herbert Xu Signed-off-by: David S. Miller [NET]: Move SOCK_foo types into linux/net.h Every arch defines them the same without exception and with this we only need to update one spot when adding new socket types. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [PKT_SCHED]: Fix gact compile warnings. Signed-off-by: David S. Miller [IPVS] fixed to call nf_reset() to reset netfilter related fields Recommended by Harald Welte Signed-off-by: David S. Miller [IPVS] add the MAINTAINERS entry Signed-off-by: David S. Miller [BRIDGE]: deadlock on device removal Fixes: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=131569 Dead lock in bridge when removing device interface module. br_del_if assumes br->lock not held. This fixes case of: brctl addbr b0 brctl addif b0 eth0 rmmod eth0 Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Fix compat layer setsockopt overzealous conversions. compat_sys_setsockopt() is a little overzealous about converting 32-bit stuff into 64-bit. It should match on level _and_ optname, not just optname. Currently it eats the IPV6_V6ONLY sockopt because its value (26) happens to match SO_ATTACH_FILTER. This makes it at least check 'level' for everything but IPT_SO_SET_REPLACE == IPT6_SO_SET_REPLACE, because that does seem to be the same in different levels. But do_netfilter_replace() is another can of worms entirely -- it doesn't actually work either, because some netfilter modules (like ipt_limit) include kernel-only bits which change size in the structure they share with userspace. Signed-off-by: David S. Miller [IPV4]: Mark inet_family_ops static Signed-off-by: David S. Miller [NET]: Unexport {alloc,free}_divert_blk() these are called by dev.c for every device (and nowhere else) Signed-off-by: David S. Miller [NETFILTER]: Fix build error with CONFIG_SYSCTL disabled. ip_ct_log_invalid was added without testing that it compiles without CONFIG_SYSCTL. Since sysctl is the only way of turning it on, there should be no references to it if \!CONFIG_SYSCTL. Also, that turns off CONFIG_PROC_FS, which elicits more warnings. Squish them too. Signed-off-by: Rusty Russell Signed-off-by: David S. Miller kbuild: fix make -j N build Make did say: make[1]: warning: jobserver unavailable: using -j1. Added '+' flag in relevant places to supress this warning. Also removed some trailing tabs in same area spotted by Adrian Bunk Signed-off-by: Sam Ravnborg [PKT_SCHED]: Add missing MODULE_LICENSE. Signed-off-by: Pozsar Balazs Signed-off-by: David S. Miller [IPCONFIG]: Verify DHCPACK packets. Signed-off-by: Peter Buckingham Signed-off-by: David S. Miller [CRYPTO]: xtea_encrypt() should use XTEA_DELTA instead of TEA_DELTA. Signed-off-by: Thor Kooda Signed-off-by: David S. Miller [PATCH] SN2 build fix CONFIG_VIRTUAL_MEM_MAP and CONFIG_DISCONTIGMEM The change on 2004-09-03 by ianw@gelato.unsw.edu.au appears to have a typo, which causes builds of configurations which define both CONFIG_VIRTUAL_MEM_MAP and CONFIG_DISCONTIGMEM to emit some 890 warnings for redefines of each of pfn_valid, page_to_pfn, pfn_to_page. This shows up compiling sn2_defconfig, the SN2 config of arch ia64. I believe that this is a simply typo, an extra "#else" line. Removing this exta line enables sn2_defconfig to build as before. Acked by Jesse Barnes Signed-off-by: Paul Jackson Signed-off-by: Linus Torvalds ppc: remove tmpfile for ppc binutils check make distclean does not remove the new tmp file .tmp_gas_check. Signed-off-by: Olaf Hering Signed-off-by: Sam Ravnborg We dereference dev->priv a few lines above, meaning we'd oops before we got to this sanity check. As it hasn't triggered in any bug reports I've been able to find, I think it's safe to nuke it. Signed-off-by: Dave Jones drm: correct i915 packet length calculations Correct a couple of packet length calculations. From: Keith Whitwell Signed-off-by: Dave Airlie Missing ctx_count decrement when releasing driver. From: Erdi Chen Signed-off-by: Dave Airlie [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 drm: update Kconfig for r128/radeon ATI Rage 128 and Radeon DRM unconditionally depend on PCI Signed-off-by: Geert Uytterhoeven [PATCH] Coda - fix sparse warnings I reused the coda_file_read wrapper for sendfile and accidentally left the __user tag on the buffer. This patch should fix the sparse warnings. Signed-off-by: Jan Harkes Signed-off-by: Linus Torvalds [PATCH] Convert in-kernel users of EXPORT_SYMBOL_NOVERS() to EXPORT_SYMBOL() Convert all in-kernel users of the deprecated EXPORT_SYMBOL_NOVERS() to EXPORT_SYMBOL(). Signed-off-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] input: Fix hiddev disconnect-while-in-use oops 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. Signed-off-by: Adam Kropelin Signed-off-by: Vojtech Pavlik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] input: Eliminate hiddev.h dependency on hid.h hiddev.h needs hid.h but doesn't include it. Since hid.h is private anyway just eliminate the need for it it in the first place. Signed-off-by: Adam Kropelin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Time interpolator: Scalability enhancements and high resolution time for IA64 This has been in the ia64 (and hence -mm) trees for a couple of months. Changelog: * Affects only architectures which define CONFIG_TIME_INTERPOLATION (currently only IA64) * Genericize time interpolation, make time interpolators easily usable and provide instructions on how to use the interpolator for other architectures. * Provide nanosecond resolution for clock_gettime and an accuracy up to the time interpolator time base. * clock_getres() reports resolution of underlying time basis which is typically <50ns and may be 1ns on some systems. * Make time interpolator self-tuning to limit time jumps and to make the interpolators work correctly on systems with broken time base specifications. * SMP scalability: Make clock_gettime and gettimeofday scale O(1) by removing the cmpxchg for most clocks (tested for up to 512 CPUs) * IA64: provide asm fastcall that doubles the performance of gettimeofday and clock_gettime on SGI and other IA64 systems (asm fastcalls scale O(1) together with the scalability fixes). * IA64: provide nojitter kernel option so that IA64 systems with correctly synchronized ITC counters may also enjoy the scalability enhancements. Performance measurements for single calls (ITC cycles): A. 4 way Intel IA64 SMP system (kmart) ITC offsets: kmart:/usr/src/noship-tests # dmesg|grep synchr CPU 1: synchronized ITC with CPU 0 (last diff 1 cycles, maxerr 417 cycles) CPU 2: synchronized ITC with CPU 0 (last diff 2 cycles, maxerr 417 cycles) CPU 3: synchronized ITC with CPU 0 (last diff 1 cycles, maxerr 417 cycles) A.1. Current kernel code kmart:/usr/src/noship-tests # ./dmt gettimeofday cycles: 3737 220 215 215 215 215 215 215 215 215 clock_gettime(REAL) cycles: 4058 575 564 576 565 566 558 558 558 558 clock_gettime(MONO) cycles: 1583 621 609 609 609 609 609 609 609 609 clock_gettime(PROCESS) cycles: 71428 298 259 259 259 259 259 259 259 259 clock_gettime(THREAD) cycles: 3982 336 290 298 298 298 298 286 286 286 A.2 New code using cmpxchg kmart:/usr/src/noship-tests # ./dmt gettimeofday cycles: 3145 213 216 213 213 213 213 213 213 213 clock_gettime(REAL) cycles: 3185 230 210 210 210 210 210 210 210 210 clock_gettime(MONO) cycles: 284 217 217 216 216 216 216 216 216 216 clock_gettime(PROCESS) cycles: 68857 289 270 259 259 259 259 259 259 259 clock_gettime(THREAD) cycles: 3862 339 298 298 298 298 290 286 286 286 A.3 New code with cmpxchg switched off (nojitter kernel option) kmart:/usr/src/noship-tests # ./dmt gettimeofday cycles: 3195 219 219 212 212 212 212 212 212 212 clock_gettime(REAL) cycles: 3003 228 205 205 205 205 205 205 205 205 clock_gettime(MONO) cycles: 279 209 209 209 208 208 208 208 208 208 clock_gettime(PROCESS) cycles: 65849 292 259 259 268 270 270 259 259 259 B. SGI SN2 system running 512 IA64 CPUs. B.1. Current kernel code [root@ascender noship-tests]# ./dmt gettimeofday cycles: 17221 1028 1007 1004 1004 1004 1010 25928 1002 1003 clock_gettime(REAL) cycles: 10388 1099 1055 1044 1064 1063 1051 1056 1061 1056 clock_gettime(MONO) cycles: 2363 96 96 96 96 96 96 96 96 96 clock_gettime(PROCESS) cycles: 46537 804 660 666 666 666 666 666 666 666 clock_gettime(THREAD) cycles: 10945 727 710 684 685 686 685 686 685 686 B.2 New code ascender:~/noship-tests # ./dmt gettimeofday cycles: 3874 610 588 588 588 588 588 588 588 588 clock_gettime(REAL) cycles: 3893 612 588 582 588 588 588 588 588 588 clock_gettime(MONO) cycles: 686 595 595 588 588 588 588 588 588 588 clock_gettime(PROCESS) cycles: 290759 322 269 269 259 265 265 265 259 259 clock_gettime(THREAD) cycles: 5153 358 306 298 296 304 290 298 298 298 Scalability of time functions (in time it takes to do a million calls): ======================================================================= A. 4 way Intel IA SMP system (kmart) A.1 Current code kmart:/usr/src/noship-tests # ./todscale -n1000000 CPUS WALL WALL/CPUS 1 0.192 0.192 2 1.125 0.563 4 9.229 2.307 A.2 New code using cmpxchg kmart:/usr/src/noship-tests # ./todscale CPUS WALL WALL/CPUS 1 0.188 0.188 2 0.457 0.229 4 0.413 0.103 (the measurement with 4 cpus may fluctuate up to 15.x somehow) A.3 New code without cmpxchg (nojitter kernel option) kmart:/usr/src/noship-tests # ./todscale -n10000000 CPUS WALL WALL/CPUS 1 0.180 0.180 2 0.180 0.090 4 0.252 0.063 B. SGI SN2 system running 512 IA64 CPUs. The system has a global monotonic clock and therefore has no need for compensation. Current code uses a cmpxchg. New code has no cmpxchg. B.1 current code ascender:~/noship-tests # ./todscale CPUS WALL WALL/CPUS 1 0.850 0.850 2 1.767 0.884 4 6.124 1.531 8 20.777 2.597 16 57.693 3.606 32 164.688 5.146 64 456.647 7.135 128 1093.371 8.542 256 2778.257 10.853 (System crash at 512 CPUs) B.2 New code ascender:~/noship-tests # ./todscale -n1000000 CPUS WALL WALL/CPUS 1 0.426 0.426 2 0.429 0.215 4 0.436 0.109 8 0.452 0.057 16 0.454 0.028 32 0.457 0.014 64 0.459 0.007 128 0.466 0.004 256 0.474 0.002 512 0.518 0.001 Clock Accuracy ============== A. 4 CPU SMP system A.1 Old code kmart:/usr/src/noship-tests # ./cdisp Gettimeofday() = 1092124757.270305000 CLOCK_REALTIME= 1092124757.270382000 resolution= 0.000976563 CLOCK_MONOTONIC= 89.696726590 resolution= 0.000976563 CLOCK_PROCESS_CPUTIME_ID= 0.001242507 resolution= 0.000000001 CLOCK_THREAD_CPUTIME_ID= 0.001255310 resolution= 0.000000001 A.2 New code kmart:/usr/src/noship-tests # ./cdisp Gettimeofday() = 1092124478.194530000 CLOCK_REALTIME= 1092124478.194603399 resolution= 0.000000001 CLOCK_MONOTONIC= 88.198315204 resolution= 0.000000001 CLOCK_PROCESS_CPUTIME_ID= 0.001241235 resolution= 0.000000001 CLOCK_THREAD_CPUTIME_ID= 0.001254747 resolution= 0.000000001 Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc build fix The #include comes from bk-ia64.patch time interpolation logic patch from Cristoph Lameter. Signed-off-by: Joseph Fannin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: allow SD_NODES_PER_DOMAIN to be overridden Allow SD_NODES_PER_DOMAIN to be overridden. On ppc64 set this at 16 so our top level scheduling domains will include all nodes. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix hang on oprofile shutdown We had a problem in our dummy perfmon handler where we wouldnt reset the PMAO bit. If the bit ended up set and oprofile shutdown and removed its handler then we would end up in a hard loop taking perfmon exceptions. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix __rw_yield prototype From: Nathan Lynch Hit this in latest bk: include/asm/spinlock.h: In function `_raw_read_lock': include/asm/spinlock.h:198: warning: passing arg 1 of `__rw_yield' from incompatible pointer type include/asm/spinlock.h: In function `_raw_write_lock': include/asm/spinlock.h:255: warning: passing arg 1 of `__rw_yield' from incompatible pointer type This seems to have been broken by the out-of-line spinlocks patch. You won't hit it unless you've enabled CONFIG_PPC_SPLPAR. Use the rwlock_t for the argument type, and move the definition of rwlock_t up next to that of spinlock_t. Signed-off-by: Nathan Lynch Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: be resilient against sysfs PCI config accesses Check the EEH return code and dont warn or panic if we get a non fatal error. Also up the printk on EEH error. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: cut down paca footprint The paca currently contains an iseries only structure which is quite large (~1kB). The following patch removes this overhead on pseries and g5 kernels. Since the paca is no longer required to be page aligned, remove it from the page aligned section. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix boot memory reporting The memory reporting line was completely broken on NUMA: Memory: 481600k available (0k kernel code, 0k data, 0k init) [c000000000000000,c000000020000000] Replace it with something that works with NUMA both enabled and disabled: Memory: 485888k/524288k available (4068k kernel code, 38104k reserved, 2348k data, 712k bss, 320k init) Also just use the section symbols like x86 does. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix compat cpu affinity on big endian 64bit Add compat sched affinity code. We can argue about how USE_COMPAT_ULONG_CPUMASK works now that the non compat interface has changed. The old non compat behaviour was to require a bitmap long enough in both setaffinity and getaffinity, now its only required in getaffinity. I could do the same for the 32bit interfaces. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: compat_get_bitmap/compat_put_bitmap Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix compat NUMA API on big endian 64bit Switch the NUMA API to use compat_get_bitmap/compat_put_bitmap. In order to use compat_alloc_userspace instead of set_fs tricks, we have to do a few copies. This is what we are currently using on ppc64 but are willing to entertain the idea of going to a 32bit bitmap, especially considering how much hoops we have to go through to get it right in this patch. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix declaration order in asm-ppc64/tlb.h In asm-ppc64/tlb.h, tlb_flush() is defined as inline after the #include of asm-generic/tlb.h which uses it, defeating the inline directive. gcc-3.4 exposes this problem, causing a compile failure. This patch reorders the file to fix the problem. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: handle SLB misses in realmode Tested on pSeries and iSeries. Some future plans for VSID allocation may mean we have to take this out again, but that's a while off yet, and in the meantime it's a significant speedup. This patch makes the PPC64 SLB miss handler run in real mode (i.e. MMU off) for it's whole duration, on pSeries machines. Avoiding the rfid used to turn relocation on saves some 70-80 cycles on Power4 and Power5. Not having to save and restore SRR0 and SRR1 saves a few more, and means we don't need an extra save slot for r3. Overall there's around a 27% speedup on Power4. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Cleanup & fix lost ticks handling on x86-64 This cleans up the x86-64 lost tick handling and fixes some issues: First it moves that code into an own function. The newer could would become very noisy when the machine loses timer ticks regularly. This happens often on some laptops etc. during the acpi ec access (nothing much can be really done about it) This patch prints the warnings only once. It also fixes the logic on when to ask cpufreq for a new estimate. And it implements timer fallback to HPET when there are really lots of lost ticks. This is following i386. PIT fallback isn't implemented right now though, but I hope we don't need this. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] factor out common code Since the irq handling rework in 2.5 lots of code in the individual files is the same. This patch moves that common code to . The following differences existed: - alpha, m68k, m68knommu and v850 were missing the ~PREEMPT_ACTIVE masking in the CONFIG_PREEMPT case of in_atomic(). These architectures don't support CONFIG_PREEMPT else this would have been an easily-spottbale bug - S390 didn't provide synchronize_irq as it doesn't fit into their I/O model. They now get a spurious prototype/macro - ppc added a new preemptible() macro that is provided for all architectures now. Most drivers were using as they should, but a few drivers and lots of architecture code has been updated to use instead of Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cleanup ptrace stops and remove notify_parent This adds a new state TASK_TRACED that is used in place of TASK_STOPPED when a thread stops because it is ptraced. Now ptrace operations are only permitted when the target is in TASK_TRACED state, not in TASK_STOPPED. This means that if a process is stopped normally by a job control signal and then you PTRACE_ATTACH to it, you will have to send it a SIGCONT before you can do any ptrace operations on it. (The SIGCONT will be reported to ptrace and then you can discard it instead of passing it through when you call PTRACE_CONT et al.) If a traced child gets orphaned while in TASK_TRACED state, it morphs into TASK_STOPPED state. This makes it again possible to resume or destroy the process with SIGCONT or SIGKILL. All non-signal tracing stops should now be done via ptrace_notify. I've updated the syscall tracing code in several architectures to do this instead of replicating the work by hand. I also fixed several that were unnecessarily repeating some of the checks in ptrace_check_attach. Calling ptrace_check_attach alone is sufficient, and the old checks repeated before are now incorrect, not just superfluous. I've closed a race in ptrace_check_attach. With this, we should have a robust guarantee that when ptrace starts operating, the task will be in TASK_TRACED state and won't come out of it. This is because the only way to resume from TASK_TRACED is via ptrace operations, and only the one parent thread attached as the tracer can do those. This patch also cleans up the do_notify_parent and do_notify_parent_cldstop code so that the dead and stopped cases are completely disjoint. The notify_parent function is gone. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ptrace userspace API preservation This makes any ptrace operation that finds the target in TASK_STOPPED state morph it into TASK_TRACED state before doing anything. This necessitates reverting the last_siginfo accesses to check instead of assume last_siginfo is set, since it's no longer impossible to be in TASK_TRACED without being stopped in ptrace_stop (though there are no associated races to worry about). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove RUSAGE_GROUP After my cleanup of the rusage semantics was so quickly taken in by Andrew and Linus without comment, I wonder if I should not have tried to be so accommodating of potential objections as I was. :-) In my original posting, I solicited comment on whether introducing RUSAGE_GROUP as distinct from RUSAGE_SELF was warranted. Note that we've now changed the behavior of the times system call when using CLONE_THREAD, so changing getrusage RUSAGE_SELF to match would be consistent. I think that changing the meaning of the old RUSAGE_SELF value is preferable to introducing the new value for the proper POSIX getrusage behavior. This patch against Linus's current tree dumps RUSAGE_GROUP and makes RUSAGE_SELF have the fixed behavior. If there is interest in having a new explicit interface to sample a single thread's stats alone, then I think that would be better done by introducing a new value for RUSAGE_THREAD. This is trivial to implement, but I won't offer patches bloating the interface if noone is actually interested in using it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 syscall tracing of bogus system calls In 2.4, strace will show you all bogus system calls a process tries. In 2.6, it only shows you stubs < __NR_syscalls, and there is no tracing stop for large bogus system call numbers. I can't see why this was changed, so I am assuming it was accidental. This patch restores the expected behavior that syscall tracing shows every bogus syscall attempt. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make single-step into signal delivery stop in handler On x86 and x86-64, setting up to run a signal handler clears the single-step bit (TF) in the processor flags before starting the handler. This makes sense when a process is handling its own SIGTRAPs. But when TF is set because PTRACE_SINGLESTEP was used, and that call specified a handled signal so the handler setup is happening, it doesn't make so much sense. When the debugger stops to show you a signal about to be delivered, and that signal should be handled, and then you do step or stepi, you expect to see the signal handler code. In fact, the signal handler runs to completion and then you see the single-step trap at the resumed code instead of seeing the handler. This patch changes signal handler setup so that when TF is set and the thread is under ptrace control, it synthesizes a single-step trap after setting up the PC and registers to start the handler. This makes that PTRACE_SINGLESTEP not strictly a "step", since it actually runs no user instructions at all. But it is definitely what a debugger user wants, so that single-stepping always stops and shows each and every instruction before it gets executed. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdrom signedness range fixes Fix a few range checks which aren't working right because if (int < sizeof(...)) does the wrong thing if `int' is negative, due to `sizeof' returning unsigned. In addition to comparisons, the patch makes CDROMVOL* ioctl more robust. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Allow cluster-wide flock Below is a patch that lets a cluster filesystem (such as GFS) implement flock across the cluster. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] filemap read() fix Fix the do_generic_file_read()-reads-one-page-too-many-bug for the fifth time. This patch combines the best features from Nick's patch and also makes index and end_index consistent. (i.e index 'n' covers n*PAGE_SIZE to ((n+1)PAGE_SIZE)-1. I did not feel comfortable with the way index and end_index represented different ranges. It was like comparing apples with oranges. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix f_version optimization for get_tgid_list The kernel contains an optimization that skips the linked list walk in get_tgid_list for the common case of sequential accesses. Unfortunately the optimization is buggy (missing NULL pointer check for the result of find_task_by_pid) and broken (actually - broken twice: the tgid value that is stored in f_version is always 0 because tgid is overwritten when the string is created and additionally the common case is not filldir < 0, it's running out of nr_tgids). The attached patch fixes these bugs. Roger Luethi ran a benchmark: test: top -d 0 -b -n 10 > /dev/null ==> 2.6.8 <== real 0m19.092s user 0m5.013s sys 0m12.622s ==> 2.6.8 + patch-tgid-bugfixes <== real 0m10.062s user 0m5.042s sys 0m4.111s Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] centralize some nls helpers This patch adds common nls_tolower, nls_toupper and nls_strnicmp helpers to nls.h and uses them in various filesystems instead of local duplicates. The situation for ncpfs isn't as nice as it allows to compile without nls support even if the kernel has CONFIG_NLS set, so we need wrappers there. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove unused sysctls from kernel/personality.c These are only used by the out of tree linux-abi project, so it makes sense to define them in those modules. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fs/compat.c: rwsem instead of BKL around ioctl32_hash_table Currently the BKL is used to synchronize access to ioctl32_hash_table in fs/compat.c. It seems that an rwsem would be more appropriate, since this would allow multiple lookups to occur in parallel (and also serve the general good of minimizing use of the BKL). I added lock_kernel()/unlock_kernel() around the call to t->handler when a compatibility handler is found in compat_sys_ioctl() to preserve the expectation that the BKL will be held during driver ioctl operations. It should be safe to do lock_kernel() while holding ioctl32_sem because of the magic BKL sleep semantics. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small wait_on_page_writeback_range() optimization filemap_fdatawait() calls wait_on_page_writeback_range() with -1 as "end" parameter. This is not needed since we know the EOF from the inode. Use that instead. Signed-off-by: Marcelo Tosatti Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] md: correct "working_disk" counts for raid5 and raid6 This error only affects two message (and sysadmin heart-rate). It does not risk data. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: calls to break_lease in nfsd should be O_NONBLOCKing If we would block, we return "err-jukebox" for nfsv3, or just drop the request for v2. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: return EACCES instead of ESTALE for certain filehandle lookup failures As 'nfs_acceptable' uses the authnetication user in it's checks, the filehandle might not be truely "stale" - EACCES is safer. Thanks Olaf Kirch and others. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: fix incorrect indentation in fh_verify fix incorrect indentation in fh_verify Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: nfsd4: Support acl_support attribute The nfs4 attributes supported_attrs and aclsupport should not be static; they need to depend on the exported filesystem's acl support. Test the latter by attempting to get an acl, and adjust the returned attributes apropriately. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: trivial cleanup of nfs4state.c Whitespace cleanup, fix one dprintk, remove superfluous casts of NULL. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: nfsd4 could leak a stateid in an error path nfsd4 could leak a stateid in a case of kmalloc failure; fix. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: nfsd4: postpone release of stateowner on CLOSE Postpone the release of a stateowner on CLOSE for lease time to enable the CLOSE replay cache. Place stateowner on the close_lru list to be reaped by the laundromat service. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: nfsd4: store current->tgid instead of lockowner hash in fl_pid The file_lock.fl_pid is no longer used in posix_same_owner() tests. So just set it to current->tgid for informational purposes. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] knfsd: remove redundant initialization in nfsd4_lockt No need to set fl_owner and fl_pid to 0, since that's already been done by locks_init_lock. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove in-kernel init_module/cleanup_module stubs This patch removes the default stubs for init_module and cleanup_module, and checks for NULL instead. It changes modpost to only create references to those functions if they actually exist. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove ext2_panic() It has no callers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: export copy_in_user The attached patch exports __copy_in_user_asm for s390. It is used in xfs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: minmax-removal arch/s390/kernel/debug.c Removes unnecessary min/max macros and changes calls to use kernel.h macros instead. Signed-off-by: Michael Veeck Signed-off-by: Maximilian Attems Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: packed stack vs. cpu hotplug. The different stack frame layout for packed stacks broke cpu hotplug. Recreate the initial stack frame of the idle thread for offline cpus coming back online. Reenable interrupts after loading the initial registers. In addition this patch contains two more bug fixes: a typo for 64 bit (__SMALL_STACK_SIZE vs. __SMALL_STACK) and show_trace didn't show a trace if for task == NULL. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: lcs multicast deadlock From: Thomas Spatzier lcs network driver changes: - Fix deadlock on card->ipm_lock. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zlib_inflate: Move zlib_inflateSync & friends The following patch moves zlib_inflateSync and friends, which are used by PPP and not a 'normal' gzip, into inflate_sync.c. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] zlib_inflate: Make zlib_inflate_trees_fixed(...) generate the table The following changes zlib_inflate_trees_fixed(...) from using a statically defined table, to generating this table. This cuts out 4-8kB from inftrees.o (4kB on IBM 440GP, 8kB on PPC 74xx). Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Switch arch/ppc/boot to lib/zlib_inflate The following patch switches arch/ppc/boot over from using its own version of zlib to the code found under lib/zlib_inflate. In conjunction with the previous two patches, the size of the resulting images isn't noticably different. But this does have the advantage of removing another copy of zlib from the kernel, and I believe this allows for lib/inflate.c to go away (as that's basically what ppc used to use). Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3 dreference of sb preceeds check. This looks awry. Move the dereference to after we have checked sb is non-NULL. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Speed up scrolling of tdfxfb This patch speeds up scrolling of tdfxfb by maximizing var->yres_virtual so tdfxfb uses SCROLL_PAN_MOVE instead of SCROLL_REDRAW. This is true whether CONFIG_FB_3DFX_ACCEL is set or not. This problem was reported by Paolo Ornati who also made substantial contributions to solve this problem. This patch also fixes compile errors when CONFIG_FB_3DFX_ACCEL is false. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: PPC crash and other fixes for rivafb - Fixed rivafb crashing in PPC. rivafb in PPC requires full, instead of partial, hardware initialization in rivafb_set_par(). - Added untested support for NV_ARCH_30 chipsets. - From Guido Guenther here's another short patch fixing the cursor colors on big endian. - From Guido Guenther trivial: strictmode is a MODULE_PARAM, even if CONFIG_MTRR is not set: Signed-off-by: Guido Guenther Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: take over console on driver registration - This fixes another regression from 2.4. If fbcon is compiled statically, and the framebuffer driver is compiled as a module, doing a 'modprobe xxxfb' does nothing to the console. This has generated numerous bug reports from users. With this patch, fbmem will notify fbcon upon driver registration allowing fbcon to take over the console. - This also fixes con2fbmap not working if fbcon is compiled as a module using the same mechanism as described above. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Clean up framebuffer initialization This patch probably deserves discussion among developers. Currently, the framebuffer system is initialized in a roundabout manner. First, drivers/char/mem.c calls fbmem_init(). fbmem_init() will then iterate over an array of individual drivers' xxxfb_init(), then each driver registers its presence back to fbmem. During console_init(), drivers/char/vt.c will call fb_console_init(). fbcon will check for registered drivers, and if any are present, will call take_over_console() in drivers/char/vt.c. This patch changes the initialization sequence so it proceeds in this manner: Each driver has its own module_init(). Each driver calls register_framebuffer() in fbmem.c. fbmem.c will then notify fbcon of the driver registration. Upon notification, fbcon calls take_over_console() in vt.c. The following are the changes brought about by this patch: - Each subsystem (fbcon, fbmem, xxxfb) will have their own module_init. Thus, explicit calls to each subsystem's init functions are eliminated. - The struct fb_drivers array in fbmem.c can be removed. This slashes around 400 lines in fbmem.c - Parsing of kernel boot options were done by fbmem.c calling each driver's xxxfb_setup() function. Because this is not possible with this patch, drivers can choose to either: - have their own __setup() routine - call fb_get_options("xxxfb") and pass the return value to xxxfb_setup(). This is to maintain compatibility with the 'video=xxxfb:' semantics. - Getting a framebuffer console will occur a bit late during the boot process since the initialization sequence will depend upon the link order. So, 'video/' is moved up in drivers/Makefile, shortly after 'pci/' - Because driver initialization will be dependent on the link order, hardware that depends on other subsystems (agpgart, usb, serial, etc) may choose to initialize after the subsystems they depend on. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Add module_init() and fb_get_options() per driver This adds module_init(xxxfb_init) in all drivers. For drivers with xxxfb_setup(), this patch also adds a 'xxxfb_setup(fb_get_options("xxxfb"))' prior to initialization. Signed-off-by: Antonino Daplas Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove bogus memset from cpqfc driver Not that this driver compiles, but coverity picked up this nonsense. If the pci_alloc_consistent fails, we go boom. Amusingly, after the ==NULL check, is an identical memset. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hpt366 ptr use before NULL check. This pointer is used prior to a test for NULL. But Bart says it can never be NULL. Signed-off-by: Dave Jones Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] crypto: tea.c xtea_encrypt should use XTEA_DELTA xtea_encrypt() should use XTEA_DELTA instead of TEA_DELTA. Signed-off-by: Thor Kooda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] AIO/DIO oops fix The problem here is, finished_one_bio() shouldn't call aio_complete() since no work has been done. I have a fix for this - can you verify this ? I am not really comfortable with this "tweaking". (I am not really sure about IO errors like EIO etc. - if they can lead to calling aio_complete() twice) Fix is to call aio_complete() ONLY if there is something to report. Note the we don't update dio->result with any error codes from get_user_pages(), they just passed as "ret" value from do_direct_IO(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] riscom8 build fix drivers/char/riscom8.c:1178: macro `min_t' used with only 2 args Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use for_each_cpu in oprofile code Replace open coded versions with for_each_cpu()/for_each_online_cpu(). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix oprofile vfree warning on error On error we can call __free_cpu_buffers with only some buffers allocated. I was getting a bunch of vfree warnings when I hit it, we should check before calling vfree. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Speed up oprofile buffer drain code I noticed a large machine was doing about 400,000 context switches per second when oprofile was enabled. Upon closer inspection it looks like we were rearming the buffer sync timer without modifying the expire time. Now that we have schedule_delayed_work_on I believe we can remove the timer completely. Each cpu should be offset by 1 jiffy so they dont all fire at the same time. I bumped DEFAULT_TIMER_EXPIRE from 2 to 10 times a second to be sure we reap cpu buffers. With the following patch the same large machine gets about 4000 context switches per second. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdu31a.c build fix drivers/cdrom/cdu31a.c: In function `do_sony_cd_cmd': drivers/cdrom/cdu31a.c:962: parse error before `:' Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] synclink.c kernel janitor changes Uses msecs_to_jiffies() instead of the custom jiffies_from_ms(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] adfs: add static Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] isofs: add static Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ia32: tsc synchronisation cleanup Clean up the TSC-synchronization code: get rid of div64 and calm down the printks. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in affs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in afs The routine afs_rxvl_probe() is unused and could be removed. (I only put #if 0 around it.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in befs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: avoid using elv_queue_empty Avoid using, in the UBD driver, the elv_queue_empty function. It's for the block layer only; in fact, the Anticipatory Scheduler can return NULL with elv_next_request() even if the queue is not empty, because it waits for the process to send another request before seeking on the disk. In fact, if (with uml-ubd-any-elevator) we let UBD use any scheduler, elevator=as will make the UBD driver Oops, if we don't have this patch. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Avoid forcing use of the no-op scheduler Avoid forcing use of the no-op scheduler for UBD; this may uncover some bugs in the UBD driver, and in fact uml-ubd-no-empty-queue.patch is needed to make this sure. But as of now, no other bugs have been discovered, so this should be safe. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Correct the failure path in start_io_thread Correct the failure path in start_io_thread(), to return the correct error code. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix address_space.i_mmap comment Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove MOD_{INC,DEC}_USE_COUNT users that got back in the ibm_emac_mal.c one is in exported function, so useless, the other two are stale decrements. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] don't mention MOD_{INC,DEC}_USE_COUNT in Documentation/ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Work around gcc 3.5 offsetof bug Current gcc 3.5 doesn't compile a x86-64 kernel, because it doesn't recognize the offsetof used in asm-offset.c to be constant. Use __builtin_offsetof for this instead. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove drivers/char/busmouse.[ch] Doesn't even appear in Makefile and Kconfig anymore. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Missing static in buffer.c The exports were for reiserfs in 2.4, but reiserfs doesn't need them anymore. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix typos in Documentation/sysctl and Documentation/filesystems/proc.txt Alpha is AXP. hostname and domainname does not need redirection. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] RCU documentation Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in autofs4 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in efs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in udf udf_filead_read() and udf_get_fileextent() are unused. Here they are put inside #if 0 .. #endif Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add static in ufs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [IA64] irq.c: Kill warning about variables which are unused in UP kernels. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] minmax-removal in simserial.c, unwind.c Patch (against 2.6.8.1) removes unnecessary min/max macros and changes calls to use kernel.h macros instead. Signed-off-by: Michael Veeck Signed-off-by: Maximilian Attems Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] pci.c: assign parent to the ROM resource Jon Smirl's patch to export roms via sysfs exposes a bug in the ia64 PCI code; we're not assigning a parent to the ROM resource. Patch supplied by Matthew Wilcox Signed-off-by: Tony Luck [IA64] discontig.c: reset counters every iteration each node in show_mem(). On multi-node ia64 system, SysRq-M seems to dump wrong memory info. (Since I don't have such a large machine, I don't confirm it) It should reset counters every iteration each node in show_mem(). Jesse Barnes: "This looks good". Signed-off-by: Akinobu Mita Signed-off-by: Tony Luck [IA64] acpi.c: export pm_power_off for use by ipmi_poweroff module. Signed-off-by: Andreas Schwab Signed-off-by: Tony Luck [BRIDGE]: Fix length checking in ipv6 bridge filtering. Signed-off-by: Bart De Schuymer Signed-off-by: David S. Miller [IPV4/IPV6]: More fragment handling improvements. Here's the optimization: if we know the remaining data exceeds the mtu, we do not need to fill up full of it. skb_prev: mtu +----------+--+-+ | | | | +----------+--+-+ ^ ^ skb_prev->len | maxfraglen appending data: +--------+ | | +--------+ ---------> length In this case, we know we need more fragment(s). So, let's fill up to maxfraglen (instead of mtu) to avoid needless copy in the next loop. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: NETIF_F_LLTX for devices New version of the NETIF_F_LLTX for network devices patch. This allows network drivers to set the NETIF_F_LLTX flag and then do their own locking in start_queue_xmit. This lowers locking overhead in this critical path. The drivers can use try lock if they want and return -1 when the lock wasn't grabbed. In this case the packet will be requeued. For better compatibility this is only done for drivers with LLTX set, others don't give a special meaning to -1. Most of the modern drivers who have a lock around hard_start_xmit can just set this flag. It may be a good idea to convert the spin lock there to a try lock. The only thing that should be audited is that they do enough locking in the set_multicast_list function too, and not also rely on xmit_lock here. Now doesn't move any code around and does things with gotos instead. The loop printk is also still there even for NETIF_F_LLTX For drivers that don't set the new flag nothing changes. Signed-off-by: David S. Miller [TG3]: Add LLTX support. Signed-off-by: David S. Miller [E1000]: Add LLTX support. Signed-off-by: David S. Miller [IPV4/IPV6]: Update ECN handling. This patch brings the IP ECN handling up-to-date with repsect to RFC 3168. Mostly this means treating ECT(1) in the same way as ECT(0). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Remove secure_ipv6_id, unused. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NET]: Kill SCM_CONNECT, never used and unreferenced. Noticed by Ulrich Drepper Signed-off-by: David S. Miller [TCP]: Fix some typos. Signed-off-by: David S. Miller kbuild: allow arch/$(ARCH)/Makefile to override cmd_vmlinux__ The comments said so, so let the code refelct the comment. First user is um that needs a non-standard link rule. um patch will be submitted by the UML folks. Also dropped a bogus comment. Signed-off-by: Sam Ravnborg [PATCH] SN2 build fix, take two I want to change my vote :-) The problem isn't a spurious extra "#else" (which Paul's patch removed) ... it is a missing "#endif" Here's a patch that puts the #else back, adds the #endif, and fixes the whitespace to make this nested mess of pre-processor noise a bit more legible. Signed-off-by: Tony Luck Signed-off-by: Linus Torvalds scripts: pass %{_smp_mflags} to make(1) in scripts/package/mkspec This patch passes %{_smp_mflags} to various build phases in scripts/package/mkspec so that -j$N is honored by make rpm. From: William Lee Irwin III Signed-off-by: Sam Ravnborg kbuild: Move localversion config option to top of menu Setting the local version is a typical action, and expected to be used more often than many other options in the "General" menu. So move it to the top. Signed-off-by: Sam Ravnborg [IPV4]: Fix DHCPACK checking in ipconfig.c Signed-off-by: Peter Buckingham Signed-off-by: David S. Miller [PATCH] ide: sgiioc4 driver needs /proc/ide entries Add create_proc_ide_interfaces() call to sgiioc4_ide_setup_pci_device() so /proc/ide gets populated properly. Signed-off-by: Erik Jacobson Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [VLAN]: Fix thinko in RCU locking. Signed-off-by: David S. Miller [IPV4]: Simplify IP_ECN_set_ce. Optimize away a branch and clean up the logic. Signed-off-by: Herbert Xu Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPSEC]: Fix ECN encapsulation on ipv6. While doing the ECN patch I discovered that IPsec on IPv6 wasn't encapsulating the ECN correctly. This patch fixes that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Handle ECN correctly in ip6ip6 tunnels. This patch adds ECN encapsulation/decapsulation to ip6_tunnel.c. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] Fix mark_buffer_dirty_inode locking breakage Looks like a bug in the cleanup patch :) From: Andrew Morton Shows how many people are testing ext2. Let's fix up that whitespace also. Signed-off-by: Linus Torvalds [TCP]: Do not export tcp_transmit_skb(). Unused outside of tcp_output.c Signed-off-by: David S. Miller [TCP]: Fix tcp_set_skb_tso_factor() calcs. We divide by the wrong MSS. Signed-off-by: David S. Miller [ARM] Make VIPT alias copypage functions override work. [NET]: Calculate RTATTR_MAX at run time. This also solved a problem noticed by Thomas Graf in that RTATTR_MAX had become incorrect recently due to IFLA_MAX increasing and thus becomming the largest one. Signed-off-by: David S. Miller [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 [PATCH] fix highmem bouncing leaking pages In highmem end_io handling, we need to iterate over the completed bio from 0, not bio->bi_idx. If not we leak N-1 pages for any bio with N pages where N > 1. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] beginning of endianness annotations This adds the types and annotates conversion functions. I've converted the ...p() versions to inlines; AFAICS, everything's still happy... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ext2 endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] adfs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] affs endianness annotations AFFS partially annotated - some fields of on-disk structures are never used and while I'm reasonably sure that they ought to be big-endian, I'd rather leave them alone for now; annotating them won't change the amount of noise since nothing in the kernel ever accesses them. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] udf endianness annotations That one was slightly messier than ext2 - several data structures had been used both in little-endian (on-disk) and host-endian (in-core) situations. They had to be split, the rest was trivial annotations. Gets UDF sparse-clean with -Wbitwise. Note that here we just annotate - bug fixes from the original version of that patch had already been merged. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds Fix up UDF merge error Andries made a declaration static, and this clashed with Al who changed it for byteorder annotation. Fix it all up. [ARM PATCH] 2079/1: make the IOP3xx Implementation Options menu conditional on CONFIG_ARCH_IOP3XX Patch from Nicolas Pitre Signed-off-by: Nicolas Pitre [ARM PATCH] 2087/1: fix issues with PXA irq code Patch from Nicolas Pitre - Don't chain assignment to volatile registers. Doing otherwise generates extra needless code to reload the value for the next assignment. - Don't touch PXA27x registers on a PXA25x build. (spotted by Ian Campbell) Signed-off-by: Nicolas Pitre [ARM PATCH] 2088/2: set_irq_type takes the IRQ number not the GPIO Patch from Ian Campbell Please ignore previous patch: set_irq_type takes the IRQ number and not the GPIO number so using any variant on IRQ_TO_GPIO* is incorrect anyway. Signed-of-by: Ian Campbell [PATCH] Move __preempt_*lock into kernel_spinlock, clean up. - create in_lock_functions() to match in_sched_functions(). Export it for use in oprofile. - use char __lock_text_start[] instead of long __lock_text_start when declaring linker symbols. Rusty fixed a number of these a while ago based on advice from rth. - Move __preempt_*_lock into kernel/spinlock.c and make it inline. This means locks are only one deep. - Make in_sched_functions() check in_lock_functions() Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [PATCH] ppc/ppc64: fix offb The recent fbdev changes broke something quite fundamental on ppc, which is the way offb works. It's a "fallback" driver that is to be used when no other driver picked up the video, or when "forced" via the video=ofonly command line option. The recent changes completely broke that (which is a pretty important behaviour on ppc since we still have some models regulary with video cards that don't work properly with the kernel drivers, like some nVidias or some older stuffs). This patch moves offb to the end of the Makefile, so at least the behaviour of taking over as a "fallback" is restored (the current kernel will have offb take control of the framebuffer before any fbdev has a chance to do it, which breaks everything). Apparently, the entire support for "video=ofonly" was removed though, that NEEDS to be restored in some way, though i'm not yet sure what is the best path to that yet, I have to look more deeply at the new code. [PATCH] ppc32: Fix boot with ppc970fx CPU This patch fixes boot on machines with a 970FX CPU, for PPC 32 bits kernels, please apply. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc: fix sungem NAPI The recent sungem NAPI change introduced a bug: dev_kfree_skb() is called within a softirq context, thus triggers all sort of WARN_ON's later on down the stack. This patch changes it to dev_kfree_skb_any(). Acked by David Miller. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] Fix hpet time interpolator setup for CONFIG_TIME_INTERPOLATION The time interpolator scalability enhancement patch broke the time interpolator integration for hpet on IA64. Here is the fix. [PATCH] Fix i386 SPINLOCK_MAGIC debugging Using a label isn't sufficent anymore for determining the location of the failed lock. Use __builtin_return_address instead. Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [PATCH] Fix x86_64 SPINLOCK_MAGIC debugging Using a label isn't sufficent anymore for determining the location of the failed lock. Use __builtin_return_address instead. Signed-off-by: Zwane Mwaikambo Signed-off-by: Linus Torvalds [ARM] Some minor ixdp2x01 fixes Convert on-board UARTs on IXDP2x01s to use 32-bit wide access by marking them as UPIO_MEM32. Fix ixdp2x01_pci_setup() to return a value Signed-off-by: Deepak Saxena [PATCH] ide: fix bogus write cache comment Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: update comments in ide.c and ide-probe.c From: Alan Cox Extracted from 2.6.8.1-ac1, minor corrections by me. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove never changing FANCY_STATUS_DUMPS define From: Alan Cox Extracted from 2.6.8.1-ac1 by me. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove kmalloc() from ide_unregister() tmp_hwif should not be kmalloc()ed in ide_unregister(). If the kmalloc fails, there is no possible error recovery. This patch makes tmp_hwif static, protected by ide_cfg_sem. Signed-off-by: Jorn Engel Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: fix LBA48 support for ALi chipsets (rev < 0xC5) Affected chipsets support LBA48 but not LBA48 DMA. Just use DMA for area < 137GB and revert to PIO for > 137GB one. Also disallow transfers > 256 sectors for better performance. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove unused ide_[dma,pio]_ops_t Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: add ide_hwif_t->data_phase Use it for taskfile requests (only PIO/DMA for now) for storing ide_task_t->data_phase of the active command. Also add some missing task->data_phase assignments. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: unify taskfile single/multiple PIO code Make the actual use of hwif->data_phase. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [ARM] More minor IXP2000 cleanups - Cleanup arch_idle() - Remove unused external_fault variable in mach-ixp2000/pci.c leftover from older kernel version - Fix __setup("ixdp2x01_clock", ixdp2x01_clock_setup) to be "ixdp2x01_clock=" Signed-off-by: Deepak Saxena [SUNGEM]: Use dev_kfree_skb_irq() for TX. gem_tx() is always invoked with IRQs disabled. Signed-off-by: David S. Miller [NET]: Fix pkt_act.h warning with gcc-2.95 include/net/pkt_act.h: In function 'tcf_hash_search': include/net/pkt_act.h:218: warning: return makes integer from pointer without a cast gcc-2.95 is stupid. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPSEC]: Find larval SAs by sequence number When larval states are generated along with ACQUIRE messages, we should use the sequence to find the corresponding larval state when creating states with ADD_SA or ALLOC_SPI. If we don't do that, then it may take down an unrelated larval state with the same parameters (think different TCP sessions). This not only leaves behind a larval state that shouldn't be there, it may also cause another ACQUIRE message to be sent unnecessarily. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPCOMP]: Use per-cpu buffers for compression/decompression. Here is a really ugly patch to get IPCOMP to use per-cpu buffers. But I'm afraid it really is necessary. At 300K per SA IPCOMP isn't very affordable at all. With per-cpu buffers this goes down to 300K per CPU. I've also turned the kmalloc'ed scratch space into a vmalloc'ed one since people may be loading the ipcomp module after the system has been running for a while. On an i386 machine with 64M of RAM or less this can often cause a 64K kmalloc to fail. The crypto deflate buffer space are vmalloc'ed already as well. Part of the ugliness comes from the lazy allocation. However we need the lazy initialisation since new IPCOMP algorithms may be introduced in future. That means we can't allocate space for every single IPCOMP algorithm at module-load time. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Deprecate all-on-link assumption If we don't have IPv6 default routes, we assume all ipv6 destinations are on-link as specified in RFC2461. It, however, is considered harmful now; it is problematic with IPv6-capable nodes that do not have off-link IPv6 connectivity (eg no default routers) and such nodes will take a few seconds until they fall back to use IPv4. See for details. From: KUNITAKE Koichi Signed-off-by: KUNITAKE Koichi Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller [NETFILTER]: Fix build with SYSCTL=n Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [TCP]: Fix packet counting in tcp_fragment(). Do not reference the tso_factor of SKB buff until it is initialized. Signed-off-by: David S. Miller [TCP]: Fix packet counting when fragmenting already sent packets. Calls to tcp_fragment() change the tso_factor of an SKB, so we need to deal with that. Signed-off-by: David S. Miller [TCP]: Fix packet counting during retransmission. We run into a potential problem if we are doing TSO and we reduce the congestion window. We might create a case where the TSO packet is what we need to resend but the congestion window is not large enough to allow it through. The fix is very simple, since tcp_retransmit_skb() is going to chop the size of the packet down to size of the normal non-TSO MSS, we can pretend at the top level that each SKB is composed of only one real MSS worth of data. Signed-off-by: David S. Miller [BRIDGE]: The vlan MII ioctl pass through was passing the wrong device. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [NET]: Device name changing via rtnetlink Signed-off-by: Thomas Graf Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [SPARC64]: Use time interpolators. Signed-off-by: David S. Miller [SPARC64]: Kill insn scheduling comments from etrap.S They just make the columns super wide and the code harder to read and edit. Signed-off-by: David S. Miller Add sparse "__iomem" infrastructure to check PCI address usage There's tons of mis-use of PCI memory-mapped IO that is used as if it was regular memory. That fails disastrously on a number of architectures, and it doesn't help that it just happens to work on regular x86 boxes. This makes makes us do much stricter type-checking. Some of it visible to the regular compiler, but the bulk of it is for sparse. Fix up some of the basic x86 offenders on __iomem usage. acpi: annotate PCI memory accesses agp: annotate intel agp PCI memory accesses drm: annotate basic PCI memory access functions ide: initial PCI memory access annotations tg3: annotate PCI memory accesses fbcon: initial PCI memory access annotations misc: pci memory access annotations Basic serial ports, acpi and intel sound. Can you guess what my laptop has in it? ppc64: PCI memory annotation infrastructure ide: avoid PCI iomem warning in pmac.c sungem: PCI memory annotations ohci1394: PCI memory annotation olympic: tokenring driver PCI memory annotation libata: initial PCI memory annotations [PATCH] NFS: add an fsync() stub for directories as per 2.4.x. Helps to keep the 'sendmail' doctor away. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] fix task_struct leak in posix-timers timer_create leaks task_structs. I probably introduced this bug when I did the cleanup making posix-timers properly per-process. This patch fixes it. There is also a fixup for a random indentation snafu at the end. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds [PATCH] Fix PTRACE_CONT after single-step into signal delivery The previous single-step patch ("make single-step into signal delivery stop in handler") took things a little too far. It left TF set in the sigcontext on the stack, so a PTRACE_CONT after stopping at the handler entry will step instead of resume. This additional patch fixes it. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds Fix off-by-one bug in page cache reading. Just test the end case inside the loop, rather than trying to be clever and getting it wrong. [PATCH] ppc: switch boot/lib/Makefile to $(addprefix ...) for zlib_inflate Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PATCH] CIFSSMBLock() endianness fix cpu_to_le32(...) assigned to 16bit fields. [PATCH] more endianness breakage (CIFSSMBLock(), again) a) upper 32 bits of cpu_to_le64(x) are *not* cpu_to_le32(x) of upper 32 bits. b) ->ByteCount cleaned up. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds kbuild/ppc: Fix build of zlib in arch/ppc/boot/lib $(addprefix ...) needs a directory relative to current directory, because kbuild prefixes the filename with '$(obj)/' Signed-off-by: Sam Ravnborg [PATCH] CIFSSMBNegotiate endianness fix Use of 16bit little-endian in comparisons and arithmetics without conversion. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] CIFSSMBQueryReparseLinkInfo() endianness fix le16_to_cpu() on 32bit field. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds cifs: fix missing semicolon. It disappeared somewhere in Al's cleanup patch.. Stricter PCI IO space type checking uncovered a bug in sx8 driver. Forgot to add in the mmio base.. annotate HPET driver memory-mapped PCI usage Annotate pc300 wan driver PCI memory accesses. This driver caused a _lot_ of warnings due to tons of explicit casts to "uclong". Making all the types sane not only removed the warnings, but got rid of a lot of silly casting, since the types are now much more natural to what the driver wanted to do in the first place. memcpy_toio() shouldn't complain about a const source. Fix up and annotate MTD map usage of PCI memory access [PATCH] ide: sis5513 fix for SiS962 chipset From: Thomas Gleixner 1. If the fake 5513 id bit is not set by the BIOS we must have the 5518 id in the device table. 2. If the register remapping is not set by the BIOS then the enable bit check in ide_pci_setup_ports will fail. It's safe to switch to the remapping mode here. Keeping the not remapped mode would need quite big changes AFAICS. Forward ported to 2.6 by me. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds ppc: make IDE memory-mapped PCI routines match new reality [IPV6]: Fix oops in rt6_device_match() This fixes panic in rt6_device_match(). Well, rt->rt6i_idev is always set if it is dynamically allocated. However, when we hit ip6_null_entry here, its rt6i_idev is NULL. This patch is minimum fix to avoid the oops for now. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [TCP]: Fix {lost,left}_out accounting in tcp_fragment() Noticed by Herbert Xu. Signed-off-by: David S. Miller [NET]: Kill netdev->last_stats Old debugging code we no longer need. Signed-off-by: David S. Miller [IPVS]: Do not use skb_checksum_help(), create and use nf_reset_debug() Appended is a 2nd version that uses nf_reset_debug. - do not use skb_checksum_help in input path as ipvs can handle incoming CHECKSUM_HW packets - do not use skb_checksum_help in forwarding path - claim that checksum is valid (CHECKSUM_NONE) when entering output path for out->in packets - do not reset/destroy the nfct in IP_VS_XMIT, the intention is to reset the debugging field just to avoid log floods from nf_debug_ip_* functions, it is known that the ipvs packets traverse other hooks, eg. LOCAL_IN->LOCAL_OUT. Use nf_reset_debug instead of nf_reset. Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller [TG3]: Need tx_lock in tg3_set_rx_mode(). Noticed by Eric Lemoine. Signed-off-by: David S. Miller Merge conflicts with Linus's sparse ioremap() work. [NET]: Use NETDEV_TX_* macros instead of magic numbers. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [NET]: Improve netdev->hard_start_xmit() documentation. With improvements by Francois Romieu and David S. Miller. Signed-off-by: David S. Miller [NETFILTER]: Fix conntrack seq_file handling. Am travelling, but this passed simple tests here. If this isn't going in, the current seqfile stuff should be ripped out; it's a mess. /proc/net/ip_conntrack was changed over to seq_file. However, seq_file isn't a great fit (a linked list which is changing is not a good candidate for seq file), and the conversion was done badly. 1) Don't do allocation: simply hand the pointer head of the correct chain. 2) Actually output the original tuple. 3) Lock only when actually traversing hash chain. Signed-off-by: Rusty Russell Signed-off-by: David S. Miller [NET]: Fix notification on address change via rtnetlink. Only send NETDEV_CHANGEADDR notifies for address and broadcast changes. Notify is also sent out if only one of the 2 changes is successful. Signed-off-by: Thomas Graf Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [SK98LIN]: Kill dangling netdev->last_stats reference. Signed-off-by: David S. Miller [TCP]: Fix fack_count handling in tcp_sacktag_write_queue(). [PATCH] ppc64:Fix missing register in altivec context switch This is a resend of a patch sent in July and that got lost somewhat, the "VSCR" register wasn't restored properly from the context on load_up_altivec (typo), please apply the fix: Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] fbdev/radeonfb: Remove bugus radeonfb_read/write This patch kills the bogus radeonfb_read/write routines. In order to do so, it adds a new member to fb_info, along with screen_base, which is screen_size, indicating the mapped area. The default fb_read/write will now use that instead of fix->smem_len if it is non-0, and radeonfb now sets it to the mapped size of the framebuffer. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds Linux 2.6.9-rc2 [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 [AGPGART] Fix up sparse iomem warnings for amd-k7 driver. Signed-off-by: Dave Jones 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 [AGPGART] Fix up sparse iomem warnings of amd64 driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in ati driver. Signed-off-by: Dave Jones Add support for "string" ioread/iowrite. Things like SATA use this for data transfer. Also export the iomap routines on ppc64. [AGPGART] Fix up sparse iomem warnings in generic agp code. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warning in Intel driver. Signed-off-by: Dave Jones [AGPGART] Fix sparse iomem warnings in Intel MCH driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in NVidia driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in Serverworks driver. Signed-off-by: Dave Jones 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 add GPL to mmconfig.c 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 [PATCH] uml: restrict tlb flushing One of UML's tlb flushing routines was ignoring the address range passed in by its callers. This patch fixes that. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: clean up terminal state handling This patch cleans up UML's handling of terminal state with better error handling, interface cleanup, and some code tidying. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: get rid of the arch EXTRAVERSION I thought this was gone already. It was only intended for my own patch numbering, and never intended for any other trees. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: more EINTR protection This adds retrying on EINTR to a couple more places. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: mconsole fixes and cleanups This patch makes a couple of functions static tidies code a bit sends a response on shutdown before the shutdown happens Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: network driver fixes This is from Gerd Knorr. It fixes a network hang caused by the host side of an interface being full when the UML interface is brought up, preventing any SIGIOs from happening. It also implements an ioctl needed for ethtool. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove useless ioctls The UML block driver had some useless ioctls in it somehow. This gets rid of them. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: code cleanup Here's another batch of "obviously harmless" changes: comments unsigned long -> __u32 changes for some data that needs to be 32 bits cleanups removal of an unused declaration rearrangement of includes Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: update defconfig Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ide: remove obsolete CONFIG_BLK_DEV_ADMA In drivers/ide/Kconfig there's a hidden config-item named BLK_DEV_ADMA. Nowhere in the sources are any references to this item, so this option simply is obsolete. This patch removes the according item from drivers/ide/Kconfig. Signed-off-by: Raphael Zimmerer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: fixed do_signal in arch/mips/kernel/signal.c The change of get_signal_to_deliver() is followed. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] time interpolators logic fix Report the resolution of the time source correctly for time interpolators with a frequency over 1 Ghz. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Document ARM pci=firmware option Added a new pci= command line option specific to ARM systems in -rc2 and it should be added to kernel-parameters.txt. Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Update IXP4xx MTD driver from CVS MTD The following patch updates the IXP4xx MTD driver with a compile fix from the CVS repository. David has given me the OK to push this upstream. Signed-off-by: Deepak Saxena Signed-off-by: David Woodhouse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add MTD map driver for Intel IXP2000 NPU The following patch adds the MTD map driver for Intel's IXP2000 NPU. The driver is already in MTD CVS and I've gotten the OK from David to push it upstream. Missing Kconfig bits from Lennert Buytenhek Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] bio_alloc() cleanup de-spaghettify this function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tune vmalloc size There are a few devices that use lots of ioremap space. vmalloc space is a showstopper problem for them. this patch adds the vmalloc= boot parameter to override __VMALLOC_RESERVE. The default is 128mb right now - e.g. vmalloc=256m doubles the size. Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix write() return values for tmpfs. This patch makes the return from the write() syscall actually an ssize_t instead of an int. Signed-off-by: Robin Holt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix write() return values for reiserfs. This patch fixes the direct I/O return value for reiserfs writes to be ssize_t instead of int. Signed-off-by: Robin Holt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove sh64 smplock.h It is unused and obsolete. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: vmalloc address fix Resolves the framebuffer errors on some older sparc32s (we triggered it on a SparcStation 2). Signed-off-by: William Irwin Signed-off-by: Tom 'spot' Callaway Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds remove i2o_core.c It is unused and obsolete. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [ARM] i8042 is available on many footbridge hosts, not just ARCH_EBSA285 [PATCH] __iomem fixups for atiixp soundcards Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds ppc64: Need to define HPAGE_SHIFT even when HUGETLB_PAGE not configured. Required for the recent removal of LARGE_PAGE_SHIFT. Do __iomem annotations on VGA state handling sym53c8xx_2: remove unnecessary IO pointer casts They just meant that the __iomem annotation couldn't shine through. fb: add __iomem annotations to cfbcopyarea fb: add __iomem annotations to cfbfillrect [XFRM] make xfrm_lookup() fully af-independent. Simplified from 2 patches by Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPV4]: Fix BUG triggered in fib_sync_down() If you modload then unload a network device, without creating any ipv4 routes, it is possible for the laddr hash to be not allocated yet in fib_semantics. Signed-off-by: David S. Miller [IPV4]: Size fib_info_devhash[] correctly. There is a thinko in the allocation for the devindex hash. We're only giving it 8 elements when it should be 1<<8 elements. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [MMC] Use raw CID rather than decoded CID Save the raw CID information, and use this to match cards with their corresponding mmc_card structure. Different protocol revisions have different CID formats. [MMC] Save MMC card raw CSD structure. [MMC] Export raw MMC card CID and CSD registers via device model. [MMC] Clean up MMC card CID/CSD decoding, stage 1. Now that the raw CSD and CID information are available in mmc_card, there's little point not passing the mmc_card structure into the decode functions themselves. This will be necessary, since there's several different formats of CID decode, and the format appears to depend on data in the CSD. If we are unable to decode the CID or CSD, we can mark the card bad and refuse to bind it to any drivers. Users can then retrieve the raw undecoded CID and CSD from sysfs for debugging purposes. [PATCH] fix missing unlock_page in mm/rmap.c A required unlock_page will be missed in a very rare (but possible) race condition. Acked by Hugh, who says: It'll be hard to hit because of the additional page_mapped test above, with truncate unmapping ptes from mms before it advances to removing pages from cache; but nothing to prevent it happening. Signed-off-by: Nick Piggin Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds [MMC] Add v2.x and v3.x CID parsing. usb: add host controller __iomem annotations [MMC] Fix suspend/resume buglet. Block wants the queue spinlock and interrupts disabled for blk_stop_queue() and blk_start_queue(). [NET] Calculate ipv6_pinfo offset from struct proto->slab_obj_size With a new rule for the struct sock hierarchy descendants layout, that states that the struct ipv6_pinfo member should be last one in the struct layout (see tcp6_sock, udp6_sock, sctp6_sock, etc), we can calculate the ipv6_pinfo member offset by using struct proto->slab_obj_size. So ditch struct ipv6_sk_offset and struct proto->af_specific. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [MMC] Fix mmc_block suspend/resume handling (again). The previous change is not the whole story - the mmc queue thread may be handling a request. We must wait for outstanding requests to complete before allowing the suspend to proceed, otherwise we may suffer loss of data. [MMC] Ensure PXA MMC interrupts are disabled on chip. drm: complete fix for drm_scatter.h Another issue from the macro conversion. Signed-off-by: Dave Airlie drm: drop __HAVE_COUNTER macros This removes all the __HAVE_COUNTER macro and replaces them with the driver setting the values in its register_fns. Signed-off-by: Dave Airlie [ARM] Prevent state machine leakage in ARM APM emulation. Don't allow threads which are acking a suspend request to leave the APM ioctl call. This prevents the state machine breaking. [PATCH] r8169: default on disabling PCIDAC Default to disabling PCI DAC as this option appears unsafe on amd64 (original suggestion by Hans-Frieder Vogt ). The driver will typically report PCI System error when something goes wrong. The relevant interrupt is not masked any more and the driver can thus be disabled. Signed-off-by: Francois Romieu [PATCH] Compatibility fixes for different card versions [PATCH] TMS380TR must select FW_LOADER I got the following compile error with CONFIG_FW_LOADER=n: <-- snip --> ... LD .tmp_vmlinux1 drivers/built-in.o(.text+0x297944): In function `tms380tr_reset_adapter': : undefined reference to `request_firmware' drivers/built-in.o(.text+0x297aaf): In function `tms380tr_reset_adapter': : undefined reference to `release_firmware' drivers/built-in.o(.text+0x297af9): In function `tms380tr_reset_adapter': : undefined reference to `release_firmware' make: *** [.tmp_vmlinux1] Error 1 <-- snip --> CONFIG_TMS380TR must select FW_LOADER (and therefore depend on HOTPLUG). Signed-off-by: Adrian Bunk [MMC] PXAMCI: enable use of platform specific data. This allows platforms to hook in their card detection, power control and power availability information. [MMC] Ensure semaphores are initialised before use. Gah. [SPARC64]: Improve kernel stack backtraces. In particular, handle init_task backtraces. Signed-off-by: David S. Miller [SPARC64]: Fix memset() in sunsu.c and sunzilog.c sizeof(ptr) --> sizeof(*ptr) Signed-off-by: David S. Miller [ALPHA] Fix some compiler warnings from gcc 4. Correct prototypes for sys_wait4 and sys_waitpid. [ALPHA] Add compile-time assert concerning rt_sigframe layout. [ALPHA] Fix signed one bit fields. [ALPHA] Add __user as necessary to fix sparse warnings. NTFS: Rename {find,lookup}_attr() to ntfs_attr_{find,lookup}() as well as find_external_attr() to ntfs_external_attr_find() to cleanup the namespace a bit and to be more consistent with libntfs. Signed-off-by: Anton Altaparmakov NTFS: Rename {{re,}init,get,put}_attr_search_ctx() to ntfs_attr_{{re,}init,get,put}_search_ctx() as well as the type attr_search_context to ntfs_attr_search_ctx. Signed-off-by: Anton Altaparmakov [PATCH] ppc64: Fix __raw_* IO accessors Linus removed the "volatile" statement from the definition of the __raw_* IO accessors on ppc64, which cause some real bad optisations to happen in some fbdev's like matroxfb to happen (just imagine that matroxfb loops reading an IO register waiting for a bit to change). The __raw_xxxx() functions still want ordered accesses (they avoid the byteswap, though) Signed-off-by: Benjamin Herrenschmidt [PATCH] Another ip_conntrack seq fix: ip_conntrack_expect /proc/net/ip_conntrack_expect was changed over to seq_file, but a \n is missing. [PATCH] Warn that ipchains and ipfwadm are going away At the recent netfilter workshop in Erlangen, we was decided to remove the backwards compatibility code for ipchains and ipfwadm. This will allow significant cleanup of interfaces, since we had to have a mid-level interface for the backwards compatibility layer to use. Start off with a warning for 2.6.9, so any remaining users have a chance to migrate. Their firewall scripts might not check return values, and they might get a nasty surprise when this goes away. [PATCH] x86-64: waitid fallout This patch updates the x86-64's compat code to handle the new argument to waitid. Sorry for the oversight. [SOCK] remove sk_pair, only really used by AF_UNIX Added ->peer to struct unix_sock Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [IA64] ia32compat: Put signal restorer code on a gate page When userland doesn't specify sigaction->sa_restorer, we try to put the restorer code on the stack. But this breaks ia32 binaries with non-executable stacks. We now put the restorer code on a gate page. Signed-off-by: Kevin Tian Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [IA64] ia32compat: Disable syscalls sys32_iopl() and sys32_ioperm() on ia64. Disable syscalls sys32_iopl() and sys32_ioperm() on ia64. To emulate these 2 syscalls correctly, we need to guarantee uncached memory attributes on ia64, which is difficult. The only user of this interface that we know of is X. So we think it's better to disable it. Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [IA64] sn2_defconfig update take 2 Please apply this one instead. It turns on mmtimer and increases the number of sg entries for the LSI driver. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IPV4]: Clean up fib_hash.c list handling. 1) Use linux/list.h facilities instead of by-hand list implementation. 2) Use fib_alias structure, hung off of fib_node, to represent routes which all have the same destination prefix, yet have different TOS and priority values. Signed-off-by: David S. Miller [IPV4]: Zap CONFIG_IP_ROUTE_TOS These facilities are now available by default. The config option makes no sense because: 1) It makes no change to the layout of any data structure, therefore it has no impact upon memory usage of the routing tables. 2) It makes no significant change to code size, only a handfull of lookup comparisons are protected by the option. 3) It is needed for full RFC1812 compliance anyways. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [SPARC64]: Update compat code for sys_waitid changes. Signed-off-by: David S. Miller NTFS: - Fix endianness bug in ntfs_external_attr_find(). - Change ntfs_{external_,}attr_find() to return 0 on success, -ENOENT if the attribute is not found, and -EIO on real error. In the case of -ENOENT, the search context is updated to describe the attribute before which the attribute being searched for would need to be inserted if such an action were to be desired and in the case of ntfs_external_attr_find() the search context is also updated to indicate the attribute list entry before which the attribute list entry of the attribute being searched for would need to be inserted if such an action were to be desired. Also make ntfs_find_attr() static and remove its prototype from attrib.h as it is not used anywhere other than attrib.c. Update ntfs_attr_lookup() and all callers of ntfs_{external,}attr_{find,lookup}() for the new return values. - Force use of ntfs_attr_find() in ntfs_attr_lookup() when searching for the attribute list attribute itself. Signed-off-by: Anton Altaparmakov [ATM]: [drivers] fix warnings related to readl/writel changes Signed-off-by: David S. Miller [ATM]: Use __iomem where appropriate. Signed-off-by: David S. Miller [ATM]: [drivers] Use msleep() instead of schedule_timeout() From Nishanth Aravamudan Signed-off-by: David S. Miller [ATM]: [he] Make code more readable with list_for_each_entry From Domen Puncer Signed-off-by: David S. Miller [ALPHA] Update readb and friends for __iomem. [ALPHA] Map readb_relaxed to __raw_readb, not plain readb. [IPV4]: Fix list traversal in fn_hash_insert(). Could create an endless loop during route replace operations. Signed-off-by: David S. Miller [NET]: Add ethtool support to loopback driver. Signed-off-by: David S. Miller [IPV4]: Fix some stray IP_ROUTE_TOS references. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Fix ifmap alignment issues over rtnetlink Introduces a fixed size variant of ifmap for rtnetlink. Fixes issues with address size mismatch between kernel and userspace. Obviously this will fail if userspace provides an address greater than 32bit. Signed-off-by: Thomas Graf SIgned-off-by: David S. Miller [NET]: Fix non-existent reference to tulip.txt Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller Cset exclude: pablo@eurodev.net|ChangeSet|20040828001121|29246 [PATCH] cifs: annotate NEGOTIATE_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate DELETE_FILE_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate DELETE_DIRECTORY_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate CREATE_DIRECTORY_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate OPEN_{REQ,RESP}, endianness bugfix in assignment to OPEN_REQ ->SecurityFlags we did u8 = cpu_to_le32(v8), which breaks on big-endian. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate READ_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate WRITE_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate LOCK_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate RENAME_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_SFI_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate COPY_{REQ,RESP}, minor endianness bugfix missing le16_to_cpu() in debugging printk Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_SPI_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate NT_RENAME_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_QPI_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACT_IOCTL_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_FFIRST_{REQ,RESP}, typo fix in CIFSSMBFindSingle() in CIFSSMBFindSingle() pSMB->TotalParameterCount got wrong value due to typo. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_FNEXT_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_GET_DFS_REFER_{REQ,RESP}, minor endianness bugfix missing le..._to_cpu() in debugging printk Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACTION2_QFSI_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate file_..._info Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TRANSACT_CHANGE_NOTIFY_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate fea{,list}, endianness bugfix in CIFSSMSetEA() ->list_len got (__u32)cpu_to_le16() instead of cpu_to_le32(). Broken on big-endian... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate stat-related structures Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate FILE_DIRECTORY_INFO, clean up cifs_readdir() Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate FILE_SYSTEM_DEVICE_INFO Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate FILE_SYSTEM_ATTRIBUTE_INFO Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate T2_F{FIRST,NEXT|_RSP_PARMS Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate smb_hdr Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate TCONX_{REQ,RESP} Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: annotate SESSION_SETUP_ANX Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: assorted endianness bugfixes a) Flags2 left little-endian. SMBFLG2_... definitions switched to cpu_to_le16(...), which kills the need of conversions in ->Flags2. b) FILE_SYSTEM_UNIX_INFO (never used anywhere) is left little-endian; when users appear, they can convert themselves. c) bugfix: in CIFSSessSetup() we used SecurityBlobLength of response without conversion. That would screw bigendian clients with servers that give wcnt=4. d) bugfix: in CIFSNTLMSSPNegotiateSessSetup() we use SecurityBlob2->NegotiateFlags without conversion. Again, problem on big-endian. e) bugfix: SecurityBlob->MessageType is *not* host-endian. f) bugfix: ->sendmsg() expects its last argument to be equal to sum of iovec lengths, so the value passed to kernel_sendmsg()/sock_sendmsg() would better be correct... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cifs: IPv4-related endianness annotations and bugfixes missing htons() in assigning .sin_port for reconnect Signed-off-by: Al Viro Signed-off-by: Linus Torvalds NTFS: 2.1.18 release - Minor cleanup of fs/ntfs/inode.c::ntfs_init_locked_inode(). - Bump version number and update Documentation/filesystems/ntfs.txt Signed-off-by: Anton Altaparmakov NTFS: - Remove BKL use from ntfs_setattr() syncing up with the rest of the kernel. - Update ->setattr (fs/ntfs/inode.c::ntfs_setattr()) to refuse to change the uid, gid, and mode of an inode as we do not support NTFS ACLs yet. Signed-off-by: Anton Altaparmakov [PATCH] bio_unmap_user(): original bio passed in With the recent bio mapping changes, the caller must pass in the original bio for unmapping again (and they do). So kill this dead code, it could cause problems in situations where someone has used bi_private for something else. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] sysvfs endianness annotations and bugfixes missing fs32_to_cpu() for on-disk ->s_type. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ext3 endianness annotations and bugfixes * missing le32_to_cpu() in a bunch of printks * on big-endian boxen ext3_error() failed to set EXT3_ERROR_FS in ->s_state (cpu_to_le32() instead of cpu_to_le16()) Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] fat endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] efs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] jbd endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] afs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] rxrpc endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] net2280 iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] applicom iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] drivers/input annotations * vortex.c: trivial __iomem annotations * serio_raw.c and tsdev.c: equally trivial __user ones. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ppc64: remove pSeries IO token translations Get rid of IO_TOKEN_TO_ADDR() and IO_ADDR_TO_TOKEN() for pSeries EEH; the conversion to tokens is not needed now that we have __iomem annotations to prevent drivers from dereferencing IO addresses. The IO tokens meant that the __raw_ IO accesses wouldn't have worked, and removing the debugging vestiges simplifies the code noticeably. Signed-off-by: Roland Dreier Signed-off-by: Linus Torvalds [ide] hpt34x: remove dead /proc/ide/hpt34x code Signed-off-by: Bartlomiej Zolnierkiewicz ppc32: Update the MVME5100 defconfig so it works out of the box. David Gardiner noticed that it needed updates such as VT=n to 'work' out of the box. [ide] remove ide_hwif_t->sg_dma_active It is always equal to zero. Signed-off-by: Bartlomiej Zolnierkiewicz NTFS: Get rid of the ugly transparent union in fs/ntfs/dir.c::ntfs_readdir() and ntfs_filldir() as per suggestion from Al Viro. Signed-off-by: Anton Altaparmakov NTFS: Improve the previous transparent union removal. Signed-off-by: Anton Altaparmakov [PATCH] ext3: journalled data fsync fix This optimisation data=journal isn't working right, because journalled-data pages are not marked dirty when they are dirty against the journal. Hence I_DIRTY_PAGES doesn't get set hence we can fail to sync the file under some circumstances. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mmtimer cleanups A few cleanups that probably should have been done a long time ago: o remove test program from mmtimer.h o move name, desc., etc. #defines from mmtimer.h to mmtimer.c o document what mmtimer.c is a little better o some whitespace cleanups for linewrapping and such Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] idr: fix missing spin_unlock() Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] bttv bugfix This fixes a initialization order bug in bttv, also known as "dark red image bug". Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Fix userland compile breakage From: Michal Januszewski "The latest changes introduced to the fb structs in linux/fb.h make compilation of userspace programs break with: include/linux/fb.h:305: error: field `modelist' has incomplete type This is caused by struct list_head not being seen from userspace." This patch removes struct list_head modelist from struct fb_monspecs and moves it to struct fb_info instead, and for now, enclosed struct fb_monspecs by #ifdef __KERNEL__/#endif. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbcon: fix fbcon's setup routine Fix fbcon's setup routine so usage is consistent with previous kernels. Ie: video=ofonly and video=xxxfb:off should work. This is done by fb_get_options() returning a nonzero value if: - 'off' option is present - 'ofonly' is present but driver name is not 'offb' All drivers will not proceed with their initialization if return value is nonzero. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Initialize i810fb after agpgart This patch places 'video/i810/' after 'char/' in drivers/Makefile. This order change makes it unnecessary for i810fb to explicitly call agp_intel_init(). This is untested, as I don't have any i810 hardware anymore, but I believe it will work. If it does, the ugly 'early initialization hack' in drivers/char/agp/intel-agp.c:agp_intel_init() can be removed (haven't done it yet). Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fbdev: Arrange driver order in Makefile This patch arranges driver order in 'driver/video/Makefile' so it closely, but not exactly, follows the previous order in 'drivers/video/fbmem.c'. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: 85xx spurious interrupt bug The Spurious interrupt assignment for OpenPIC was the constant, OPENPIC_VEC_SPURIOUS plus the offset passed in. Due to bugs in some OpenPICs, the end value needed to be 255 on those systems. However, the constant was then chosen to be 239, because offset on most systems is 16. The 85xx has an offset of 64, however, and so this assignment caused lock-ups during boot. The proposed solution is to declare OPENPIC_VEC_SPURIOUS to be 255, and use that value directly, instead of adding the offset to it. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] macintosh/macserial: replace schedule_timeout() with msleep_interruptible() Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] macintosh/therm_windtunnel: replace schedule_timeout() with msleep_interruptible() Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: User tasks must have a valid thread.regs There have been reports of problems running UP ppc64 kernels where the kernel would die in the floating point save/restore code. It turns out kernel threads that call exec (and so become user tasks) do not have a valid thread.regs. This means init (pid 1) does not, it also means anything called out of exec_usermodehelper does not. Once that task has forked (eg init), then the thread.regs in the new task is correctly set. On UP do lazy save/restore of floating point regs. The SLES9 init is doing floating point (the debian version of init appears not to). The lack of thread.regs in init combined with the fact that it does floating point leads to our lazy FP save/restore code blowing up. There were other places where this problem exhibited itself in weird and interesting ways. If a task being exec'ed out of a kernel thread used more than 1MB of stack, it would be terminated due to the checks in arch/ppc64/mm/fault.c (looking for a valid thread.regs when extending the stack). We had a test case using the tux webserver that was failing due to this. Since we zero all registers in ELF_PLAT_INIT, I removed the extra memset in start_thread32. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64 iSeries: allow ibmvscsic to initialise This patch supplies an device so that ibmvscsic will actually have its probe routine called and so allow ti to actually initialise on (legacy) iSeries machines. It also adds a device for the virtual console (for consistency only at the moment). Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Online CPU with maxcpus option panics I booted IA64 kernel with "maxcpus=" set to less than the total available processors in the system. Then I tried to online the CPU which was offline due to "maxcpus=" restirction. i.e when I tried to online the CPU which never was online at boot crashed the system. Signed-off-by: Anil Keshavamurthy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix of race in writeback_inodes() This patch fixes race in writeback_inodes() described below: writeback_inodes() { .... sb->s_count++; spin_unlock(&sb_lock); .... spin_lock(&sb_lock); if (__put_super(sb)) <<< X goto restart; } } deactivate_super() { fs->kill_sb(s); kill_block_super(sb) generic_shutdown_super(sb) spin_lock(&sb_lock); list_del(&sb->s_list); <<< Y spin_unlock(&sb_lock); .... put_super(s); spin_lock(&sb_lock); __put_super(sb); <<< Z spin_unlock(&sb_lock); } The problem with it is that writeback_inodes() supposes that if __put_super() returns 0 then no super block was deleted from the list and we can safely traverse sb list further. But as it is obvious from the deactivate_super() it's not actually true. because at point Y we delete super block from the list and drop the lock. We do __put_super() very much later... So we can find sb with poisoned sb->s_list at point X and we won't be the last sb reference holders. The last reference will be dropped in point Z. So in case of the following sequence of execution Y -> X -> Z we'll get an oops after point X in writeback_inodes(). This patch introduces __put_super_and_need_restart() function which allows safe traversing of sb list. I'll send a couple of patches later which remove O(n^2) algos and using this function. Signed-Off-By: Kirill Korotaev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Rearrangement of inode_lock in writeback_inodes() This patch reaaranges inode_lock taking in writeback_inodes(). It narrows down use of inode_lock and removes unneccassary nesting of sb_lock and inode_lock. Instead of holding inode_lock for all the time I moved it around sync_sb_inodes() as it is in all other places. Signed-Off-By: Kirill Korotaev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] implement roundup_pow_two() Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix for default ACL handling on ReiserFS reiserfs_set_xattr() explicitly updates the ctime for the host inode. This works for direct setfacl/setfattr calls, but for the more common case of an inherited default ACL, it breaks. The ACL is inherited in the middle of the new inode creation, before the inode has been hashed. When mark_inode_dirty is called, one of the checks bails out if the inode is unhashed -- but AFTER inode->i_state is updated, so the inode is marked dirty but never placed on any dirty list. Since the inode is never placed on a dirty list, __sync_single_inode from the writeback_inodes() path can never be called on it to clear the dirty flags. Once the inode is hashed and mark_inode_dirty is called for it again, it's too late -- it will bail early assuming (correctly) that the inode is already marked dirty. This ultimately results in I/O stalls that can't be resolved by the fs path, only be the memory allocation path that uses pages directly. The attached patch makes the update of the ctime conditional on the inode being hashed already. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] list_replace_rcu() in include/linux/list.h This attached patch adds list_replace_rcu() to include/linux/list.h for atomic updating operations according to RCU-model. void list_replace_rcu(struct list_head *old, struct list_head *new) The 'old' element is detached from the linked list, and the 'new' element is inserted to the same point of the linked list concurrently. This patch is necessary for the performance improvement of SELinux. See, http://lkml.org/lkml/2004/8/16/54 (Subject: RCU issue with SELinux) http://lkml.org/lkml/2004/8/30/63 (Subject: [PATCH]SELinux performance improvement by RCU) Signed-off-by: KaiGai, Kohei Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: fixed vr41xx serial UPF_RESOURCES isn't used now. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: fixed initialization error This change had fixed initialization error in arch/mips/vr41xx/common/icu.c Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: fixed undeclared giu_cascade This change had fixed undeclared identifier in arch/mips/vr41xx/common/giu.c Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] compat_sys_fcntl64: fix for locking near end of file Here's a patch to fix a bug in compat_sys_fcntl64 in fs/compat.c. The bug occurs with a 32 bit app that calls fcntl and checking for a lock near the end of a file. struct flock sflp; sflp.l_start = 2147483345; sflp.l_len = 302; /* 2147483345 + 302 == 2147483647 (this should not overflow 31 bits) */ /* 2^31 == 2147483648 */ fcntl_stat = fcntl(fd, F_GETLK, &sflp); The patch also contains a fix to handle l_len < 0 which is now defined in POSIX 1003.1-2001 from the fcntl man page. Signed-off-by: John Engel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] WANPIPE/SDLA driver gcc-3.4 fixes This patch fixes gcc-3.4 cast-as-lvalue warnings in the 2.6.9-rc2 kernel's WANPIPE/SDLA net drivers. This is a forward port of the fix I made for the 2.4 kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix make O= for ppc64/boot make ARCH=ppc64 -j12 O=/dev/shm/R all fails, the linker script is not in the output directory. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Specialix RIO driver gcc-3.4 fixes This patch fixes gcc-3.4 cast-as-lvalue warnings in the 2.6.9-rc2 kernel's Specialix RIO driver. This is a forward port of the fix I made for the 2.4 kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: fixed definition order of _sigchld This change had fixed definition order of _sigchld about MIPS. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reduce stack consumption in load_elf_binary Stack usage is reduced from 268 to 120 bytes on i386. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] check copy_from_user return value in act2000_isa_download Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes s390 core changes: - Replace invoke_softirq mechanism with own version of do_softirq. - Move /proc/inteerrupts functions to re-added arch/s390/kernel/irq.c - Add some includes to avoid compiler warnings. - Remove unused #defines. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dasd driver From: Horst Hummel dasd driver changes: - Add control unit types 0x2107 and 0x1750. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth network driver From: Steffen Thoss From: Ursula Braun-Krahl qeth network driver change: - Change misleading message about hardware ip fragmentation. - Include qeth_snmp_ureq_hdr structure in user copy in qeth_snmp_command. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] devices.txt update - s/390 dasd moved to major 94. - s/390 VM/ESA moved to major 95. - INFTL moved to major 96. - Patch also adds Marvell MPSC low-density device to Minor 44 & 45 (Major 204). This one was in my queue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] round log buffer size to power of two If setting the printk log buffer (with the boot command line option "log_buf_len") to a value that's not a power of two, the index calculations go wrong and yield confusing results. This patch rounds the size to the next higher power of two. It'll yield garbage for sizes > INT_MAX bytes. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] device-mapper: fix minor number check Fix minor number allocation check: (1 << MINORBITS) is invalid. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] device-mapper: rename emit macro Rename EMIT macro to DMEMIT and move to header file. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] device-mapper: mirror log sync optional From: Heinz Mauelshagen Make mirror log synchronization optional. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] powernow-k7: fix latency calculation fix ->cpuinfo.transition_latency for powernow-k7 Signed-off-by: Bruno Ducrot Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix diskstats_show() accounting with PREEMPT There is another (minor) bug that the smp_processor_id() debugger unearthed: diskstats_show() could do a disk_round_stats() -> disk_stat_add() with preemption enabled - possibly resulting in losing statistics updates. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] update MAINTAINERS/CREDITS Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] net/airport: replace schedule_timeout() with ssleep()/msleep() Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pmac: don't add °C suffix in sys for adt746x driver The adt746x driver currently adds a "°C" suffix to temperatures exposed via sysfs, and I don't like that. First, we all agree that any other unit here makes no sense (do we ? do we ? yes of course :) and I don't like having anything but numbers in there, and finally it's more consistent with what the g5 driver does. And finally, the _REAL_ reason is that this is not a low ASCII character and so has nothing to do in the kernel sources or in /sys :) Unfortunately, generating a patch here is nasty because of that (my mailer is rightfully complaining about the non-ASCII char on text import) so you might have to apply by hand... Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [TCP] don't use sk_zapped This is not needed, we use refcounts now. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [ALPHA] Implement new ioread interface. NTFS: Change '\0' and L'\0' to simply 0 as per advice from Linus Torvalds. Signed-off-by: Anton Altaparmakov NTFS: - Update ->truncate (fs/ntfs/inode.c::ntfs_truncate()) to check if the inode size has changed and to only output an error if so. - Rename fs/ntfs/attrib.h::attribute_value_length() to ntfs_attr_size(). Signed-off-by: Anton Altaparmakov [ide] amd74xx: don't probe for IRQs From: Nicholas Reilly I have a Shuttle SN41G2 and the secondary IDE channel alternates between IRQ 15 (correct) and IRQ 7 (causing failures accessing the DVD+-RW which is master, no slave and also messing with the parallel port if it is enabled) on each boot. This is running ACPI and APIC on 2.6.5, 2.6.7 and 2.6.8. dmesg, dmidecode and /proc/acpi/dsdt are all identical (apart from dmesg printing of IRQ and errors it causes) regardless of whether it decides to go on 7 or 15. It is now running the latest BIOS, earlier BIOS did the same. bart: IRQ auto-detection sometimes fails and gets "screaming" IRQ Signed-off-by: Bartlomiej Zolnierkiewicz [PATCH] fix problematic flush_cache_page in kernel/ptrace.c At present, flush_cache_page() is used to handle the case where we unmap a page or alter the page permissions on the target page with one exception - access_process_vm(). Based upon the former, the decision to implement this function is: do we need to flush the cache when we unmap or change the mapping permissions? However, kernel/ptrace.c: access_process_vm() also includes into this: or we need to ensure cache coherency between the kernel and user space mapping of this page. I argue that the use of flush_cache_page() here in the generic code is wrong, and if an architecture wishes to use it for this purpose, it should do so within it's architecture private implementation of copy_to_user_page() and copy_from_user_page(). So this patch removes the flush_cache_page() from kernel/ptrace.c, adding it to the arch-specific copy_{to,from}_user_page() where flush_cache_page is non-empty. Signed-off-by: Linus Torvalds [ide] make sure we are looking at the low bits post error From: Brett Russ The following code needs to be added to ide_end_drive_cmd(), since ide_error() calls ide_end_drive_cmd() after ide_dump_status() has left the registers pointing at the high order part of the LBA. Using the taskfile ioctl will then lead to hobRegister[] and subsequently hob_ports[] being loaded with the wrong values. Signed-off-by: Bartlomiej Zolnierkiewicz [NETFILTER]: Fix comment typo in ip_nat_helper. [IPV4]: Check PAGE_SIZE in fz_hash_alloc Here is a minor optimisation to fz_hash_alloc. The break-even point should be based on PAGE_SIZE rather than the value of divisor. Signed-off-by: Herbert Xu [IPV4]: Kill remnant of ip_nat_dumb This line in net/ipv4/Makefile was left behind when the rest of the dumb NAT option was taken out. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Remove leading space in linux/skbuff.h Signed-off-by: David S. Miller [PKTGEN]: Update to 1.4 Stephen's patches. version change and hard_xmit printout removed. And 2.7 is still a promise... Signed-off-by: Robert Olsson Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [XFRM]: Fix unbalanced spin_unlock_bh in __xfrm_find_acq_byseq This patch fixes an unbalanced spin_unlock_bh in __xfrm_find_acq_byseq left over from the larval state SA fix. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [ARCNET]: Fix crash in 2.6.8.1 > I am trying to upgrade my labtop to 2.6.8.1. I have ArcNet COM20020 > PCMCIA card. After editing /etc/pcmcia/config to make it know about the > module, it finds the com20020 with no problems but as soon as I try to > start the network device the ifconfig process crashes. : > I fixed it by changing > lp->hw.open(dev); > to > if(lp->hw.open) { > lp->hw.open(dev); > } Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [ATM]: [lanai] get sleep interval right Signed-off-by: David S. Miller [ATM]: [eni] fix __iomem related warnings Signed-off-by: David S. Miller [ATM]: [ambassador] remove warnings related to unused variables Signed-off-by: David S. Miller [ATM]: [fore200e] fix warnings related to dma_addr_t Signed-off-by: David S. Miller [IPV4]: Fix endless loop in fn_hash_delete. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Fix thinko in fib_find_alias fib_find_alias is meant to return either an exact match or the entry just before where it should be. Currently it returns the entry after that. This patch fixes that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Missing TOS checks after fib_find_alias It looks like some of the places where FIB_SCAN_TOS macros were used have lost the tos check. This patch adds them back. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NETFILTER]: Don't try to do any random dropping since we now use jenkins hash Signed-off-by: Rusty Russell Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: add sysctl to read out the number of current connections Apparently a lot of scripts use a construct like cat /proc/net/ip_conntrack | wc -l which has a negative impact on system performance due to all the locking required. Signed-off-by: Harald Welte Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Shuffle conntrack structure for better cacheline behavior Every time we walk the conntrack hashtable list, we hit the same cacheline that is dirtied by the use of the conntrack entry. Shuffling these entries to the end should help this (sizeof(struct ip_conntrack)) > cacheline size). Signed-off-by: Rusty Russell Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: kill struct ip_nat_hash, saves two pointers per conntrack The back-pointer is not needed when using list.h macros. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: kill struct nf_ct_info, saves five pointers per conntrack The relationship of the skb to the conntrack is stored in a new field in the skb. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Use u_int16_t for initialized/num_manips in struct ip_nat_info Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Keep conntrack/nat protocols in array instead of linked list Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Cleanup ctstat This patch simply adds a macro to increase the statistics. And it changes icmp_error to error in struct ip_conntrack_stat in order to adopt to the tcp-windowtracking changes. Based on patch by Pablo Neira. Signed-off-by: Martin Josefsson Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Fix two broken assertions Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: Fix invalid return values in sctp_new Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NETFILTER]: add comment match 2.4 version by Brad Fisher Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NET]: Abstract neigh table walking. This way no code actually needs to traverse the neigh hash tables outside of net/core/neighbour.c Signed-off-by: David S. Miller [NET]: Apply NEIGH_HASHMASK at tbl->hash() caller. Now there is no reason for any neigh implementation to know the value of {P,}NEIGH_HASHMASK Signed-off-by: David S. Miller [PATCH] ppc64: monster cleanup This is the third & hopefully final version of the monster cleanup patch. It does significant cleanups of the early boot code of the ppc64 kernel, and begins the long process of cleaning up & splitting properly the platform support. It completely reworks the interface between the early code that is run in the firmware context (prom_init) and the rest of the kernel, in such a way that will make kexec or static device-tree for embedded people possible. The early init code can eventually be moved to a separate link entity, it no longer touches any of the kernel globals, everything is passed via a single blob of data in memory containing a flattened version of the device-tree and a memory reserve map. While doing it, I also cut the ties between pSeries and Powermac. Now, the kernel config provides a choice between legacy iSeries and "multiplatform". The later is a set of various supported platform, each of them beeing a boolean switch, currently defined beeing pSeries and PowerMac. You can enable both or just one of them. CONFIG_PPC_PSERIES is now specifically set for IBM pSeries support, you can build a PowerMac kernel without pSeries support if you which. The main goal here is to simplify addition of new platform types. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [IA64] When we exhaust the supply of records to read, clear the event status. Patch written by Ben Woodard. Sanity checked by Jesse Barnes. Signed-off-by: Tony Luck [NET]: Privatize {P,}NEIGH_HASHMASK. Signed-off-by: David S. Miller [NET]: Create neigh_lookup_nodev for decnet. Signed-off-by: David S. Miller [NET]: Grow neigh hash table dynamically. Signed-off-by: David S. Miller [NET]: Convert neigh hashing over to jenkins. Based upon work by Harald Welte Signed-off-by: David S. Miller [PATCH] ppc32: Fix Apple Xserve G4 PCI probing When pci_assign_all_busses is set, the common code will re-assign all the bus numbers, which we still need to do one various pmacs, at least until XFree/XOrg understands PCI domains properly. However, this process triggers a bug if during this renumbering, on a given segment, a P2P bridge not yet renumbered has conflicting downstream bus range with a P2P bridge just renumbered. The probing will just behave randomly and either miss devices, show duplicates, or just lockup in some circumstances. This is typically triggered on Apple Xserve G4s who have at least 2 P2P bridges built-in on the same segment of the first PCI (non-AGP) domain The "workaround" we use on pmac that was in my tree for a while but got "lost" during the big merge a while ago is to offset the bus numbers between domains by 16. This avoids the above collision scenario in all practical cases. The long term solution of course is to stop renumbering and make sure that all drivers are domain safe (there may be a couple issue remaining in the code that matches PCI / OF devices on ppc32) and XFree/XOrg has to be fixed. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix bogus return value in pmac_cpufreq.c There's an obvious uninitialized return value in pmac_cpufreq, here's a fix: Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix potentially uninitialized var in chrp_setup.c In chrp_setup.c, chrp_int_ack could be left uninitialized and passed "as-is" to i8259_init() if the OF node for the 8259 wasn't found. I don't know if that should happen, but the i8259 code can deal with int_ack beeing 0, so let's be safe, initialize it, and remove a warning at the same time. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix type/bug in pmac_feature.c A typo in pmac_feature.c can cause us to use a bogus node pointer when iterating the i2c controllers during boot. Fortunately, it seems that we always find the one we are looking for first, and thus never ended up in an inifinite loop here, but let's fix it and fix the warning at the same time. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix use of uninitialized pointer in offb The recent ppc64 changes for offb introduced an uninitialized pointer use for ppc32, here's the fix: Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: adapt prom_init to offb change The changes to prom_init/offb interaction introduced by the ppc64 monster cleanup patch need a fix to ppc32 prom_init so that offb works again. ppc32 prom_init() could use a lot more cleanup, but let's do the minimal fix to make it work now. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix typo/bug in bus resource allocation The code re-allocating new bus resources in case of conflicts use a function called probe_resource(), which has a typo (spotted by the uninitialized variable use of gcc) causing it to potentially return bogus results. This fixes it: Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [IPV6] Fix device multicast list leakage when forwarding is on. We failed to leave all-routers multicast address. Signed-off-by: Hideaki YOSHIFUJI [IPV6] Don't multiply join multicast/anycast addresses. Case 1: if net.ipv6.conf.IFACE.forwarding has been set to 1, we multiply join routers' multicast/anycast addresses by setting net.ipv6.conf.all.forwarding to 1. Noticed by Andre Tomt . Case 2: if we change net.ipv6.conf.FOO.forwarding from 1 to 2, we multiply join routers' multicast/anycast addresses. Signed-off-by: Hideaki YOSHIFUJI [IPV6] Save number of arguments for __ipv6_dev_mc_dev(). dev is unused in the function. Signed-off-by: Hideaki YOSHIFUJI [IPV6] use __ipv6_dev_mc_dec() where appropriate. Use __ipv6_dev_mc_dec() instead where the caller knows idev. Signed-off-by: Hideaki YOSHIFUJI NTFS: Begin of sparse annotations: new data types and endianness conversion. - Add le{16,32,64} as well as sle{16,32,64} data types to fs/ntfs/types.h. - Change ntfschar to be le16 instead of u16 in fs/ntfs/types.h. - Add le versions of VCN, LCN, and LSN called leVCN, leLCN, and leLSN, respectively, to fs/ntfs/types.h. - Update endianness conversion macros in fs/ntfs/endian.h to use the new types as appropriate. - Do proper type casting when using sle64_to_cpup() in fs/ntfs/dir.c and index.c. Signed-off-by: Anton Altaparmakov NTFS: Continuing sparse annotations: finish data types and header files. - Add leMFT_REF data type to fs/ntfs/layout.h. - Update all NTFS header files with the new little endian data types. Affected files are fs/ntfs/layout.h, logfile.h, and time.h. - Do proper type casting when using ntfs_is_*_recordp() in fs/ntfs/logfile.c, mft.c, and super.c. Signed-off-by: Anton Altaparmakov [IPV6] leave solicited-node multicast address during device deletion. Because in6_dev_get() fails during device deletion, we failed to leave solicited-node multicast address. Signed-off-by: Hideaki YOSHIFUJI [IPV6] leave subnet-routers anycast address during device deletion. Signed-off-by: Hideaki YOSHIFUJI [IPV6] Clean up anycast membership management. Signed-off-by: Hideaki YOSHIFUJI NTFS: Finish off sparse annotation. - Fix all the sparse bitwise warnings. Had to change all the enums storing little endian values to #defines because we cannot set enums to be little endian so we had lots of bitwise warnings from sparse. Signed-off-by: Anton Altaparmakov NTFS: 2.1.19 - Many cleanups, improvements, and a minor bug fix. - Fix bug found by the new sparse bitwise warnings where the default upcase table was defined as a pointer to wchar_t rather than ntfschar in fs/ntfs/ntfs.h and super.c. Signed-off-by: Anton Altaparmakov NTFS: Fix a stupid bug where I forgot to actually do the attribute lookup and then went and used the looked up attribute... Ooops. Signed-off-by: Anton Altaparmakov [PATCH] disable sched domains debug code This disables the sched domains debug code, which has a tendency to print out a *lot* of information. It's helpful for debugging, but a bit overboard for general use. Also, if you have a high NR_CPUS value, it tends to scare people and overflow the dmesg buffer. Signed-off-by: Nick Piggin Signed-off-by: Jesse Barnes Signed-off-by: Linus Torvalds ppc: annotate pmac ide driver Another bunch of annoying warnings gone, and code cleaned up. [PATCH] ppc32/64: Fix warning in pmac ide This is a gcc error, but let's fix it anyway, it isn't a perf critical codepath and warnings are ugly. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: ADB keycode conversion update This makes the ADB->Linux keycodes conversion table a lot more readable (and thus easy to fix :) and adds conversion of the laptop Fn-enter (keypad enter, also present on apple laptop keyboards on the bottom right, left of the arrow keys) to "compose" (or menu key on modern PC keyboard). Thanks to Frank Murphy for spotting this keycode feature of MacOS (and apple docs) It also fixes a small possible race in the LED code Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix warning in pmac battery code The battery calculation code in via-pmu triggers a few warnings (and actually, one of them would lead to a real error if we ever get an unrecognized type from the PMU). Fix this. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] radeonfb: Fix newer PowerBook & warnings This fixes a few warnings in radeonfb and add proper PLL divider values for Apple latest PowerBook Aliminium 17" so the display isn't "fuzzy" (the LVDS interface needs special PLL values that the driver can't calculate, on most x86, the BIOS tells us the values to use, on Apple laptops, we have to hard code them for each model). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] dio fine alignment and pages in io Here is the fix for dio_new_bio() BUG() with fsx tests. The problem is, I changed dio_pages_in_io calculation to be exactly the number of pages we needed to map the user-buffer to do the IO. But with fine-grain alignment (non fs-blocksize), we may need 2 more pages (ZERO_PAGE) to zero out first and last block if needed. Here is the bug info. http://bugme.osdl.org/show_bug.cgi?id=3447 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: upgrade for recent kernel changes This patch is for upgrading m32r's code to the 2.6.9-rc1-mm5 source as well as the other architectures. * arch/m32r/Makefile: Replace assigment to CHECK with assignment to CHECKFLAGS * arch/m32r/kernel/vmlinux.lds.S: - out-of-line locks / m32r; Include LOCK_TEXT to .text section. - Move param section out of init area, for export of built-in module params * arch/m32r/mm/ioremap.c (__ioremap): Add __iomem modifier to the return value type of __ioremap() for much stricter type-checking. * include/asm-m32r/resource.h: - rlimit-based mlocks for unprivileged users - Increase per-user mlock limit default to 32k * include/asm-m32r/socket.h: - [NET]: Move SOCK_foo types into linux/net.h * include/asm-m32r/unistd.h: Add system calls; taken from asm-i386/unistd.h. - [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386 (05/31/2004) - [PATCH] Make key management use syscalls not prctls (09/06/2004) Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: support PTRACE_GETREGS and PTRACE_SETREGS Add PTRACE_GETREGS and PTRACE_SETREGS functions for the native debugging support of the GNU Project Debugger, GDB. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix generic direct IO code for XFS The following patch to the generic direct IO code fixes a problem we've come across that affects the way XFS interacts with it. Between 2.6.5 and 2.6.6 several changes to direct IO were made, in particular the fallback-to-buffered path was introduced in that timeframe. Those changes split the locking done within direct-io.c into two cases - generic filesystems and blkdev/XFS. There is no locking done for the second case, and we also never set the create parameter to the get_blocks call (via direct_io_worker ->do_direct_IO->get_more_blocks) for that case. This meant that XFS was accidentally no longer being told when a direct IO write was being performed, which in turn meant that XFS would (often - depending on the inode's size and bmap) tell get_more_blocks that it was mapping to a hole. It also means that currently all direct writes into XFS are falling back to buffered writes. Further, skipping the i_alloc_sem locking entirely is not correct for us, we are relying on that aspect of the generic locking. The fallback behaviour from direct to buffered is "silent", so we didn't actually pick up on these problems until just recently, unfortunately. The approach I've taken here is to split the blkdev/XFS case into two, and corrected the new third case behaviour for the functionality XFS provides. The generic behavior used by other filesystems remains unchanged, as does direct IO to the block device, and XFS now becomes fully functional. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] gcc-4.0 build fixes Fix various gcc-4.0 compilation errors. Signed-off-by: Grzegorz Jaskiewicz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] preserve irqs in time_resume() Unconditionally enabling interrupts is upsetting the ACPI time resume code. Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: move linker script arch/um/uml.lds.S has already been moved to arch/um/kernel. dyn.lds.S has just been forgotten, so fix this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: small Makefile fixes Tidied up some whitespace in arch/um/Makefile. Added -DUM_FASTCALL to Makefile-i386. make clean descends into util in order to get rid of the binaries there. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: free wrapper fixes __wrap_free is now careful about freeing to the same allocator that allocated the buffer. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove an unused header Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: allow UML to load in the normal location This makes UML load at 0x8048000 rather than 0xa0000000 when CONFIG_MODE_SKAS is on and CONFIG_MODE_TT is off. This will make it more valgrind-friendly, and also allow much greater physical memory sizes without needing to use highmem. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: linker script cleanup From: "D. Bahi" @ enterasys.com - remove an unneeded line from the dynamic linker script. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: implement current_text_addr Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: error message improvement Output a nice error message for people who need mem > 256M but don't increase on the host /proc/sys/vm/max_map_count, telling them to do so. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix fencepost errors in printks Simple corrections to some error messages, which list wrong limits for UBD devices and such. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: print errno before resetting it Make sure we print ERRNO and not always -1. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: don't trash return value From: Doug Dumitru I have been fighting a buffering error when sending large amounts of data out pty devices from UML. I have tried a couple of patches that did not really fix the problem (and were rightly rejected by the group), but have finally found the real bug. In /arch/um/drivers/line.c there is a function "buffer_data" that is responsible for storing data into the lines ring buffer. The function is "supposed" to return the number of characters actually buffered. Unfortunately, in the case where the buffer wraps, the "len" variable is decremented by "end" before it is used as the return parameter. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mmtimer quietness Quiet mmtimer on non-SGI boxes (previously it printed "mmtimer: unable to determine clock frequency"). Signed-off-by: Bjorn Helgaas Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] compile fix 3c59x for eisa without pci # CONFIG_PCI is not set CONFIG_EISA=y drivers/net/3c59x.c: In function `vortex_ioctl': drivers/net/3c59x.c:2916: warning: dereferencing `void *' pointer drivers/net/3c59x.c:2916: error: request for member `current_state' in something not a structure or union Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fb: add __iomem annotations to cfbimgblt ppc64: clean up generated files at "make clean" It missed the new vmlinux.strip file. The generic iomap library needs to be linked unconditionally. Otherwise modules that get loaded dynamically will not be able to resolve the iomap functions, if no built-in drivers caused it to be linked in at compile-time. [SPARC64]: Update defconfig. [NET]: Remove unnecessary local var initialization. Signed-off-by: David S. Miller [SPARC64]: Start timer tick after interpolator is registered. Else we risk an OOPS. Signed-off-by: David S. Miller [NET]: Neighbour hashing tweaks. 1) Start with a smaller initial hash table size. This stresses the new code better. 2) Generate a new hash_rnd every time we grow the hashes. Based upon commentary from Harald Welte. Signed-off-by: David S. Miller [NETFILTER]: Move ip_ct_log_invalid to ip_conntrack_core.c Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [NET]: Smooth out periodic neighbour GC. Based almost entirely upon work by Tim Gardner (timg@tpi.com) and Harald Welte (laforge@gnumonks.org) Signed-off-by: David S. Miller [NET]: Fix some neigh table locking errors. Also, make neigh_hash_alloc() use GFP_ATOMIC. Signed-off-by: David S. Miller [ARM] Fix circular include dependency in asm/system.h The recent addition of linux/bitops.h inside linux/kernel.h has created a circular dependency: asm/system.h -> linux/kernel.h -> linux/bitops.h -> asm/bitops.h -> asm/system.h which results in an unbuildable kernel. We appear not to need linux/kernel.h in asm/system.h, but do need linux/linkage.h, so make this the case. [PATCH] -mm swsusp: make sure we do not return to userspace where image is on disk From: Pavel Machek When image is already on the disk, returning back to user is dangerous. Signed-off-by: Andrew Morton [PATCH] -mm swsusp: copy_page is harmfull From: Pavel Machek This is my fault from long time ago: copy_page can't be used for copying task struct, therefore we can't use it in swsusp. Signed-off-by: Andrew Morton [PATCH] swsusp: do not disable platform swsusp because S4bios is available From: Pavel Machek Currently, when both S4 and S4bios are available, swsusp always chooses S4bios and makes S4 unavailable. Bad idea as S4bios needs completely different setup. Signed-off-by: Andrew Morton [PATCH] swsusp: fix default powerdown mode From: Pavel Machek I'd like new swsusp to default to powerdown mode (as it did before) before it goes up. Signed-off-by: Andrew Morton [PATCH] swsusp: do not oops after allocation failure From: Pavel Machek This checks error return from swsusp_alloc, preventing oops when memory can not be allocated. Signed-off-by: Andrew Morton [PATCH] swsusp: Documentation update From: Pavel Machek Signed-off-by: Andrew Morton [PATCH] Small cleanups for swsusp From: Pavel Machek Here are some small cleanups: whitespace fixes, added severity level, shuffle messages and kill unneccessary strings, add some statics and fixed misleading comments. Signed-off-by: Andrew Morton [PATCH] swsusp: another simplification From: Pavel Machek verify is not really descriptive name of function. Fortunately its insides are self-documenting which makes it easy to fix. Signed-off-by: Andrew Morton [PATCH] swsusp: kill crash when too much memory is free From: Pavel Machek If too much memory is free, swsusp dies in quite a ugly way. Even when it is not neccessary to relocate pagedir, it is proably still neccessary to relocate individual pages. Thanks to Kurt Garloff and Stefan Seyfried. Signed-off-by: Andrew Morton [power mgmt] Make system state enums match device state values. Changes the PM_SUSPEND_MEM (and PM_SUSPEND_DISK) enum values so that they make sense as PCI device power states. (a) Fixes bugs whereby PCI drivers are being given bogus values. This should resolve OSDL bugid 2886 without changing the PCI API (its PM calls still act as on 2.4 kernels). (b) Doesn't change the awkward assumption in the 2.6 PMcore that the /sys/bus/*/devices/power/state, /proc/acpi/sleep, dev->power.power_state, and dev->detach_state files share the same numeric codes ... even for busses very unlike PCI, or systems with several "on" policies as well as STD and STR, or with device-PM transtions with no system-wide equivalent. Really we need to move away from "u32" codes that are easily confused with each other, towards typed values (probably struct pointers), but that's a long-term change and we need the PCI issue fixed sooner. Signed-off-by: David Brownell ppc: Name update/coherency and white space corrections for Freescale MPC52xx - Whitespace audit - IceCube -> LITE5200 (Official name of the platform) Signed-off-by: Sylvain Munaut ppc: Freescale MPC52xx hardware definitions misc updates/fix Mainly this includes : - Remove the 'volatile' keyword in structs defining hardware registers sets. This keyword is useless and can even be harmful if it makes someone believes it's sufficient to access a register like a variable. It's not ! And the registers must be accessed with the appropriate in_be/out_be. So we remove this keyword as it's wrong and misleading. - Some fixes to SDMA - Add SDRAM & GPIO_WKUP unit - Remove of useless #define Signed-off-by: Sylvain Munaut ppc: Fix missing include in Freescale MPC52xx syslib pgtable.h is required for _PAGE_IO Signed-off-by: Sylvain Munaut ppc: Fix spurious iounmap in Freescale MPC52xx syslib Signed-off-by: Sylvain Munaut ppc: Use interactive console for Freescale MPC52xx when using boot/simple Signed-off-by: Dale Farnsworth Signed-off-by: Sylvain Munaut ppc: Fix output of low-level serial debug on Freescale MPC52xx Thanks to Roger Blofeld for pointing that out. Signed-off-by: Sylvain Munaut ppc: Update Freescale MPC52xx documentation / maintainer Signed-off-by: Sylvain Munaut ppc: Add Freescale MPC52xx I2C Support using i2c-mpc.c Just adds the necessary OCP def entry. Don't use IRQ yet though because they are buggy with the 5200 for now. Signed-off-by: Sylvain Munaut ppc: Freescale MPC52xx interrupt controller init code update Part of the initialization code of the interrupt controller is board-specific. It's mainly the external interrupt IRQ[0,3] configuration. This moved in platform file by this ChangeSet. Signed-off-by: Sylvain Munaut ppc: Disable the CAN_DOZE & CAN_NAP CPU features when a BDI is used Theses powersave features causes random debugging failures with a BDI. Signed-off-by: Sylvain Munaut ppc: Allow the Freescale MPC52xx to NAP when idle on LITE5200 platform NAP allows some powersave. It's provided mainly as an example on how to do it. However, when a BDI is plugged it causes early crashes so be aware ! You need to define CONFIG_BDI_SWITCH so powersave is disabled. Signed-off-by: Sylvain Munaut [ALPHA] Fix bitops.h, kernel.h include loop. Make smbfs with UNIX extensions get file disk usage count right. We need to convert from bytes to blocks, and we also need to handle the fact that old smbd's will round up the disk usage bytecount to even multiples of 1MB, and gracefully fall back on an estimate based on the file size instead in that case. Acked by Samuel Thibault who noted the problem in the first place, and Jeremy Allison wrt smbd behavior. Signed-off-by: Linus Torvalds NTFS: Remove silly (__force le32) casts from __ntfs_is_magic{,p} helper functions. Thanks to Al Viro for spotting them. Signed-off-by: Anton Altaparmakov NTFS: Convert final enum (fs/ntfs/logfile.h) to define to silence last bitwise sparse warning. Signed-off-by: Anton Altaparmakov NTFS: Change {const_,}cpu_to_le{16,32}(0) to just 0 as suggested by Al Viro. Signed-off-by: Anton Altaparmakov [PATCH] fix posix_locks_deadlock() The "blocked_list" used for POSIX deadlock detection should only contain POSIX locks, or posix_locks_deadlock() can get confused. As I've noted before (but never posted a patch), we should probably stop checking for deadlock. POSIX says it's optional for an implementation to check for deadlock, and since the change to match on tgid, we can report a deadlock when none exists. [ Further explanation for Linus: POSIX locks and BSD locks don't block each other, so checking that the blocker is a POSIX lock also implies that the waiter is a POSIX lock. ] [PATCH] ppc64: Fix 32 bits conversion of SI_TIMER signals The current 32 bits translation of the SI_TIMER is wrong on ppc64, causing the tst-timer4 testcase of glibc to fail in 32 bits. This patch fixes it. Signed-off-by: Olaf Hering Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [ALPHA] Turn off GENERIC_IOMAP. Arrange for iomap routines to be linked unconditionally. [ALPHA] Regenerate defconfig. [IPV4]: Fix fa_list walking in fib_hash.c Prevent accidently referencing f->fn_alias list head as a real fib_alias object. Signed-off-by: David S. Miller [PATCH] ppc64: fix 32-bit SI_TIMER conversion fix Agh ! I had two patches, a broken one and a good one and ... of course I sent the broken one, sorry :( This fixes the broken fix. Signed-off-by: Olaf Hering Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] bttv: fix DMA setup bug in latest update This fixes the bug that made the card DMA lots of data to random memory locations, causing lockups and instant reboots. The problem was that the yoffset variable got modified inside the loop, but the logic in the switch statement was meant to work on the initial value of the yoffset variable. (Bug fix extracted from http://marc.theaimsgroup.com/?l=linux-kernel&m=109532814823565&w=2) Signed-off-by: Peter Osterlund Signed-off-by: Linus Torvalds [NETFILTER]: Fill hole in netfilter skb fields on 64bit Signed-off-by: Patrick McHardy [NETFILTER]: make ipt_helper depend on ipt_conntrack again Signed-off-by: Patrick McHardy [NETFILTER]: Convert sctp match to skb_header_pointer Signed-off-by: Patrick McHardy [NETFILTER]: Convert sctp conntrack protocol to skb_header_pointer Signed-off-by: Patrick McHardy [NETFILTER]: Convert udp conntrack protocol to skb_header_pointer Signed-off-by: Patrick McHardy [NETFILTER]: Convert icmp conntrack protocol to skb_header_pointer Signed-off-by: Patrick McHardy [PATCH] ppc64: fix CONFIG check typo This should allow sys_rtas to work again on PPC64 pSeries. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add wait_event_timeout() There appears to be one case missing from the wait_event() family - the uninterruptible timeout wait. The following patch adds this. This wait is particularly useful when (eg) you wish to pass work off to an interrupt handler to perform, but also want to know if the hardware has decided to go gaga under you. You don't want to sit around waiting for something that'll never happen - you want to go and wack the gremlin which caused the failure and retry. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix spelling error in callback name A small spelling error slipped into a new ppc_md. platform call I added in my last patch. Not very problematic but worth fixing before any code using the new call gets pushed. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: Remote some userland-only stuff from kernel header include/asm-ppc64/systemcfg.h defines a structure that currently gets exposed to userland via /proc, and which I intend to deprecate in the near future once I have better alternatives available. In the meantime, this patch removes a bunch of stuff from this file that were only defined for non-__KERNEL__, like an inline function for getting to that struture via /proc, and some CPU & platform type definitions that were duplicates of the ones in asm-ppc64/processor.h. These things have nothing to do in a kernel header. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: Make the DART "iommu" code more generic The "DART" iommu used on Apple U3 chipset will appear into 3rd party products soon, thus the code shouldn't be named "pmac_*" anymore. Also, the explicit config option is no longer needed, there is no reason to build a PowerMac kernel without the iommu support, and it can always be disabled at runtime with a cmdline option for testing or debugging. This patch do the appropriate renaming and makes the config option implicit & selected when pmac support is included. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds Update for the LDM driver (fs/partitions/ldm.c): The last_vblkd_seq can be before the end of the vmdb, just make sure it is not out of bounds. If it is abort. If it is not just continue happily. Signed-off-by: Anton Altaparmakov [PATCH] Remove stray 0 from drivers/video/Makefile The reordering of the drivers in drivers/video/Makefile introduced a stray 0 into the pxafb. Signed-off-by: Ian Campbell Signed-off-by: Linus Torvalds [NET]: Remove INCOMPLETE checks from neigh_forced_gc(). Signed-off-by: David S. Miller [IPV4]: Fix fib_alias TOS walking and insertion. Signed-off-by: Julian Anastasov Signed-off-by: Herbert Xu Signed-off-by: David S. Miller ' [TCP]: Choose congestion algorithm at initialization. The choice of congestion algorithm needs to be made when connection is setup to avoid problems when the sysctl values change later and the necessary data hasn't been collected. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [TCP]: Diagnostics enhancement for westwood Enhancement to tcp diagnostics used by ss command. * use jiffies_to_usecs/msec instead of hardcode math * report bandwidth for Westwood Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [TCP]: Westwood cleanup Westwood code cleanup; * use const. * avoid needless paren's and returns * inline acked_count (called once) Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [TIME]: Put jiffies_to_usecs in time.h Move local version put in tcp_diag.c into time.h where it belongs. Also, make it smarted about HZ values math. Based upon suggestions from Joe Perches Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Add __user annotation to PR_SET_NAME [IPV6] Fix routing header handling. We need to rewind skb pointers when we forward a packet to other host because dst_input() assumes that skb->data points head of ipv6 protocol header. Signed-off-by: Hideaki YOSHIFUJI [XFS] Fix incorrect use of do_div on realtime device growfs code path. SGI Modid: xfs-linux:xfs-kern:178670a Signed-off-by: Nathan Scott [XFS] Fix some locking oddities in extended attributes code (ilock excl vs shared). SGI Modid: xfs-linux:xfs-kern:178671a Signed-off-by: Nathan Scott [XFS] Convert to list_for_each_entry_safe form in reclaim list walk. SGI Modid: xfs-linux:xfs-kern:178673a Signed-off-by: Nathan Scott [XFS] Ensure bytes read statistic is not updated when the generic routines fail. SGI Modid: xfs-linux:xfs-kern:178890a Signed-off-by: Nathan Scott [XFS] Need to vn_revalidate after dm_set_fileattr SGI Modid: xfs-linux:xfs-kern:179137a Signed-off-by: Nathan Scott [XFS] Ensure we update the wbc pages skipped count correctly when writing pages. SGI Modid: xfs-linux:xfs-kern:179566a Signed-off-by: Nathan Scott [XFS] Add nosymlinks inode flag for the security folks, reserve projinherit flag. SGI Modid: xfs-linux:xfs-kern:179567a Signed-off-by: Nathan Scott [XFS] handle nfs requesting ino 0 gracefully SGI Modid: xfs-linux:xfs-kern:179624a Signed-off-by: Nathan Scott [XFS] fix handling of bad inodes SGI Modid: xfs-linux:xfs-kern:179634a Signed-off-by: Nathan Scott [XFS] Update XFS quota header - add macros, use standard gpl template. Signed-off-by: Nathan Scott [XFS] Make xfssyncd more generic, hand off out-of-space flushing to it; fixes two deadlocks when near-full and fixes a 4KSTACKS problem in XFS. SGI Modid: xfs-linux:xfs-kern:19600a Signed-off-by: Nathan Scott [IA64] cleanup contig/discontig/virt_mem_map macros I got this patch from Zou Nan hai to resolve the problem that Andrew Morton has been having booting his ia64 system. The code is quite a bit cleaner as he has reduced the number of different definitions of pfn_valid/page_to_pfn/pfn_to_page, and left the only remaining ones next to each other in page.h ... so this should be easier to maintain going forward. Signed-off-by: Tony Luck [TCP]: Fix congestion window expansion when using TSO. We only do congestion window expansion on full packet ACKs. We should do it for ACKs of sub-packets of a TSO frame as well. Signed-off-by: David S. Miller [IPV6] Fix skb allocation size for RST and ACK. Signed-off-by: Hideaki YOSHIFUJI [NET]: Neighbour cache statistics like rt_stat. Add rtstat-like per-cpu statistics to the neighbour cache core. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [TCP]: Use mss_cache_std in tcp_init_metrics(). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NETLINK]: Kill export of netlink_broadcast_deliver. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [TCP]: Fix third arg to __tcp_trim_head(). Noted by Herbert Xu Signed-off-by: David S. Miller NTFS: Change all the defines back to simple enums since sparse is now happy typed enums. This completes the sparse annotations in NTFS. Signed-off-by: Anton Altaparmakov [IA64] sn2_defconfig: disable hotplug cpu Looks like there are some bugs that won't be fixed before 2.6.9 in the scheduling domain code wrt HOTPLUG_CPU, so I'm disabling it in sn2_defconfig (we don't support CPU hotplug just yet anyway). Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] zx1_defconfig: bring zx1_defconfig up to date [IA64] discontig.c: remove max_gap and related call to efi_memmap_walk max_gap is not used in discontig.c. This patch is to remove it and the related efi_memmap_walk. Signed-off-by: Zou Nan hai Signed-off-by: Tony Luck [PATCH] partial io completion problem There's an issue with bio_uncopy_user() in that it expects ->bv_len to be untouched from io submission to io completion, which it wont be for some transfer lengths on some hardware. So we end up not copying all the data back to user space, not so good. This patch adds a bio_map_data local structure to track the io_vec. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [IA64] add default config file for intel tiger Signed-off-by: Tony Luck Convert system suspend states to proper PCI device states. [TCP]: Uninline tcp_current_mss(). Also fix the return value of tcp_sync_mss() to be unsigned. Signed-off-by: David S. Miller [TCP]: Move TSO mss calcs to tcp_current_mss() Based upon a bug fix patch and suggestions from Herbert Xu Signed-off-by: David S. Miller [PKT_SCHED]: Report qdisc parent to userspace Report parent classid of a qdisc back to userspace. Without this there is no way for userspace to see if the qdisc is attached to a class other than parsing all class trees of the link and check all tcm_info fields in the leaf classes. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [CRYPTO]: Whirlpool algorithm updates. Signed-off-by: Aaron Grothe Signed-off-by: James Morris Signed-off-by: David S. Miller [PKT_SCHED]: Remove unneeded line in sch_sfq.c Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [IPX]: Make sure sockaddr_ipx objects are initialized completely. Signed-off-by: Adnaldo Carvalho de Melo Signed-off-by: David S. Miller [NET]: Generic network statistics This patch moves the following files in /proc: /proc/net/rt_cache_stat /proc/net/stat/rt_cache /proc/net/ip_conntrack_stat /proc/net/stat/ip_conntrack /proc/net/arp_cache_stat /proc/net/stat/arp_cache /proc/net/clip_arp_cache_stat /proc/net/stat/clip_arp_cache /proc/net/dn_neigh_cache_stat /proc/net/stat/dn_neigh_cache This allows a generic statistics tool to scan for all available statistics by doing readdir(2) on /proc/net/stat It also adds a special first 'template' line to rt_cache and ip_conntrack in order to facilitate compatibility once somebody adds new fields to the output lines. WARNING: This breaks existing rtstat.c and ctstat.c userspace programs (hopefully for the last time). rtstat is non-existant or broken in major distributions anyway, and ctstat is too new for any distros having it picked up. Therefore, we justify this breakage. A new unified statistics tool for routing cache, connection tracking and neighbour cache is under development and will be included with iproute2. Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETLINK]: Trim SKBs at netlink_{unicast,broadcast}() time. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NETLINK]: In netlink_trim(), verify that SKB is not on a list. Signed-off-by: David S. Miller [SPARC64]: Make bbc_envctrl use msleep_interruptible(). Signed-off-by: Nishanth Aravamudan Signed-off-by: David S. Miller [SPARC64]: Make bbc_i2c use msleep_interruptible(). Signed-off-by: Nishanth Aravamudan Signed-off-by: David S. Miller [SPARC64]: Do not log streaming byte hole errors. They are just a nuissance. Signed-off-by: David S. Miller [PCMCIA] Add device ID for TI4520 to yenta_socket table. This fixes the non-functional PCMCIA problem reported on LKML by Dax Kelson. Signed-off-by: Russell King [SPARC64]: Disable SBH interrupt properly. Signed-off-by: David S. Miller [NETFILTER]: move check for already tracked/untracked before fragment check Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [RTNETLINK]: Calculate rtmsg_ifinfo() SKB size more accurately. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV4]: Define fib_alias in new header fib_lookup.h Also s/FN_S_ACCESSED/FA_S_ACCESSED/ Signed-off-by: David S. Miller [IPV4]: Move some fib_semantics exports into fib_lookup.h Signed-off-by: David S. Miller [IPV4]: Do fib_alias lookup walk directly in fib_semantic_match(). Signed-off-by: David S. Miller [MMC] replace schedule_timeout() with msleep_interruptible() Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems [MMC] Provide major= module parameter for mmc_block This allows users to provide a fixed major number - early 2.4 MMC drivers used block device major 60, which is "local/experimental use" [MMC] Make MMC card initialisation more reliable. Pierre Ossman reported a problem where his cards do not correctly initialise with the current MMC implementation. However, if we tell the card to go back to the idle state between probing the supply voltage and telling the card about the chosen voltage, his cards work - and we don't seem to upset existing cards. [MMC] Add power up delay This patch adds a 10 ms delay in the power up loop. Some cards fail to power up in time without it. [MMC] Use scatter-gather lists rather than walking the BIOs Bartlomiej Zolnierkiewicz wanted to remove the "cbio" structure from struct request. Unfortunately, MMC was using the same "workaround" as IDE to walk the BIO list. With this change, we stop using "cbio" and instead use proper scatter-gather lists. [IA64-SGI] sn2: serialize access to PROM chips If we read and write the PROM chips at the same time, as might happen at boot when salinfo extracts MCA records and a user is checking the PROM revision in /proc/sgi_prominfo, an MCA might occur, since the PROM chips can't be accessed that way. This patch fixes the problem for systems with new PROMs (>= 3.50) by using the SAL to do PROM reads. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] defconfig for Intel bigsur Here's a defconfig that comes up on my box and has a reasonable set of modules enabled. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] SMP systems may not have SRAT, still need to mark node0 online. This only causes a problem in the -mm tree now, but Zou Nan hai and Shaohua Li sent me this fix so that SMP systems compiled with the generic kernel (which turns on NUMA and CPUSETS in -mm) won't hit a BUG_ON in kernel/cpuset.c guarantee_online_mems() which is called from acpi_early_init() Signed-off-by: Tony Luck [PATCH] thinko in kmalloc check in partial completion fix Silly thinko/typo, it needs to check the newly allocated memory for failure of course. Noticed by Stefan Meyknecht. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] Fix sparse warning in bio.c Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] tty locking cleanup and fixes No problems reported other than Linus typo in an unbuildable driver from the last one. This one adds tty_ldisc_flush and also makes tty_wakeup do the queue wake as discussed with Paul. I've then propagated these functions through all the drivers. This means most drivers don't know about the ldisc locking and instead call generic functions that look after it. The result is the removal of a lot of duplicate code both for ldisc referencing and historical code for handling tty ldisc wakeup semantics. A nice side effect is that by adding versions of the two helpers we can switch most of the drivers over before changing the core tty code if preferred. Signed-off-by: Linus Torvalds [PATCH] ppc/ppc64: Fix g5 access to PCI IO cycles Looks like we never needed them, since that bug has been there forever, I didn't get the right base for the IO cycles on the G5 host bridge in the first place (I probably misinterpreted some OF forth code or something like that). [PATCH] ppc64: DART iommu allocation fix The current code allocating the DART has a couple of bugs, first it's called on all machines including the ones who have no DART (oops), and then it tries to access the device-tree using the "of_chosen" pointer before it was initialized. The enclosed patch fixes these. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix !SMP build People don't build UP very often it seems ... anyways, it was broken, here is the fix. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds Fix up tty locking update for sgttyb emulation (TIOCGETP and TIOCSETP). [ARM PATCH] 2097/2: more gcc-3.4.1 warning fixes Patch from Nicolas Pitre At least gcc-3.4.1 complains about puts() declaration conflicting with its own idea of it. Our puts() declaration and implementation isn't standard anyway, so let's rename it to putstr() like on x86. Signed-off-by: Nicolas Pitre [ARM PATCH] 2100/1: Fix compilation error due to missing typedefs (u32) for XScale IOP platforms Patch from Dave Jiang This fixes compile error where u32 was not recognized by iop321.h and iop331.h. Started showing up in 2.6.9-rcX that wasn't there in 2.6.8.1. Added include of to asm/arch/hardware.h where it would propogate to both headers. Signed-off-by: Dave Jiang (dave.jiang@gmail.com) [PATCH] Fix disconnected dentries on NFS exports A disconnected dentry can hold an inode active after the last link has been removed. The file will not then be truncated and removed until memory pressure flushes the disconnected dentry from the dcache. This problem can be resolved by making sure that an inode never has both a connected and a disconnected dentry. This is already the case for directories (as they must only have one dentry), but it is not the case for non-directories. This addresses it by: - changes d_alloc_anon to make sure that a new disconnected dentry is only allocated if there is currently no (hashed) dentry for the inode. (Previously this would noramlly be true, but a race was possible). - changes d_splice_alias to re-use a disconnected dentry on non-directories as well as directories. - splits most of d_find_alias out into a separate function to make the above easier. Problem originally reported by Nikita Danilov. Acked by Al Viro ("It looks sane"), and Jakob Oestergaard reports this fixes his problems. Further pushed by Christoph Hellwig. Signed-off-by: Linus Torvalds [ARM PATCH] 2105/1: Fix compilation error for IOP and remove unnecessary legacy code Patch from Dave Jiang Signed-off-by: Dave Jiang (dave.jiang@gmail.com) Remove the code that jumps to physical offset in head-xscale.S for IOPs that was fixing a legacy redboot problem. The issue no longer exists it seems and it's breaking the compilation anyways. Removed. [ARM PATCH] 2108/1: pxa-regs.h fixes and updates Patch from Nicolas Pitre Patch from Nick Bane. Needed to fix problems with PCMCIA driver. Signed-off-by: Nicolas Pitre [ARM PATCH] 2109/1: fix PCMCIA on Mainstone/PXA270 Patch from Nicolas Pitre Let's move GPIO setup into the board specific hw init functions. The PXA2xx often has many different GPIOs that can be used for a given alternate function and the good one to use is hardware dependent. For example, Lubbock and Mainstone are not using all the same GPIOs for PCMCIA signals. Signed-off-by: Nicolas Pitre [ARM PATCH] 2110/1: S3C2410 - NAND platform data Patch from Ben Dooks platform data header for use with on-chip NAND flash controller. Signed-off-by: Ben Dooks [ARM PATCH] 2111/1: restrict scope of PXA2xx register definitions Patch from Nicolas Pitre It's a rather bad idea to have psa-regs.h included all the time. It's rather large and likely to create namespace clashes, as well as slowing down the build unnecessarily. Better include it explicitly where it is actually needed. Signed-off-by: Nicolas Pitre [ARM PATCH] 2112/1: S3C2410 - fix for assembly inclusion Patch from Ben Dooks Missed protection for use when this file is included for .S files Signed-off-by: Ben Dooks [TCP]: Fix inaccuracies in tso_factor settings. 1) If tcp_{sendmsg,sendpage} tacks on more data to an existing SKB, this can make tso_factor inaccurate. Invalidate it, which forces it to be recalculated, by simply setting it to zero. 2) __tcp_trim_head() changes skb->len thus we need to recalculate tso_factor 3) BUG check that tcp_retrans_try_collapse() does not try to collapse packets with non-1 tso_factor 4) The Solaris FIN workaround in tcp_retransmit_skb() changes packet size, need to fixup tso_factor Signed-off-by: David S. Miller [SUNGEM]: Add polling support. Signed-off-by: Colin Leroy Signed-off-by: David S. Miller [MMC] Fix mmci.c build problem. [PATCH] add missing declaration to fix kernel/compat.c warning Fixes a warning in kernel/compat.c. Signed-off-by: Randolph Chung Signed-off-by: Linus Torvalds [XFS] Remove crufty old cap/mac code - never used, never compiled, gone. SGI Modid: xfs-linux:xfs-kern:19601a Signed-off-by: Nathan Scott [XFS] Fix merge botch affecting xfs_setattr for realtime files. SGI Modid: xfs-linux:xfs-kern:19619a Signed-off-by: Nathan Scott [XFS] Fix sync issues - use correct writepage page re-dirty interface, and do not clear dirty flag if page only partially written. SGI Modid: xfs-linux:xfs-kern:19622a Signed-off-by: Nathan Scott Linux 2.6.9-rc3 [TCP]: Smooth out TSO ack clocking. - Export tcp_trim_head() and call it directly from tcp_tso_acked(). This also fixes URG handling. - Make tcp_trim_head() adjust the skb->truesize of the packet and liberate that space from the socket send buffer. - In tcp_current_mss(), limit TSO factor to 1/4 of snd_cwnd. The idea is from John Heffner. Signed-off-by: David S. Miller [ARM PATCH] 2113/1: include asm/arch/pxa-regs.h where necessary Patch from Ian Campbell The include of asm/arch/pxa-regs.h has been removed from asm-arm/arch-pxa/hardware.h and now needs to be included from the relevant files. I have verified the fixes to arch/arm/mach-pxa/sleep.S and drivers/char/watchdog/sa1100_wdt.c myself. My local tree has other changes to include/asm-arm/arch-pxa/serial.h but I beleive that the attached is necessary and correct. Signed-off-by: Ian Campbell [ARM PATCH] 2114/1: fix drivers/char/watchdog/sa1100-wdt.c on SA1100 Patch from Ian Campbell Patch 2113 broke drivers/char/watchdog/sa1100-wdt.c on SA1100. Signed-off-by: Ian Campbell [PATCH] pc300: remove extra paren. Remove an extra left-paren. Acked-by: Marcelo Tosatti Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix incorrect initialization of hash table on some pSeries The hash table wasn't fully initialized on some pSeries that had the workaround for no batching. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] fix typo in capi driver I didn't have ISDN builds on in my tree for some reason hence missing these two from the tidy ups at the end. Marcel Holtmann also came up with the same fixes although I didnt find that email until I did these. Signed-off-by: Alan Cox [PATCH] Fix typo in final changes to old i4l tty code [PATCH] overcommit symbolic constants Played a bit with overcommit the past hour. Am not entirely satisfied with the no overcommit mode 2 - programs segfault when the system is close to that boundary. So, instead of the somewhat larger patch that I planned to send, just symbolic names for the modes. [IA64] perfmon2 fix for TASK_TRACED fix a problem in pfm_check_task_state() and pfm_task_incompatible() which was caused by the introduction of the new TASK_TRACED state. Tool would fail to attach to a process,i.e., PFM_LOAD_CONTEXT would fail. With the fix perfmon now accepts to operate on tasks which are in either TASK_STOPPED or TASK_TRACED state. The problem was tracked down by Alex Williamson from HP who also submitted the patch. signed-off-by: Stephane Eranian Signed-off-by: Tony Luck [IA64] minor fix to perfmon change the return value of PFM_CREATE_CONTEXT from EAGAIN to ENOMEM when the sampling buffer size is larger than the RLIMIT_MEMLOCK limit of the task. signed-off-by: Stephane Eranian Signed-off-by: Tony Luck Fix up natsemi network driver IO accessor types. Basic cleanup - replace untyped/wrongly typed "dev->base_addr" with use of a strongly typed "ioaddr". Fixed up resulting mii_delay() search-and-replace error noticed by Andrey Klochko. Verified by Franz Pletz. [IA64] Recovery from user-mode memory error This is the latest/Updated OS_MCA handler which try to do recovery from multibit-ECC/poisoned memory-read error on user-land. (Thank you very much for comments, Keith and Grant!) I'd still appreciate it if anyone having good test environment could apply my patch and could report how it works. (especially reports on non-Tiger/non-Intel platform are welcome.) Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck [IA64] mca.h, mca_drv.c: cleanup extern declarations Move extern declarations of ia64_{reg,unreg}_MCA_extension() to mca.h. Delete declaration of ia64_mca_ucmc_other_recover_fp() which doesn't exist. Patch supplied by Hidetoshi Seto. Signed-off-by: Tony Luck [PATCH] limit max jiffy of msecs_to_jiffies [SUNGEM]: Do not need two implementations of poll_controller, hehe. Signed-off-by: David S. Miller [TCP]: Check correct sequence number for URG in tcp_tso_acked(). Noticed by Herbert Xu. Signed-off-by: David S. Miller Wisdom passed down the ages on clay tablets. Only recently digitized for our edification. [SUNGEM]: Fix build. The hpet acpi driver is not __initdata. We register it with the ACPI layer, and it's alive long after init. Noted by Bjorn Helgaas. [PATCH] USB: fix error in bluetty.c driver caused by tty core changes Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds [PATCH] USB: remove FIXME created from tty core changes in empeg driver. Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds Fix cyclades driver types, and add __iomem annotations. Remove absolutely tons of totally unnecessary casts, once the types are done right in the first place. The driver is still ugly as hell and needs some serious indentation fixing, but this makes it not spew hundreds of warnings any more. Remove casts and add __iomem annotations to gdth driver Fix up MMIO pointer types and add __iomem annotations to radeonfb.c It was almost correct, apart from some silly details. The x86 ROM probing is still wrong, and doesn't use the proper PCI MMIO accessor functions. Sparse (correctly) warns about it. [PATCH] 3c59x: add invalid MAC address check Do trivial __iomem annotations for tridentfb.c A few one-liners removed hundreds of lines of warnings. The driver was clean, just not using the proper types. [TCP]: Add tcp_tso_win_divisor sysctl. This allows control over what percentage of the congestion window can be consumed by a single TSO frame. The setting of this parameter is a choice between burstiness and building larger TSO frames. Signed-off-by: David S. Miller [TCP]: Kill tso_{factor,mss}. We can just use skb_shinfo(skb)->tso_{segs,size} directly. This also allows us to kill the hack zone code in ip_output.c The original impetus for thus change was a problem noted by John Heffner. We do not abide by the MSS of the connection for TCP segmentation, we were using the path MTU instead. This broke various local network setups with TSO enabled and is fixed as a side effect of these changes. Signed-off-by: David S. Miller Fix up and type-annotate sis fb driver Some dual use type errors still exist, where the bios mapping is type-confused. [ARM PATCH] 2106/1: Remove the "write" assumption for Jazelle in the early_abort handler Patch from Catalin Marinas On ARM926EJ-S, the "always assume write" for Jazelle data aborts causes Java code exit with segmentation fault every time it tries to access a read-only page. This patch puts some restrictions on what can be done in the Jazelle state but it allows it to run. Signed-off-by: Catalin Marinas [ARM PATCH] 2107/1: BAST - additional serial port fixes Patch from Ben Dooks Added code to remove the serial ports registered when the module is unloaded. Cleaned up ifdef'd code, and added copyright header Signed-off-by: Ben Dooks [ARM PATCH] 2102/1: BAST - incorrect IRQ for USB overcurrent Patch from Ben Dooks Fix IRQ number for USB over-current on Simtec BAST Signed-off-by: Ben Dooks [ARM PATCH] 2116/1: S3C2410 - s3c2410_gpio_cfgpin() mask bug Patch from Ben Dooks Fixed bug where wrong bits where being masked in the configuration registers for the GPIO pins Signed-off-by: Ben Dooks [PCMCIA] replace schedule_timeout() with msleep() From: Remove unnecessary cs_to_timeout() macro. Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Russell King [PATCH] fix up tty fall-out The two patches below (compile)fix some fall-out from the tty cleanups. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] ppc64: change bad choice of VSID_MULTIPLIER We recently changed the VSID allocation on PPC64 to use a new scheme based on a multiplicative hash. It turns out our choice of multiplier (the largest 28-bit prime) wasn't so great: with large contiguous mappings, we can get very poor hash scattering. In particular earlier machines (without 16M pages) which had a reasonable about of RAM (>2G or so) wouldn't boot, because the linear mapping overflowed some hash buckets. This patch changes the multiplier to something which seems to work better (it is, rather arbitrarily, the median of the primes between 2^27 and 2^28). Some more theory should almost certainly go into the choice of this constant, to avoid more pathological cases. But for now, this choice fixes a serious bug, and seems to do at least as well at scattering as the old choice on a handful of simple testcases. Signed-off-by: David Gibson Signed-off-by: Linus Torvalds [ide] triflex: kill /proc/ide/triflex Fixes OOPS on two single channel controllers. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove dead CMD640 debugging from ide-probe.c Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove dead debugging code from ide-taskfile.c - CONFIG_IDE_TASK_IOCTL_DEBUG cannot be defined - function declarations are used instead of calls Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove stale comment from ide-proc.c ide-default driver was added long time ago. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] aec62xx: remove dead DEBUG_AEC_REGS code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] piix: fix wrong DMA mode selected From: Carsten Haustein A bug in function piix_config_drive_xfer_rate() allows a call of hwif->ide_dma_on(drive) without prior call of piix_config_drive_for_dma(). This results in harddisk configured for UDMA (default?) whereas the highest DMA mode supported by PIIX3 is MWORD2. This bug is supposed to be present in any 2.6.x kernel release and any 2.4.x kernel release since 2.4.21. bart: this should also fix the same bug for PIIXa and PIIXb Fixes bugzilla bug #3473. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] Simtec BAST (EB2410ITX) / Thorcom VR1000 driver Patch to provide support for the following two boards: - Simtec BAST (EB2410ITX) - Thorcom VR1000 Signed-off-by: Ben Dooks Signed-off-by: Bartlomiej Zolnierkiewicz [IA64] Makefile: Fix to make ccache/distcc happy. the (tested) patch below fixes ccache/distcc-assisted building of the ia64 tree. (CC is "ccache distcc gcc" in that case, not a simple one-word "gcc" - this confused the check-gas and toolchain-flags scripts.) Signed-off-by: Ingo Molnar Signed-off-by: Tony Luck [ATM]: Use neigh_table_{init,clear}() in clip.c Signed-off-by: David S. Miller [IPV6]: NEIGHBOUR: hold refcnt of net_device from proxy neighbor entries. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPV6]: Fix ntohs() --> htons() typo in reassembly.c Signed-off-by: Yasuyuki KOZAKAI Signed-off-by: David S. Miller [SPARC64]: Fix solaris emul __set_utsfield offset calculation. Signed-off-by: David S. Miller [NETFILTER]: Fix NAT helper handling of TCP window tracking info. Fix NAT helper code to update TCP window tracking information if it resizes payload (and thus alrers sequence numbers). This patchlet was somehow lost during 2.4.x->2.6.x port of TCP window tracking :( Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] mlockall(MCL_FUTURE) unlocks currently locked mappings Calling mlockall(MCL_FUTURE) will erroneously unlock any currently locked mappings. Fix this up, and while we're at it, remove the essentially unused error variable. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] mlockall() check rlimit only when MCL_CURRENT is set Only check memlock rlimit against mm->total_vm when mlockall() flags include MCL_CURRENT. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] make can_do_mlock useful for mlock/mlockall Move the simple can_do_mlock() check before the full rlimits based restriction checks for mlock() and mlockall(). As it is, the check adds nothing. This has a side-effect of eliminating an unnecessary call to can_do_mlock() on the munlockall() path. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] mlockall() take mmap_sem a bit later In sys_mlockall(), flags validation and can_do_mlock() check don't require holding mmap_sem. Move down_write() down a bit, and adjust appropriately. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] Race with iput and umount Jeff Mahoney notes: "generic_shutdown_super() will happily call the ->put_super fs method, destroying data structures still in use by the iput (->delete_inode) in progress. The unlink path will call the ->unlink fs method, release the path (thus dropping the reference to the vfsmount, and then call iput. Since the vfsmount reference is dropped back to 1, a umount will succeed, causing the superblock to be cleaned up." Arrgh... Here's the trivial fix: do the final "iput()" a bit earlier in the unlink path. Note: all places that go to exit1: or exit: will have NULL inode, so we are not leaking anything here and it is OK do that iput() early; indeed, the goal of that kludge was to postpone the final iput() past the unlocking the parent for the sake of contention if a wunch of bankers is doing parallel unlink() on files in the same directory and normally it would happen on dput() after vfs_unlink()) Partially undo Alan's recent tty locking fixes: the termios lock must not be held across the driver/ldisc downcalls. Some drivers need to set device state (baudrate etc) and may need to sleep. [PATCH] Update termios to use per tty semaphore This makes the agreed change of termios locking to be semaphore based sleep locking. This is needed for USB in particular as it has to use messaging to issue terminal mode changes. This code passes Torvalds test grades 0, 1 and 2 (it looks ok, it compiles and it booted). It does mean that a driver cannot take an atomic peek at termios data during an interrupt. Nobody seems to be doing this although some of the driver receive paths for line disciplines will eventually want to (n_tty currently doesn't do this locked on the receive path). Since the ldisc is given a chance to copy any essential bits on the ->set_termios path this seems not to be a problem. Fix close() vs posix lock race A threaded app that posix-locks and closes the same file in two threads concurrently may result in a posix lock that was never visible to the closer, and that thus needs cleanup on the final fput. Handle it together with the regular flocks. NTFS: Fix stupid bug in fs/ntfs/attrib.c::ntfs_attr_reinit_search_ctx() where we did not clear ctx->al_entry but it was still set due to changes in ntfs_attr_lookup() and ntfs_external_attr_find() in particular. Signed-off-by: Anton Altaparmakov [PATCH] Fix booting on some recent G5s Some recent G5s have a problem with PCI/HT probing. They crash (machine check) during the probe of some slot numbers, it seems to be related to some functions beeing disabled by the firmware inside the K2 ASIC. This patch limits the config space accesses to devices that are present in the OF device-tree. This fixes the problem and shouldn't "add" any limitation. If you plug a "random" PCI card with no OF driver, the firmware will still build a node for it with the default set of properties created from the config space. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds tty locking fixups: remove unused "flags" variable It became obsolete when the termios locking was changed to use a per-tty semaphore. NTFS: Fix another stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find() where we forgot to unmap the extent mft record when we had finished enumerating an attribute which caused a bug check to trigger when the VFS calls ->clear_inode. Signed-off-by: Anton Altaparmakov [ARM PATCH] 2095/1: i.MX time keeping Patch from Sascha Hauer This patch fixes the i.MX timer functions: - imx_gettimeoffset() now returns proper values - fix timer interrupt frequency Signed-off-by: Sascha Hauer [ARM PATCH] 2101/1: S3C2410 - usb port management Patch from Ben Dooks Port power control and management for S3C2410 internal USB controller for different boards to interface their power control system to. Signed-off-by: Ben Dooks [ARM PATCH] 2103/1: BAST - USB power control Patch from Ben Dooks USB power control and over-current sense Signed-off-by: Ben Dooks [ARM PATCH] 2118/1: S3C2410 - gpio updates and header file fix Patch from Ben Dooks Fix missing changelog entries in , and erroneous EINT definitions in . Added s3c2410_gpio_getcfg(pin) and s3c2410_gpio_getirq(pin) to get the current configuration of an pin, and which IRQ (if any) maps to it. Signed-off-by: Ben Dooks [PATCH] therm_adt746x: don't change loadavg Use interruptible sleep rather than uninterruptible. Partially convert it to the kthread API so the kernel thread doesn't get accidentally signalled. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use kthread_stop in therm_adt746x Use kthread_stop() and kthread_should_stop() instead of monitor_running and wait_completion(). Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kprobes exception notifier fix This patch modifies the return value of kprobes exceptions notify handler. The kprobes exception notifier returns NOTIFY_STOP on handling notification. This patch helps other debuggers to co-exists with the Kprobes. Other debuggers registered for exceptions notification must return NOTIFY_STOP on handling the notification. Signed-off-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random driver preempt robustness A certain codepath in the random driver relied on vt_ioctl() being under the BKL and implicitly disabling preemption. The code wasn't buggy upstream but it's slighly unrobust so I think we want the fix upstream too, independently of the remove-bkl patch. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] document isolcpus= boot option Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc64: time interpolator build fix We need io.h for readq(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: fix highmem From: Pavel Machek This actually calls highmem_resume(), so swsusp has chance to work on highmem machines. It also adds comments about code flow, which is quite interesting at that point. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: Lindenhurst MSI build fix Fix the Lindenhurst MSI fix on x86-64 to compile again Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpufreq: ondemand: prevent various divide underflows From: "Pallipadi, Venkatesh" Check for lower limit of latency / sampling rate, and fix divide underflows. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpufreq: ondemand: account iowait as idle time From: "Pallipadi, Venkatesh" This patch changes the idle time accounting in ondemand governor. With this patch ondemand governor accounts cpu iowait time as idle time. Thanks to Stefan Seyfried for identifying this issue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc: time interpolator build fix Remove two leftover #includes from timex.h which may cause a build failure for ppc. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: squash childregs warnings Squash a couple of "pointer from integer" warnings recently introduced. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: EEH checks mistakenly became no-ops Recent changes which removed the use of IO tokens for EEH enabled devices had a bug, which mean we now never do EEH checks at all. This patch corrects the problem. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] JFFS2 mount options discarded Yoann Vandoorselaere noticed an attempt to mount a JFFS2 filesystem read-only mounts writeable instead. From: David Woodhouse and make it fix the memory leak on failure too: Signed-off-by: David Woodhouse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: prevent kswapd pageout priority windup Now that we are correctly kicking off kswapd early (before the synch reclaim watermark), it is really doing asynchronous pageout. This has exposed a latent problem where allocators running at the same time will make kswapd think it is getting into trouble, and cause too much swapping and suboptimal behaviour. This patch changes the kswapd scanning algorithm to use the same metrics for measuring pageout success as the synchronous reclaim path - namely, how much work is required to free SWAP_CLUSTER_MAX pages. This should make things less fragile all round, and has the added benefit that kswapd will continue running so long as memory is low and it is managing to free pages, rather than going through the full priority loop, then giving up. Should result in much better behaviour all round, especially when there are concurrent allocators. akpm: the patch was confirmed to fix up the excessive swapout which Ray Bryant has been reporting. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: added CPU type checking to interrupt control routines This change had added CPU type checking to interrupt control routines. Cc: Ralf Baechle Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: added interrupt control routines for vrc4173 This change had added interrupt control routines for vrc4173. Cc: Ralf Baechle Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update comments for Renesas Here is a patch to update comments for Renesas. The M32R processor is a product of Renesas Technology Corporation now. * arch/m32r/kernel/setup.c: - Change from "MITSUBISHI" to "Renesas" - Remove RCS ID. * arch/m32r/kernel/setup_m32700ut.c: ditto. * arch/m32r/kernel/setup_mappi.c: ditto. * arch/m32r/kernel/setup_mappi2.c: - Remove RCS ID. * arch/m32r/kernel/setup_oaks32r.c: ditto. * arch/m32r/kernel/setup_opsput.c: ditto. * arch/m32r/kernel/setup_usrv.c: ditto. * include/asm-m32r/m32102.h: - Add copyright statement of Renesas - Remove RCS ID. * include/asm-m32r/m32r.h: ditto. * include/asm-m32r/m32r_mp_fpga.h: ditto. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: architecture upgrade on 20040928 Miscellaneous upgrade for recent m32r kernel changes. * arch/m32r/kernel/entry.S: Add system calls; taken from asm-i386/unistd.h. - [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386 (05/31/2004) - [PATCH] Make key management use syscalls not prctls (09/06/2004) * arch/m32r/kernel/io_m32102.c: Remove. This file is no longer used. Please remove this file. * arch/m32r/kernel/irq.c: - Fix the unnecessary entropy call in the irq handler. * arch/m32r/kernel/signal.c: - Merge common signal handling fault handling in generic code; use force_sigsegv() instead of force_sig(). * arch/m32r/kernel/smp.c: - Just add brackets. * include/asm-m32r/hardirq.h: - factor out common code Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: change to use temporary register variables I made a patch to upgrade some header files for m32r. - Change to use temporary register variables allocated by the compiler, instead of fiexd register varialbes. - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Updated IXP4xx MTD driver from CVS (v1.6) Following patch updates the IXP4xx MTD driver with the latest version from MTD CVS. Signed-Off-By: David Woodhouse Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] overcommit documentation fix Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] scsi docs fix People have had a long time to change and be aware of the correct return. Some drivers now generate the correct return too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Kconfig for EDD EDD fails with ACARD scsi devices present (hang on the 16bit bios call at boot) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix up tty patch problem with pc300 and clean up braces Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] msleep_interruptible(): fix whitespace thanks Xu for noticing, some whitespace found it's way there. clean that up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] doc: remove lingering PC-9800 param. Remove lingering PC-9800 doc. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix block layer ioctl bug If the blockdev doesn't implement BLKFLSBUF and returns -ENOTTY we should still go ahead and perform the VFS-level sync. We need to test for both ENOTTY and EINVAL because some SCSI drivers incorrectly return EINVAL. Signed-off-by: Ed L Cashin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] document DRM ioctl use Document DRM's usage of 'd' as its ioctl identifier. This can't be changed, it is in every X server. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] usb: hcd locking fix Missing up() on an error path. Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Properly recognize PowerMac7,3 Make the PowerMac7,3 no longer unknown. Signed-off-by: Andreas Schwab Signed-off-by: Linus Torvalds [PATCH] Use proper sysfs mount-point in documentation Signed-off-by: Josef "Jeff" Sipek Signed-off-by: Linus Torvalds [PATCH] Add DEVPATH env variable to hotplug helper call Add $DEVPATH to the environmental variables during /sbin/hotplug call. Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: Linus Torvalds [PATCH] Avoid unnecessary copy for EPOLL_CTL_DEL Ulrich Drepper points out that EPOLL_CTL_DEL doesn't need to copy any of the hash events. Also, we should specify in the man pages that a NULL is allowed in EPOLL_CTL_DEL. Currently it does not say that. Also, starting from when epoll uses rbtrees instead of hashes, the 'size' hint passed to epoll_create(2) is no more used. But since an API change has clearly to be excluded, I guess it'll stay as is. Signed-off-by: Davide Libenzi Signed-off-by: Linus Torvalds [PATCH] ppc64: fix cross-compilation After the "ppc64 monster cleanup," I get powerpc-750-linux-gnu-strip: vmlinux: File format not recognized from my ppc32 strip command when cross-compiling a ppc64 kernel, since vmlinux is a 64-bit ELF file. This patch fixes my build (and the resulting kernel boots fine). Signed-off-by: Roland Dreier Signed-off-by: Linus Torvalds [NET_SCHED]: Fix module leak in tc_ctl_tfilter error path Signed-off-by: Patrick McHardy [NET_SCHED]: Remove useless variable in tc_ctl_tfilter Signed-off-by: Patrick McHardy [IPV4]: Fix free_netdev after failed alloc_netdev in ipgre_init Signed-off-by: Patrick McHardy [IPV4]: Fix free_netdev after failed alloc_netdev in ipip_init Signed-off-by: Patrick McHardy [IPV4]: Fix ipip_fb_tunnel_dev leak in ipip_fini Signed-off-by: Patrick McHardy [IPV6]: Fix free_netdev after failed alloc_netdev in sit_init Signed-off-by: Patrick McHardy [VLAN]: Missing rtnl_unlock in register_vlan_device error path Signed-off-by: Patrick McHardy [ARM] ecard.c locking and wait_event_interruptible() fix Add locking for use of kecardd services. Use wait_event_interruptible() rather htan interruptible_sleep_on(). [ARM] Add "noirqdebug" option to match x86 option. [ARM] Fix consistent.c for DMA allocations. - Use ISA_DMA_THRESHOLD as the mask for GFP_DMA allocations. - Don't allow DMA allocations which are for a "smaller" mask than ISA_DMA_THRESHOLD. - Ensure that "handle" is initialised to our error value when returning an error. [ARM] Check access permissions for whole of signal stack frame. We really need to check that we have access to the whole of the signal frame when we allocate it, rather than "most of it" when we have iWMMXt extensions selected. [ARM] Remove "%?" from within macros containing assembly. Some compilers seem to get "%?" wrong in macros. [ARM] mach-types update. [ARM] Add POSIX message queue and waitid syscalls. [ARM] clk_* functions take frequencies in Hz not kHz [ARM PATCH] 2117/1: Fix ATU config on IQ80331 to prevent master aborts, replace 2099/1 Patch from Dave Jiang Latest IQ80331 redboot changed value of ATU registers and is causing master aborts on the plugged in card. Changing value back to previous sane state for Linux. Signed-off-by: Dave Jiang (dave.jiang@gmail.com) Patch in replacement of 2099/1 due to formatting problems. [SPARC64]: Fix SI_TIMER conversion as ppc64 has. Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [TCP]: Rename tcp_skb_psize() to tcp_skb_mss(). On request from Herbert Xu. Signed-off-by: David S. Miller [ARM PATCH] 2119/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-mem.h Patch from Ben Dooks Header file include/asm-arm/arch-s3c2410/regs-mem.h containing definitions for the S3C2410 memory controller Signed-off-by: Ben Dooks [NET]: Remove neigh hash expansion into already locked section. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Missing ip_rt_put() in SIT error path. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [ARM PATCH] 2120/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-iic.h Patch from Ben Dooks Include file include/asm-arm/arch-s3c2410/regs-iic.h, for the I2C controller on the S3C2410 Samsung SoC. Signed-off-by: Ben Dooks [ARM PATCH] 2121/1: S3C2410 - add S3C2410_MISCCR definitions for power down config Patch from Ben Dooks Add definitions to the MISCCR register for configuration of the signal states in power down mode. Signed-off-by: Ben Dooks [PKT_ACT]: Fixup tcf_result updating wrt. tcf_action_exec() calls. - Pass tcf_result into tcf_action_exec() - Update res->classid and res->class on non-zero skb->tc_classid, then reset skb->tc_classid - Update tcf_action_exec() callers in cls_u32.c and cls_fw.c Based upon a patch by Jamal Hadi Salim Signed-off-by: David S. Miller [PATCH] s390: sclp compile fix The attached patch makes s390 sclp driver buildable again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ppc64: fix non-C99 named initializers Al suggested a sparse warning. And sure enough, it found these ones. [PATCH] olympic driver: fix kernel oops on lobe fault It fixes an oops that results when a lobe fault is detected. The oops occurs because a lobe fault triggers an interrupt which is handled in the current version of the driver by effectively shutting down the card, and freeing its requisite irq. The former is fine, the latter is not, as its illegal to free an irq from within an interrupt context. I've fixed this bug by removing the call to free_irq from the interrupt handler (specifically the chunk around line 964 fixes that). While I was in there I noticed that there were several other conditions in the interrupt handler that contained the same condition, so I made the same fix there. I re-added. I also modified the contents of olympic_freemem (the chunk around line 898 to correct a misuse of a pointer after it requisite memory has been free in the case the the adapter is re-initalized after a fault to prevent that oops. And then I clean up the interrupt handler to simply use olympic_freemem from the close routine since the ring buffer doesn't need to be freed until the driver is closed. In addition to these changes I added a call to olympic init in olympic_open and reset the spinlock so the adapter can be reset and rejoin the ring without needing to rmmod/insmod the module. Lastly I cleaned up the wait queue code so that the close routine didn't have to wait 60 seconds to close the adapter if a fatal fault has closed the adapter. Signed-off-by: Neil Horman [NET]: Kill typo in neighbour.c Signed-off-by: David S. Miller [PATCH] via-velocity: properly manage the count of adapters velocity_nics wasn't managed properly. Signed-off-by: Tejun Heo [PATCH] via-velocity: removal of unused velocity_info.xmit_lock Removed unused velocity_info.xmit_lock. Signed-off-by: Tejun Heo [PATCH] via-velocity: velocity_give_rx_desc() removal In velocity_give_rx_desc(), there should be a wmb() between resetting the first four bytes of rdesc0 and setting owner. As resetting the first four bytes isn't necessary, I just removed the function and directly set owner. Another rationale for removing the function: The function doesn't handle synchronization. We should do wmb() before calling the function. So, I think using bare assignment makes the fact more explicit. Signed-off-by: Tejun Heo [PATCH] via-velocity: received ring wrong index and missing barriers There were several receive ring related bugs. In velocity_give_many_rx_descs(), index calculation was incorrect. This and bugs in velocity_rx_srv() described in the following paragraph caused packet loss, truncation and infinite error interrupt generation. In velocity_rx_srv(), velocity_rx_refill() could be called without any dirty slot. With proper timing, This can result in refilling yet unreceived packets and pushing dirty pointer ahead of the current pointer. And vptr->rd_curr which is used by velocity_rx_refill() was updated after calling velocity_rx_refill() thus screwing receive descriptor ring. Also, between checking owner and reading the packet, rmb() is missing. Signed-off-by: Tejun Heo [PATCH] via-velocity: early invocation of init_cam_filter() In velocity_init_registers(), init_cam_filter() clears mCAMmask which might have been set by set_multi() (not sure if this can ever occur). Modified to invoke init_cam_filter() first. Also, clear_isr() is called twice. Removed the first invocation. In velocity_found1(), there was a unneeded assignment from vptr to dev->priv. Removed. Signed-off-by: Tejun Heo [PATCH] via-velocity: removal of incomplete endianness handling Removed cpu_to_le32 call on OWNED_BY_NIC. This will produce 0x01000000 on big endian machines while rdesc0.owner still evaluates to 0x00000000 or 0x00000001. BTW, unless we reorder bit fields on big endian machines or use u32's and cpu_to_le32'd bit mask macros, current code won't work on big endian machines. Signed-off-by: Tejun Heo [PATCH] via-velocity: wrong buffer offset in velocity_init_td_ring() Buffer offset calculation was incorrect in velocity_init_td_ring(). This didn't cause any trouble because we only use the first td ring. Signed-off-by: Tejun Heo [PATCH] via-velocity: comment fixes Comment fixes. Signed-off-by: Tejun Heo [ARM] Fix params_phys with PIC decompressor builds. [ARM PATCH] 2122/1: S3C2410 - Documentation updates Patch from Ben Dooks Added documentation for the GPIO calls, updated the overview with more information on the supported core devices, and updated the state of the EB2410ITX Signed-off-by: Ben Dooks [ARM PATCH] 2124/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-spi.h Patch from Ben Dooks Header file defining S3C2410 SPI registers Signed-off-by: Klaus Fetscher Signed-off-by: Ben Dooks [ARM PATCH] 2123/4: S3C2410 - GPIO IRQ IRQ Filtering and pin number patch Patch from Ben Dooks Fixed GPG pin numbering, and missing changelog Added code to setup the interrupt filtering on compatible Pins Signed-off-by: Ben Dooks [IA64] perfmon2 fasync fix the pfm_fasync() function must not lock the context and mask interrupts because the fasync_helper() function may allocate memory and this could lead to sleeping, due to SLAB_KERNEL memory type, if no memory is available. Going to sleep with interrupts mask is not allowed otherwise you have a deadlock. The locking of the context is not necessary in this function because it is protected by caller via get_fd()/put_fd(). The async_queue is also protected. Serialization to pfm_fasync() is also ensured by caller. The fix is to drop the PROTECT_CTX() and UNPROTECT_CTX() calls. signed-off-by: stephane eranian Signed-off-by: Tony Luck [IA64] signal.c: fix wrong argument order in __copy_to_user() call Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] ptrace.c: Fix unchecked user-memory accesses due to ptrace_{get,set}regs() Here is another fix for a sparse-detected bug: turns out ptrace_getregs() and ptrace_putregs() did unchecked user-memory accesses! These were tricky to see, so it's not surprising that they went unnoticed so far. Fortunately, sparse can detect these trivially. Patch below should fix the problem, but it's completely untested (I don't have any testcases for getregs/putregs). These were found by sparse. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] fix argument-order in access_ok() call from csum_partial_copy_from_user Another sparse-detected bug. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] Don't directly deref user pointers. copy_siginfo_from_user32() directly dereferences a user-pointer, which is a no-no. At that point, to->si_code already has been initialized so I think we can just use to->si_code instead. Compile-tested (only) patch attached. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [SERIAL] Pick nearest baud rate divider From: Roger Blofeld This patch modifies uart_get_divisor to select the nearest baud rate divider rather than the lowest. It minimizes baud rate errors. For example, if uartclk is 33000000 and baud is 115200 the ratio is about 17.9 The current code selects 17 (5% error) but should select 18 (0.5% error) Signed-off-by: Andrew Morton Signed-off-by: Russell King drm: Stop i830 and i915 both being build at same time Roman Zippel submitted this to lk but I missed it, it does what I tried to do badly before. Signed-off-by: Dave Airlie [SERIAL] Fix warning and remove mach-types.h include - s3c2410 doesn't use mach-types.h - remove unused 'ret' variable [PATCH] Fix error path in Video4Linux dpc7146 driver The I2C adapter wasn't de-registered correctly in case the video card wasn't found. When the I2C subsystem tried to speak with the dangling I2C adapter later on, usually an oops happened. [ARM] Add save_time_delta()/restore_time_delta() These two functions provide the infrastructure to manage time keeping across a suspend/resume cycle. [IPVS]: Fix endian problem on sync message size. Here is the patch from Justin Ossevoort to fix endian problem on IPVS sync message size. Signed-off-by: David S. Miller [IA64] sparse 0 vs. NULL cleanup patch Sparse really wants NULL for NULL-pointers. This patch makes it so. The patch should be safe. It compiles fine, creates no additional warnings, and the results has been boot-tested on an rx2600. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] sparse "long" constant cleanup patch Sparse wants us to be clear about (unsigned) long constants. Make it so. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] minimal sparse-enablement; add __user annotations This enables sparse for ia64 and adds a basic set of __user annotations. Apart for sys_execve() and the uaccess.h changes, the patch is trivially safe. Also note that in gcc_intrin.h, I changed "asm __volatile" to "asm volatile" since sparse didn't like the old version (and it's a "strane" version anyhow). Patch has been (boot) tested. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] sparse __iomem annotations This patch adds __iomem annotations. The only less-than-trivial part of the patch is the change of ipi_base_addr from "unsigned long" to "void __iomem *" but even that part should be safe. The patch results in additional warnings from certain drivers (e.g., eepro100.c) but the warnings are harmless and just indicate that the offending drivers need to be updated for the more strict __iomem checking. The patch has been boot-tested. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] minor sparse cleanups Here are three more sparse-triggered fixes which didn't fit anywhere else. The first one gets rid of some quoting in palinfo.c which sparse doesn't like. This used to be necessary because GCC would otherwise warn about an unknown trigraph. That's not a problem anymore since the kernel is now being compiled with -Wno-trigraphs. The efirtc.c patch is mostly sparse-annotations but also cleans up trailing whitespace. Finally, the bitfields in rwlock_t are changed to be explicitly "unsigned" to avoid a warning from sparse (it doesn't like 1-bit signed bitfields in particular). Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [NET]: Fix race between neigh-timer_handler and neigh_event_send Fix a race between neigh_timer_handler() calling down to arp_solicit() with an sk_buff peeked from the head of the neigh->arp_queue, and neigh_event_send() unqueuing and freeing the head of the same queue because it's reached the maximum length of 3, by taking an extra sk_buff reference while holding neigh->lock. Signed-off-by: Greg Banks Signed-off-by: David S. Miller [CRYPTO]: Add __init and __initdata to aes.c This patch from Herbert V. Riedel adds __initdata to the generic AES code where appropriate. I also added __init to f_mult(). Signed-off-by: Herbert V. Riedel Signed-off-by: James Morris Signed-off-by: David S. Miller [NET]: Fix fddi_statistics for 64-bit There is a problem with "struct fddi_statistics" for 64-bit systems. The starting members of the struct are expected to correspond to the respective members of "struct net_device_stats" (drivers for FDDI devices return "struct fddi_statistics" in the response to the get_stats() call of "struct net_device"). Unfortunately, due to using different types (u32 vs ulong) they do not. "struct net_device_stats" is a public interface and as a result, bogus results are retrieved, e.g. for /proc/net/dev. Here is my proposal to address the problem. I think there is no point in duplicating the layout of "struct net_device_stats" in "struct fddi_statistics" as the former can simply be included as a member avoiding this problem and actually any possible discrepancy in the future. This also preserves the layout of the structure for 32-bit systems. Signed-off-by: Maciej W. Rozycki Signed-off-by: David S. Miller [IPV4]: Set ARP hw type correctly for BOOTP over FDDI. Signed-off-by; Maciej W. Rozycki Signed-off-by: David S. Miller [IPV4]: Permit the official ARP hw type in SIOCSARP for FDDI. Signed-off-by; Maciej W. Rozycki Signed-off-by: David S. Miller [DECNET]: Mark myself as maintainer. Signed-off-by: Patrick Caulfield Signed-off-by: David S. Miller [PKT_SCHED]: Remove useless line in cbq_dump_class Remove useless line in cbq_dump_class probably introduced by copy&paste from cbq_dump. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [NET]: Generic network statistics/estimator Work done by Thomas Graf and Jamal Hadi Salim The following patchset introduces generic network statistics for netlink users. It uses nested TLV which prevents further compatibility problems when introducing new statistics. Backward compatibility to existing TLV types TCA_STATS and TCA_XSTATS is ensured but can be easly removed once it is no longer needed. Therefore prior users of struct tc_stats can be converted to this API and existing userspace applications will not notice a difference while converted applications can use the new extendable statistic interface. Changes: - Add generic network statistics API for netlink users. - Introduces a generic rate estimator based on timers. Patch is based on Jamals patch and adapted to the new generic network statistics API. - Add documentation of generic network statistics and estimator API. Signed-off-by: Thomas Graf Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [PKT_SCHED]: Make rate estimator work on all platforms. Fixes the existing rate estimator to compile cleanly on all platforms and avoids carrying on the variance on platforms with HZ%4 != 0. Signed-off-by: Thomas Graf Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [ARM] Fix missing definition for OVERCOMMIT_ALWAYS [NET]: Fix secure tcp sequence number generation Ted's recent random.c update broke the periodic rekeying: schedule_work() doesn't provide synchronization. Additionally the first syn values after boot are generated with secret 0 - not good. Attached is a big cleanup. Linus asked me to send to to you for merging: The tcp sequence number generator needs a random seed that is reset every few minutes. Since the sequence numbers should be constantly increasing, for each rekey 2^24 is added to the sequence number. The actual use of the sequence number generator is lockless, synchronization is achieved by having two copies of the control structure. The attached patch: - fixes a race in rekey_seq_generator(): schedule_work doesn't provide synchronization. - Uses schedule_delayed_work() for the rekey: simplifies synchronization and speeds up the hot path. - Adds a late_initcall for the first initialization after boot. init_call would be too early, I've checked that the late_initcall runs before net/ipv4/ipconfig.c, i.e. the BOOTP/DHCP autoconfiguration. Signed-Off-By: Manfred Spraul Signed-off-by: David S. Miller [SKBUFF] introduce eth_hdr(skb) This is the start of a series of patches to remove protocol specific stuff out of include/linux/skbuff.h and to make the struct sk_buff header pointers private, i.e. they will only be accessible thru foo_hdr(skb) and some other accessor functions. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [BRIDGE] convert __constant_htons(constant) to htons Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller Remove test for __linux__ in auth_gss.h. It's not necessarily even true when cross-compiling the kernel, and the right thing to do is check for __KERNEL__ (which we already do, one line up). [PATCH] Fix task_hot() balancing This fixes the integer underflow in task_hot() noticed by Kenneth W Chen and makes use of p->last_ran to separate load-balancing timestamps (used by task_hot()) from interactivity timestamps. (which two interfered) compiled, booted on x86 SMP. Confirmed by Kenneth Chen to fix the db transaction processing workload that showed the balancing problem. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds Fix up CHECKFLAGS definitions More recent versions of sparse do not define the Linux-specific default defines, so we make the main Makefile default to the regular Linux preprocessor defines (__linux__, linux, __STDC__ and unix, __unix__). Also, sparse has long since fixed the default empty define to be "1" as in regular C, so remove the unnecessary "=1" from the architecture-specific sparse CHECKFLAGS. pcmcia: add iomem sparse annotations. It was pretty clean already, adding the proper annotations to the base pointers and a few functions was all it took to make sparse happy about the PCI accesses. prism54: iomem annotations. sparse still complains about the games the driver plays with user pointers, though. i386: mark do_test_wp_bit() noinline As reported by Zachary Amsden , some gcc versions will inline the function even when it is declared after the call-site. This particular function must not be inlined, since the exception recovery doesn't like __init sections (which the caller is in). [SPARC64]: Make kprobe implementation more robust. Switch over to use the single-step scheme which x86 uses which is to execute the kprobe instruction in the kprobe->insn[] area. Also, make sure the kprobe execution runs fully with interrupts disabled, so we do not deadlock. This required adding code to fix things up as a result of the instruction executing at a PC which is different from where it would normally execute. For example, if the instruction is a PC-relative branch, we have to adjust the final PC value. Signed-off-by: David S. Miller [TCP]: Show all SYN_RECV sockets in /proc/net/tcp I was fixing the tcp_diag so that it shows SYN_RECV sockets properly. I found that /proc/net/tcp didn't do it correctly either. So here is a small patch to fix /proc/net/tcp. The logic in there stinks though so I'd love to see a rewrite. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [INET]: Fix ECN encapsulation. We broke ECN encapsulation in tunnels recently. Without this patch, even though encapusulated (inner) packet is 'not-ECN', encapusulating (outer) packet is sent with 'ECT(0)' set. This is wrong and should be 'not-ECN.' This patch fixes up. From RFC3168: The full-functionality option for ECN encapsulation is to copy the ECN codepoint of the inside header to the outside header on encapsulation if the inside header is not-ECT or ECT, and to set the ECN codepoint of the outside header to ECT(0) if the ECN codepoint of the inside header is CE. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [TCP]: Fix bug that hid sockets in tcp_diag This patch squashes a bug in tcp_diag which was created when the sk_* loops replaced the original for loops. It's a pity that these sk_*/hlist_*/list_* loops don't take an arbitrary expression as an argument for continue. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] DAC960 iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sx8 iomem and endianness annotations + endianness bugfix fixed bug: le32_to_cpu(desc->size_hi) is broken on big-endian, since ->size_hi is 16bit. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more new struct initializers Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more NULL noise removal in drivers/scsi trivial junk that had been hanging arond in my tree for months now... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] arcnet iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] romfs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hton* and ntoh* endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] udf endianness annotation fix udf/balloc.c::find_next_one_bit() had been confused about types... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] fs/partitions endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] quota endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (1/7): constants sanitized That's the beginning of ncpfs endianness cleanup. * converted fixed-endian constants to little-endian (i.e. replaced htons(0xCDAB) with cpu_to_le16(0xABCD), etc.). These guys _are_ little-endian and make much more sense that way, even aside of annotation issues. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (2/7): date handling cleanup trivial cleanup: endianness conversions pulled into ncp_date_dos2unix() and ncp_date_unix2dos() from their callers. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (3/7): be32 handling in marshalling New helper in marshalling code: ncp_add_be32() Takes host-endian argument, converts to big-endian and stores into packet we are building. A bunch of places in ncplib_kernel.c converted to using it. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (4/7): be16 handling in marshalling New marshalling helpers - ncp_add_be16() and ncp_reply_be16(). Encode and decode a big-endian 16bit field resp. A bunch of places in ncplib_kernel.c switched to usign these. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (5/7): le16 handling in marshalling New helper: ncp_reply_le16() (decode 16bit little-endian). ConvertToNWfromDWORD() cleaned up and fixed (it used to have one too many le16_to_cpu() in arithmetics, on top of ugly tricks with memcpy() et.al.). ncp_reply_word() has no callers left; removed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (6/7): trivial endianness annotations 100% straightforward annotations - from gcc POV no code had been changed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (7/7): misc fixes and cleanups * remaining endiannes cleanups * don't mess with setting finfo.i.dataStreamSize when creating the root directory inode; that field is ignored when populating in-core directory inodes. * missing cpu_to_le16() in ncp_search_for_fileset() (for big-endian clients server sees 0xff7f instead of intended 0x7fff). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] isofs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ufs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ufs endianness bugfixes missing conversions from on-disk to host-endian in a couple of places... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] i2o_config __user annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cciss endianness and iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cpqarray iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] umem iomem and (partial) endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfsplus endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfsplus endianness bugfix hfs_bnode_read_u8() always returns 0 on little-endian (cut'n'paste bug - function is almost exact copy of its u16 counterpart, but be16_to_cpu() should've been removed here). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ohci bugfix for big-endian 64bit boxen ->dma can be a 64bit variable on 64bit boxen; its value will fit into 32 bits just fine (due to dma mask). However, cpu_to_le32p(&...) will break if we are on a 64bit big-endian; we'll end up up passing it the address of upper 32 bits and get 0 instead of correct value. Fix is trivial... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] isd200 bugfix for 64bit boxen unsigned long is not a good type to use in declaration of structure we feed to hardware... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] trivial usb endianness annotations trivial endianness annotations in drivers/usb (apply after ohci and isd200 fixes). Note: drivers/usb is nearly endian-clean at that point; there are several very dubious places in there (in particular, rtl8150, pegasus and usbnet are almost certainly broken in mii-related code on big-endian hosts); I'm leaving them alone for now. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] amd64 iomem initial annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] remove get_cpu_ptr() Ingo points out that it's unusable anyway, because with some configs the get_cpu() is evaluated and with others it is not. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix PFC1_EPS and PFC1_EPS_SHIFT for IBM440GX While writing some BSP code for a 440GX custom board, I noticed, that the DCRN_SDR_PFC1_EPS and DCRN_SDR_PFC1_EPS_SHIFT definitions are wrong and therefore the functions ibm440gx_get_eth_grp() and ibm440gx_set_eth_grp() won't work correctly. Signed-off-by: Matt Porter Signed-off-by: Gerhard Jaeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: export "indirect" DCR helpers this trivial patch adds missing exports for "indirect" DCR helpers - __mtdcr & __mfcdr. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: sync ppcboot.h with U-Boot This puts us back in sync with current U-Boot CVS tree board info definition. Please apply. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add U-Boot support to Ocotea/440GX port Adds support for booting the same Ocotea kernel from either the default PIBS f/w or U-Boot. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix several warnings Fixes some annoying warnings due to unitialized variables. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: squash EEH warnings A slightly non-ideal version of the recent patch which fixed EEH being a no-op went in. The srcsave variable in eeh_memcpy_to_io() is now never referenced on non-pSeries machines, and so spews hundreds of warnings. The variable doesn't actually accomplish anything, so this patch gets rid of it. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove redundant #ifdef CONFIG_ALTIVEC arch/ppc64/kernel/process.c has an #ifdef CONFIG_ALTIVEC within an #ifdef CONFIG_ALTIVEC. This patch removes the inner one. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix HPET_HACK_ENABLE_DANGEROUS From: The following patch fixes compilation of time.c with HPET_HACK_ENABLE_DANGEROUS turned on. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix oops with multiple MCEs Fix oops when multiple MCE entries are logged. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix profile_pc This fixes profile_pc to work properly on x86-64 and not crash. It does now a simple backtrace to the caller of the spin lock without requiring a frame pointer for this. Frame pointer support has been dropped because it never worked. There is still a small race window, but the only way to avoid it would be to rewrite kernel/spinlock.c in assembler again. The race will account a profile tick the the parent of the spinlock caller. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: remove CONFIG_FRAME_POINTER CONFIG_FRAME_POINTER has never worked on x86-64 because it never passed -fno-omit-frame-pointer to the compiler, and that is the only way to get a frame pointer on x86-64. It also causes complications with profiling. Drop it. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix circular dependency with UNORDERED_IO Fix a circular dependency Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: avoid a deadlock during panic Avoid a deadlock during panic. Don't take the smp_call_function lock in smp_send_stop() Also fix the documentation to conform to Linux standards. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: don't corrupt interrupt flag on timer resume Don't corrupt interrupt flag in time resume Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: make in_gate_vma() safer x86-64 in_gate_vma would take a read lock on the VMA when the passed address was inside the 32bit vsyscall page. This would be called by get_user_pages, which already holds the mmap_sem. Unfortunately some callers of get_user_pages hold the mmap_sem for writing, which could in theory cause a deadlock. I think it can currently not happen because the only users who hold it for write before calling gup() are coredump and AIO in the ring setup, and both should not ever access the vsyscall page. But not taking the semaphore is safer and avoid this here. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Disable SW irqbalance/irqaffinity for E7520/E7320/E7525 - change TARGET_CPUS on x86_64 Set TARGET_CPUS on x86_64 to cpu_online_map. This brings the code inline with x86 mach-default. Fix MSI_TARGET_CPU code which will break with this target_cpus change. Signed-off-by: Suresh Siddha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: add newline before MCE (cosmetic) print newline before MCEs Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix tss off by one From: "Siddha, Suresh B" Fix off by one in TSS limit. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update ioremap routine Here is a patch to update ioremap*.c for m32r, taken from "Add __iomem modifier to the return value type of __ioremap() for much stricter type-checking." * arch/m32r/mm/ioremap.c: ditto. - Add __iomem modifier to the return value type of __ioremap() for much stricter type-checking. * arch/m32r/mm/ioremap-nommu.c: ditto. * include/asm-m32r/io.h: - Modified for much stricter type-checking. - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers/m5.[ch] this is a 2.4ish block driver that doesn't have the slightest chance to actually build. It's also not connected to the build at all. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers/cs_internal.h completely unused wrapper Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove unused arch/m32r/kernel/io_m32102.c Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove unused arch/m32r/m32700ut/m32r-flash.c Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers Remove obsolete m32r-specific driver files, which are no longer used. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: makefile fix for .lds scripts. Remove uml.lds and dyn.lds from extra-y; this was a relict from the recent past. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: makefile whitespace fix Change the spacing for this command to fix alignment on output. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Remove rest of legacy arch/m32r/drivers directory [AGPGART] Fix sign extension bug in amd64 gart driver. From Terrence Ripperda at NVidia. Signed-off-by: Dave Jones [AGPGART] Really add Intel i915 AGPGART Support. Whoops. Missing entry in the PCI ID tables. Spotted and fixed by someone at SuSE. Fished out of SuSE's kernel tree by Christoph Hellwig Signed-off-by: Dave Jones [IPV6]: Set skb->dev in ip6_pkt_discard_out. Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller Fix up signed one-bit bitfields in core sound code [SKBUFF] use eth_hdr(skb), skb->mac.raw cases Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [IA64] Don't hardcode offsets in thread_info We had hardcoded defines for TI_TASK TI_EXEC_DOMAIN, TI_FLAGS, TI_CPU, TI_ADDR_LIMIT, TI_PRE_COUNT, TI_RESTART_BLOCK; but only two of these were ever used. Remove all from thread_info.h, and generate the two that we do use (TI_FLAGS and TI_PRE_COUNT) in asm_offsets.c Patch supplied by Zou Nan hai Signed-off-by: Tony Luck [IA64] fix UP build Put back a secondary declaration of ipi_base_addr in hardirq.h. It really is needed for UP builds and there doesn't seem to be an easy way to avoid include-hell otherwise. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [SKBUFF] introduce tr_hdr(skb) The token ring code in the kernel is bitrotting (no surprise :) ), it uses skb->data all around... I have an assortment of token ring cards but no MAU, can anybody send me one, please? I promise to make ssh work over LLC over Token Ring networks! Duh... :o) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [ARM PATCH] 2127/1: S3C2410 - fix compile error in serial driver Patch from Ben Dooks Fixes compile error in serial driver for S3C2410 until the new serial driver can be finished Signed-off-by: Ben Dooks [ARM PATCH] 2129/1: S3C2410 - fix set_irq_type() for EINT0..EINT3 Patch from Ben Dooks Fix the set_irq_type() for EINTs 0 through 3 Cleaned up the inital clearing of any pending IRQs Signed-off-by: Klaus Fetscher Signed-off-by: Ben Dooks [ARM PATCH] 2130/1: PXA255 Errata #31 fix for sleep.S Patch from Ben Dooks Fix Intel Errata #31 for PXA CPUs, where the state of some external lines can be indeterminate over sleep if PXBus >=133MHz on suspend Signed-off-by: Ben Dooks [ARM PATCH] 2133/1: params_phys is not available on PXA and apears to be ARCH_RPM specific anyway Patch from Ian Campbell Arecent changeset[0] that changed params into an asm function call broke the PXA build since PXA does not define PARAMS_PHYS therefore the params_phys variable is never defined and linking arch/arm/boot/compressed/head.S fails. The function is defined in include/asm-arm/arch-rpc/uncompress.h and so I assume it is dependendant on CONFIG_ARCH_RPC. I can't find any use of it outside this file. Signed-off-by: Ian Campbell [LLC] set mac.raw if tr_source_route is called Thanks to Thomas Graf for spotting this. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [SPARC64]: Kill sparse warning in power.c Signed-off-by: David S. Miller [SPARC64]: Use __iomem in chmc.c Signed-off-by: David S. Miller [SPARC64]: Add missing __user annotation to sys_sparc32.c Signed-off-by: David S. Miller [SPARC64]: Add __user annontation to ELF_CORE_COPY_REGS(). Signed-off-by: David S. Miller [PATCH] NX: fix read_implies_exec() related noexec-fs breakage mmap() done from older !pt_gnu_stack binaries on noexec mounted filesystems could fail due to the extra PROT_EXEC bit. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PCI Hotplug: Use before NULL check in shpchp_ctrl More fun found with the coverity checker. Signed-off-by: Dave Jones Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds [SPARC64]: Missing __user annotations for asm/checksum.h Also, while we are here, s/__inline__/inline/ Signed-off-by: David S. Miller [PATCH] ppc64: Fix find_udbg_vterm() The find_udbg_vterm() used to initialize the early boot console on LPAR machines will not work properly on some recent pSeries because the firmware is playing tricks with the "phandle" values used to identify firmware nodes. This patch fixes that by using the full path instead. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [IA64] sparse annotations and cleanups for ia32 subsystem + Add sparse annotations to ia32 subsystem so it checks out cleanly. + Add set_fs(KERNEL_DS) in elfcore32.h + Use compat_ptr() instead of P() + Fix a bug in ia32_sigsuspend() by introducing __ia32_rt_sigsuspend() Signed-off-by: David Mosberger-Tang Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [IA64] Added support for the new syscall sys_waitid() Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [PATCH] ppc64: update g5_defconfig This updates the g5_defconfig, among others, it adds irq stacks, hugetlbfs and cramfs (later is needed for ppl trying to install fedora, and so often forgotten that I prefer adding it to the defconfig). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] APIC physical broadcast for i82489DX The physical broadcast ID is determined incorrectly for the i82489DX, which uses 8-bit physical addressing (32-bit logical). Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds [PATCH] Fix ide-cs resource management PCMCIA resource management is no longer brain dead, and acts just like any other bus subsystem. Therefore, there's no need to play games with the resource subsystem anymore. Signed-off-by: Russell King Signed-off-by: Linus Torvalds [SUNGEM]: Use NETDEV_TX_foo instead of magic constants. Signed-off-by: David S. Miller [ARM] Add decompressor support for ARMv6 caches. [PATCH] Use cache_decay_ticks instead of a constant This patch, based on Ken Chen's patch, changes the default 2.5 msec migration-cutoff value to be based on cache_decay_ticks, which is what we used for a long time prior the sched-domains code. (If an architecture does not set cache_decay_ticks then 2.5 msec is used.) This causes the following new migration-cutoff values on various SMP systems: x86, variable: 2-way celeron 466MHz, 128K: 2.5 msec -> 1.0 msec 2-way/4-way 2.2 GHz P4 Xeon 1MB: 2.5 msec -> 2.0 msec 8-way P3 700 MHz Xeon 2MB: 2.5 msec -> 6.0 msec x64, variable: amd64: 2.0 GHz, 1MB: 2.5 msec -> 1.5 msec em64t: 3.4 GHz, 1MB: 2.5 msec -> 3.0 msec ppc64 [*]: 2.5 msec -> 2.5 msec (constant) ia64: 2.5 msec -> 10.0 msec (constant) [*] ppc64 does not set cache_decay_ticks so we fall back to the default. I believe in light of previous testing we could attempt this for 2.6.9 as well. (Note: that the 2.6.9-rc3 patch looks similar but needs to patch kernel/sched.c. Note2: this patch is different from Ken's original one.) Signed-off-by: Ingo Molnar Signed-off-by: Ken Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmscan: handle empty zones There's a lockup condition where kswapd ensounters an empty zone which has all its metadata set to zero. Fix that by adding explicit checks for empty zones and just skip over them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdrom generic_packet oops fix Add dummy ->generic_packet() for devices that don't provide one. It will error all commands with "unknown opcode" 0x05/0x20/0x00 sense and return -EIO. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix random crashes in x86-64 swsusp fix_processor_context was calling functions marked __init on x86-64; bad idea. Thanks to Rafael for keeping notifying me about this bug. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kprobes exception notifier fix 2 This patch adds a few NOTIFY_STOP missed out in the eariler patch. Signed-Off-By: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: move some common PPC44x code to ibm44x_common.c This is first part (trivial one) of the ebony.c/ocotea.c cleanup, which moves common stuff to ibm44x_common.c. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix ans-lcd compilation This patch fixes ans-lcd compilation error and warnings. See http://bugzilla.kernel.org/show_bug.cgi?id=3497 Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix warning in arch/ppc/pmac/simple/misc.c Fixes a "variable might be used uninitialized". As usual it's a harmless warning because it can't really be, but that cleans the compilation's output :) Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Kconfig cleanups Now that the PPC64 code supports more platforms than just pSeries and iSeries, some p/i specific Kconfig options need to be updated accordingly. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: add generic ptrace requests When we don't know how to handle ptrace(2) calls, call the arch-independent ptrace_request like i386 (and I guess other archs) do, instead of returning -EIO. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix get_user warning Adds some more parenthesis for a macro arg to fix a warning (which was in kernel/uid16.c). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove wrong declaration Avoid compile failure due to the addition of sys_timer_create to linux/syscalls.h Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix fd leak with HostFs On 2.4 we used force_delete() to make sure inode were not cached, and we then close the host file when the inode is cleared; when porting to 2.6 the "force_delete" thing was dropped, and this patch adds a fix for this (by setting drop_inode = generic_delete_inode). Search for drop_inode in the 2.6 Documentation/filesystems/vfs.txt for info about this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix major & minor handling in hostfs Currently hostfs passes the rdev value from stat() on the host as rdev value to return to stat() on the guest; but we cannot pass rdev as is because glibc and the kernel disagree about its definition. So we must decode it in a major/minor couple with glibc macros and re-encode it in kernelspace code. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix module exports for G5 Some stuffs in ppc_ksyms.c where still #ifdef CONFIG_PPC_PSERIES, which is no longer set for PowerMac-only configs. Change them to depend on CONFIG_PPC_MULTIPLATFORM for now. Later on, a bunch of these will be just gone since those are mostly deprecated functions and I'll move the exports close to the actual functions. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] PPC64: Remove degree symbol from rtas-proc.c Alan Cox pointed out that the degree symbol in the thermal sensor proc files that we have on ppc64 cause problems for people using other locales or UTF-8. This patch makes them disappear. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] PPC64 Replace cmp instructions with cmpw/cmpd There were a few places in assembly code in the ppc64 part of the kernel where we were using the old forms of the compare instruction (cmp, cmpi, cmpl, cmpli) which don't specify the operand size (word or doubleword). These have been accepted for a long time for backward compatibility with the old POWER architecture (and defaulted to a 32-bit comparison) but are now being rejected by the latest versions of binutils. Some of them were actual bugs in that they were on things which were actually 64-bit values such as pointers (not that any of them actually caused a problem in practice). This patch replaces cmp{,l}{,i} with cmp{,l}[wd]{,i} as appropriate. The original patch was from Segher Boessenkool, slightly modified by me. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] PPC64 Replace cmp instructions with cmpw/cmpd On Fri, 2004-10-08 at 15:37 +1000, Paul Mackerras wrote: > This patch replaces cmp{,l}{,i} with cmp{,l}[wd]{,i} as appropriate. > The original patch was from Segher Boessenkool, slightly modified by > me. And also for ppc32 and arch/ppc64/kernel/ItLpQueue.c... Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds [ARM] Remove cache type check before flushing ARMv6 cache. We do not need to check which type of cache we have before using using the Harvard or von Neumann cache instructions - the unimplemented instructions are defined to be NOPs. [ARM] Mark source for copy_page const. [ARM] Ecard initialisation tweaks. Start ecard_task at initialisation time. Statically initialise ecard wait queue head. [ACPI] fix allmodconfig build Signed-off-by: Andrew Morton [ACPI] x86_64 build fix Signed-off-by: Andrew Morton [ARM] ecard.c: Make the ecard task completion per request. [ARM] ecard.c: pass a function pointer for kecardd [ARM] ecard.c: Remove unnecessary context checks. [PCMCIA] Improve locking for memory resource probing. - Pass a mask of the regions we wish to be probed to validate_mem - Only take s->skt_sem if we need to probe resources on a socket This prevents a deadlock reported by Adam Belay caused by ds.c waiting with the socket semaphore held for userspace to respond. Meanwhile, userspace may under some rare circumstances issue a request to read tuples from the card, which tries to take the socket semaphore again. Update ray_cs Raylink/WebGear wireless driver. This adds iomem annotations, cleans up the code, fixes an oops at unload time, and builds in the wireless extensions that were not getting enabled due to an obsolete CONFIG_NET_PCMCIA_RADIO test. Tested by Jean Tourrilhes, who pointed out the wireless extensions problem. [ACPI] fix double quoted params such as acpi_os_string="a b c" by Christian Lupien http://bugzilla.kernel.org/show_bug.cgi?id=3242 [ACPI] thermal module race condition/memory leak (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=3231 [ACPI] acpi4asus update: support W1N, v0.29 Signed-off-by: Karol Kozimor [ACPI4ASUS] acpi_bus_register_driver() return code Signed-off-by: Karol Kozimor [ACPI4ASUS] support M6700R laptops Signed-off-by: Karol Kozimor [ACPI4ASUS] globalize hotk structure This cleans the code up a bit, but mainly allows most functions to be called externally when need (read: video driver) arises. Signed-off-by: Karol Kozimor drm: remove unused dma support remnants. These are unused since the gamma driver was dropped, they cause problems with the via driver (coming soon). Signed-off-by: Dave Airlie drm: cleanup header includes into one drm_core.h include This patch just cleans up the fact that all drm drivers include a bunch of header files, it places them into one place (drm_core.h) and uses that. From: Jon Smirl Signed-off-by: Dave Airlie [PATCH] i2o.h fix i2o.h uses stuff defined in linux/dma-mapping.h but includes asm/dma-mapping.h instead. It works by accident on some platforms (they end up pulling linux/dma-mapping.h from asm-generic/pci-dma-compat.h before it hits the fan), but breaks on e.g. alpha. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [ARM PATCH] 2073/3: Hynix h720x architecture support Patch from Sascha Hauer This patch supports the Hynix developer boards h7201 and h7202 for the HMS30C7201 and HMS30C7202 CPUs. Changes to previous patch: - reorganized file structure. We now have common.c which shares stuff common to all h720x processors and cpu-h720[12].c files for the cpu specific stuff - fixed timer handling for timers 1/2 - cleaned up h720x register definitions and splitted in files specific to each cpu and one generic part Signed-off-by: Thomas Gleixner Signed-off-by: Robert Schwebel Signed-off-by: Sascha Hauer [PATCH] pc110pad.c request_region() fix request_region() returns NULL if failed. The driver gets it wrong. Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pm: console driver fixes Fix warnings in kernel/power/console.c by only declaring orig_fgconsole and orig_kmsg when required by SUSPEND_CONSOLE. Restore kmsg_redirect on resume. Signed-off-by: Ian Campbell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlb: initialize sb->s_maxbytes hugetblfs appears not to support the creation of files larger than 2GB. hugetlbfs_vmtruncate() checks against the s_maxbytes member of the super block and returns EFBIG if the requested file size is too large. Signed-off-by: Guy Cardwell Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] therm_adt746x: various fixes This one removes the other occurences of "°C"; fixes displayed fan speed so that it uses the same scale than other occurences of this parameter instead of RPM only; fixes the RPM reading of the fan so that it shows zero instead of 82 when it is effectively stopped. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes From: Christian Borntrdger From: Martin Schwidefsky From: Thomas Spatzier s390 core changes: - Add default storage key and introduce page_{set,get}_storage_key. - Fix access to siginfo in copy_siginfo_from_user32. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer Common i/o layer changes: - Fix error handling in io_subchannel_register. - Fix __MAX_SUBCHANNELS limit checking. - Clear slow_subchannel structure after kmalloc. - Update ssd_info if a different device appears at an already known subchannel to get the correct set of chpids. - Avoid struct initializers to reduce stack usage of ccwgroup_create, readall_cmb and io_subchannel_recog, - Setup fields in pmcw in each retry because msch might fail and a stsch overwrites them. - Prevent irq_exit() in cio_tpi from calling do_softirq by adding a local_bh_disable/__local_bh_enable pair. - Retry sense id after receiving an unsolicited interrupt. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dasd driver dasd driver changes: - Free memory returned by read_conf_data. - Add warning message if use_diag is specified with a non-CMS formatted device. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: z/VM monitor stream z/VM monitor stream changes: - Reduce stack usage of appldata_get_mem_data. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dcss changes DCSS block device driver changes: - Add module/kernel parameter for loading segments. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth network driver qeth network driver changes: - Unlock queue in qeth_do_sent_packet if there is no empty buffer in packing state. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha: cpu mask fix-ups broke SMP DP264 machines in 2.6.8 The cpu mask fix-ups in 2.6.8 broke SMP kernels booting on a DP264. Instead of not setting the DIM for cpus that did not exit, the patch inadvertently doesn't set the DIM for CPUs that do exist. Thus no device interrupts get to the cpu. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove get_cpu_ptr() comment reference Since get_cpu_ptr() went away, we probably shouldn't tease developers by telling them to use it in the comments. Signed-off-by: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: fix warning for changed section attributes This fixes the "Ignoring changed section attributes" warning by commenting out the attributes appended by gcc. The previous 'fix' created a section '.text,#alloc' (literally), which I guess was not intended. Signed-off-by: Clemens Buchacher Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Neomagic configuration dependency FB_NEOMAGIC needs FB_MODE_HELPER (for vesa_modes). Reported by Michel Angelo da Silva Pereira. Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [ide] ide-dma blacklist behaviour broken From: Jens Axboe The blacklist stuff is broken. When set_using_dma() calls into ->ide_dma_check(), it returns __ide_dma_off() for a blacklisted drive. This of course succeeds, returning success to the caller of ->ide_dma_check(). Not so good... It then uncondtionally calls ->ide_dma_on(), which turns on DMA for the drive. This moves the check to __ide_dma_on() so we also catch the buggy ->ide_dma_check() defined by various chipset drivers. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] cmd64x: kill dead DEBUG_CMD_REGS code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] kill dead TASKFILE_IN_OUT code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] pdc202xx_old: kill PDC202XX_DECODE_REGISTER_INFO Signed-off-by: Bartlomiej Zolnierkiewicz Cset exclude: len.brown@intel.com|ChangeSet|20041010081245|01886 [PATCH] PCI resource allocation re-ordering This re-orders the PCI and ACPI IO resource assignment as suggested by Linus. With this patch, now the sequence of reserving resources is: 1. PCI claim BAR 2. ACPI reserve motherboard resources 3. PNP reserve motherboard resources 4. PCI allocate resources for uninitialized PCI devices This way the kernel allocates new PCI resources after it has full knowledge of the resource state, and at the same time allows ACPI and PnP to be run _after_ we've filled in our knowledge about pre-allocated resources. The way it is done is to make the last phase of the original PCI assign resources code to be an 'fs_initcall', along with the ACPI and PnP initializations. Signed-off-by: Linus Torvalds Use "request_resource()" to properly fix up PCI resource clashes. This is made possible by the previous resource allocation ordering patch. Now that we run the pre-existing PCI resource discovery _before_ ACPI resources have been added, we should not "insert" the resources into any existing tree. If they clash with existing resources, we should re-allocate them (later, when we have the full resource map). [ACPI] If BIOS disabled the LAPIC, believe it by default. "lapic" is available to force enabling the LAPIC in the event you know more than your BIOS vendor. http://bugzilla.kernel.org/show_bug.cgi?id=3238 [PCMCIA] Remove two unused variables. [PATCH] find_isa_irq_pin can't be __init As spotted by one of our Fedora users, we sometimes oops during shutdown (http://www.roberthancock.com/kerneloops.png) because disable_IO_APIC() wants to call find_isa_irq_pin(), which we threw away during init. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds Linux 2.6.9-rc4 [PATCH] ACPI: check parameter for NULL ACPI still explodes on my old PII and stops it booting. Anyway, it is oopsing in drivers/acpi/scan.c line 207 where element (which is NULL) gets dereferenced. The ACPI bios on this thing has always seemed to be pretty broken, but this at least allows the 'power' button to continue to work (the only reason why I want ACPI). [PATCH] megaraid 2.20.4: fix a data corruption bug Fixes a data corruption issue. Because of a typo in the driver, IO packets were wrongly shared by the IOCTL path. This caused the whole IO command to be replaced by an incoming IOCTL command. [PATCH] ppc64: one more explicit cmp instruction sizing Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds [PATCH] USB: corrected digi_acceleport 2.6.9-rc1 fix for hang on disconnect - Fixed hang on disconnect in digi_acceleport USB serial driver. See http://bugme.osdl.org/show_bug.cgi?id=2459. Close after disconnect no longer tries to communicate with the device. Signed-off-by: Al Borchers Signed-off-by: Greg Kroah-Hartman [PATCH] USB: "Lost sync on frames" error in konicawc module From: http://bugme.osdl.org/show_bug.cgi?id=3286 The kernel keeps printing "Lost sync on frames" error messages as soon as a program tries to access the webcam. No video data can be retrieved from the webcam. The following patch seems enough to solve the problem. (just inverting the order at which the old and new data blocks are sent to the user). Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] USB: EHCI SMP fix This addresses an SMP-only issue with the EHCI driver, where only one CPU should scan the schedule at a time (scanning is not re-entrant) but either the IRQ handler or a watchdog timer could end up starting it. Many thanks to Olaf Hering for isolating the failure mode, and testing this fix! Once once CPU starts scanning, any other might as well finish right away. This fix just adds a flag to detect that case. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix oops in usblp driver This bug was reported back in July, and I sent out a patch but apparently it never got to you. The usblp driver was calling usb_buffer_free() from usblp_cleanup(), which runs after disconnect() if a user process holds the device open. But once the usb_device is gone usb_buffer_free() will oops. The patch frees the buffers in usb_disconnect() instead. Recently Joost Witteveen reported the same oops and found that the patch solved it for him. So there shouldn't be problems with accepting it. Signed-off-by: Alan Stern Signed-off-by: Vojtech Pavlik Signed-off-by: Greg Kroah-Hartman [PATCH] USB: net2280 updates Net2280 patches to: - Make reset logic ensure endpoint toggle and halt bits only get cleared on endpoints other than ep0 to fix an extremely unlikely (but possible) state when a setup packet come in after we've checked the reset status but before calling ep_reset(). - Avoid a disconnect hang by exchanging SUSPEND_IMMEDIATELY (intended for use when the 8051 is the PCI host) with SUSPEND_REQUEST_INTERRUPT to suspend the NET2280. - Make rmmod of gadget drivers trigger disconnect; earlier changes to reset logic broke this. Signed-off-by: Alex Sanks Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix hiddev devfs oops From: Herbert Xu There is a long-standing devfs_unregister oops in hid/hiddev. It's caused by hid calling hiddev_exit before unregistering itself which in turn calls hiddev_disconnect. hiddev_exit removes the directory which contains the hiddev devices. Therefore it needs to be called after the hiddev devices have been disconnected. Signed-off-by: Herbert Xu Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [XFS] Fix up write_inode return type to use the right signedness. SGI Modid: xfs-linux:xfs-kern:19632a Signed-off-by: Nathan Scott [XFS] Fix regression when running in laptop mode, causes hangs on sync. SGI Modid: xfs-linux:xfs-kern:19744a Signed-off-by: Nathan Scott [XFS] fix a freeze/thaw deadlock Signed-off-by: Nathan Scott [PATCH] time interpolator fixes - Remove the setting of CLOCK_REALTIME and CLOCK_MONOTONIC resolution according to the interpolator resolution since this causes periodic timer signals to fail. The clocks will still be high-resolution but the "resolution" reported reflects the timer intervals possible via timer_settime (also more conformant to what the Single Unix Specification says). - Make the IA64 clock_gettime fastcall fall back on negative clock numbers instead of returning CLOCK_REALTIME. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix oops in fork() cleanup path It will oops on an error path if the thread being forked is a process with a NULL mm. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] revert writeback threshold changes The post-2.6.8 recent tweaks to the page writeback thresholding code seems to be doing the wrong thing for small unmapped_ratios - nathans had a few problems with it. The problem it was trying to fix is minor and fairly theoretical anyway, so back it out to the old code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: fix syscall table This patch fixes the system call table for m32r. The latest kernel cannot be linked for m32r, because the following experimental syscalls doesn't exist in the prepatch kernel of bk-tree. * include/asm-m32r/unistd.h: - Remove syscalls from #285(perfctr_info) to #293(keyctl). * arch/m32r/kernel/entry.S: ditto. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove obsolete system calls This patch is for removing obsolete system calls from m32r kernel, such as old_mmap and old_select. * arch/m32r/kernel/entry.S: - Remove an obsolete system call, old_mmap, from the syscall table. * arch/m32r/kernel/sys_m32r.c: - Remove obsolete system calls, old_mmap() and old_select(). - do_mmap2() is renamed to sys_mmap2(). * CAUTION (for m32r users): The new kernel (applied this patch) does not have a backward compatibility. The new kernel and old library pair does not work. So, those who want to use the new kernel must use a new version of glibc (the GNU C library), which uses the "mmap2(_NR_mmap2)" syscall for __mmap() instead of the "old_mmap(__NR_mmap)". The new glibc package, libc6_2.3.2.ds1-16.0.3_m32r.deb, is provided on the following site, please apt-get/download it and upgrade. http://debian.linux-m32r.org/dists/03_cambrian/main/binary-m32r/ Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cyber2000: fix init/exit section confusion - cyberpro_free_fb_info() is called by both __devinit & __devexit code, so it cannot be __devinit. - igs_regs[] is used by resume code (indirectly), so it cannot be discardable. This leaves one reference in cyber2000fb that 'make buildcheck' complains about, but I believe that it's OK, that being ".probe" here: static struct pci_driver cyberpro_driver = { .name = "CyberPro", .probe = cyberpro_pci_probe, Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ptep_establish smp race x86 PAE >4G This avoid userspace mm corruption during COWs with threads (i.e. malloc;fork;clone) on x86 PAE with >4G of ram Signed-Off-By: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix oops in parkbd parkbd - zero-fill allocated serio structure to prevent Oops when registering port. Signed-off-by: Dmitry Torokhov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] auth_domain_lookup fix This patch makes sure that auth_domain_lookup returns NULL when it doesn't find a matching entry, rather than the last entry in the hash chain. Signed-off-by: Olaf Kirch Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix MTD build error for Lubbock map driver Without this patch, Lubbock is pretty unusable in current 2.6.9-rc4. The same fix already present in the MTD CVS. Signed-off-by: Nicolas Pitre Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix reporting of process start times Derive process start times from the posix_clock_monotonic notion of uptime instead of "jiffies", consistent with the earlier change to /proc/uptime itself. (http://linus.bkbits.net:8080/linux-2.5/cset@3ef4851dGg0fxX58R9Zv8SIq9fzNmQ?na%0Av=index.html|src/.|src/fs|src/fs/proc|related/fs/proc/proc_misc.c) Process start times are reported to userspace in units of 1/USER_HZ since boot, thus applications as procps need the value of "uptime" to convert them into absolute time. Currently "uptime" is derived from an ntp-corrected time base, but process start time is derived from the free-running "jiffies" counter. This results in inaccurate, drifting process start times as seen by the user, even if the exported number stays constant, because the users notion of "jiffies" changes in time. It's John Stultz's patch anyways, which I only messed up a bit, but since people started trading signed-off lines on lkml: Signed-off-by: Tim Schmielau Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: retain ptracer SID across fork This fixes a bug in SELinux to retain the ptracer SID (if any) across fork. Otherwise, SELinux will always deny attempts by traced children to exec domain-changing programs even if the policy would have allowed the tracer to trace the new domains as well. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] SELinux: fix bugs in mprotect hook The patch below by Roland McGrath fixes two bugs in the implementation of the selinux_file_mprotect hook: It calls selinux_file_mmap, which has two problems. First, the stacked security module will get both mmap and mprotect callbacks for an mprotect call, which is wrong. Secondly, the vm_flags value contains VM_* bits, and these do not match the MAP_* bits of the same name or function, so it passes bogus flags and causes every mprotect to be treated as if MAP_SHARED were in use. The patch shares the common code while not having one function call the other, and fixes these two bugs. Signed-off-by: James Morris Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: don't declare cpu_online - fix compilation error Avoid redeclaring again (resulting in a compilation error) cpu_online and cpu_*_map, which are now declared elsewhere. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix wrong type for rb_entry call With the type-safe rb_entry (based on container_of, I sent it) I discovered this type error, so I've fixed it. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix warning for unused var That var is used only when CONFIG_UML_REAL_TIME_CLOCK is on, so #ifdef its definition. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: finish update for 2.6.8 API changes Add some updates for API changes in 2.6.8 which were not included in the original UML patch; these fixes were detected by some warnings, so I probably missed some more ones. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix an "unused" warnings Fixes some random warnings. To avoid "defined but not used" for not_configged_ops, make it be defined only if at least one channel is not defined. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: export more Symbols Adds a lot more EXPORT_SYMBOLS calls. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Set cflags before including arch Makefile If arch/$(ARCH)/Makefile is included before adding -O2 (and the rest) to CFLAGS, I must duplicate the addition of it to USER_CFLAGS for UML. So let's fix this. Also, the below code is useless, since if CONFIG_DEBUG_INFO is y, then CONFIG_FRAME_POINTER is always y. ifeq ($(CONFIG_DEBUG_INFO),y) CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) endif Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: force using /bin/bash for building This forces make to use bash rather than whatever /bin/sh is linked to. Without this, since there are some bash extensions used in the build and when /bin/sh isn't bash, then the build fails without a clear error message. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: no extraversion in arch/um/Makefile for mainline Extraversion in arch/um/Makefile is not needed in mainline, but just for separate patches; also, they should set it in the main Makefile, not elsewhere (Jeff Garzik has just complained). Also remove the dependency from version.h on arch/um/Makefile: it was added because arch/um/Makefile could change the kernel version number. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Single Linking Step for vmlinux Uml-specific patch (which requires a mainline hook, mailed separately). This patch avoid the linking kludge which leaves kbuild link vmlinux and then link it with libc inside linux. This kludge has the big problem of making kallsyms break, since the kallsyms pass is done on a completely Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: make -j fix Makes the UML build system work well even under parallel make (tested, so far, even with -j50). Please notice that it must be updated for every makefile change. Or better, every makefile change must use correct dependencies (and they are easy to miss). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: update makefile to new kbuild API names Drop the usage of check_gcc and host-progs, and use their new names. A must-have :-). Oh, and it will create lots of serious problems - it will give me your root account! Yes, you don't see the code in the patch, but it happens! :-))) Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: kbuild - add even more cleaning Remove one more symlink when doing make mrproper ARCH=um Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: mark broken configs Some configuration options are known not to compile. So then make them depend on CONFIG_BROKEN. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix ubd deadlock on SMP From: BlaisorBlade , Chris Wright Avoid deadlocking onto the request lock in the UBD driver, i.e. don't lock the queue spinlock when called from the request function. In detail: Rename ubd_finish() to __ubd_finish() and remove ubd_io_lock from it. Add wrapper, ubd_finish(), which grabs lock before calling __ubd_finish(). Update do_ubd_request to use the lock free __ubd_finish() to avoid deadlock. Also, apparently prepare_request is called with ubd_io_lock held, so remove locks there. Signed-off-by: Chris Wright Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: use always a separate io thread for UBD Currently, ubd=sync is different from replacing ubd#= with ubd#s=. This is against Principle of Least Surprise, so remove this difference. Also the current ubd=sync behaviour is completely useless: it is to make sure that when the kernel has synched its I/O to the virtual disk, the host does not invalidate this with his caching; this causes ReiserFS corruption. But since actually we call end_request() only after the io_thread has done its work, we never lie to the block layer. Using O_SYNC as we do when replacing ubd#= with ubd#s= is enough. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix critical IP checksum corruption From: Lars Ellenberg Add a memory barrier to the assembly checksum code - the code was copied straight from the i386 one, and the patch resyncs the code with the original. I'll check if the original code can be included directly (i.e. "#include") after 2.6.9. Without this patch, every 2.6 UML release corrupts the checksum of every UDP fragmented packet with size >= MTU (verified by various people, we all agree on this issue; nobody reported "Works fine here"). The corrupted packets are not accepted, thus blocking any kind of communication with large-sized UDP packets. In fact, I've even dissected the UML -> host traffic before and after this patch with Ethereal - and it always reported an incorrect checksum for fragmented UDP packets before and always correct after applying the patch. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] H8/300 some error/warning fix Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Fix threaded user page write memory ordering Make sure we order the writes to a newly created page with the page table update that potentially exposes the page to another CPU. This is a no-op on any architecture where getting the page table spinlock will already do the ordering (notably x86), but other architectures can care. Take the whole PCI bus range into account when scanning PCI bridges. A bridge that has been set up by firmware to cover multiple PCI buses but doesn't actually have anything connected behind some of them caused us to use the incorrect maxmimum bus number span when scanning the bridge chip. Problem reported by Tim Saunders, with Russell King suggesting the fix. [PATCH] PCI Hotplug: rpaphp safe list traversal Hoping you will accept this fix. The bug can cause a crash upon hotplug remove. The bug involves unsafe traversal of a list while deleting list members. The fix uses list_for_each_safe() rather than list_for_each(). Also threw in an initialization to get rid of a compiler warning. Signed-off-by: John Rose Signed-off-by: Greg Kroah-Hartman Linux 2.6.9-final Let's try the 2.4.x release methodology [PATCH] ext3 direct io assert fix Fix bug identified by Badari Pulavarty Local variable `handle' will become stale if ext3_direct_io_get_blocks() closes off the current transaction and starts a new one. This causes a BUG in journal_stop(). So reacquire the handle from *current after performing the I/O. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Split iomap implementation & eeh ! Nowadays, it's possible to build CONFIG_PPC_PMAC without CONFIG_PPC_PSERIES, in which case, eeh will not be included in the build (and the eeh checks are turned into no-ops). However, we then "lose" the iomap functions. This patch moves them to a separate file. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc32: Add "native" iomap interfaces This patch adds proper ppc32 "iomap" interfaces. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: fix some issues with mem_reserve I found a couple of issues with reserve_mem: - If we try and mem_reserve something of zero length, everything reserved after it would get ignored. This is because early_reserve_mem sees a zero length as a terminator. - The code rounded the top down instead of up. Signed-off-by: Anton Blanchard Signed-off-by: Linus Torvalds [PATCH] joydump needs gameport Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [PATCH] ppc64: more issues with mem_reserve As Milton noticed, Anton actually broke the logic if the memory isn't aligned in the first place. Sorry about this mess for such a little piece of code. This _really_ fixes is it all Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] intel_agp: dangling devexit reference Fix error found by 'scripts/reference_discarded.pl': Error: ./drivers/char/agp/intel-agp.o .data refers to 00000914 R_386_32 .exit.text Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tailcall prevention in sys_wait4() and sys_waitid() A hack to prevent the compiler from generatin tailcalls in these two functions. With CONFIG_REGPARM=y, the tailcalled code ends up stomping on the syscall's argument frame which corrupts userspace's registers. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: fix x86-64 - do not use memory in copy loop In assembly code, there are some problems with "nosave" section (linker was doing something stupid, like duplicating the section). We attempted to fix it, but fix was worse then first problem. This fixes is for good: We no longer use any memory in the copy loop. (Plus it fixes indentation and uses meaningful labels.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kswapd lockup fix Fix some bugs in the kswapd logic which can cause kswapd lockups. The balance_pgdat() logic is supposed to cause kswapd to loop across all zones in the node until each zone either a) has enough pages free or b) is deemed to be in an "all pages unreclaimable" state. In the latter case, we just give the zone a light scan on each balance_pgdat() scan and wait for the zone to come back to life again. But the zone->all_unreclaimable logic is broken - if the zone has no pages on the LRU at all, we perform no scanning of that zone (of course). So the zone->pages_scanned is not incremented and the expression if (zone->pages_scanned > zone->present_pages * 2) zone->all_unreclaimable = 1; never is satisfied. The patch changes that logic to if (zone->pages_scanned >= (zone->nr_active + zone->nr_inactive) * 4) zone->all_unreclaimable = 1; so if the zone has no LRU pages it will still enter the all_unreclaimable state. Another problem is that if the zone has no LRU pages we will tell shrink_slab() that we scanned zero LRU pages. This causes shrink_slab() to scan zero slab objects, which is obviously wrong. So change shrink_slab() to perform a decent chunk of slab scanning in this situation. And put a cond_resched() into the balance_pgdat() outer loop. Probably unnecessary, but that's what Jeff had in place when he confirmed that this patch fixed the lockup :( Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix smp_startup_cpu for cpu hotplug This change is needed in order to allow cpus to be onlined after boot. This used to work but the declaration of pseries_secondary_smp_init in this file was changed in Ben's big cleanup patch a while back, so the cpu would start at a bad address. Signed-off-by: Nathan Lynch Signed-off-by: Linus Torvalds [PATCH] Fix NFS3 krb5 clients on x86-64 This patch is necessary to make NFS3 krb5 clients work on x86-64. ACK'ed by Trond Signed-off-by: Mark Goodman Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [PATCH] security issue in firmware system The firmware loader has a security issue. Firmware on some devices can write to all memory through DMA. Therefore the ability to feed firmware to the kernel is equivalent to writing to /dev/kmem. CAP_SYS_RAWIO is needed to protect itself. [ Editors note: the firmware file is 0644, and owned by root, so this "security issue" is really only an issue for people who use capabilities explicitly, rather than the regular Unix permissions. This patch makes it do the same checks we do for /dev/mem etc. ] Signed-Off-By: Oliver Neukum Signed-off-by: Andrew Morton Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [PATCH] unbalanced locking in MTD Intel chip driver This obvious missing unlock is screwing the preemption count. Fix was applied to MTD CVS already. Signed-off-by: Nicolas Pitre Signed-off-by: Linus Torvalds [PATCH] Duh. _Really_ unbalanced locking in MTD Intel chip driver I apparently can't copy simple obvious fixes by hand. Signed-off-by: Nicolas Pitre Signed-off-by: Linus Torvalds [PATCH] USB: handle NAK packets in input devices. Andrew requested this fix go in before 2.6.9 was out, to keep people's syslog quiet for a lot of different USB input devices. Fixes bug bugzilla.kernel.org bug #3564 Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds Linux 2.6.9