1. 02 Aug, 2007 2 commits
    • Thomas Gleixner's avatar
      genirq: temporary fix for level-triggered IRQ resend · 0fc4969b
      Thomas Gleixner authored
      Marcin Slusarz reported a ne2k-pci "hung network interface" regression.
      
      delayed disable relies on the ability to re-trigger the interrupt in the
      case that a real interrupt happens after the software disable was set.
      In this case we actually disable the interrupt on the hardware level
      _after_ it occurred.
      
      On enable_irq, we need to re-trigger the interrupt. On i386 this relies
      on a hardware resend mechanism (send_IPI_self()).
      
      Actually we only need the resend for edge type interrupts. Level type
      interrupts come back once enable_irq() re-enables the interrupt line.
      
      I assume that the interrupt in question is level triggered because it is
      shared and above the legacy irqs 0-15:
      
      	17:         12   IO-APIC-fasteoi   eth1, eth0
      
      Looking into the IO_APIC code, the resend via send_IPI_self() happens
      unconditionally. So the resend is done for level and edge interrupts.
      This makes the problem more mysterious.
      
      The code in question lib8390.c does
      
      	disable_irq();
      	fiddle_with_the_network_card_hardware()
      	enable_irq();
      
      The fiddle_with_the_network_card_hardware() might cause interrupts,
      which are cleared in the same code path again,
      
      Marcin found that when he disables the irq line on the hardware level
      (removing the delayed disable) the card is kept alive.
      
      So the difference is that we can get a resend on enable_irq, when an
      interrupt happens during the time, where we are in the disabled region.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0fc4969b
    • Heiko Carstens's avatar
      Fix WARN_ON() on bitfield ops for all other archs · fd0cbdd3
      Heiko Carstens authored
      Fixes WARN_ON() on bitfiels ops for all architectures that have
      been left out in 8d4fbcfb.
      
      Cc: Alexey Dobriyan <adobriyan@sw.ru>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Kyle McMartin <kyle@parisc-linux.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Acked-by: default avatarPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fd0cbdd3
  2. 01 Aug, 2007 5 commits
    • Linus Torvalds's avatar
      Fix WARN_ON() on bitfield ops · 8d4fbcfb
      Linus Torvalds authored
      Alexey Dobriyan noticed that the new WARN_ON() semantics that were
      introduced by commit 684f9783 (to also
      return the value to be warned on) didn't compile when given a bitfield,
      because the typeof doesn't work for bitfields.
      
      So instead of the typeof trick, use an "int" variable together with a
      "!!(x)" expression, as suggested by Al Viro.
      
      To make matters more interesting, Paul Mackerras points out that that is
      sub-optimal on Power, but the old asm-coded comparison seems to be buggy
      anyway on 32-bit Power if the conditional was 64-bit, so I think there
      are more problems there.
      
      Regardless, the new WARN_ON() semantics may have been a bad idea.  But
      this at least avoids the more serious complications.
      
      Cc: Alexey Dobriyan <adobriyan@sw.ru>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Al Viro <viro@ftp.linux.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8d4fbcfb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog · 2f63251e
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (28 commits)
        [WATCHDOG] Fix pcwd_init_module crash
        [WATCHDOG] ICH9 support for iTCO_wdt
        [WATCHDOG] 631xESB/632xESB support for iTCO_wdt - add all LPC bridges
        [WATCHDOG] 631xESB/632xESB support for iTCO_wdt
        [WATCHDOG] omap_wdt.c - default error for IOCTL is -ENOTTY
        [WATCHDOG] Return value of nonseekable_open
        [WATCHDOG] mv64x60_wdt: Rework the timeout register manipulation
        [WATCHDOG] mv64x60_wdt: disable watchdog timer when driver is probed
        [WATCHDOG] mv64x60_wdt: Support the WDIOF_MAGICCLOSE feature
        [WATCHDOG] mv64x60_wdt: Add a module parameter to change nowayout setting
        [WATCHDOG] mv64x60_wdt: Add WDIOC_SETOPTIONS ioctl support
        [WATCHDOG] mv64x60_wdt: Support for WDIOC_SETTIMEOUT ioctl
        [WATCHDOG] mv64x60_wdt: Fix WDIOC_GETTIMEOUT return value
        [WATCHDOG] mv64x60_wdt: Check return value of nonseekable_open
        [WATCHDOG] mv64x60_wdt: Add arch/powerpc platform support
        [WATCHDOG] mv64x60_wdt: Get register address from platform data
        [WATCHDOG] mv64x60_wdt: set up platform_device in platform code
        [WATCHDOG] ensure mouse and keyboard ignored in w83627hf_wdt
        [WATCHDOG] s3c2410_wdt: fixup after arch include moves
        [WATCHDOG] git-watchdog-typo
        ...
      2f63251e
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · d6dd9e93
      Linus Torvalds authored
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (50 commits)
        [MIPS] Add smp_call_function_single()
        [MIPS] thread_info.h: kmalloc + memset conversion to kzalloc
        [MIPS] Kexec: Fix several 64-bit bugs.
        [MIPS] Kexec: Fix several warnings.
        [MIPS] DDB5477: Remove support
        [MIPS] Fulong: Remove unneeded header file
        [MIPS] Cobalt: Enable UART on RaQ1
        [MIPS] Remove unused GROUP_TOSHIBA_NAMES
        [MIPS] remove some duplicate includes
        [MIPS] Oprofile: Fix rm9000 performance counter handler
        [MIPS] Use -Werror on subdirectories which build cleanly.
        [MIPS] Yosemite: Fix warning.
        [MIPS] PMON: Fix cpustart declaration.
        [MIPS] Yosemite: Only build ll_ht_smp_irq_handler() if HYPERTRANSPORT.
        [MIPS] Yosemite: Fix build error due to undeclared titan_mailbox_irq().
        [MIPS] Yosemite: Don't declare titan_mailbox_irq() as asmlinkage.
        [MIPS] Yosemite: Fix warnings in i2c-yoesmite by deleting the unused code.
        [MIPS] Delete unused arch/mips/gt64120/common/
        [MIPS] Fix build warning in unaligned load/store emulator.
        [MIPS] IP32: Don't ignore request_irq's return value.
        ...
      d6dd9e93
    • Linus Torvalds's avatar
      Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 · dd9cd6d4
      Linus Torvalds authored
      * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
        hwmon: fscher read control bugfix
        hwmon: (adm1031) Fix broken links in documentation
        hwmon: make abituguru3_read_increment_offset() static
        hwmon: Fix regression caused by typo in lm90.c
        hwmon: (applesmc) add temperature sensors set for Macbook
        hwmon: fscher control update bugfix
        hwmon: fix dme1737 temp fault attribute
        hwmon: Add missing __devexit tags in various drivers
        hwmon: clean up duplicate includes
        hwmon: fix lm78 detection regression
        hwmon: fix array overruns in lm93.c
        hwmon: add support for THMC50 and ADM1022
      dd9cd6d4
    • Len Brown's avatar
      ACPI: delete CONFIG_ACPI_PROCFS_SLEEP (again) · 128a2bcf
      Len Brown authored
      CONFIG_ACPI_PROCFS_SLEEP is a NO-OP -- delete it (again).
      
      Apparently 296699de creating CONFIG_SUSPEND
      and CONFIG_PM_SLEEP was based on an out-dated version of drivers/acpi/Kconfig,
      as it erroneously restored this recently deleted config option.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      128a2bcf
  3. 31 Jul, 2007 33 commits