Summary of changes from v2.6.8 to v2.6.9-rc1 ============================================ [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. [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. [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. [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. [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 [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 [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 [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) [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 [CPUFREQ] Fix sparse NULL ptr warning. Signed-off-by: Dave Jones [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 [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 [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 [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 [PATCH] fix compiler warnings in mv64340_eth [PATCH] remove dead code from mv64340_eth [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. [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} [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 [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 [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 [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. 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 [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 [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] 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 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 [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 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 [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 [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 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 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 [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 [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. [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] 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 USB: hook the ub driver up to the sysfs tree so that tools like udev work better. Signed-off-by: Greg Kroah-Hartman [IPV4]: Move inetdev/ifa locking over to RCU. Multicast ipv4 address handling still uses rwlock and spinlock synchronization. Signed-off-by: David S. Miller [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. 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 [ACPI] clean out blacklist entries that do nothing [IPV4]: Fix race in inetdev RCU handling. [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 [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 [ACPI] ia64 build fix Signed-off-by: Jesse Barnes 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 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 [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 [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. [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 [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 [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 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 [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 [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 [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 [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 [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 [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 [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 [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 [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. [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 [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 [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 [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] 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 [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 [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