1. 22 11月, 2012 3 次提交
  2. 17 11月, 2012 1 次提交
  3. 16 11月, 2012 21 次提交
  4. 15 11月, 2012 9 次提交
    • H
      s390/3215: fix tty close handling · ae289dc1
      Heiko Carstens 提交于
      The 3215 console always has the RAW3215_FIXED flag set, which causes
      raw3215_shutdown() not to wait for outstanding I/O requests if an attached
      tty gets closed.
      The flag however can be simply removed, so we can guarantee that all requests
      belonging to the tty have been processed when the tty is closed.
      
      However the tasklet that belongs to the 3215 device may be scheduled even if
      there is no tty attached anymore, since we have a race between console and tty
      processing.
      Thefore unconditional tty_wakekup() in raw3215_wakeup() can cause the following
      NULL pointer dereference:
      
      3.465368 Unable to handle kernel pointer dereference at virtual kernel address (null)
      3.465448 Oops: 0004 #1 SMP
      3.465454 Modules linked in:
      3.465459 CPU: 1 Not tainted 3.6.0 #1
      3.465462 Process swapper/1 (pid: 0, task: 000000003ffa4428, ksp: 000000003ffb7ce0)
      3.465466 Krnl PSW : 0404100180000000 0000000000162f86 (__wake_up+0x46/0xb8)
      3.465480            R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0 EA:3
               Krnl GPRS: fffffffffffffffe 0000000000000000 0000000000000160 0000000000000001
      3.465492            0000000000000001 0000000000000004 0000000000000004 000000000096b490
      3.465499            0000000000000001 0000000000000100 0000000000000001 0000000000000001
      3.465506            070000003fc87d60 0000000000000160 000000003fc87d68 000000003fc87d00
      3.465526 Krnl Code: 0000000000162f76: e3c0f0a80004      lg      %r12,168(%r15)
                          0000000000162f7c: 58000370          l       %r0,880
                         #0000000000162f80: c007ffffffff00    xilf    %r0,4294967295
                         >0000000000162f86: ba102000          cs      %r1,%r0,0(%r2)
                          0000000000162f8a: 1211              ltr     %r1,%r1
                          0000000000162f8c: a774002f          brc     7,162fea
                          0000000000162f90: b904002d          lgr     %r2,%r13
                          0000000000162f94: b904003a          lgr     %r3,%r10
      3.465597 Call Trace:
      3.465599 (<0400000000000000> 0x400000000000000)
      3.465602  <000000000048c77e> raw3215_wakeup+0x2e/0x40
      3.465607  <0000000000134d66> tasklet_action+0x96/0x168
      3.465612  <000000000013423c> __do_softirq+0xd8/0x21c
      3.465615  <0000000000134678> irq_exit+0xa8/0xac
      3.465617  <000000000046c232> do_IRQ+0x182/0x248
      3.465621  <00000000005c8296> io_return+0x0/0x8
      3.465625  <00000000005c7cac> vtime_stop_cpu+0x4c/0xb8
      3.465629 (<0000000000194e06> tick_nohz_idle_enter+0x4e/0x74)
      3.465633  <0000000000104760> cpu_idle+0x170/0x184
      3.465636  <00000000005b5182> smp_start_secondary+0xd6/0xe0
      3.465641  <00000000005c86be> restart_int_handler+0x56/0x6c
      3.465643  <0000000000000000> 0x0
      3.465645 Last Breaking-Event-Address:
      3.465647  <0000000000403136> tty_wakeup+0x46/0x98
      3.465652
      3.465654 Kernel panic - not syncing: Fatal exception in interrupt
      01: HCPGIR450W CP entered; disabled wait PSW 00020001 80000000 00000000 0010F63C
      
      The easiest solution is simply to check if tty is NULL in the tasklet.
      If it is NULL nothing is to do (no tty attached), otherwise tty_wakeup()
      can be called, since we hold a reference to the tty.
      This is not nice... but it is a small patch and it works.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      ae289dc1
    • A
    • D
      Revert "drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free" · 80d11788
      David S. Miller 提交于
      This reverts commit aa731872.
      
      As pointed out by Ben Hutchings, this change is not correct.
      
      mdiobus_unregister() can't be called if the bus isn't registered yet,
      however this change can result in situations which cause that to
      happen.
      
      Part of the confusion here revolves around the fact that the
      callers of this module control registration/unregistration,
      rather than the module itself.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      80d11788
    • K
      net/smsc911x: Fix ready check in cases where WORD_SWAP is needed · 769ce4c9
      Kamlakant Patel 提交于
      The chip ready check added by the commit 3ac3546e [Always wait for
      the chip to be ready] does not work when the register read/write
      is word swapped. This check has been added before the WORD_SWAP
      register is programmed, so we need to check for swapped register
      value as well.
      
      Bit 16 is marked as RESERVED in SMSC datasheet, Steve Glendinning
      <steve@shawell.net> checked with SMSC and wrote:
      
        The chip architects have concluded we should be reading PMT_CTRL
        until we see any of bits 0, 8, 16 or 24 set.  Then we should read
        BYTE_TEST to check the byte order is correct (as we already do).
      
        The rationale behind this is that some of the chip variants have
        word order swapping features too, so the READY bit could actually
        be in any of the 4 possible locations.  The architects have confirmed
        that if any of these 4 positions is set the chip is ready.  The other
        3 locations will either never be set or can only go high after READY
        does (so also indicate the device is ready).
      
      This change will check for the READY bit at the 16th position. We do
      not check the other two cases (bit 8 and 24) since the driver does not
      support byte-swapped register read/write.
      Signed-off-by: NKamlakant Patel <kamlakant.patel@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      769ce4c9
    • X
      drivers/net: fix tasklet misuse issue · 71c6c837
      Xiaotian Feng 提交于
      In commit 175c0dff, drivers uses tasklet_kill to avoid put disabled tasklet
      on the tasklet vec. But some of the drivers uses tasklet_init & tasklet_disable
      in the driver init code, then tasklet_enable when it is opened. This makes
      tasklet_enable on a killed tasklet and make ksoftirqd crazy then. Normally,
      drivers should use tasklet_init/tasklet_kill on device open/remove, and use
      tasklet_disable/tasklet_enable on device suspend/resume.
      Reported-by: NPeter Wu <lekensteyn@gmail.com>
      Tested-by: NPeter Wu <lekensteyn@gmail.com>
      Signed-off-by: NXiaotian Feng <dannyfeng@tencent.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71c6c837
    • M
      regulator: fix voltage check in regulator_is_supported_voltage() · f0f98b19
      Marek Szyprowski 提交于
      regulator_is_supported_voltage() should return true only if the voltage
      of fixed/constant regulator is between min_uV and max_uV.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: stable@vger.kernel.org
      f0f98b19
    • A
      tty: serial: max310x: Add terminating entry for spi_device_id table · 1838b8c4
      Axel Lin 提交于
      The spi_device_id table is supposed to be zero-terminated.
      Signed-off-by: NAxel Lin <axel.lin@ingics.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1838b8c4
    • P
      TTY: hvc_console, fix port reference count going to zero prematurely · c019bc11
      Paul Mackerras 提交于
      Commit bdb498c2 "TTY: hvc_console, add tty install" took the port
      refcounting out of hvc_open()/hvc_close(), but failed to remove the
      kref_put() and tty_kref_put() calls in hvc_hangup() that were there to
      remove the extra references that hvc_open() had taken.
      
      The result was that doing a vhangup() when the current terminal was
      a hvc_console, then closing the current terminal, would end up calling
      destroy_hvc_struct() and making the port disappear entirely.  This
      meant that Fedora 17 systems would boot up but then not display the
      login prompt on the console, and attempts to open /dev/hvc0 would
      give a "No such device" error.
      
      This fixes it by removing the extra kref_put() and tty_kref_put() calls.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Acked-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c019bc11
    • H
      brcmfmac: fix typo in CONFIG_BRCMISCAN · d61f978b
      Hauke Mehrtens 提交于
      The old ifdef CONFIG_BRCMFISCAN looks wrong to me and it makes more
      sense when CONFIG_BRCMISCAN is used.
      This patch was just compile tested by me, but not runtime tested.
      Signed-off-by: NHauke Mehrtens <hauke@hauke-m.de>
      Acked-by: NFranky Lin <frankyl@broadcom.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d61f978b
  5. 14 11月, 2012 6 次提交