1. 26 3月, 2008 1 次提交
  2. 25 3月, 2008 1 次提交
    • D
      hw_random doc updates · 537878d2
      David Brownell 提交于
      Update documentation for the hw_random support to be current:
      
       - Documentation/hw_random.txt has been updated to reflect the
         current code:  it's a framework now, a "core" with a small
         sysfs interface, that hardware-specific drivers plug in to.
         Text specific to Intel hardware is now at the end.
      
       - Kconfig now references the Documentation/hw_random.txt file
         and better explains what this really does.
      
      Both chunks of documentation now higlight the fact that the kernel entropy
      pool is maintained by "rngd", and this driver has nothing directly to do with
      that important task.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      537878d2
  3. 20 3月, 2008 1 次提交
  4. 17 3月, 2008 4 次提交
    • D
      drm/ati_pcigart: fix the PCIGART to use drm_pci to allocate GART table. · b05c2385
      Dave Airlie 提交于
      This fixes a problem on 64-bit with 4GB with ATI RS690 chipsets. It
      makes sure the pcigart table is allocated in coherent memory for DMA operations.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b05c2385
    • A
      drm/radeon: fixup RV550 chip family · 16d3be46
      Alex Deucher 提交于
      This fixes up the RV550 chips which are based on RV515, not RV530.
      It also adds another RS690 PCI ID.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      16d3be46
    • T
      drm/via: attempt again to stabilise the AGP DMA command submission. · f0fb6d77
      Thomas Hellstrom 提交于
      It's worth remembering that all new bright ideas on how to make this command reader work properly and according to docs will probably fail :( Bring in some old code.
      
      Also allow a larger SG-DMA download stride, and remove unnecessary waits for
      command regulators pauses.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      f0fb6d77
    • M
      drm: Fix race that can lockup the kernel · 9df5808c
      Mike Isely 提交于
      The i915_vblank_swap() function schedules an automatic buffer swap
      upon receipt of the vertical sync interrupt.  Such an operation is
      lengthy so it can't be allowed to happen in normal interrupt context,
      thus the DRM implements this by scheduling the work in a kernel
      softirq-scheduled tasklet.  In order for the buffer swap to work
      safely, the DRM's central lock must be taken, via a call to
      drm_lock_take() located in drivers/char/drm/drm_irq.c within the
      function drm_locked_tasklet_func().  The lock-taking logic uses a
      non-interrupt-blocking spinlock to implement the manipulations needed
      to take the lock.  This semantic would be safe if all attempts to use
      the spinlock only happen from process context.  However this buffer
      swap happens from softirq context which is really a form of interrupt
      context.  Thus we have an unsafe situation, in that
      drm_locked_tasklet_func() can block on a spinlock already taken by a
      thread in process context which will never get scheduled again because
      of the blocked softirq tasklet.  This wedges the kernel hard.
      
      To trigger this bug, run a dual-head cloned mode configuration which
      uses the i915 drm, then execute an opengl application which
      synchronizes buffer swaps against the vertical sync interrupt.  In my
      testing, a lockup always results after running anywhere from 5 minutes
      to an hour and a half.  I believe dual-head is needed to really
      trigger the problem because then the vertical sync interrupt handling
      is no longer predictable (due to being interrupt-sourced from two
      different heads running at different speeds).  This raises the
      probability of the tasklet trying to run while the userspace DRI is
      doing things to the GPU (and manipulating the DRM lock).
      
      The fix is to change the relevant spinlock semantics to be the
      interrupt-blocking form.  After this change I am no longer able to
      trigger the lockup; the longest test run so far was 20 hours (test
      stopped after that point).
      
      Note: I have examined the places where this spinlock is being
      employed; all are reasonably short bounded sequences and should be
      suitable for interrupts being blocked without impacting overall kernel
      interrupt response latency.
      Signed-off-by: NMike Isely <isely@pobox.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      9df5808c
  5. 14 3月, 2008 1 次提交
  6. 11 3月, 2008 1 次提交
  7. 10 3月, 2008 1 次提交
  8. 08 3月, 2008 1 次提交
    • I
      drivers/char/esp.c: fix bootup lockup · 80d38f9a
      Ingo Molnar 提交于
      randconfig testing found a bootup lockup in drivers/char/esp.c because
      of a spinlock that wasn't correctly initialized.
      
      I'm not sure why it became more prominent in 2.6.25-rc4, the bug seems
      rather old and i've been doing allyesconfig bootups for ages with
      CONFIG_ESP enabled.
      
      This fixes this bootup lockup:
      
       PM: Adding info for No Bus:ttyP63
       ttyP32 at 0x0240 (irq = 0) is an ESP primary port
       BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
       Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
        [<c08649be>] _spin_lock_irqsave+0x5e/0x80
        [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
        [<c0b9fbfe>] espserial_init+0x2be/0x6e0
        [<c0b877a3>] kernel_init+0x83/0x260
        [<c0b9f940>] ? espserial_init+0x0/0x6e0
        [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
        [<c0b87720>] ? kernel_init+0x0/0x260
        [<c0b87720>] ? kernel_init+0x0/0x260
        [<c0104507>] kernel_thread_helper+0x7/0x10
        =======================
      
      kzalloc() is not the way to initialize spinlocks anymore.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      80d38f9a
  9. 05 3月, 2008 4 次提交
  10. 04 3月, 2008 1 次提交
  11. 01 3月, 2008 1 次提交
  12. 29 2月, 2008 1 次提交
  13. 23 2月, 2008 1 次提交
  14. 20 2月, 2008 12 次提交
  15. 19 2月, 2008 3 次提交
  16. 14 2月, 2008 3 次提交
    • A
      [POWERPC] hvc_rtas_init() must be __init · 1407b3d1
      Adrian Bunk 提交于
      This fixes the following section mismatch:
      
      <--  snip  -->
      
      ...
      WARNING: vmlinux.o(.text+0x2fbca8): Section mismatch in reference from the function .hvc_rtas_init() to the function .devinit.text:.hvc_alloc()
      ...
      
      <--  snip  -->
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1407b3d1
    • P
      pcmcia: ipwireless depends on NETDEVICES · 9170d2f6
      Paul Mundt 提交于
      ipwireless (added by 099dc4fb) is clearly
      a net device:
      
      drivers/built-in.o: In function `ipwireless_ppp_start_xmit':
      /home/pmundt/devel/git/sh-2.6.25/drivers/char/pcmcia/ipwireless/network.c:165: undefined reference to `skb_under_panic'
      /home/pmundt/devel/git/sh-2.6.25/drivers/char/pcmcia/ipwireless/network.c:165: undefined reference to `kfree_skb'
      drivers/built-in.o: In function `ipwireless_network_packet_received':
      /home/pmundt/devel/git/sh-2.6.25/drivers/char/pcmcia/ipwireless/network.c:377: undefined reference to `__alloc_skb'
      /home/pmundt/devel/git/sh-2.6.25/drivers/char/pcmcia/ipwireless/network.c:377: undefined reference to `skb_over_panic'
      drivers/built-in.o: In function `ppp_shutdown_interface':
      /home/pmundt/devel/git/sh-2.6.25/drivers/net/ppp_generic.c:2517: undefined reference to `unregister_netdev'
      /home/pmundt/devel/git/sh-2.6.25/drivers/net/ppp_generic.c:2517: undefined reference to `free_netdev'
      [ ... and many more ... ]
      
      select strikes again. ipwireless selects PPP which in turn tries to select
      SLHC, both of which are technically "protected" by an if NETDEVICES
      in drivers/net/Kconfig. This leads to .config hilarity, with net suddenly
      ending up in the SCSI menu:
      
      	#
      	# SCSI device support
      	#
      	# CONFIG_SCSI_DMA is not set
      	# CONFIG_SCSI_NETLINK is not set
      	CONFIG_PPP=y
      	# CONFIG_PHONE is not set
      
      Curiously the SLHC select from PPP doesn't seem to happen, as there's no
      CONFIG_SLHC=y (only CONFIG_PPP=y gets set) -- Kconfig bug? Caught with a
      randconfig.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      Acked-by: NJiri Kosina <jkosina@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9170d2f6
    • H
      Final removal of FASTCALL()/fastcall · 21534301
      Harvey Harrison 提交于
      All users are gone, remove definitions and comments referring
      to them.
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      21534301
  17. 09 2月, 2008 3 次提交