1. 23 9月, 2008 2 次提交
  2. 19 9月, 2008 4 次提交
    • R
      e100: Use pci_pme_active to clear PME_Status and disable PME# · e7272403
      Rafael J. Wysocki 提交于
      Currently e100 uses pci_enable_wake() to clear pending wake-up events
      and disable PME# during intitialization, but that function is not
      suitable for this purpose, because it immediately returns error code
      if device_may_wakeup() returns false for given device.
      
      Make e100 use pci_pme_active(), which carries out exactly the
      required operations, instead.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      e7272403
    • C
      e1000: prevent corruption of EEPROM/NVM · 78566fec
      Christopher Li 提交于
      Andrey reports e1000 corruption, and that a patch in vmware's ESX fixed
      it.
      
      The EEPROM corruption is triggered by concurrent access of the EEPROM
      read/write. Putting a lock around it solve the problem.
      
      [akpm@linux-foundation.org: use DEFINE_SPINLOCK to avoid confusing lockdep]
      Signed-off-by: NChristopher Li <chrisl@vmware.com>
      Reported-by: NAndrey Borzenkov <arvidjaar@mail.ru>
      Cc: Zach Amsden <zach@vmware.com>
      Cc: Pratap Subrahmanyam <pratap@vmware.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
      Cc: Bruce Allan <bruce.w.allan@intel.com>
      Cc: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
      Cc: John Ronciak <john.ronciak@intel.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      78566fec
    • Y
      forcedeth: call restore mac addr in nv_shutdown path · f55c21fd
      Yinghai Lu 提交于
      after
      
      | commit f735a2a1
      | Author: Tobias Diedrich <ranma+kernel@tdiedrich.de>
      | Date:   Sun May 18 15:02:37 2008 +0200
      |
      |    [netdrvr] forcedeth: setup wake-on-lan before shutting down
      |
      |    When hibernating in 'shutdown' mode, after saving the image the suspend hook
      |    is not called again.
      |    However, if the device is in promiscous mode, wake-on-lan will not work.
      |    This adds a shutdown hook to setup wake-on-lan before the final shutdown.
      |
      |    Signed-off-by: Tobias Diedrich <ranma+kernel@tdiedrich.de>
      |    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
      
      my servers with nvidia ck804 and mcp55 will reverse mac address with kexec.
      
      it turns out that we need to restore the mac addr in nv_shutdown().
      
      [akpm@linux-foundation.org: fix typo in printk]
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Cc: Tobias Diedrich <ranma+kernel@tdiedrich.de>
      Cc: Ayaz Abdulla <aabdulla@nvidia.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      f55c21fd
    • B
      bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned int · 27ed9ddf
      Benjamin Li 提交于
      The bnx2 driver stores/uses the irq value from the pci_dev internally.
      But when it stores the irq value, it has been performing an
      integer demotion.  Because of the recent changes made to
      arch/x86/kernel/io_apic.c, the new method in creating the irq value
      (using build_irq_for_pci_dev()) has exposed this bug on x86 systems.
      
      Because of this demotion when calling request_irq() from
      bnx2_request_irq(), the driver would get a return code of -EINVAL.
      This is because the kernel could not find the requested irq descriptor.
      By storing the irq value properly, the kernel can find the correct
      irq descriptor and the bnx2 driver can operate normally.
      Signed-off-by: NBenjamin Li <benli@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      27ed9ddf
  3. 13 9月, 2008 1 次提交
  4. 11 9月, 2008 1 次提交
  5. 09 9月, 2008 8 次提交
  6. 06 9月, 2008 5 次提交
    • D
      clocksource, acpi_pm.c: check for monotonicity · 4ab6a219
      Dominik Brodowski 提交于
      The current check for monotonicity is way too weak: Andreas Mohr reports (
      http://lkml.org/lkml/2008/8/10/77 ) that on one of his test systems the
      current check only triggers in 50% of all cases, leading to catastrophic
      timer behaviour.  To fix this issue, expand the check for monotonicity by
      doing ten consecutive tests instead of one.
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4ab6a219
    • D
      clocksource, acpi_pm.c: use proper read function also in errata mode · dfdf748a
      Dominik Brodowski 提交于
      On all hardware (some Intel ICH4, PIIX4 and PIIX4E chipsets) affected by a
      hardware errata there's about a 4.2% chance that initialization of the
      ACPI PMTMR fails.  On those chipsets, we need to read out the timer value
      at least three times to get a correct result, for every once in a while
      (i.e.  within a 3 ns window every 69.8 ns) the read returns a bogus
      result.  During normal operation we work around this issue, but during
      initialization reading a bogus value may lead to -EINVAL even though the
      hardware is usable.
      
      Thanks to Andreas Mohr for spotting this issue.
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      dfdf748a
    • A
      drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() · 70bb0896
      Andrew Morton 提交于
      mmc_block_open() increments md->usage although it returns with -EROFS when
      default mounting a MMC/SD card with write protect switch on.  This
      reference counting bug prevents /dev/mmcblkX from being released on card
      removal, and situation worsen with reinsertion until the minor number
      range runs out.
      
      Reported-by: <sasin@solomon-systech.com>
      Acked-by: NPierre Ossman <drzeus-list@drzeus.cx>
      Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      70bb0896
    • S
      atmel_lcdfb: fix oops in rmmod when framebuffer fails to register · 34a35bdd
      Stanislaw Gruszka 提交于
      If framebuffer registration failed in platform driver ->probe() callback,
      dev_get_drvdata() points to freed memory region, but ->remove() function
      try to use it and the following oops occurs:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000228
      pgd = c3a20000
      [00000228] *pgd=23a2b031, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1]
      Modules linked in: atmel_lcdfb(-) cfbcopyarea cfbimgblt cfbfillrect [last unloaded: atmel_lcdfb]
      CPU: 0    Not tainted  (2.6.27-rc2 #116)
      PC is at atmel_lcdfb_remove+0x14/0xf8 [atmel_lcdfb]
      LR is at platform_drv_remove+0x20/0x24
      pc : [<bf006bc4>]    lr : [<c0157d28>]    psr: a0000013
      sp : c3a45e84  ip : c3a45ea0  fp : c3a45e9c
      r10: 00000002  r9 : c3a44000  r8 : c0026c04
      r7 : 00000880  r6 : c02bb228  r5 : 00000000  r4 : c02bb230
      r3 : bf007e3c  r2 : c02bb230  r1 : 00000004  r0 : c02bb228
      Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 0005317f  Table: 23a20000  DAC: 00000015
      Process rmmod (pid: 6799, stack limit = 0xc3a44260)
      Stack: (0xc3a45e84 to 0xc3a46000)
      5e80:          c02bb230 bf007e3c bf007e3c c3a45eac c3a45ea0 c0157d28 bf006bc0
      5ea0: c3a45ec4 c3a45eb0 c0156d20 c0157d18 c02bb230 c02bb2d8 c3a45ee0 c3a45ec8
      5ec0: c0156da8 c0156cb8 bf007e3c bf007ee0 c02c8e14 c3a45efc c3a45ee4 c0156018
      5ee0: c0156d50 bf007e3c bf007ee0 00000000 c3a45f18 c3a45f00 c0157220 c0155f9c
      5f00: 00000000 bf007ee0 bf008000 c3a45f28 c3a45f1c c0157e34 c01571ec c3a45f38
      5f20: c3a45f2c bf006ba8 c0157e30 c3a45fa4 c3a45f3c c005772c bf006ba4 656d7461
      5f40: 636c5f6c 00626664 c004c988 c3a45f80 c3a45f5c 00000000 c3a45fb0 00000000
      5f60: ffffffff becaccd8 00000880 00000000 000a5e80 00000001 bf007ee0 00000880
      5f80: c3a45f84 00000000 becaccd4 00000002 000003df 00000081 00000000 c3a45fa8
      5fa0: c0026a60 c0057584 00000002 000003df 00900081 000a5e80 00000880 00000000
      5fc0: becaccd4 00000002 000003df 00000000 000a5e80 00000001 00000002 0000005f
      5fe0: 4004f5ec becacbe8 0001a158 4004f5fc 20000010 00900081 f9ffbadf 7bbfb2bb
      Backtrace:
      [<bf006bb0>] (atmel_lcdfb_remove+0x0/0xf8 [atmel_lcdfb]) from [<c0157d28>] (platform_drv_remove+0x20/0x24)
       r6:bf007e3c r5:bf007e3c r4:c02bb230
      [<c0157d08>] (platform_drv_remove+0x0/0x24) from [<c0156d20>] (__device_release_driver+0x78/0x98)
      [<c0156ca8>] (__device_release_driver+0x0/0x98) from [<c0156da8>] (driver_detach+0x68/0x90)
       r5:c02bb2d8 r4:c02bb230
      [<c0156d40>] (driver_detach+0x0/0x90) from [<c0156018>] (bus_remove_driver+0x8c/0xb4)
       r6:c02c8e14 r5:bf007ee0 r4:bf007e3c
      [<c0155f8c>] (bus_remove_driver+0x0/0xb4) from [<c0157220>] (driver_unregister+0x44/0x48)
       r6:00000000 r5:bf007ee0 r4:bf007e3c
      [<c01571dc>] (driver_unregister+0x0/0x48) from [<c0157e34>] (platform_driver_unregister+0x14/0x18)
       r6:bf008000 r5:bf007ee0 r4:00000000
      [<c0157e20>] (platform_driver_unregister+0x0/0x18) from [<bf006ba8>] (atmel_lcdfb_exit+0x14/0x1c [atmel_lcdfb])
      [<bf006b94>] (atmel_lcdfb_exit+0x0/0x1c [atmel_lcdfb]) from [<c005772c>] (sys_delete_module+0x1b8/0x22c)
      [<c0057574>] (sys_delete_module+0x0/0x22c) from [<c0026a60>] (ret_fast_syscall+0x0/0x2c)
       r7:00000081 r6:000003df r5:00000002 r4:becaccd4
      Code: e92dd870 e24cb004 e59050c4 e1a06000 (e5954228)
      ---[ end trace 85476b184d9e68d8 ]---
      
      This patch fixes the oops.
      Signed-off-by: NStanislaw Gruszka <stf_xl@wp.pl>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Acked-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      34a35bdd
    • R
      forcedeth: fix kexec regression · 3cb5599a
      Rafael J. Wysocki 提交于
      Fix regression tracked as http://bugzilla.kernel.org/show_bug.cgi?id=11361
      and caused by commit f735a2a1 ("[netdrvr]
      forcedeth: setup wake-on-lan before shutting down") that makes network
      adapters integrated into the NVidia MCP55 chipsets fail to work in kexeced
      kernels.  The problem appears to be that if the adapter is put into D3_hot
      during ->shutdown(), it cannot be brought back into D0 after kexec (ref.
      http://marc.info/?l=linux-kernel&m=121900062814967&w=4).  Therefore, only
      put forcedeth into D3 during ->shutdown() if the system is to be powered
      off.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Tested-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Cc: Ayaz Abdulla <aabdulla@nvidia.com>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3cb5599a
  7. 05 9月, 2008 16 次提交
  8. 04 9月, 2008 3 次提交