Summary of changes from v2.6.9-rc3 to v2.6.9-rc4 ============================================ [ACPI] fix __initdata bug in acpi_irq_penalty[] Signed-off-by: Bjorn Helgaas [ACPI] ACPICA 20040816 update from Bob Moore Designed and implemented support within the AML interpreter for the so-called implicit return. This support returns the result of the last ASL operation within a control method, in the absence of an explicit Return() operator. A few machines depend on this behavior, even though it is not explicitly supported by the ASL language. It is optional support that can be enabled at runtime via the acpi_gbl_enable_interpreter_slack flag. Removed support for the PCI_Config address space from the internal low level hardware interfaces (acpi_hw_low_level_read and acpi_hw_low_level_write). This support was not used internally, and would not work correctly anyway because the PCI bus number and segment number were not supported. There are separate interfaces for PCI configuration space access because of the unique interface. acpica-unix-20040816.patch AE_CODE_AML_MAX fix from Bjorn Helgaas [ACPI] Enable ACPICA workarounds for 'RELAXED_AML' and 'implicit return' These workarounds are disabled if "acpi=strict" [AGPGART] via-agp.c resume/suspend support From: Arkadiusz Miskiewicz With this patch I'm able to suspend to disk (well, works even without patch) and resume (without it my laptop hangs (even sysrq is not working) while resuming). Signed-off-by: Arkadiusz Miskiewicz Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [ACPI] quiet ACPI NUMA boot messages Signed-off-by: Jesse Barnes [ACPI] fix numa build warnings (Keith Owens) Signed-off-by: Takayoshi Kochi [ACPI] Export acpi_strict for use in modular drivers. This will enable drivers to work around BIOS deficiencies, while still allowing the drivers to be more picky with "acpi=strict" Signed-off-by: Bjorn Helgaas [ACPI] cleanup: use ioapic_register_intr() [ACPI] allow config to specify custom DSDT (Ulf Dambacher) [ACPI] debugging enhancements (Yi Zhu) new cmdline options: "acpi_dbg_layer=", "acpi_dbg_level=" and /proc/acpi/debug_layer, debug_level now describe levels http://bugzilla.kernel.org/show_bug.cgi?id=2398 [ACPI] move acpi_bios_year() to blacklist.c from dmi_scan.c (Pavel Machek) [ACPI] delete ACPI DMI/BIOS cutoff year by default CONFIG_ACPI_BLACKLIST_YEAR=2001 for old behaviour [AGPGART] Fix up sparse iomem warnings for amd-k7 driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings of amd64 driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in ati driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in generic agp code. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warning in Intel driver. Signed-off-by: Dave Jones [AGPGART] Fix sparse iomem warnings in Intel MCH driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in NVidia driver. Signed-off-by: Dave Jones [AGPGART] Fix up sparse iomem warnings in Serverworks driver. Signed-off-by: Dave Jones add GPL to mmconfig.c [PATCH] TMS380TR must select FW_LOADER I got the following compile error with CONFIG_FW_LOADER=n: <-- snip --> ... LD .tmp_vmlinux1 drivers/built-in.o(.text+0x297944): In function `tms380tr_reset_adapter': : undefined reference to `request_firmware' drivers/built-in.o(.text+0x297aaf): In function `tms380tr_reset_adapter': : undefined reference to `release_firmware' drivers/built-in.o(.text+0x297af9): In function `tms380tr_reset_adapter': : undefined reference to `release_firmware' make: *** [.tmp_vmlinux1] Error 1 <-- snip --> CONFIG_TMS380TR must select FW_LOADER (and therefore depend on HOTPLUG). Signed-off-by: Adrian Bunk ppc32: Update the MVME5100 defconfig so it works out of the box. David Gardiner noticed that it needed updates such as VT=n to 'work' out of the box. [TCP] don't use sk_zapped This is not needed, we use refcounts now. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller ppc: Name update/coherency and white space corrections for Freescale MPC52xx - Whitespace audit - IceCube -> LITE5200 (Official name of the platform) Signed-off-by: Sylvain Munaut ppc: Freescale MPC52xx hardware definitions misc updates/fix Mainly this includes : - Remove the 'volatile' keyword in structs defining hardware registers sets. This keyword is useless and can even be harmful if it makes someone believes it's sufficient to access a register like a variable. It's not ! And the registers must be accessed with the appropriate in_be/out_be. So we remove this keyword as it's wrong and misleading. - Some fixes to SDMA - Add SDRAM & GPIO_WKUP unit - Remove of useless #define Signed-off-by: Sylvain Munaut ppc: Fix missing include in Freescale MPC52xx syslib pgtable.h is required for _PAGE_IO Signed-off-by: Sylvain Munaut ppc: Fix spurious iounmap in Freescale MPC52xx syslib Signed-off-by: Sylvain Munaut ppc: Use interactive console for Freescale MPC52xx when using boot/simple Signed-off-by: Dale Farnsworth Signed-off-by: Sylvain Munaut ppc: Fix output of low-level serial debug on Freescale MPC52xx Thanks to Roger Blofeld for pointing that out. Signed-off-by: Sylvain Munaut ppc: Update Freescale MPC52xx documentation / maintainer Signed-off-by: Sylvain Munaut ppc: Add Freescale MPC52xx I2C Support using i2c-mpc.c Just adds the necessary OCP def entry. Don't use IRQ yet though because they are buggy with the 5200 for now. Signed-off-by: Sylvain Munaut ppc: Freescale MPC52xx interrupt controller init code update Part of the initialization code of the interrupt controller is board-specific. It's mainly the external interrupt IRQ[0,3] configuration. This moved in platform file by this ChangeSet. Signed-off-by: Sylvain Munaut ppc: Disable the CAN_DOZE & CAN_NAP CPU features when a BDI is used Theses powersave features causes random debugging failures with a BDI. Signed-off-by: Sylvain Munaut ppc: Allow the Freescale MPC52xx to NAP when idle on LITE5200 platform NAP allows some powersave. It's provided mainly as an example on how to do it. However, when a BDI is plugged it causes early crashes so be aware ! You need to define CONFIG_BDI_SWITCH so powersave is disabled. Signed-off-by: Sylvain Munaut [IA64-SGI] sn2: serialize access to PROM chips If we read and write the PROM chips at the same time, as might happen at boot when salinfo extracts MCA records and a user is checking the PROM revision in /proc/sgi_prominfo, an MCA might occur, since the PROM chips can't be accessed that way. This patch fixes the problem for systems with new PROMs (>= 3.50) by using the SAL to do PROM reads. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] defconfig for Intel bigsur Here's a defconfig that comes up on my box and has a reasonable set of modules enabled. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] SMP systems may not have SRAT, still need to mark node0 online. This only causes a problem in the -mm tree now, but Zou Nan hai and Shaohua Li sent me this fix so that SMP systems compiled with the generic kernel (which turns on NUMA and CPUSETS in -mm) won't hit a BUG_ON in kernel/cpuset.c guarantee_online_mems() which is called from acpi_early_init() Signed-off-by: Tony Luck [XFS] Remove crufty old cap/mac code - never used, never compiled, gone. SGI Modid: xfs-linux:xfs-kern:19601a Signed-off-by: Nathan Scott [XFS] Fix merge botch affecting xfs_setattr for realtime files. SGI Modid: xfs-linux:xfs-kern:19619a Signed-off-by: Nathan Scott [XFS] Fix sync issues - use correct writepage page re-dirty interface, and do not clear dirty flag if page only partially written. SGI Modid: xfs-linux:xfs-kern:19622a Signed-off-by: Nathan Scott [TCP]: Smooth out TSO ack clocking. - Export tcp_trim_head() and call it directly from tcp_tso_acked(). This also fixes URG handling. - Make tcp_trim_head() adjust the skb->truesize of the packet and liberate that space from the socket send buffer. - In tcp_current_mss(), limit TSO factor to 1/4 of snd_cwnd. The idea is from John Heffner. Signed-off-by: David S. Miller [ARM PATCH] 2113/1: include asm/arch/pxa-regs.h where necessary Patch from Ian Campbell The include of asm/arch/pxa-regs.h has been removed from asm-arm/arch-pxa/hardware.h and now needs to be included from the relevant files. I have verified the fixes to arch/arm/mach-pxa/sleep.S and drivers/char/watchdog/sa1100_wdt.c myself. My local tree has other changes to include/asm-arm/arch-pxa/serial.h but I beleive that the attached is necessary and correct. Signed-off-by: Ian Campbell [ARM PATCH] 2114/1: fix drivers/char/watchdog/sa1100-wdt.c on SA1100 Patch from Ian Campbell Patch 2113 broke drivers/char/watchdog/sa1100-wdt.c on SA1100. Signed-off-by: Ian Campbell [PATCH] pc300: remove extra paren. Remove an extra left-paren. Acked-by: Marcelo Tosatti Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix incorrect initialization of hash table on some pSeries The hash table wasn't fully initialized on some pSeries that had the workaround for no batching. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] fix typo in capi driver I didn't have ISDN builds on in my tree for some reason hence missing these two from the tidy ups at the end. Marcel Holtmann also came up with the same fixes although I didnt find that email until I did these. Signed-off-by: Alan Cox [PATCH] Fix typo in final changes to old i4l tty code [PATCH] overcommit symbolic constants Played a bit with overcommit the past hour. Am not entirely satisfied with the no overcommit mode 2 - programs segfault when the system is close to that boundary. So, instead of the somewhat larger patch that I planned to send, just symbolic names for the modes. [IA64] perfmon2 fix for TASK_TRACED fix a problem in pfm_check_task_state() and pfm_task_incompatible() which was caused by the introduction of the new TASK_TRACED state. Tool would fail to attach to a process,i.e., PFM_LOAD_CONTEXT would fail. With the fix perfmon now accepts to operate on tasks which are in either TASK_STOPPED or TASK_TRACED state. The problem was tracked down by Alex Williamson from HP who also submitted the patch. signed-off-by: Stephane Eranian Signed-off-by: Tony Luck [IA64] minor fix to perfmon change the return value of PFM_CREATE_CONTEXT from EAGAIN to ENOMEM when the sampling buffer size is larger than the RLIMIT_MEMLOCK limit of the task. signed-off-by: Stephane Eranian Signed-off-by: Tony Luck Fix up natsemi network driver IO accessor types. Basic cleanup - replace untyped/wrongly typed "dev->base_addr" with use of a strongly typed "ioaddr". Fixed up resulting mii_delay() search-and-replace error noticed by Andrey Klochko. Verified by Franz Pletz. [IA64] Recovery from user-mode memory error This is the latest/Updated OS_MCA handler which try to do recovery from multibit-ECC/poisoned memory-read error on user-land. (Thank you very much for comments, Keith and Grant!) I'd still appreciate it if anyone having good test environment could apply my patch and could report how it works. (especially reports on non-Tiger/non-Intel platform are welcome.) Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck [IA64] mca.h, mca_drv.c: cleanup extern declarations Move extern declarations of ia64_{reg,unreg}_MCA_extension() to mca.h. Delete declaration of ia64_mca_ucmc_other_recover_fp() which doesn't exist. Patch supplied by Hidetoshi Seto. Signed-off-by: Tony Luck [PATCH] limit max jiffy of msecs_to_jiffies [SUNGEM]: Do not need two implementations of poll_controller, hehe. Signed-off-by: David S. Miller [TCP]: Check correct sequence number for URG in tcp_tso_acked(). Noticed by Herbert Xu. Signed-off-by: David S. Miller Wisdom passed down the ages on clay tablets. Only recently digitized for our edification. [SUNGEM]: Fix build. The hpet acpi driver is not __initdata. We register it with the ACPI layer, and it's alive long after init. Noted by Bjorn Helgaas. [PATCH] USB: fix error in bluetty.c driver caused by tty core changes Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds [PATCH] USB: remove FIXME created from tty core changes in empeg driver. Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds Fix cyclades driver types, and add __iomem annotations. Remove absolutely tons of totally unnecessary casts, once the types are done right in the first place. The driver is still ugly as hell and needs some serious indentation fixing, but this makes it not spew hundreds of warnings any more. Remove casts and add __iomem annotations to gdth driver Fix up MMIO pointer types and add __iomem annotations to radeonfb.c It was almost correct, apart from some silly details. The x86 ROM probing is still wrong, and doesn't use the proper PCI MMIO accessor functions. Sparse (correctly) warns about it. [PATCH] 3c59x: add invalid MAC address check Do trivial __iomem annotations for tridentfb.c A few one-liners removed hundreds of lines of warnings. The driver was clean, just not using the proper types. [TCP]: Add tcp_tso_win_divisor sysctl. This allows control over what percentage of the congestion window can be consumed by a single TSO frame. The setting of this parameter is a choice between burstiness and building larger TSO frames. Signed-off-by: David S. Miller [TCP]: Kill tso_{factor,mss}. We can just use skb_shinfo(skb)->tso_{segs,size} directly. This also allows us to kill the hack zone code in ip_output.c The original impetus for thus change was a problem noted by John Heffner. We do not abide by the MSS of the connection for TCP segmentation, we were using the path MTU instead. This broke various local network setups with TSO enabled and is fixed as a side effect of these changes. Signed-off-by: David S. Miller Fix up and type-annotate sis fb driver Some dual use type errors still exist, where the bios mapping is type-confused. [ARM PATCH] 2106/1: Remove the "write" assumption for Jazelle in the early_abort handler Patch from Catalin Marinas On ARM926EJ-S, the "always assume write" for Jazelle data aborts causes Java code exit with segmentation fault every time it tries to access a read-only page. This patch puts some restrictions on what can be done in the Jazelle state but it allows it to run. Signed-off-by: Catalin Marinas [ARM PATCH] 2107/1: BAST - additional serial port fixes Patch from Ben Dooks Added code to remove the serial ports registered when the module is unloaded. Cleaned up ifdef'd code, and added copyright header Signed-off-by: Ben Dooks [ARM PATCH] 2102/1: BAST - incorrect IRQ for USB overcurrent Patch from Ben Dooks Fix IRQ number for USB over-current on Simtec BAST Signed-off-by: Ben Dooks [ARM PATCH] 2116/1: S3C2410 - s3c2410_gpio_cfgpin() mask bug Patch from Ben Dooks Fixed bug where wrong bits where being masked in the configuration registers for the GPIO pins Signed-off-by: Ben Dooks [PCMCIA] replace schedule_timeout() with msleep() From: Remove unnecessary cs_to_timeout() macro. Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Russell King [PATCH] fix up tty fall-out The two patches below (compile)fix some fall-out from the tty cleanups. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds [PATCH] ppc64: change bad choice of VSID_MULTIPLIER We recently changed the VSID allocation on PPC64 to use a new scheme based on a multiplicative hash. It turns out our choice of multiplier (the largest 28-bit prime) wasn't so great: with large contiguous mappings, we can get very poor hash scattering. In particular earlier machines (without 16M pages) which had a reasonable about of RAM (>2G or so) wouldn't boot, because the linear mapping overflowed some hash buckets. This patch changes the multiplier to something which seems to work better (it is, rather arbitrarily, the median of the primes between 2^27 and 2^28). Some more theory should almost certainly go into the choice of this constant, to avoid more pathological cases. But for now, this choice fixes a serious bug, and seems to do at least as well at scattering as the old choice on a handful of simple testcases. Signed-off-by: David Gibson Signed-off-by: Linus Torvalds [ide] triflex: kill /proc/ide/triflex Fixes OOPS on two single channel controllers. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove dead CMD640 debugging from ide-probe.c Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove dead debugging code from ide-taskfile.c - CONFIG_IDE_TASK_IOCTL_DEBUG cannot be defined - function declarations are used instead of calls Signed-off-by: Bartlomiej Zolnierkiewicz [ide] remove stale comment from ide-proc.c ide-default driver was added long time ago. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] aec62xx: remove dead DEBUG_AEC_REGS code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] piix: fix wrong DMA mode selected From: Carsten Haustein A bug in function piix_config_drive_xfer_rate() allows a call of hwif->ide_dma_on(drive) without prior call of piix_config_drive_for_dma(). This results in harddisk configured for UDMA (default?) whereas the highest DMA mode supported by PIIX3 is MWORD2. This bug is supposed to be present in any 2.6.x kernel release and any 2.4.x kernel release since 2.4.21. bart: this should also fix the same bug for PIIXa and PIIXb Fixes bugzilla bug #3473. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] Simtec BAST (EB2410ITX) / Thorcom VR1000 driver Patch to provide support for the following two boards: - Simtec BAST (EB2410ITX) - Thorcom VR1000 Signed-off-by: Ben Dooks Signed-off-by: Bartlomiej Zolnierkiewicz [IA64] Makefile: Fix to make ccache/distcc happy. the (tested) patch below fixes ccache/distcc-assisted building of the ia64 tree. (CC is "ccache distcc gcc" in that case, not a simple one-word "gcc" - this confused the check-gas and toolchain-flags scripts.) Signed-off-by: Ingo Molnar Signed-off-by: Tony Luck [ATM]: Use neigh_table_{init,clear}() in clip.c Signed-off-by: David S. Miller [IPV6]: NEIGHBOUR: hold refcnt of net_device from proxy neighbor entries. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [IPV6]: Fix ntohs() --> htons() typo in reassembly.c Signed-off-by: Yasuyuki KOZAKAI Signed-off-by: David S. Miller [SPARC64]: Fix solaris emul __set_utsfield offset calculation. Signed-off-by: David S. Miller [NETFILTER]: Fix NAT helper handling of TCP window tracking info. Fix NAT helper code to update TCP window tracking information if it resizes payload (and thus alrers sequence numbers). This patchlet was somehow lost during 2.4.x->2.6.x port of TCP window tracking :( Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] mlockall(MCL_FUTURE) unlocks currently locked mappings Calling mlockall(MCL_FUTURE) will erroneously unlock any currently locked mappings. Fix this up, and while we're at it, remove the essentially unused error variable. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] mlockall() check rlimit only when MCL_CURRENT is set Only check memlock rlimit against mm->total_vm when mlockall() flags include MCL_CURRENT. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] make can_do_mlock useful for mlock/mlockall Move the simple can_do_mlock() check before the full rlimits based restriction checks for mlock() and mlockall(). As it is, the check adds nothing. This has a side-effect of eliminating an unnecessary call to can_do_mlock() on the munlockall() path. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] mlockall() take mmap_sem a bit later In sys_mlockall(), flags validation and can_do_mlock() check don't require holding mmap_sem. Move down_write() down a bit, and adjust appropriately. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds [PATCH] Race with iput and umount Jeff Mahoney notes: "generic_shutdown_super() will happily call the ->put_super fs method, destroying data structures still in use by the iput (->delete_inode) in progress. The unlink path will call the ->unlink fs method, release the path (thus dropping the reference to the vfsmount, and then call iput. Since the vfsmount reference is dropped back to 1, a umount will succeed, causing the superblock to be cleaned up." Arrgh... Here's the trivial fix: do the final "iput()" a bit earlier in the unlink path. Note: all places that go to exit1: or exit: will have NULL inode, so we are not leaking anything here and it is OK do that iput() early; indeed, the goal of that kludge was to postpone the final iput() past the unlocking the parent for the sake of contention if a wunch of bankers is doing parallel unlink() on files in the same directory and normally it would happen on dput() after vfs_unlink()) Partially undo Alan's recent tty locking fixes: the termios lock must not be held across the driver/ldisc downcalls. Some drivers need to set device state (baudrate etc) and may need to sleep. [PATCH] Update termios to use per tty semaphore This makes the agreed change of termios locking to be semaphore based sleep locking. This is needed for USB in particular as it has to use messaging to issue terminal mode changes. This code passes Torvalds test grades 0, 1 and 2 (it looks ok, it compiles and it booted). It does mean that a driver cannot take an atomic peek at termios data during an interrupt. Nobody seems to be doing this although some of the driver receive paths for line disciplines will eventually want to (n_tty currently doesn't do this locked on the receive path). Since the ldisc is given a chance to copy any essential bits on the ->set_termios path this seems not to be a problem. Fix close() vs posix lock race A threaded app that posix-locks and closes the same file in two threads concurrently may result in a posix lock that was never visible to the closer, and that thus needs cleanup on the final fput. Handle it together with the regular flocks. NTFS: Fix stupid bug in fs/ntfs/attrib.c::ntfs_attr_reinit_search_ctx() where we did not clear ctx->al_entry but it was still set due to changes in ntfs_attr_lookup() and ntfs_external_attr_find() in particular. Signed-off-by: Anton Altaparmakov [PATCH] Fix booting on some recent G5s Some recent G5s have a problem with PCI/HT probing. They crash (machine check) during the probe of some slot numbers, it seems to be related to some functions beeing disabled by the firmware inside the K2 ASIC. This patch limits the config space accesses to devices that are present in the OF device-tree. This fixes the problem and shouldn't "add" any limitation. If you plug a "random" PCI card with no OF driver, the firmware will still build a node for it with the default set of properties created from the config space. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds tty locking fixups: remove unused "flags" variable It became obsolete when the termios locking was changed to use a per-tty semaphore. NTFS: Fix another stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find() where we forgot to unmap the extent mft record when we had finished enumerating an attribute which caused a bug check to trigger when the VFS calls ->clear_inode. Signed-off-by: Anton Altaparmakov [ARM PATCH] 2095/1: i.MX time keeping Patch from Sascha Hauer This patch fixes the i.MX timer functions: - imx_gettimeoffset() now returns proper values - fix timer interrupt frequency Signed-off-by: Sascha Hauer [ARM PATCH] 2101/1: S3C2410 - usb port management Patch from Ben Dooks Port power control and management for S3C2410 internal USB controller for different boards to interface their power control system to. Signed-off-by: Ben Dooks [ARM PATCH] 2103/1: BAST - USB power control Patch from Ben Dooks USB power control and over-current sense Signed-off-by: Ben Dooks [ARM PATCH] 2118/1: S3C2410 - gpio updates and header file fix Patch from Ben Dooks Fix missing changelog entries in , and erroneous EINT definitions in . Added s3c2410_gpio_getcfg(pin) and s3c2410_gpio_getirq(pin) to get the current configuration of an pin, and which IRQ (if any) maps to it. Signed-off-by: Ben Dooks [PATCH] therm_adt746x: don't change loadavg Use interruptible sleep rather than uninterruptible. Partially convert it to the kthread API so the kernel thread doesn't get accidentally signalled. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use kthread_stop in therm_adt746x Use kthread_stop() and kthread_should_stop() instead of monitor_running and wait_completion(). Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kprobes exception notifier fix This patch modifies the return value of kprobes exceptions notify handler. The kprobes exception notifier returns NOTIFY_STOP on handling notification. This patch helps other debuggers to co-exists with the Kprobes. Other debuggers registered for exceptions notification must return NOTIFY_STOP on handling the notification. Signed-off-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random driver preempt robustness A certain codepath in the random driver relied on vt_ioctl() being under the BKL and implicitly disabling preemption. The code wasn't buggy upstream but it's slighly unrobust so I think we want the fix upstream too, independently of the remove-bkl patch. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] document isolcpus= boot option Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc64: time interpolator build fix We need io.h for readq(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: fix highmem From: Pavel Machek This actually calls highmem_resume(), so swsusp has chance to work on highmem machines. It also adds comments about code flow, which is quite interesting at that point. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: Lindenhurst MSI build fix Fix the Lindenhurst MSI fix on x86-64 to compile again Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpufreq: ondemand: prevent various divide underflows From: "Pallipadi, Venkatesh" Check for lower limit of latency / sampling rate, and fix divide underflows. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpufreq: ondemand: account iowait as idle time From: "Pallipadi, Venkatesh" This patch changes the idle time accounting in ondemand governor. With this patch ondemand governor accounts cpu iowait time as idle time. Thanks to Stefan Seyfried for identifying this issue. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc: time interpolator build fix Remove two leftover #includes from timex.h which may cause a build failure for ppc. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: squash childregs warnings Squash a couple of "pointer from integer" warnings recently introduced. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: EEH checks mistakenly became no-ops Recent changes which removed the use of IO tokens for EEH enabled devices had a bug, which mean we now never do EEH checks at all. This patch corrects the problem. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] JFFS2 mount options discarded Yoann Vandoorselaere noticed an attempt to mount a JFFS2 filesystem read-only mounts writeable instead. From: David Woodhouse and make it fix the memory leak on failure too: Signed-off-by: David Woodhouse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: prevent kswapd pageout priority windup Now that we are correctly kicking off kswapd early (before the synch reclaim watermark), it is really doing asynchronous pageout. This has exposed a latent problem where allocators running at the same time will make kswapd think it is getting into trouble, and cause too much swapping and suboptimal behaviour. This patch changes the kswapd scanning algorithm to use the same metrics for measuring pageout success as the synchronous reclaim path - namely, how much work is required to free SWAP_CLUSTER_MAX pages. This should make things less fragile all round, and has the added benefit that kswapd will continue running so long as memory is low and it is managing to free pages, rather than going through the full priority loop, then giving up. Should result in much better behaviour all round, especially when there are concurrent allocators. akpm: the patch was confirmed to fix up the excessive swapout which Ray Bryant has been reporting. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: added CPU type checking to interrupt control routines This change had added CPU type checking to interrupt control routines. Cc: Ralf Baechle Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: added interrupt control routines for vrc4173 This change had added interrupt control routines for vrc4173. Cc: Ralf Baechle Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update comments for Renesas Here is a patch to update comments for Renesas. The M32R processor is a product of Renesas Technology Corporation now. * arch/m32r/kernel/setup.c: - Change from "MITSUBISHI" to "Renesas" - Remove RCS ID. * arch/m32r/kernel/setup_m32700ut.c: ditto. * arch/m32r/kernel/setup_mappi.c: ditto. * arch/m32r/kernel/setup_mappi2.c: - Remove RCS ID. * arch/m32r/kernel/setup_oaks32r.c: ditto. * arch/m32r/kernel/setup_opsput.c: ditto. * arch/m32r/kernel/setup_usrv.c: ditto. * include/asm-m32r/m32102.h: - Add copyright statement of Renesas - Remove RCS ID. * include/asm-m32r/m32r.h: ditto. * include/asm-m32r/m32r_mp_fpga.h: ditto. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: architecture upgrade on 20040928 Miscellaneous upgrade for recent m32r kernel changes. * arch/m32r/kernel/entry.S: Add system calls; taken from asm-i386/unistd.h. - [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386 (05/31/2004) - [PATCH] Make key management use syscalls not prctls (09/06/2004) * arch/m32r/kernel/io_m32102.c: Remove. This file is no longer used. Please remove this file. * arch/m32r/kernel/irq.c: - Fix the unnecessary entropy call in the irq handler. * arch/m32r/kernel/signal.c: - Merge common signal handling fault handling in generic code; use force_sigsegv() instead of force_sig(). * arch/m32r/kernel/smp.c: - Just add brackets. * include/asm-m32r/hardirq.h: - factor out common code Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: change to use temporary register variables I made a patch to upgrade some header files for m32r. - Change to use temporary register variables allocated by the compiler, instead of fiexd register varialbes. - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Updated IXP4xx MTD driver from CVS (v1.6) Following patch updates the IXP4xx MTD driver with the latest version from MTD CVS. Signed-Off-By: David Woodhouse Signed-off-by: Deepak Saxena Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] overcommit documentation fix Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] scsi docs fix People have had a long time to change and be aware of the correct return. Some drivers now generate the correct return too. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Kconfig for EDD EDD fails with ACARD scsi devices present (hang on the 16bit bios call at boot) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix up tty patch problem with pc300 and clean up braces Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] msleep_interruptible(): fix whitespace thanks Xu for noticing, some whitespace found it's way there. clean that up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] doc: remove lingering PC-9800 param. Remove lingering PC-9800 doc. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix block layer ioctl bug If the blockdev doesn't implement BLKFLSBUF and returns -ENOTTY we should still go ahead and perform the VFS-level sync. We need to test for both ENOTTY and EINVAL because some SCSI drivers incorrectly return EINVAL. Signed-off-by: Ed L Cashin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] document DRM ioctl use Document DRM's usage of 'd' as its ioctl identifier. This can't be changed, it is in every X server. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] usb: hcd locking fix Missing up() on an error path. Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Properly recognize PowerMac7,3 Make the PowerMac7,3 no longer unknown. Signed-off-by: Andreas Schwab Signed-off-by: Linus Torvalds [PATCH] Use proper sysfs mount-point in documentation Signed-off-by: Josef "Jeff" Sipek Signed-off-by: Linus Torvalds [PATCH] Add DEVPATH env variable to hotplug helper call Add $DEVPATH to the environmental variables during /sbin/hotplug call. Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: Linus Torvalds [PATCH] Avoid unnecessary copy for EPOLL_CTL_DEL Ulrich Drepper points out that EPOLL_CTL_DEL doesn't need to copy any of the hash events. Also, we should specify in the man pages that a NULL is allowed in EPOLL_CTL_DEL. Currently it does not say that. Also, starting from when epoll uses rbtrees instead of hashes, the 'size' hint passed to epoll_create(2) is no more used. But since an API change has clearly to be excluded, I guess it'll stay as is. Signed-off-by: Davide Libenzi Signed-off-by: Linus Torvalds [PATCH] ppc64: fix cross-compilation After the "ppc64 monster cleanup," I get powerpc-750-linux-gnu-strip: vmlinux: File format not recognized from my ppc32 strip command when cross-compiling a ppc64 kernel, since vmlinux is a 64-bit ELF file. This patch fixes my build (and the resulting kernel boots fine). Signed-off-by: Roland Dreier Signed-off-by: Linus Torvalds [NET_SCHED]: Fix module leak in tc_ctl_tfilter error path Signed-off-by: Patrick McHardy [NET_SCHED]: Remove useless variable in tc_ctl_tfilter Signed-off-by: Patrick McHardy [IPV4]: Fix free_netdev after failed alloc_netdev in ipgre_init Signed-off-by: Patrick McHardy [IPV4]: Fix free_netdev after failed alloc_netdev in ipip_init Signed-off-by: Patrick McHardy [IPV4]: Fix ipip_fb_tunnel_dev leak in ipip_fini Signed-off-by: Patrick McHardy [IPV6]: Fix free_netdev after failed alloc_netdev in sit_init Signed-off-by: Patrick McHardy [VLAN]: Missing rtnl_unlock in register_vlan_device error path Signed-off-by: Patrick McHardy [ARM] ecard.c locking and wait_event_interruptible() fix Add locking for use of kecardd services. Use wait_event_interruptible() rather htan interruptible_sleep_on(). [ARM] Add "noirqdebug" option to match x86 option. [ARM] Fix consistent.c for DMA allocations. - Use ISA_DMA_THRESHOLD as the mask for GFP_DMA allocations. - Don't allow DMA allocations which are for a "smaller" mask than ISA_DMA_THRESHOLD. - Ensure that "handle" is initialised to our error value when returning an error. [ARM] Check access permissions for whole of signal stack frame. We really need to check that we have access to the whole of the signal frame when we allocate it, rather than "most of it" when we have iWMMXt extensions selected. [ARM] Remove "%?" from within macros containing assembly. Some compilers seem to get "%?" wrong in macros. [ARM] mach-types update. [ARM] Add POSIX message queue and waitid syscalls. [ARM] clk_* functions take frequencies in Hz not kHz [ARM PATCH] 2117/1: Fix ATU config on IQ80331 to prevent master aborts, replace 2099/1 Patch from Dave Jiang Latest IQ80331 redboot changed value of ATU registers and is causing master aborts on the plugged in card. Changing value back to previous sane state for Linux. Signed-off-by: Dave Jiang (dave.jiang@gmail.com) Patch in replacement of 2099/1 due to formatting problems. [SPARC64]: Fix SI_TIMER conversion as ppc64 has. Signed-off-by: David S. Miller [SPARC64]: Update defconfig. [TCP]: Rename tcp_skb_psize() to tcp_skb_mss(). On request from Herbert Xu. Signed-off-by: David S. Miller [ARM PATCH] 2119/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-mem.h Patch from Ben Dooks Header file include/asm-arm/arch-s3c2410/regs-mem.h containing definitions for the S3C2410 memory controller Signed-off-by: Ben Dooks [NET]: Remove neigh hash expansion into already locked section. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Missing ip_rt_put() in SIT error path. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [ARM PATCH] 2120/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-iic.h Patch from Ben Dooks Include file include/asm-arm/arch-s3c2410/regs-iic.h, for the I2C controller on the S3C2410 Samsung SoC. Signed-off-by: Ben Dooks [ARM PATCH] 2121/1: S3C2410 - add S3C2410_MISCCR definitions for power down config Patch from Ben Dooks Add definitions to the MISCCR register for configuration of the signal states in power down mode. Signed-off-by: Ben Dooks [PKT_ACT]: Fixup tcf_result updating wrt. tcf_action_exec() calls. - Pass tcf_result into tcf_action_exec() - Update res->classid and res->class on non-zero skb->tc_classid, then reset skb->tc_classid - Update tcf_action_exec() callers in cls_u32.c and cls_fw.c Based upon a patch by Jamal Hadi Salim Signed-off-by: David S. Miller [PATCH] s390: sclp compile fix The attached patch makes s390 sclp driver buildable again. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ppc64: fix non-C99 named initializers Al suggested a sparse warning. And sure enough, it found these ones. [PATCH] olympic driver: fix kernel oops on lobe fault It fixes an oops that results when a lobe fault is detected. The oops occurs because a lobe fault triggers an interrupt which is handled in the current version of the driver by effectively shutting down the card, and freeing its requisite irq. The former is fine, the latter is not, as its illegal to free an irq from within an interrupt context. I've fixed this bug by removing the call to free_irq from the interrupt handler (specifically the chunk around line 964 fixes that). While I was in there I noticed that there were several other conditions in the interrupt handler that contained the same condition, so I made the same fix there. I re-added. I also modified the contents of olympic_freemem (the chunk around line 898 to correct a misuse of a pointer after it requisite memory has been free in the case the the adapter is re-initalized after a fault to prevent that oops. And then I clean up the interrupt handler to simply use olympic_freemem from the close routine since the ring buffer doesn't need to be freed until the driver is closed. In addition to these changes I added a call to olympic init in olympic_open and reset the spinlock so the adapter can be reset and rejoin the ring without needing to rmmod/insmod the module. Lastly I cleaned up the wait queue code so that the close routine didn't have to wait 60 seconds to close the adapter if a fatal fault has closed the adapter. Signed-off-by: Neil Horman [NET]: Kill typo in neighbour.c Signed-off-by: David S. Miller [PATCH] via-velocity: properly manage the count of adapters velocity_nics wasn't managed properly. Signed-off-by: Tejun Heo [PATCH] via-velocity: removal of unused velocity_info.xmit_lock Removed unused velocity_info.xmit_lock. Signed-off-by: Tejun Heo [PATCH] via-velocity: velocity_give_rx_desc() removal In velocity_give_rx_desc(), there should be a wmb() between resetting the first four bytes of rdesc0 and setting owner. As resetting the first four bytes isn't necessary, I just removed the function and directly set owner. Another rationale for removing the function: The function doesn't handle synchronization. We should do wmb() before calling the function. So, I think using bare assignment makes the fact more explicit. Signed-off-by: Tejun Heo [PATCH] via-velocity: received ring wrong index and missing barriers There were several receive ring related bugs. In velocity_give_many_rx_descs(), index calculation was incorrect. This and bugs in velocity_rx_srv() described in the following paragraph caused packet loss, truncation and infinite error interrupt generation. In velocity_rx_srv(), velocity_rx_refill() could be called without any dirty slot. With proper timing, This can result in refilling yet unreceived packets and pushing dirty pointer ahead of the current pointer. And vptr->rd_curr which is used by velocity_rx_refill() was updated after calling velocity_rx_refill() thus screwing receive descriptor ring. Also, between checking owner and reading the packet, rmb() is missing. Signed-off-by: Tejun Heo [PATCH] via-velocity: early invocation of init_cam_filter() In velocity_init_registers(), init_cam_filter() clears mCAMmask which might have been set by set_multi() (not sure if this can ever occur). Modified to invoke init_cam_filter() first. Also, clear_isr() is called twice. Removed the first invocation. In velocity_found1(), there was a unneeded assignment from vptr to dev->priv. Removed. Signed-off-by: Tejun Heo [PATCH] via-velocity: removal of incomplete endianness handling Removed cpu_to_le32 call on OWNED_BY_NIC. This will produce 0x01000000 on big endian machines while rdesc0.owner still evaluates to 0x00000000 or 0x00000001. BTW, unless we reorder bit fields on big endian machines or use u32's and cpu_to_le32'd bit mask macros, current code won't work on big endian machines. Signed-off-by: Tejun Heo [PATCH] via-velocity: wrong buffer offset in velocity_init_td_ring() Buffer offset calculation was incorrect in velocity_init_td_ring(). This didn't cause any trouble because we only use the first td ring. Signed-off-by: Tejun Heo [PATCH] via-velocity: comment fixes Comment fixes. Signed-off-by: Tejun Heo [ARM] Fix params_phys with PIC decompressor builds. [ARM PATCH] 2122/1: S3C2410 - Documentation updates Patch from Ben Dooks Added documentation for the GPIO calls, updated the overview with more information on the supported core devices, and updated the state of the EB2410ITX Signed-off-by: Ben Dooks [ARM PATCH] 2124/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-spi.h Patch from Ben Dooks Header file defining S3C2410 SPI registers Signed-off-by: Klaus Fetscher Signed-off-by: Ben Dooks [ARM PATCH] 2123/4: S3C2410 - GPIO IRQ IRQ Filtering and pin number patch Patch from Ben Dooks Fixed GPG pin numbering, and missing changelog Added code to setup the interrupt filtering on compatible Pins Signed-off-by: Ben Dooks [IA64] perfmon2 fasync fix the pfm_fasync() function must not lock the context and mask interrupts because the fasync_helper() function may allocate memory and this could lead to sleeping, due to SLAB_KERNEL memory type, if no memory is available. Going to sleep with interrupts mask is not allowed otherwise you have a deadlock. The locking of the context is not necessary in this function because it is protected by caller via get_fd()/put_fd(). The async_queue is also protected. Serialization to pfm_fasync() is also ensured by caller. The fix is to drop the PROTECT_CTX() and UNPROTECT_CTX() calls. signed-off-by: stephane eranian Signed-off-by: Tony Luck [IA64] signal.c: fix wrong argument order in __copy_to_user() call Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] ptrace.c: Fix unchecked user-memory accesses due to ptrace_{get,set}regs() Here is another fix for a sparse-detected bug: turns out ptrace_getregs() and ptrace_putregs() did unchecked user-memory accesses! These were tricky to see, so it's not surprising that they went unnoticed so far. Fortunately, sparse can detect these trivially. Patch below should fix the problem, but it's completely untested (I don't have any testcases for getregs/putregs). These were found by sparse. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] fix argument-order in access_ok() call from csum_partial_copy_from_user Another sparse-detected bug. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [IA64] Don't directly deref user pointers. copy_siginfo_from_user32() directly dereferences a user-pointer, which is a no-no. At that point, to->si_code already has been initialized so I think we can just use to->si_code instead. Compile-tested (only) patch attached. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [SERIAL] Pick nearest baud rate divider From: Roger Blofeld This patch modifies uart_get_divisor to select the nearest baud rate divider rather than the lowest. It minimizes baud rate errors. For example, if uartclk is 33000000 and baud is 115200 the ratio is about 17.9 The current code selects 17 (5% error) but should select 18 (0.5% error) Signed-off-by: Andrew Morton Signed-off-by: Russell King drm: Stop i830 and i915 both being build at same time Roman Zippel submitted this to lk but I missed it, it does what I tried to do badly before. Signed-off-by: Dave Airlie [SERIAL] Fix warning and remove mach-types.h include - s3c2410 doesn't use mach-types.h - remove unused 'ret' variable [PATCH] Fix error path in Video4Linux dpc7146 driver The I2C adapter wasn't de-registered correctly in case the video card wasn't found. When the I2C subsystem tried to speak with the dangling I2C adapter later on, usually an oops happened. [ARM] Add save_time_delta()/restore_time_delta() These two functions provide the infrastructure to manage time keeping across a suspend/resume cycle. [IPVS]: Fix endian problem on sync message size. Here is the patch from Justin Ossevoort to fix endian problem on IPVS sync message size. Signed-off-by: David S. Miller [IA64] sparse 0 vs. NULL cleanup patch Sparse really wants NULL for NULL-pointers. This patch makes it so. The patch should be safe. It compiles fine, creates no additional warnings, and the results has been boot-tested on an rx2600. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] sparse "long" constant cleanup patch Sparse wants us to be clear about (unsigned) long constants. Make it so. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] minimal sparse-enablement; add __user annotations This enables sparse for ia64 and adds a basic set of __user annotations. Apart for sys_execve() and the uaccess.h changes, the patch is trivially safe. Also note that in gcc_intrin.h, I changed "asm __volatile" to "asm volatile" since sparse didn't like the old version (and it's a "strane" version anyhow). Patch has been (boot) tested. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] sparse __iomem annotations This patch adds __iomem annotations. The only less-than-trivial part of the patch is the change of ipi_base_addr from "unsigned long" to "void __iomem *" but even that part should be safe. The patch results in additional warnings from certain drivers (e.g., eepro100.c) but the warnings are harmless and just indicate that the offending drivers need to be updated for the more strict __iomem checking. The patch has been boot-tested. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [IA64] minor sparse cleanups Here are three more sparse-triggered fixes which didn't fit anywhere else. The first one gets rid of some quoting in palinfo.c which sparse doesn't like. This used to be necessary because GCC would otherwise warn about an unknown trigraph. That's not a problem anymore since the kernel is now being compiled with -Wno-trigraphs. The efirtc.c patch is mostly sparse-annotations but also cleans up trailing whitespace. Finally, the bitfields in rwlock_t are changed to be explicitly "unsigned" to avoid a warning from sparse (it doesn't like 1-bit signed bitfields in particular). Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck [NET]: Fix race between neigh-timer_handler and neigh_event_send Fix a race between neigh_timer_handler() calling down to arp_solicit() with an sk_buff peeked from the head of the neigh->arp_queue, and neigh_event_send() unqueuing and freeing the head of the same queue because it's reached the maximum length of 3, by taking an extra sk_buff reference while holding neigh->lock. Signed-off-by: Greg Banks Signed-off-by: David S. Miller [CRYPTO]: Add __init and __initdata to aes.c This patch from Herbert V. Riedel adds __initdata to the generic AES code where appropriate. I also added __init to f_mult(). Signed-off-by: Herbert V. Riedel Signed-off-by: James Morris Signed-off-by: David S. Miller [NET]: Fix fddi_statistics for 64-bit There is a problem with "struct fddi_statistics" for 64-bit systems. The starting members of the struct are expected to correspond to the respective members of "struct net_device_stats" (drivers for FDDI devices return "struct fddi_statistics" in the response to the get_stats() call of "struct net_device"). Unfortunately, due to using different types (u32 vs ulong) they do not. "struct net_device_stats" is a public interface and as a result, bogus results are retrieved, e.g. for /proc/net/dev. Here is my proposal to address the problem. I think there is no point in duplicating the layout of "struct net_device_stats" in "struct fddi_statistics" as the former can simply be included as a member avoiding this problem and actually any possible discrepancy in the future. This also preserves the layout of the structure for 32-bit systems. Signed-off-by: Maciej W. Rozycki Signed-off-by: David S. Miller [IPV4]: Set ARP hw type correctly for BOOTP over FDDI. Signed-off-by; Maciej W. Rozycki Signed-off-by: David S. Miller [IPV4]: Permit the official ARP hw type in SIOCSARP for FDDI. Signed-off-by; Maciej W. Rozycki Signed-off-by: David S. Miller [DECNET]: Mark myself as maintainer. Signed-off-by: Patrick Caulfield Signed-off-by: David S. Miller [PKT_SCHED]: Remove useless line in cbq_dump_class Remove useless line in cbq_dump_class probably introduced by copy&paste from cbq_dump. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [NET]: Generic network statistics/estimator Work done by Thomas Graf and Jamal Hadi Salim The following patchset introduces generic network statistics for netlink users. It uses nested TLV which prevents further compatibility problems when introducing new statistics. Backward compatibility to existing TLV types TCA_STATS and TCA_XSTATS is ensured but can be easly removed once it is no longer needed. Therefore prior users of struct tc_stats can be converted to this API and existing userspace applications will not notice a difference while converted applications can use the new extendable statistic interface. Changes: - Add generic network statistics API for netlink users. - Introduces a generic rate estimator based on timers. Patch is based on Jamals patch and adapted to the new generic network statistics API. - Add documentation of generic network statistics and estimator API. Signed-off-by: Thomas Graf Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [PKT_SCHED]: Make rate estimator work on all platforms. Fixes the existing rate estimator to compile cleanly on all platforms and avoids carrying on the variance on platforms with HZ%4 != 0. Signed-off-by: Thomas Graf Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [ARM] Fix missing definition for OVERCOMMIT_ALWAYS [NET]: Fix secure tcp sequence number generation Ted's recent random.c update broke the periodic rekeying: schedule_work() doesn't provide synchronization. Additionally the first syn values after boot are generated with secret 0 - not good. Attached is a big cleanup. Linus asked me to send to to you for merging: The tcp sequence number generator needs a random seed that is reset every few minutes. Since the sequence numbers should be constantly increasing, for each rekey 2^24 is added to the sequence number. The actual use of the sequence number generator is lockless, synchronization is achieved by having two copies of the control structure. The attached patch: - fixes a race in rekey_seq_generator(): schedule_work doesn't provide synchronization. - Uses schedule_delayed_work() for the rekey: simplifies synchronization and speeds up the hot path. - Adds a late_initcall for the first initialization after boot. init_call would be too early, I've checked that the late_initcall runs before net/ipv4/ipconfig.c, i.e. the BOOTP/DHCP autoconfiguration. Signed-Off-By: Manfred Spraul Signed-off-by: David S. Miller [SKBUFF] introduce eth_hdr(skb) This is the start of a series of patches to remove protocol specific stuff out of include/linux/skbuff.h and to make the struct sk_buff header pointers private, i.e. they will only be accessible thru foo_hdr(skb) and some other accessor functions. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [BRIDGE] convert __constant_htons(constant) to htons Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller Remove test for __linux__ in auth_gss.h. It's not necessarily even true when cross-compiling the kernel, and the right thing to do is check for __KERNEL__ (which we already do, one line up). [PATCH] Fix task_hot() balancing This fixes the integer underflow in task_hot() noticed by Kenneth W Chen and makes use of p->last_ran to separate load-balancing timestamps (used by task_hot()) from interactivity timestamps. (which two interfered) compiled, booted on x86 SMP. Confirmed by Kenneth Chen to fix the db transaction processing workload that showed the balancing problem. Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds Fix up CHECKFLAGS definitions More recent versions of sparse do not define the Linux-specific default defines, so we make the main Makefile default to the regular Linux preprocessor defines (__linux__, linux, __STDC__ and unix, __unix__). Also, sparse has long since fixed the default empty define to be "1" as in regular C, so remove the unnecessary "=1" from the architecture-specific sparse CHECKFLAGS. pcmcia: add iomem sparse annotations. It was pretty clean already, adding the proper annotations to the base pointers and a few functions was all it took to make sparse happy about the PCI accesses. prism54: iomem annotations. sparse still complains about the games the driver plays with user pointers, though. i386: mark do_test_wp_bit() noinline As reported by Zachary Amsden , some gcc versions will inline the function even when it is declared after the call-site. This particular function must not be inlined, since the exception recovery doesn't like __init sections (which the caller is in). [SPARC64]: Make kprobe implementation more robust. Switch over to use the single-step scheme which x86 uses which is to execute the kprobe instruction in the kprobe->insn[] area. Also, make sure the kprobe execution runs fully with interrupts disabled, so we do not deadlock. This required adding code to fix things up as a result of the instruction executing at a PC which is different from where it would normally execute. For example, if the instruction is a PC-relative branch, we have to adjust the final PC value. Signed-off-by: David S. Miller [TCP]: Show all SYN_RECV sockets in /proc/net/tcp I was fixing the tcp_diag so that it shows SYN_RECV sockets properly. I found that /proc/net/tcp didn't do it correctly either. So here is a small patch to fix /proc/net/tcp. The logic in there stinks though so I'd love to see a rewrite. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [INET]: Fix ECN encapsulation. We broke ECN encapsulation in tunnels recently. Without this patch, even though encapusulated (inner) packet is 'not-ECN', encapusulating (outer) packet is sent with 'ECT(0)' set. This is wrong and should be 'not-ECN.' This patch fixes up. From RFC3168: The full-functionality option for ECN encapsulation is to copy the ECN codepoint of the inside header to the outside header on encapsulation if the inside header is not-ECT or ECT, and to set the ECN codepoint of the outside header to ECT(0) if the ECN codepoint of the inside header is CE. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [TCP]: Fix bug that hid sockets in tcp_diag This patch squashes a bug in tcp_diag which was created when the sk_* loops replaced the original for loops. It's a pity that these sk_*/hlist_*/list_* loops don't take an arbitrary expression as an argument for continue. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] DAC960 iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] sx8 iomem and endianness annotations + endianness bugfix fixed bug: le32_to_cpu(desc->size_hi) is broken on big-endian, since ->size_hi is 16bit. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more new struct initializers Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] more NULL noise removal in drivers/scsi trivial junk that had been hanging arond in my tree for months now... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] arcnet iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] romfs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hton* and ntoh* endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] udf endianness annotation fix udf/balloc.c::find_next_one_bit() had been confused about types... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] fs/partitions endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] quota endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (1/7): constants sanitized That's the beginning of ncpfs endianness cleanup. * converted fixed-endian constants to little-endian (i.e. replaced htons(0xCDAB) with cpu_to_le16(0xABCD), etc.). These guys _are_ little-endian and make much more sense that way, even aside of annotation issues. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (2/7): date handling cleanup trivial cleanup: endianness conversions pulled into ncp_date_dos2unix() and ncp_date_unix2dos() from their callers. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (3/7): be32 handling in marshalling New helper in marshalling code: ncp_add_be32() Takes host-endian argument, converts to big-endian and stores into packet we are building. A bunch of places in ncplib_kernel.c converted to using it. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (4/7): be16 handling in marshalling New marshalling helpers - ncp_add_be16() and ncp_reply_be16(). Encode and decode a big-endian 16bit field resp. A bunch of places in ncplib_kernel.c switched to usign these. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (5/7): le16 handling in marshalling New helper: ncp_reply_le16() (decode 16bit little-endian). ConvertToNWfromDWORD() cleaned up and fixed (it used to have one too many le16_to_cpu() in arithmetics, on top of ugly tricks with memcpy() et.al.). ncp_reply_word() has no callers left; removed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (6/7): trivial endianness annotations 100% straightforward annotations - from gcc POV no code had been changed. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ncpfs (7/7): misc fixes and cleanups * remaining endiannes cleanups * don't mess with setting finfo.i.dataStreamSize when creating the root directory inode; that field is ignored when populating in-core directory inodes. * missing cpu_to_le16() in ncp_search_for_fileset() (for big-endian clients server sees 0xff7f instead of intended 0x7fff). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] isofs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ufs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ufs endianness bugfixes missing conversions from on-disk to host-endian in a couple of places... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] i2o_config __user annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cciss endianness and iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] cpqarray iomem annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] umem iomem and (partial) endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfs endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfsplus endianness annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] hfsplus endianness bugfix hfs_bnode_read_u8() always returns 0 on little-endian (cut'n'paste bug - function is almost exact copy of its u16 counterpart, but be16_to_cpu() should've been removed here). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] ohci bugfix for big-endian 64bit boxen ->dma can be a 64bit variable on 64bit boxen; its value will fit into 32 bits just fine (due to dma mask). However, cpu_to_le32p(&...) will break if we are on a 64bit big-endian; we'll end up up passing it the address of upper 32 bits and get 0 instead of correct value. Fix is trivial... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] isd200 bugfix for 64bit boxen unsigned long is not a good type to use in declaration of structure we feed to hardware... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] trivial usb endianness annotations trivial endianness annotations in drivers/usb (apply after ohci and isd200 fixes). Note: drivers/usb is nearly endian-clean at that point; there are several very dubious places in there (in particular, rtl8150, pegasus and usbnet are almost certainly broken in mii-related code on big-endian hosts); I'm leaving them alone for now. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] amd64 iomem initial annotations Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [PATCH] remove get_cpu_ptr() Ingo points out that it's unusable anyway, because with some configs the get_cpu() is evaluated and with others it is not. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix PFC1_EPS and PFC1_EPS_SHIFT for IBM440GX While writing some BSP code for a 440GX custom board, I noticed, that the DCRN_SDR_PFC1_EPS and DCRN_SDR_PFC1_EPS_SHIFT definitions are wrong and therefore the functions ibm440gx_get_eth_grp() and ibm440gx_set_eth_grp() won't work correctly. Signed-off-by: Matt Porter Signed-off-by: Gerhard Jaeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: export "indirect" DCR helpers this trivial patch adds missing exports for "indirect" DCR helpers - __mtdcr & __mfcdr. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: sync ppcboot.h with U-Boot This puts us back in sync with current U-Boot CVS tree board info definition. Please apply. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add U-Boot support to Ocotea/440GX port Adds support for booting the same Ocotea kernel from either the default PIBS f/w or U-Boot. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix several warnings Fixes some annoying warnings due to unitialized variables. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: squash EEH warnings A slightly non-ideal version of the recent patch which fixed EEH being a no-op went in. The srcsave variable in eeh_memcpy_to_io() is now never referenced on non-pSeries machines, and so spews hundreds of warnings. The variable doesn't actually accomplish anything, so this patch gets rid of it. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove redundant #ifdef CONFIG_ALTIVEC arch/ppc64/kernel/process.c has an #ifdef CONFIG_ALTIVEC within an #ifdef CONFIG_ALTIVEC. This patch removes the inner one. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix HPET_HACK_ENABLE_DANGEROUS From: The following patch fixes compilation of time.c with HPET_HACK_ENABLE_DANGEROUS turned on. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix oops with multiple MCEs Fix oops when multiple MCE entries are logged. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix profile_pc This fixes profile_pc to work properly on x86-64 and not crash. It does now a simple backtrace to the caller of the spin lock without requiring a frame pointer for this. Frame pointer support has been dropped because it never worked. There is still a small race window, but the only way to avoid it would be to rewrite kernel/spinlock.c in assembler again. The race will account a profile tick the the parent of the spinlock caller. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: remove CONFIG_FRAME_POINTER CONFIG_FRAME_POINTER has never worked on x86-64 because it never passed -fno-omit-frame-pointer to the compiler, and that is the only way to get a frame pointer on x86-64. It also causes complications with profiling. Drop it. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix circular dependency with UNORDERED_IO Fix a circular dependency Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: avoid a deadlock during panic Avoid a deadlock during panic. Don't take the smp_call_function lock in smp_send_stop() Also fix the documentation to conform to Linux standards. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: don't corrupt interrupt flag on timer resume Don't corrupt interrupt flag in time resume Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: make in_gate_vma() safer x86-64 in_gate_vma would take a read lock on the VMA when the passed address was inside the 32bit vsyscall page. This would be called by get_user_pages, which already holds the mmap_sem. Unfortunately some callers of get_user_pages hold the mmap_sem for writing, which could in theory cause a deadlock. I think it can currently not happen because the only users who hold it for write before calling gup() are coredump and AIO in the ring setup, and both should not ever access the vsyscall page. But not taking the semaphore is safer and avoid this here. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Disable SW irqbalance/irqaffinity for E7520/E7320/E7525 - change TARGET_CPUS on x86_64 Set TARGET_CPUS on x86_64 to cpu_online_map. This brings the code inline with x86 mach-default. Fix MSI_TARGET_CPU code which will break with this target_cpus change. Signed-off-by: Suresh Siddha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: add newline before MCE (cosmetic) print newline before MCEs Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: fix tss off by one From: "Siddha, Suresh B" Fix off by one in TSS limit. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: update ioremap routine Here is a patch to update ioremap*.c for m32r, taken from "Add __iomem modifier to the return value type of __ioremap() for much stricter type-checking." * arch/m32r/mm/ioremap.c: ditto. - Add __iomem modifier to the return value type of __ioremap() for much stricter type-checking. * arch/m32r/mm/ioremap-nommu.c: ditto. * include/asm-m32r/io.h: - Modified for much stricter type-checking. - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers/m5.[ch] this is a 2.4ish block driver that doesn't have the slightest chance to actually build. It's also not connected to the build at all. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers/cs_internal.h completely unused wrapper Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove unused arch/m32r/kernel/io_m32102.c Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove unused arch/m32r/m32700ut/m32r-flash.c Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: remove arch/m32r/drivers Remove obsolete m32r-specific driver files, which are no longer used. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: makefile fix for .lds scripts. Remove uml.lds and dyn.lds from extra-y; this was a relict from the recent past. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: makefile whitespace fix Change the spacing for this command to fix alignment on output. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Remove rest of legacy arch/m32r/drivers directory [AGPGART] Fix sign extension bug in amd64 gart driver. From Terrence Ripperda at NVidia. Signed-off-by: Dave Jones [AGPGART] Really add Intel i915 AGPGART Support. Whoops. Missing entry in the PCI ID tables. Spotted and fixed by someone at SuSE. Fished out of SuSE's kernel tree by Christoph Hellwig Signed-off-by: Dave Jones [IPV6]: Set skb->dev in ip6_pkt_discard_out. Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller Fix up signed one-bit bitfields in core sound code [SKBUFF] use eth_hdr(skb), skb->mac.raw cases Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [IA64] Don't hardcode offsets in thread_info We had hardcoded defines for TI_TASK TI_EXEC_DOMAIN, TI_FLAGS, TI_CPU, TI_ADDR_LIMIT, TI_PRE_COUNT, TI_RESTART_BLOCK; but only two of these were ever used. Remove all from thread_info.h, and generate the two that we do use (TI_FLAGS and TI_PRE_COUNT) in asm_offsets.c Patch supplied by Zou Nan hai Signed-off-by: Tony Luck [IA64] fix UP build Put back a secondary declaration of ipi_base_addr in hardirq.h. It really is needed for UP builds and there doesn't seem to be an easy way to avoid include-hell otherwise. Signed-off-by: davidm@hpl.hp.com Signed-off-by: Tony Luck [SKBUFF] introduce tr_hdr(skb) The token ring code in the kernel is bitrotting (no surprise :) ), it uses skb->data all around... I have an assortment of token ring cards but no MAU, can anybody send me one, please? I promise to make ssh work over LLC over Token Ring networks! Duh... :o) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [ARM PATCH] 2127/1: S3C2410 - fix compile error in serial driver Patch from Ben Dooks Fixes compile error in serial driver for S3C2410 until the new serial driver can be finished Signed-off-by: Ben Dooks [ARM PATCH] 2129/1: S3C2410 - fix set_irq_type() for EINT0..EINT3 Patch from Ben Dooks Fix the set_irq_type() for EINTs 0 through 3 Cleaned up the inital clearing of any pending IRQs Signed-off-by: Klaus Fetscher Signed-off-by: Ben Dooks [ARM PATCH] 2130/1: PXA255 Errata #31 fix for sleep.S Patch from Ben Dooks Fix Intel Errata #31 for PXA CPUs, where the state of some external lines can be indeterminate over sleep if PXBus >=133MHz on suspend Signed-off-by: Ben Dooks [ARM PATCH] 2133/1: params_phys is not available on PXA and apears to be ARCH_RPM specific anyway Patch from Ian Campbell Arecent changeset[0] that changed params into an asm function call broke the PXA build since PXA does not define PARAMS_PHYS therefore the params_phys variable is never defined and linking arch/arm/boot/compressed/head.S fails. The function is defined in include/asm-arm/arch-rpc/uncompress.h and so I assume it is dependendant on CONFIG_ARCH_RPC. I can't find any use of it outside this file. Signed-off-by: Ian Campbell [LLC] set mac.raw if tr_source_route is called Thanks to Thomas Graf for spotting this. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [SPARC64]: Kill sparse warning in power.c Signed-off-by: David S. Miller [SPARC64]: Use __iomem in chmc.c Signed-off-by: David S. Miller [SPARC64]: Add missing __user annotation to sys_sparc32.c Signed-off-by: David S. Miller [SPARC64]: Add __user annontation to ELF_CORE_COPY_REGS(). Signed-off-by: David S. Miller [PATCH] NX: fix read_implies_exec() related noexec-fs breakage mmap() done from older !pt_gnu_stack binaries on noexec mounted filesystems could fail due to the extra PROT_EXEC bit. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PCI Hotplug: Use before NULL check in shpchp_ctrl More fun found with the coverity checker. Signed-off-by: Dave Jones Signed-off-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds [SPARC64]: Missing __user annotations for asm/checksum.h Also, while we are here, s/__inline__/inline/ Signed-off-by: David S. Miller [PATCH] ppc64: Fix find_udbg_vterm() The find_udbg_vterm() used to initialize the early boot console on LPAR machines will not work properly on some recent pSeries because the firmware is playing tricks with the "phandle" values used to identify firmware nodes. This patch fixes that by using the full path instead. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [IA64] sparse annotations and cleanups for ia32 subsystem + Add sparse annotations to ia32 subsystem so it checks out cleanly. + Add set_fs(KERNEL_DS) in elfcore32.h + Use compat_ptr() instead of P() + Fix a bug in ia32_sigsuspend() by introducing __ia32_rt_sigsuspend() Signed-off-by: David Mosberger-Tang Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [IA64] Added support for the new syscall sys_waitid() Signed-off-by: Arun Sharma Signed-off-by: Tony Luck [PATCH] ppc64: update g5_defconfig This updates the g5_defconfig, among others, it adds irq stacks, hugetlbfs and cramfs (later is needed for ppl trying to install fedora, and so often forgotten that I prefer adding it to the defconfig). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] APIC physical broadcast for i82489DX The physical broadcast ID is determined incorrectly for the i82489DX, which uses 8-bit physical addressing (32-bit logical). Signed-off-by: Maciej W. Rozycki Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds [PATCH] Fix ide-cs resource management PCMCIA resource management is no longer brain dead, and acts just like any other bus subsystem. Therefore, there's no need to play games with the resource subsystem anymore. Signed-off-by: Russell King Signed-off-by: Linus Torvalds [SUNGEM]: Use NETDEV_TX_foo instead of magic constants. Signed-off-by: David S. Miller [ARM] Add decompressor support for ARMv6 caches. [PATCH] Use cache_decay_ticks instead of a constant This patch, based on Ken Chen's patch, changes the default 2.5 msec migration-cutoff value to be based on cache_decay_ticks, which is what we used for a long time prior the sched-domains code. (If an architecture does not set cache_decay_ticks then 2.5 msec is used.) This causes the following new migration-cutoff values on various SMP systems: x86, variable: 2-way celeron 466MHz, 128K: 2.5 msec -> 1.0 msec 2-way/4-way 2.2 GHz P4 Xeon 1MB: 2.5 msec -> 2.0 msec 8-way P3 700 MHz Xeon 2MB: 2.5 msec -> 6.0 msec x64, variable: amd64: 2.0 GHz, 1MB: 2.5 msec -> 1.5 msec em64t: 3.4 GHz, 1MB: 2.5 msec -> 3.0 msec ppc64 [*]: 2.5 msec -> 2.5 msec (constant) ia64: 2.5 msec -> 10.0 msec (constant) [*] ppc64 does not set cache_decay_ticks so we fall back to the default. I believe in light of previous testing we could attempt this for 2.6.9 as well. (Note: that the 2.6.9-rc3 patch looks similar but needs to patch kernel/sched.c. Note2: this patch is different from Ken's original one.) Signed-off-by: Ingo Molnar Signed-off-by: Ken Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vmscan: handle empty zones There's a lockup condition where kswapd ensounters an empty zone which has all its metadata set to zero. Fix that by adding explicit checks for empty zones and just skip over them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cdrom generic_packet oops fix Add dummy ->generic_packet() for devices that don't provide one. It will error all commands with "unknown opcode" 0x05/0x20/0x00 sense and return -EIO. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix random crashes in x86-64 swsusp fix_processor_context was calling functions marked __init on x86-64; bad idea. Thanks to Rafael for keeping notifying me about this bug. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kprobes exception notifier fix 2 This patch adds a few NOTIFY_STOP missed out in the eariler patch. Signed-Off-By: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: move some common PPC44x code to ibm44x_common.c This is first part (trivial one) of the ebony.c/ocotea.c cleanup, which moves common stuff to ibm44x_common.c. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix ans-lcd compilation This patch fixes ans-lcd compilation error and warnings. See http://bugzilla.kernel.org/show_bug.cgi?id=3497 Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix warning in arch/ppc/pmac/simple/misc.c Fixes a "variable might be used uninitialized". As usual it's a harmless warning because it can't really be, but that cleans the compilation's output :) Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Kconfig cleanups Now that the PPC64 code supports more platforms than just pSeries and iSeries, some p/i specific Kconfig options need to be updated accordingly. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: add generic ptrace requests When we don't know how to handle ptrace(2) calls, call the arch-independent ptrace_request like i386 (and I guess other archs) do, instead of returning -EIO. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix get_user warning Adds some more parenthesis for a macro arg to fix a warning (which was in kernel/uid16.c). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: remove wrong declaration Avoid compile failure due to the addition of sys_timer_create to linux/syscalls.h Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix fd leak with HostFs On 2.4 we used force_delete() to make sure inode were not cached, and we then close the host file when the inode is cleared; when porting to 2.6 the "force_delete" thing was dropped, and this patch adds a fix for this (by setting drop_inode = generic_delete_inode). Search for drop_inode in the 2.6 Documentation/filesystems/vfs.txt for info about this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: fix major & minor handling in hostfs Currently hostfs passes the rdev value from stat() on the host as rdev value to return to stat() on the guest; but we cannot pass rdev as is because glibc and the kernel disagree about its definition. So we must decode it in a major/minor couple with glibc macros and re-encode it in kernelspace code. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix module exports for G5 Some stuffs in ppc_ksyms.c where still #ifdef CONFIG_PPC_PSERIES, which is no longer set for PowerMac-only configs. Change them to depend on CONFIG_PPC_MULTIPLATFORM for now. Later on, a bunch of these will be just gone since those are mostly deprecated functions and I'll move the exports close to the actual functions. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] PPC64: Remove degree symbol from rtas-proc.c Alan Cox pointed out that the degree symbol in the thermal sensor proc files that we have on ppc64 cause problems for people using other locales or UTF-8. This patch makes them disappear. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] PPC64 Replace cmp instructions with cmpw/cmpd There were a few places in assembly code in the ppc64 part of the kernel where we were using the old forms of the compare instruction (cmp, cmpi, cmpl, cmpli) which don't specify the operand size (word or doubleword). These have been accepted for a long time for backward compatibility with the old POWER architecture (and defaulted to a 32-bit comparison) but are now being rejected by the latest versions of binutils. Some of them were actual bugs in that they were on things which were actually 64-bit values such as pointers (not that any of them actually caused a problem in practice). This patch replaces cmp{,l}{,i} with cmp{,l}[wd]{,i} as appropriate. The original patch was from Segher Boessenkool, slightly modified by me. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [PATCH] PPC64 Replace cmp instructions with cmpw/cmpd On Fri, 2004-10-08 at 15:37 +1000, Paul Mackerras wrote: > This patch replaces cmp{,l}{,i} with cmp{,l}[wd]{,i} as appropriate. > The original patch was from Segher Boessenkool, slightly modified by > me. And also for ppc32 and arch/ppc64/kernel/ItLpQueue.c... Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds [ARM] Remove cache type check before flushing ARMv6 cache. We do not need to check which type of cache we have before using using the Harvard or von Neumann cache instructions - the unimplemented instructions are defined to be NOPs. [ARM] Mark source for copy_page const. [ARM] Ecard initialisation tweaks. Start ecard_task at initialisation time. Statically initialise ecard wait queue head. [ACPI] fix allmodconfig build Signed-off-by: Andrew Morton [ACPI] x86_64 build fix Signed-off-by: Andrew Morton [ARM] ecard.c: Make the ecard task completion per request. [ARM] ecard.c: pass a function pointer for kecardd [ARM] ecard.c: Remove unnecessary context checks. [PCMCIA] Improve locking for memory resource probing. - Pass a mask of the regions we wish to be probed to validate_mem - Only take s->skt_sem if we need to probe resources on a socket This prevents a deadlock reported by Adam Belay caused by ds.c waiting with the socket semaphore held for userspace to respond. Meanwhile, userspace may under some rare circumstances issue a request to read tuples from the card, which tries to take the socket semaphore again. Update ray_cs Raylink/WebGear wireless driver. This adds iomem annotations, cleans up the code, fixes an oops at unload time, and builds in the wireless extensions that were not getting enabled due to an obsolete CONFIG_NET_PCMCIA_RADIO test. Tested by Jean Tourrilhes, who pointed out the wireless extensions problem. [ACPI] fix double quoted params such as acpi_os_string="a b c" by Christian Lupien http://bugzilla.kernel.org/show_bug.cgi?id=3242 [ACPI] thermal module race condition/memory leak (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=3231 [ACPI] acpi4asus update: support W1N, v0.29 Signed-off-by: Karol Kozimor [ACPI4ASUS] acpi_bus_register_driver() return code Signed-off-by: Karol Kozimor [ACPI4ASUS] support M6700R laptops Signed-off-by: Karol Kozimor [ACPI4ASUS] globalize hotk structure This cleans the code up a bit, but mainly allows most functions to be called externally when need (read: video driver) arises. Signed-off-by: Karol Kozimor drm: remove unused dma support remnants. These are unused since the gamma driver was dropped, they cause problems with the via driver (coming soon). Signed-off-by: Dave Airlie drm: cleanup header includes into one drm_core.h include This patch just cleans up the fact that all drm drivers include a bunch of header files, it places them into one place (drm_core.h) and uses that. From: Jon Smirl Signed-off-by: Dave Airlie [PATCH] i2o.h fix i2o.h uses stuff defined in linux/dma-mapping.h but includes asm/dma-mapping.h instead. It works by accident on some platforms (they end up pulling linux/dma-mapping.h from asm-generic/pci-dma-compat.h before it hits the fan), but breaks on e.g. alpha. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds [ARM PATCH] 2073/3: Hynix h720x architecture support Patch from Sascha Hauer This patch supports the Hynix developer boards h7201 and h7202 for the HMS30C7201 and HMS30C7202 CPUs. Changes to previous patch: - reorganized file structure. We now have common.c which shares stuff common to all h720x processors and cpu-h720[12].c files for the cpu specific stuff - fixed timer handling for timers 1/2 - cleaned up h720x register definitions and splitted in files specific to each cpu and one generic part Signed-off-by: Thomas Gleixner Signed-off-by: Robert Schwebel Signed-off-by: Sascha Hauer [PATCH] pc110pad.c request_region() fix request_region() returns NULL if failed. The driver gets it wrong. Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] pm: console driver fixes Fix warnings in kernel/power/console.c by only declaring orig_fgconsole and orig_kmsg when required by SUSPEND_CONSOLE. Restore kmsg_redirect on resume. Signed-off-by: Ian Campbell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] hugetlb: initialize sb->s_maxbytes hugetblfs appears not to support the creation of files larger than 2GB. hugetlbfs_vmtruncate() checks against the s_maxbytes member of the super block and returns EFBIG if the requested file size is too large. Signed-off-by: Guy Cardwell Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] therm_adt746x: various fixes This one removes the other occurences of "°C"; fixes displayed fan speed so that it uses the same scale than other occurences of this parameter instead of RPM only; fixes the RPM reading of the fan so that it shows zero instead of 82 when it is effectively stopped. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: core changes From: Christian Borntrdger From: Martin Schwidefsky From: Thomas Spatzier s390 core changes: - Add default storage key and introduce page_{set,get}_storage_key. - Fix access to siginfo in copy_siginfo_from_user32. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer Common i/o layer changes: - Fix error handling in io_subchannel_register. - Fix __MAX_SUBCHANNELS limit checking. - Clear slow_subchannel structure after kmalloc. - Update ssd_info if a different device appears at an already known subchannel to get the correct set of chpids. - Avoid struct initializers to reduce stack usage of ccwgroup_create, readall_cmb and io_subchannel_recog, - Setup fields in pmcw in each retry because msch might fail and a stsch overwrites them. - Prevent irq_exit() in cio_tpi from calling do_softirq by adding a local_bh_disable/__local_bh_enable pair. - Retry sense id after receiving an unsolicited interrupt. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dasd driver dasd driver changes: - Free memory returned by read_conf_data. - Add warning message if use_diag is specified with a non-CMS formatted device. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: z/VM monitor stream z/VM monitor stream changes: - Reduce stack usage of appldata_get_mem_data. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: dcss changes DCSS block device driver changes: - Add module/kernel parameter for loading segments. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth network driver qeth network driver changes: - Unlock queue in qeth_do_sent_packet if there is no empty buffer in packing state. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] alpha: cpu mask fix-ups broke SMP DP264 machines in 2.6.8 The cpu mask fix-ups in 2.6.8 broke SMP kernels booting on a DP264. Instead of not setting the DIM for cpus that did not exit, the patch inadvertently doesn't set the DIM for CPUs that do exist. Thus no device interrupts get to the cpu. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Remove get_cpu_ptr() comment reference Since get_cpu_ptr() went away, we probably shouldn't tease developers by telling them to use it in the comments. Signed-off-by: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc32: fix warning for changed section attributes This fixes the "Ignoring changed section attributes" warning by commenting out the attributes appended by gcc. The previous 'fix' created a section '.text,#alloc' (literally), which I guess was not intended. Signed-off-by: Clemens Buchacher Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix Neomagic configuration dependency FB_NEOMAGIC needs FB_MODE_HELPER (for vesa_modes). Reported by Michel Angelo da Silva Pereira. Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds [ide] ide-dma blacklist behaviour broken From: Jens Axboe The blacklist stuff is broken. When set_using_dma() calls into ->ide_dma_check(), it returns __ide_dma_off() for a blacklisted drive. This of course succeeds, returning success to the caller of ->ide_dma_check(). Not so good... It then uncondtionally calls ->ide_dma_on(), which turns on DMA for the drive. This moves the check to __ide_dma_on() so we also catch the buggy ->ide_dma_check() defined by various chipset drivers. Signed-off-by: Bartlomiej Zolnierkiewicz [ide] cmd64x: kill dead DEBUG_CMD_REGS code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] kill dead TASKFILE_IN_OUT code Signed-off-by: Bartlomiej Zolnierkiewicz [ide] pdc202xx_old: kill PDC202XX_DECODE_REGISTER_INFO Signed-off-by: Bartlomiej Zolnierkiewicz Cset exclude: len.brown@intel.com|ChangeSet|20041010081245|01886 [PATCH] PCI resource allocation re-ordering This re-orders the PCI and ACPI IO resource assignment as suggested by Linus. With this patch, now the sequence of reserving resources is: 1. PCI claim BAR 2. ACPI reserve motherboard resources 3. PNP reserve motherboard resources 4. PCI allocate resources for uninitialized PCI devices This way the kernel allocates new PCI resources after it has full knowledge of the resource state, and at the same time allows ACPI and PnP to be run _after_ we've filled in our knowledge about pre-allocated resources. The way it is done is to make the last phase of the original PCI assign resources code to be an 'fs_initcall', along with the ACPI and PnP initializations. Signed-off-by: Linus Torvalds Use "request_resource()" to properly fix up PCI resource clashes. This is made possible by the previous resource allocation ordering patch. Now that we run the pre-existing PCI resource discovery _before_ ACPI resources have been added, we should not "insert" the resources into any existing tree. If they clash with existing resources, we should re-allocate them (later, when we have the full resource map). [ACPI] If BIOS disabled the LAPIC, believe it by default. "lapic" is available to force enabling the LAPIC in the event you know more than your BIOS vendor. http://bugzilla.kernel.org/show_bug.cgi?id=3238 [PCMCIA] Remove two unused variables. [PATCH] find_isa_irq_pin can't be __init As spotted by one of our Fedora users, we sometimes oops during shutdown (http://www.roberthancock.com/kerneloops.png) because disable_IO_APIC() wants to call find_isa_irq_pin(), which we threw away during init. Signed-off-by: Dave Jones Signed-off-by: Linus Torvalds Linux 2.6.9-rc4