1. 20 10月, 2010 2 次提交
    • R
      apic, x86: Check if EILVT APIC registers are available (AMD only) · a68c439b
      Robert Richter 提交于
      This patch implements checks for the availability of LVT entries
      (APIC500-530) and reserves it if used. The check becomes
      necessary since we want to let the BIOS provide the LVT offsets.
       The offsets should be determined by the subsystems using it
      like those for MCE threshold or IBS.  On K8 only offset 0
      (APIC500) and MCE interrupts are supported. Beginning with
      family 10h at least 4 offsets are available.
      
      Since offsets must be consistent for all cores, we keep track of
      the LVT offsets in software and reserve the offset for the same
      vector also to be used on other cores. An offset is freed by
      setting the entry to APIC_EILVT_MASKED.
      
      If the BIOS is right, there should be no conflicts. Otherwise a
      "[Firmware Bug]: ..." error message is generated. However, if
      software does not properly determines the offsets, it is not
      necessarily a BIOS bug.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      LKML-Reference: <1286360874-1471-2-git-send-email-robert.richter@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a68c439b
    • I
      Merge branch 'linus' into irq/core · 14d4962d
      Ingo Molnar 提交于
      Merge reason: update to almost-final-.36
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      14d4962d
  2. 19 10月, 2010 1 次提交
    • Y
      x86: ioapic: Call free_irte only if interrupt remapping enabled · 9717967c
      Yinghai Lu 提交于
      On a system that support intr-rempping when booting with "intremap=off"
      
      [  177.895501] BUG: unable to handle kernel NULL pointer dereference at 00000000000000f8
      [  177.913316] IP: [<ffffffff8145fc18>] free_irte+0x47/0xc0
      ...
      [  178.173326] Call Trace:
      [  178.173574]  [<ffffffff810515b4>] destroy_irq+0x3a/0x75
      [  178.192934]  [<ffffffff81051834>] arch_teardown_msi_irq+0xe/0x10
      [  178.193418]  [<ffffffff81458dc3>] arch_teardown_msi_irqs+0x56/0x7f
      [  178.213021]  [<ffffffff81458e79>] free_msi_irqs+0x8d/0xeb
      
      Call free_irte only when interrupt remapping is enabled.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      LKML-Reference: <4CBCB274.7010108@kernel.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      9717967c
  3. 18 10月, 2010 1 次提交
  4. 17 10月, 2010 3 次提交
    • C
      ALSA: rawmidi: fix oops (use after free) when unloading a driver module · aa73aec6
      Clemens Ladisch 提交于
      When a driver module is unloaded and the last still open file is a raw
      MIDI device, the card and its devices will be actually freed in the
      snd_card_file_remove() call when that file is closed.  Afterwards, rmidi
      and rmidi->card point into freed memory, so the module pointer is likely
      to be garbage.
      (This was introduced by commit 9a1b64ca.)
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      Reported-by: NKrzysztof Foltman <wdev@foltman.com>
      Cc: 2.6.30-2.6.35 <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      aa73aec6
    • T
      arm: Use ARCH_IRQ_INIT_FLAGS · 032fa360
      Thomas Gleixner 提交于
      The core code now initializes the requested number of interrupts and
      sets the flags in irq_desc.status which are requested by the
      architecture via ARCH_IRQ_INIT_FLAGS.
      
      Add ARCH_IRQ_INIT_FLAGS and remove the loop which sets those flags
      after the irq descriptors are allocated.
      
      [ This patch should have been in the original irq rework and got
        dropped accidentaly ]
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@stericsson.com>
      Cc: Anand Gadiyar <gadiyar@ti.com>
      032fa360
    • A
      genirq, ARM: Fix boot on ARM platforms · 05d0ca85
      Anand Gadiyar 提交于
      Commit b683de2b in linux-next as of 20101014 (genirq: Query
      arch for number of early descriptors) seems to have broken
      bootup on several ARM boards - my beagleboard gives the
      following dump with earlyprintk:
      
       NR_IRQS:402
       Unable to handle kernel NULL pointer dereference at virtual
       address 00000028 pgd = c0004000
       [00000028] *pgd=00000000
       Internal error: Oops: 5 [#1]
       last sysfs file:
       Modules linked in:
       CPU: 0    Not tainted
       (2.6.36-rc7-next-20101014-linux-next-20101012+ #40) PC is at
       init_IRQ+0x14/0x48 LR is at start_kernel+0x150/0x2c0
       [...]
      
      We seem to be using desc->status without assigning desc to
      anything. Fix this by adding back the code that was originally
      there.
      Signed-off-by: NAnand Gadiyar <gadiyar@ti.com>
      Tested-by: NLinus Walleij <linus.walleij@stericsson.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: linux-arm-kernel@lists.infradead.org
      LKML-Reference: <1287077397-21781-1-git-send-email-gadiyar@ti.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      05d0ca85
  5. 16 10月, 2010 12 次提交
  6. 15 10月, 2010 6 次提交
    • T
      ubd: fix incorrect sector handling during request restart · 47526903
      Tejun Heo 提交于
      Commit f81f2f7c (ubd: drop unnecessary rq->sector manipulation)
      dropped request->sector manipulation in preparation for global request
      handling cleanup; unfortunately, it incorrectly assumed that the
      updated sector wasn't being used.
      
      ubd tries to issue as many requests as possible to io_thread.  When
      issuing fails due to memory pressure or other reasons, the device is
      put on the restart list and issuing stops.  On IO completion, devices
      on the restart list are scanned and IO issuing is restarted.
      
      ubd issues IOs sg-by-sg and issuing can be stopped in the middle of a
      request, so each device on the restart queue needs to remember where
      to restart in its current request.  ubd needs to keep track of the
      issue position itself because,
      
      * blk_rq_pos(req) is now updated by the block layer to keep track of
        _completion_ position.
      
      * Multiple io_req's for the current request may be in flight, so it's
        difficult to tell where blk_rq_pos(req) currently is.
      
      Add ubd->rq_pos to keep track of the issue position and use it to
      correctly restart io_req issue.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NRichard Weinberger <richard@nod.at>
      Tested-by: NRichard Weinberger <richard@nod.at>
      Tested-by: NChris Frey <cdfrey@foursquare.net>
      Cc: stable@kernel.org
      Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
      47526903
    • L
      Export dump_{write,seek} to binary loader modules · 8fd01d6c
      Linus Torvalds 提交于
      If you build aout support as a module, you'll want these exported.
      Reported-by: NTetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8fd01d6c
    • L
      Linux 2.6.36-rc8 · cd07202c
      Linus Torvalds 提交于
      cd07202c
    • L
      Un-inline the core-dump helper functions · 3aa0ce82
      Linus Torvalds 提交于
      Tony Luck reports that the addition of the access_ok() check in commit
      0eead9ab ("Don't dump task struct in a.out core-dumps") broke the
      ia64 compile due to missing the necessary header file includes.
      
      Rather than add yet another include (<asm/unistd.h>) to make everything
      happy, just uninline the silly core dump helper functions and move the
      bodies to fs/exec.c where they make a lot more sense.
      
      dump_seek() in particular was too big to be an inline function anyway,
      and none of them are in any way performance-critical.  And we really
      don't need to mess up our include file headers more than they already
      are.
      Reported-and-tested-by: NTony Luck <tony.luck@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3aa0ce82
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · ae42d8d4
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        ehea: Fix a checksum issue on the receive path
        net: allow FEC driver to use fixed PHY support
        tg3: restore rx_dropped accounting
        b44: fix carrier detection on bind
        net: clear heap allocations for privileged ethtool actions
        NET: wimax, fix use after free
        ATM: iphase, remove sleep-inside-atomic
        ATM: mpc, fix use after free
        ATM: solos-pci, remove use after free
        net/fec: carrier off initially to avoid root mount failure
        r8169: use device model DMA API
        r8169: allocate with GFP_KERNEL flag when able to sleep
      ae42d8d4
    • L
      Don't dump task struct in a.out core-dumps · 0eead9ab
      Linus Torvalds 提交于
      akiphie points out that a.out core-dumps have that odd task struct
      dumping that was never used and was never really a good idea (it goes
      back into the mists of history, probably the original core-dumping
      code).  Just remove it.
      
      Also do the access_ok() check on dump_write().  It probably doesn't
      matter (since normal filesystems all seem to do it anyway), but he
      points out that it's normally done by the VFS layer, so ...
      
      [ I suspect that we should possibly do "vfs_write()" instead of
        calling ->write directly.  That also does the whole fsnotify and write
        statistics thing, which may or may not be a good idea. ]
      
      And just to be anal, do this all for the x86-64 32-bit a.out emulation
      code too, even though it's not enabled (and won't currently even
      compile)
      Reported-by: Nakiphie <akiphie@lavabit.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0eead9ab
  7. 14 10月, 2010 12 次提交
  8. 13 10月, 2010 3 次提交