11 Dec, 2006

12 commits

  • Stabilize PIO mode transfers against a range of word sizes and FIFO
    thresholds and fixes word size setup/override issues.

    1) 16 and 32 bit DMA/PIO transfers broken due to timing differences.
    2) Potential for bad transfer counts due to transfer size assumptions.
    3) Setup function broken is multiple ways.
    4) Per transfer bit_per_word changes break DMA setup in pump_tranfers.
    5) False positive timeout are not errors.
    6) Changes in pxa2xx_spi_chip not effective in calls to setup.
    7) Timeout scaling wrong for PXA255 NSSP.
    8) Driver leaks memory while busy during unloading.

    Known issues:

    SPI_CS_HIGH and SPI_LSB_FIRST settings in struct spi_device are not handled.

    Testing:

    This patch has been test against the "random length, random bits/word,
    random data (verified on loopback) and stepped baud rate by octaves
    (3.6MHz to 115kHz)" test. It is robust in PIO mode, using any
    combination of tx and rx thresholds, and also in DMA mode (which
    internally computes the thresholds).

    Much thanks to Ned Forrester for exhaustive reviews, fixes and testing.
    The driver is substantially better for his efforts.

    Signed-off-by: Stephen Street
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Street
     
  • The reverse get function allows the final piece of the switching for the old
    IDE layer

    Signed-off-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • This is a long outstanding patch to finally fix the syscall interface. The
    constants used for the system calls are those we have provided in our libc
    patches. This patch also fixes the shmbuf and stat structure, and fcntl
    definitions.

    Signed-off-by: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Zankel
     
  • The Xtensa port contained many header files that were never needed. This
    rather lengthy patch removes all those files. Unfortunately, there were
    many dependencies that needed to be updated, so this patch touches quite a
    few source files.

    Signed-off-by: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Zankel
     
  • Update the architecture specific interrupt handling code for Xtensa to support
    the new API. Use generic BUG macros in bug.h, and some minor fixes.

    Signed-off-by: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Zankel
     
  • Ramiro Voicu hits the BUG_ON(!pte_none(*pte)) in zeromap_pte_range: kernel
    bugzilla 7645. Right: read_zero_pagealigned uses down_read of mmap_sem,
    but another thread's racing read of /dev/zero, or a normal fault, can
    easily set that pte again, in between zap_page_range and zeromap_page_range
    getting there. It's been wrong ever since 2.4.3.

    The simple fix is to use down_write instead, but that would serialize reads
    of /dev/zero more than at present: perhaps some app would be badly
    affected. So instead let zeromap_page_range return the error instead of
    BUG_ON, and read_zero_pagealigned break to the slower clear_user loop in
    that case - there's no need to optimize for it.

    Use -EEXIST for when a pte is found: BUG_ON in mmap_zero (the other user of
    zeromap_page_range), though it really isn't interesting there. And since
    mmap_zero wants -EAGAIN for out-of-memory, the zeromaps better return that
    than -ENOMEM.

    Signed-off-by: Hugh Dickins
    Cc: Ramiro Voicu:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • The as-instr/ld-option need to create temporary files, but create them in the
    output directory, when compiling external modules. Reformat them a bit and
    use $(CC) instead of $(AS) as the former is used by kbuild to assemble files.

    Signed-off-by: Roman Zippel
    Cc: Andi Kleen
    Cc: Jan Beulich
    Cc: Sam Ravnborg
    Cc:
    Cc: Horst Schirmeier
    Cc: Daniel Drake
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roman Zippel
     
  • `make -d help | grep Makefile` shows patterns, where make tries to rebuild
    included and top makefiles.

    While `make -rR is now default' commit should fix this, actually, it was just
    a little janitorial.

    This fix is aimed to complete cancelling implicit rules.

    Cc: Sam Ravnborg
    Signed-off-by: Oleg Verych
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Verych
     
  • Refactor Kconfig content to maximize nesting of menus by menuconfig and
    xconfig.

    Tested by simultaneously running `make xconfig` with and without
    patch, and comparing displays.

    Signed-off-by: Don Mullis
    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Don Mullis
     
  • When CONFIG_PROC_FS=n and CONFIG_PROC_SYSCTL=n but CONFIG_SYSVIPC=y, we get
    this build error:

    kernel/built-in.o:(.data+0xc38): undefined reference to `proc_ipc_doulongvec_minmax'
    kernel/built-in.o:(.data+0xc88): undefined reference to `proc_ipc_doulongvec_minmax'
    kernel/built-in.o:(.data+0xcd8): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xd28): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xd78): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xdc8): undefined reference to `proc_ipc_dointvec'
    kernel/built-in.o:(.data+0xe18): undefined reference to `proc_ipc_dointvec'
    make: *** [vmlinux] Error 1

    Signed-off-by: Randy Dunlap
    Acked-by: Eric Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • This driver is an AC97 codec according to its help text. However, if SOUND is
    disabled, the "select SND_AC97_BUS" still inserts that into the .config file:

    #
    # Sound
    #
    # CONFIG_SOUND is not set
    CONFIG_SND_AC97_BUS=m

    Even if the config software followed dependency chains on selects, we should
    try to limit usage of "select" to library-type code that is needed (e.g., CRC
    functions) instead of bus-type support.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix ieee80211-softmac compile problem where it's using schedule_work() on a
    delayed_work struct.

    Signed-off-by: David Howells
    Cc: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

10 Dec, 2006

18 commits

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
    [PATCH] x86-64: no paravirt for X86_VOYAGER or X86_VISWS
    [PATCH] i386: Fix io_apic.c warning
    [PATCH] i386: export smp_num_siblings for oprofile
    [PATCH] x86: Work around gcc 4.2 over aggressive optimizer
    [PATCH] x86: Fix boot hang due to nmi watchdog init code
    [PATCH] x86: Fix verify_quirk_intel_irqbalance()
    [PATCH] i386: Update defconfig
    [PATCH] x86-64: Update defconfig

    Linus Torvalds
     
  • Since Voyager and Visual WS already define ARCH_SETUP,
    it looks like PARAVIRT shouldn't be offered for them.

    In file included from arch/i386/kernel/setup.c:63:
    include/asm-i386/mach-visws/setup_arch.h:8:1: warning: "ARCH_SETUP" redefin=
    ed
    In file included from include/asm/msr.h:5,
    from include/asm/processor.h:17,
    from include/asm/thread_info.h:16,
    from include/linux/thread_info.h:21,
    from include/linux/preempt.h:9,
    from include/linux/spinlock.h:49,
    from include/linux/capability.h:45,
    from include/linux/sched.h:46,
    from arch/i386/kernel/setup.c:26:
    include/asm/paravirt.h:163:1: warning: this is the location of the previous=
    definition
    In file included from arch/i386/kernel/setup.c:63:
    include/asm-i386/mach-visws/setup_arch.h:8:1: warning: "ARCH_SETUP" redefin=
    ed
    In file included from include/asm/msr.h:5,
    from include/asm/processor.h:17,
    from include/asm/thread_info.h:16,
    from include/linux/thread_info.h:21,
    from include/linux/preempt.h:9,
    from include/linux/spinlock.h:49,
    from include/linux/capability.h:45,
    from include/linux/sched.h:46,
    from arch/i386/kernel/setup.c:26:
    include/asm/paravirt.h:163:1: warning: this is the location of the previous=
    definition

    Signed-off-by: Randy Dunlap

    Randy Dunlap
     
  • gcc 4.2 warns

    linux/arch/i386/kernel/io_apic.c: In function ‘create_irq’:
    linux/arch/i386/kernel/io_apic.c:2488: warning: ‘vector’ may be used uninitialized in this function

    The warning is false, but somewhat legitimate so work around it.

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • oprofile uses smp_num_siblings without testing for CONFIG_X86_HT.
    I looked at modifying oprofile, but this way is cleaner & simpler
    and I didn't see a good reason not to just export it when CONFIG_SMP.

    WARNING: "smp_num_siblings" [arch/i386/oprofile/oprofile.ko] undefined!

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andi Kleen

    Randy Dunlap
     
  • The new PDA code uses a dummy _proxy_pda variable to describe
    memory references to the PDA. It is never referenced
    in inline assembly, but exists as input/output arguments.
    gcc 4.2 in some cases can CSE references to this which causes
    unresolved symbols. Define it to zero to avoid this.

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • 2.6.19 stopped booting (or booted based on build/config) on our x86_64
    systems due to a bug introduced in 2.6.19. check_nmi_watchdog schedules an
    IPI on all cpus to busy wait on a flag, but fails to set the busywait
    flag if NMI functionality is disabled. This causes the secondary cpus
    to spin in an endless loop, causing the kernel bootup to hang.
    Depending upon the build, the busywait flag got overwritten (stack variable)
    and caused the kernel to bootup on certain builds. Following patch fixes
    the bug by setting the busywait flag before returning from check_nmi_watchdog.
    I guess using a stack variable is not good here as the calling function could
    potentially return while the busy wait loop is still spinning on the flag.

    AK: I redid the patch significantly to be cleaner

    Signed-off-by: Ravikiran Thirumalai
    Signed-off-by: Shai Fultheim
    Signed-off-by: Andi Kleen

    Ravikiran G Thirumalai
     
  • Fix verify_quirk_intel_irqbalance(). genapic checks should really
    happen only on affected versions of the E7520/E7320/E7525 based platforms.

    AK: This should akpm's Coyote SDV

    Signed-off-by: Suresh Siddha
    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • Signed-off-by: Andi Kleen

    Andi Kleen
     
  • Signed-off-by: Andi Kleen

    Andi Kleen
     
  • * 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (21 commits)
    Fix http://bugzilla.kernel.org/show_bug.cgi?id=7606
    drm: add flag for mapping PCI DMA buffers read-only.
    drm: fix up irqflags in drm_lock.c
    drm: i915 updates
    drm: i915: fix up irqflags arg
    drm: i915: Only return EBUSY after we've established we need to schedule a new swap.
    drm: i915: Fix 'sequence has passed' condition in i915_vblank_swap().
    drm: i915: Add SAREA fileds for determining which pipe to sync window buffer swaps to.
    drm: Make handling of dev_priv->vblank_pipe more robust.
    drm: DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead
    drm: i915: Add ioctl for scheduling buffer swaps at vertical blanks.
    drm: Core vsync: Don't clobber target sequence number when scheduling signal.
    drm: Core vsync: Add flag DRM_VBLANK_NEXTONMISS.
    drm: Make locked tasklet handling more robust.
    drm: drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.
    drm: Change first valid DRM drawable ID to be 1 instead of 0.
    drm: drawable locking + memory management fixes + copyright
    drm: Add support for interrupt triggered driver callback with lock held to DRM core.
    drm: Add support for tracking drawable information to core
    drm: add support for secondary vertical blank interrupt to i915
    ...

    Linus Torvalds
     
  • Use direct assignment rather than cmpxchg() as the latter is unavailable
    and unimplementable on some platforms and is actually unnecessary.

    The use of cmpxchg() was to guard against two possibilities, neither of
    which can actually occur:

    (1) The pending flag may have been unset or may be cleared. However, given
    where it's called, the pending flag is _always_ set. I don't think it
    can be unset whilst we're in set_wq_data().

    Once the work is enqueued to be actually run, the only way off the queue
    is for it to be actually run.

    If it's a delayed work item, then the bit can't be cleared by the timer
    because we haven't started the timer yet. Also, the pending bit can't be
    cleared by cancelling the delayed work _until_ the work item has had its
    timer started.

    (2) The workqueue pointer might change. This can only happen in two cases:

    (a) The work item has just been queued to actually run, and so we're
    protected by the appropriate workqueue spinlock.

    (b) A delayed work item is being queued, and so the timer hasn't been
    started yet, and so no one else knows about the work item or can
    access it (the pending bit protects us).

    Besides, set_wq_data() _sets_ the workqueue pointer unconditionally, so
    it can be assigned instead.

    So, replacing the set_wq_data() with a straight assignment would be okay
    in most cases.

    The problem is where we end up tangling with test_and_set_bit() emulated
    using spinlocks, and even then it's not a problem _provided_
    test_and_set_bit() doesn't attempt to modify the word if the bit was
    set.

    If that's a problem, then a bitops-proofed assignment will be required -
    equivalent to atomic_set() vs other atomic_xxx() ops.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Amiga PCMCIA NE2000 Ethernet: Add missing initialization of dev->irq

    Signed-off-by: Kars de Jong
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Kars de Jong
     
  • Remove bogus comments about unexporting cache_{push,clear}(), as inline
    dma_cache_maintenance() (used by at least bionet and pamsnet) calls them.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Atari IDE: The interrupt needs SA_SHIRQ now to get registered.

    Signed-off-by: Michael Schmitz
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Michael Schmitz
     
  • Make sun3 scsi drivers compile/work again (though with way too many warnings...)

    Tested on 3/50, 3/60.

    Signed-off-by: Sam Creasey
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Sam Creasey
     
  • General compile fixes for 2.6.16 for sun3, and some updates to make the new
    bootloader work correctly. Tested on 3/50, 3/60, 3/80.

    Signed-off-by: Sam Creasey
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Sam Creasey
     
  • - 7990: request_irq() should have SA_SHIRQ flag set
    - hplance_init() printed dev->name before register_netdev() had filled it in

    Signed-off-by: Kars de Jong
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Kars de Jong
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [NETLINK]: Put {IFA,IFLA}_{RTA,PAYLOAD} macros back for userspace.
    [NET_SCHED] sch_htb: turn intermediate classes into leaves
    [NET_SCHED] sch_cbq: deactivating when grafting, purging etc.
    [XFRM]: Fix XFRMGRP_REPORT to use correct multicast group.
    [NET]: Force a cache line split in hh_cache in SMP.
    [NETPOLL]: make arp replies through netpoll use mac address of sender
    [NETLINK]: Restore API compatibility of address and neighbour bits
    [AX.25]: Fix default address and broadcast address initialization.
    [AX.25]: Constify ax25 utility functions
    [BNX2]: Add an error check.
    [NET]: Convert hh_lock to seqlock.

    Linus Torvalds
     

09 Dec, 2006

10 commits