1. 12 8月, 2008 2 次提交
    • C
      Fix race/oops in tty layer after BKL pushdown · 000b9151
      Christian Borntraeger 提交于
      While testing our KVM code for s390 (starting and killall kvm in a loop)
      I can reproduce the following oops:
      
        Unable to handle kernel pointer dereference at virtual kernel address 6b6b6b6b6b6b6000 Oops: 0038 [#1] SMP
        Modules linked in: dm_multipath sunrpc qeth_l3 qeth_l2 dm_mod qeth
        ccwgroup CPU: 1 Not tainted 2.6.27-rc1 #54
        Process kuli (pid: 4409, task: 00000000b6aa5940, ksp: 00000000b7343e10)
        Krnl PSW : 0704e00180000000 00000000002e0b8c
        (disassociate_ctty+0x1c0/0x288) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3
        CC:2 PM:0 EA:3 Krnl GPRS: 0000000000000000 6b6b6b6b6b6b6b6b
        0000000000000001 00000000000003a6 00000000002e0a46 00000000004b4160
        0000000000000001 00000000bbd79758 00000000b7343e58 00000000b8854148
        00000000bd34dea0 00000000b7343c20 0000000000000001 00000000004b6d08
        00000000002e0a46 00000000b7343c20 Krnl Code: 00000000002e0b7e:
        eb9fb0a00004	lmg	%r9,%r15,160(%r11) 00000000002e0b84:
        07f4		bcr	15,%r4 00000000002e0b86:
        e31090080004	lg	%r1,8(%r9) >00000000002e0b8c:
        d501109cd000	clc	156(2,%r1),0(%r13) 00000000002e0b92:
        a784ff5d		brc	8,2e0a4c 00000000002e0b96:
        b9040029		lgr	%r2,%r9 00000000002e0b9a:
        c0e5fffff9c3	brasl	%r14,2dff20 00000000002e0ba0:
        a7f4ff56		brc	15,2e0a4c Call Trace:
        ([<00000000002e0a46>] disassociate_ctty+0x7a/0x288)
         [<0000000000141fe6>] do_exit+0x212/0x8d4
         [<0000000000142708>] do_group_exit+0x60/0xcc
         [<0000000000150660>] get_signal_to_deliver+0x270/0x3ac
         [<000000000010bfd6>] do_signal+0x8e/0x8dc
         [<0000000000113772>] sysc_sigpending+0xe/0x22
         [<000001ff0000b134>] 0x1ff0000b134
        INFO: lockdep is turned off.
        Last Breaking-Event-Address:
         [<00000000002e0a48>] disassociate_ctty+0x7c/0x288
        Kernel panic - not syncing: Fatal exception: panic_on_oops
      
      It seems that tty was already free in disassocate_ctty when it tries
      to dereference tty->driver.
      
      After moving the lock_kernel before the mutex_unlock, I can no longer
      reproduce the problem.
      
      [ This is a temporary partial fix for the documented and long standing
        race in disassociate_tty.  This stops most problem cases for now.
      
        For the next release the -next tree has an initial implementation of
        kref counting for tty structures and this quickfix will be dropped.
      
                                                                    - Alan ]
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by; Alan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      000b9151
    • L
      Revert "fbcon: bgcolor fix" · 3838f59f
      Linus Torvalds 提交于
      This reverts commit 2d04a4a7, which made
      it impossible to make the softcursor use the highlight colors.
      
      Yes, the fourth bit should be "blinking", but since we cannot reasonably
      blink in fbcon, highlighting it with a bright background is preferable.
      Reported-by: NPavel Machek <pavel@suse.cz>
      Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
      Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
      Cc: Antonino A. Daplas <adaplas@pol.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3838f59f
  2. 11 8月, 2008 13 次提交
    • W
      [WATCHDOG] pcwd.c - fix open_allowed type. · 36cbaa87
      Wim Van Sebroeck 提交于
      Fix following warnings:
      drivers/watchdog/pcwd.c: In function 'pcwd_open':
      drivers/watchdog/pcwd.c:703: warning: passing argument 2 of 'test_and_set_bit' from incompatible pointer type
      drivers/watchdog/pcwd.c: In function 'pcwd_close':
      drivers/watchdog/pcwd.c:723: warning: passing argument 2 of 'clear_bit' from incompatible pointer type
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      36cbaa87
    • J
      hwmon: (lm75) Drop legacy i2c driver · 8ff69eeb
      Jean Delvare 提交于
      Drop the legacy lm75 driver, and add a detect callback to the
      new-style driver to achieve the same functionality.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: David Brownell <david-b@pacbell.net>
      8ff69eeb
    • D
      i2c: correct some size_t printk formats · 2ce5b34f
      David Brownell 提交于
      Fix various printk format strings where %zd was passed a size_t;
      those should be %zu instead.  (Courtesy of a version of GCC which
      warns when these details are wrong.)
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      2ce5b34f
    • J
      i2c: Check for address business before creating clients · c1159f9e
      Jean Delvare 提交于
      We check for address business in i2c_probe_address(),
      i2c_detect_address() and i2c_new_probed_device(), but this isn't
      sufficient. Drivers can call i2c_attach_client() and
      i2c_new_device() on any address, so we must check the address there
      as well.
      
      This fixes bug #11239:
      http://bugzilla.kernel.org/show_bug.cgi?id=11239Signed-off-by: NJean Delvare <khali@linux-fr.org>
      c1159f9e
    • J
      i2c: Let users select algorithm drivers manually again · 8d24f8dc
      Jean Delvare 提交于
      In kernel 2.6.26, the ability to select I2C algorithm drivers manually
      was removed, as all in-kernel drivers do that automatically. However
      there were some complaints that it was a problem for out-of-tree I2C
      bus drivers. In order to address these complaints, let's allow manual
      selection of these drivers again, but still hide them by default for
      better general user experience.
      
      This closes bug #11140:
      http://bugzilla.kernel.org/show_bug.cgi?id=11140Signed-off-by: NJean Delvare <khali@linux-fr.org>
      8d24f8dc
    • H
      i2c: Fix NULL pointer dereference in i2c_new_probed_device · b25b791b
      Hans Verkuil 提交于
      Fix a NULL pointer dereference that happened when calling
      i2c_new_probed_device on one of the addresses for which we use byte
      reads instead of quick write for detection purpose (that is: 0x30-0x37
      and 0x50-0x5f).
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      b25b791b
    • J
      i2c: Fix oops on bus multiplexer driver loading · 399d6b26
      Jean Delvare 提交于
      The two I2C bus multiplexer drivers (i2c-amd756-s4882 and
      i2c-nforce2-s4985) make use of the bus they want to multiplex before
      checking if it is really present. Swap the instructions to test for
      presence first. This fixes a oops reported by Ingo Molnar.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      399d6b26
    • A
      [WATCHDOG] fix watchdog/ixp4xx_wdt.c compilation · 9229376e
      Adrian Bunk 提交于
      This patch fixes the following compile error caused by
      commit 20d35f3e
      ([WATCHDOG 22/57] ixp4xx_wdt: unlocked_ioctl):
      
      <--  snip  -->
      
      ...
        CC      drivers/watchdog/ixp4xx_wdt.o
      ixp4xx_wdt.c:32: error: expected '=', ',', ';', 'asm' or '__attribute__' 
      ixp4xx_wdt.c: In function 'wdt_enable':
      ixp4xx_wdt.c:41: error: 'wdt_lock' undeclared (first use in this 
      ixp4xx_wdt.c:41: error: (Each undeclared identifier is reported only 
      ixp4xx_wdt.c:41: error: for each function it appears in.)
      ixp4xx_wdt.c: In function 'wdt_disable':
      ixp4xx_wdt.c:52: error: 'wdt_lock' undeclared (first use in this 
      ixp4xx_wdt.c: In function 'ixp4xx_wdt_init':
      ixp4xx_wdt.c:186: error: 'wdt_lock' undeclared (first use in this 
      make[3]: *** [drivers/watchdog/ixp4xx_wdt.o] Error 1
      
      <--  snip  -->
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      9229376e
    • A
      [WATCHDOG] fix watchdog/wdt285.c compilation · 3f11df21
      Adrian Bunk 提交于
      This patch fixes the following compile error caused by
      commit d0e58eed
      ([WATCHDOG 55/57] wdt285: switch to unlocked_ioctl and tidy up ...):
      
      <--  snip  -->
      
      ...
        CC [M]  drivers/watchdog/wdt285.o
      wdt285.c: In function 'footbridge_watchdog_init':
      wdt285.c:211: error: 'KERN_WARN' undeclared (first use in this function)
      wdt285.c:211: error: (Each undeclared identifier is reported only once
      wdt285.c:211: error: for each function it appears in.)
      wdt285.c:212: error: expected ')' before string constant
      make[3]: *** [drivers/watchdog/wdt285.o] Error 1
      
      <--  snip  -->
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      3f11df21
    • A
      [WATCHDOG] fix watchdog/at91rm9200_wdt.c compilation · 3c4fafd6
      Adrian Bunk 提交于
      This patch fixes the following compile error:
      
      <--  snip  -->
      
      ...
        CC      drivers/watchdog/at91rm9200_wdt.o
      at91rm9200_wdt.c:188: error: 'at91_wdt_ioctl' undeclared here (not in a 
      make[3]: *** [drivers/watchdog/at91rm9200_wdt.o] Error 1
      
      <--  snip  -->
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      3c4fafd6
    • A
      [WATCHDOG] fix watchdog/shwdt.c compilation · 58cf4198
      Adrian Bunk 提交于
      This patch fixes the following compile errors caused by
      commit 70b814ec
      ([WATCHDOG 45/57] shwdt: coding style, cleanup, switch to unlocked_io):
      
      <--  snip  -->
      
      ...
        CC      drivers/watchdog/shwdt.o
      shwdt.c:64: error: 'WTCSR_CKS_4096' undeclared here (not in a function)
      shwdt.c: In function 'sh_wdt_start':
      shwdt.c:92: error: 'wdt_lock' undeclared (first use in this function)
      shwdt.c:92: error: (Each undeclared identifier is reported only once
      shwdt.c:92: error: for each function it appears in.)
      shwdt.c:97: error: implicit declaration of function 'sh_wdt_read_csr'
      shwdt.c:98: error: 'WTCSR_WT' undeclared (first use in this function)
      shwdt.c:99: error: implicit declaration of function 'sh_wdt_write_csr'
      shwdt.c:101: error: implicit declaration of function 'sh_wdt_write_cnt'
      shwdt.c:112: error: 'WTCSR_TME' undeclared (first use in this function)
      shwdt.c:113: error: 'WTCSR_RSTS' undeclared (first use in this function)
      shwdt.c: In function 'sh_wdt_stop':
      shwdt.c:142: error: 'wdt_lock' undeclared (first use in this function)
      shwdt.c:147: error: 'WTCSR_TME' undeclared (first use in this function)
      shwdt.c: In function 'sh_wdt_keepalive':
      shwdt.c:160: error: 'wdt_lock' undeclared (first use in this function)
      shwdt.c: In function 'sh_wdt_set_heartbeat':
      shwdt.c:176: error: 'wdt_lock' undeclared (first use in this function)
      shwdt.c: In function 'sh_wdt_ping':
      shwdt.c:192: error: 'wdt_lock' undeclared (first use in this function)
      shwdt.c:197: error: 'WTCSR_IOVF' undeclared (first use in this function)
      shwdt.c: At top level:
      shwdt.c:417: error: conflicting type qualifiers for 'sh_wdt_info'
      shwdt.c:71: error: previous declaration of 'sh_wdt_info' was here
      make[3]: *** [drivers/watchdog/shwdt.o] Error 1
      
      <--  snip  -->
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      58cf4198
    • A
      [WATCHDOG] fix watchdog/txx9wdt.c compilation · f8494e06
      Adrian Bunk 提交于
      This patch fixes the following compile error caused by
      commit 8dc244f7
      ([WATCHDOG 48/57] txx9: Fix locking, switch to unlocked_ioctl):
      
      <--  snip  -->
      
      ...
        CC      drivers/watchdog/txx9wdt.o
      txx9wdt.c:48: warning: type defaults to 'int' in declaration of 
      txx9wdt.c:48: warning: parameter names (without types) in function 
      txx9wdt.c: In function 'txx9wdt_ping':
      txx9wdt.c:52: error: 'txx9_lock' undeclared (first use in this function)
      txx9wdt.c:52: error: (Each undeclared identifier is reported only once
      txx9wdt.c:52: error: for each function it appears in.)
      txx9wdt.c: In function 'txx9wdt_start':
      txx9wdt.c:59: error: 'txx9_lock' undeclared (first use in this function)
      txx9wdt.c: In function 'txx9wdt_stop':
      txx9wdt.c:71: error: 'txx9_lock' undeclared (first use in this function)
      make[3]: *** [drivers/watchdog/txx9wdt.o] Error 1
      
      <--  snip  -->
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      f8494e06
    • J
      [WATCHDOG] Fix build with CONFIG_ITCO_VENDOR_SUPPORT=n · d6efcab8
      Jean Delvare 提交于
      The problem is that iTCO_vendor_support.ko is still being built while
      iTCO_vendor.h claims that its functions do not exist. The following
      Makefile update fixes that. It causes iTCO_vendor_support.ko to no
      longer be built if CONFIG_ITCO_VENDOR_SUPPORT=n.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      d6efcab8
  3. 10 8月, 2008 1 次提交
    • A
      uninline atl1e_setup_mac_ctrl() · e6ca2328
      Adrian Bunk 提交于
      There doesn't seem to be a compelling reason why atl1e_setup_mac_ctrl()
      is marked as "inline":
      
      It's not used in any place where speed would matter much, and as long as
      it has only one caller non-ancient gcc versions anyway inline it
      automatically.
      
      This patch fixes the following compile error with gcc 3.4:
      
          CC      drivers/net/atl1e/atl1e_main.o
        atl1e_main.c: In function `atl1e_check_link':
        atl1e_main.c:50: sorry, unimplemented: inlining failed in call to
        atl1e_main.c:196: sorry, unimplemented: called from here
      Reported-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e6ca2328
  4. 09 8月, 2008 1 次提交
  5. 08 8月, 2008 10 次提交
  6. 07 8月, 2008 13 次提交