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 7 次提交
    • 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
    • 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 19 次提交