30 Jun, 2006

15 commits

  • This patch-queue improves the generic IRQ layer to be truly generic, by adding
    various abstractions and features to it, without impacting existing
    functionality.

    While the queue can be best described as "fix and improve everything in the
    generic IRQ layer that we could think of", and thus it consists of many
    smaller features and lots of cleanups, the one feature that stands out most is
    the new 'irq chip' abstraction.

    The irq-chip abstraction is about describing and coding and IRQ controller
    driver by mapping its raw hardware capabilities [and quirks, if needed] in a
    straightforward way, without having to think about "IRQ flow"
    (level/edge/etc.) type of details.

    This stands in contrast with the current 'irq-type' model of genirq
    architectures, which 'mixes' raw hardware capabilities with 'flow' details.
    The patchset supports both types of irq controller designs at once, and
    converts i386 and x86_64 to the new irq-chip design.

    As a bonus side-effect of the irq-chip approach, chained interrupt controllers
    (master/slave PIC constructs, etc.) are now supported by design as well.

    The end result of this patchset intends to be simpler architecture-level code
    and more consolidation between architectures.

    We reused many bits of code and many concepts from Russell King's ARM IRQ
    layer, the merging of which was one of the motivations for this patchset.

    This patch:

    rename desc->handler to desc->chip.

    Originally i did not want to do this, because it's a big patch. But having
    both "desc->handler", "desc->handle_irq" and "action->handler" caused a
    large degree of confusion and made the code appear alot less clean than it
    truly is.

    I have also attempted a dual approach as well by introducing a
    desc->chip alias - but that just wasnt robust enough and broke
    frequently.

    So lets get over with this quickly. The conversion was done automatically
    via scripts and converts all the code in the kernel.

    This renaming patch is the first one amongst the patches, so that the
    remaining patches can stay flexible and can be merged and split up
    without having some big monolithic patch act as a merge barrier.

    [akpm@osdl.org: build fix]
    [akpm@osdl.org: another build fix]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Coverity spotted this leak (id #613), when we are not configured, we return
    without freeing the allocated skb.

    Signed-off-by: Eric Sesterhenn
    Acked-by: Karsten Keil
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • The TPAM isdn driver was removed in 2.6.12, but include/linux/isdn/tpam.h
    was missed.

    Signed-off-by: Karsten Keil
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Karsten Keil
     
  • AFAICT, this is x86 only, so the patch below is needed to stop this new
    option showing up on PPC, IA64, etc..

    Signed-off-by: Dave Jones
    Cc: Jim Cromie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Another possible dereference detected by coverity (id #759). pf_probe()
    might call pf_identify() which might call get_capacity() which dereferences
    pf->disk

    Signed-off-by: Eric Sesterhenn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • Documention/pci.txt states..
    "The struct pci_driver shouldn't be marked with any of these tags."
    (Referring to __devinit and friends).

    (akpm: good documentation, that. Link this driver into vmlinux with hotplug
    CPU disabled and it'll crash).

    Signed-off-by: Dave Jones
    Cc: Brent Casavant
    Cc: Pat Gefre
    Cc: Jes Sorensen
    Cc: Tony Luck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Due to a regression in the correcponding ALSA driver (ALSA #2234), the
    OSS driver should stay until it's fixed.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Thankfully, these dummy function calls are no longer required to avoid
    warnings - if they weren't eliminated as dead code but accidentially executed
    there would be a guaranteed NULL dereference.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • fs/ufs/inode.c: In function `ufs_frag_map':
    fs/ufs/inode.c:101: warning: long long unsigned int format, u64 arg (arg 4)
    fs/ufs/inode.c: In function `ufs_getfrag_block':
    fs/ufs/inode.c:432: warning: long long unsigned int format, u64 arg (arg 2)

    Cc: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The proposed NFS key type uses its own method of passing key requests to
    userspace (upcalling) rather than invoking /sbin/request-key. This is
    because the responsible userspace daemon should already be running and will
    be contacted through rpc_pipefs.

    This patch permits the NFS filesystem to pass auxiliary data to the upcall
    operation (struct key_type::request_key) so that the upcaller can use a
    pre-existing communications channel more easily.

    Signed-off-by: David Howells
    Acked-By: Kevin Coffman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • arch/sparc/kernel/setup.c: In function 'topology_init':
    arch/sparc/kernel/setup.c:528: error: too many arguments to function 'register_cpu'

    Cc: William Lee Irwin III
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Memory hotplug code of i386 adds memory to only highmem. So, if
    CONFIG_HIGHMEM is not set, CONFIG_MEMORY_HOTPLUG shouldn't be set.
    Otherwise, it causes compile error.

    In addition, many architecture can't use memory hotplug feature yet. So, I
    introduce CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG.

    Signed-off-by: Yasunori Goto
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • The recent generic_file_write() deadlock fix caused
    generic_file_buffered_write() to loop inifinitely when presented with a
    zero-length iovec segment. Fix.

    Note that this fix deliberately avoids calling ->prepare_write(),
    ->commit_write() etc with a zero-length write. This is because I don't trust
    all filesystems to get that right.

    This is a cautious approach, for 2.6.17.x. For 2.6.18 we should just go ahead
    and call ->prepare_write() and ->commit_write() with the zero length and fix
    any broken filesystems. So I'll make that change once this code is stabilised
    and backported into 2.6.17.x.

    The reason for preferring to call ->prepare_write() and ->commit_write() with
    the zero-length segment: a zero-length segment _should_ be sufficiently
    uncommon that this is the correct way of handling it. We don't want to
    optimise for poorly-written userspace at the expense of well-written
    userspace.

    Cc: "Vladimir V. Saveliev"
    Cc: Neil Brown
    Cc: Martin Schwidefsky
    Cc: Chris Wright
    Cc: Greg KH
    Cc:
    Cc: walt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • drivers/built-in.o: In function `sgivwfb_set_par':
    sgivwfb.c:(.text+0x88583): undefined reference to `sgivwfb_mem_phys'
    sgivwfb.c:(.text+0x88596): undefined reference to `sgivwfb_mem_phys'
    sgivwfb.c:(.text+0x885a8): undefined reference to `sgivwfb_mem_phys'
    drivers/built-in.o: In function `sgivwfb_check_var':
    sgivwfb.c:(.text+0x88ad0): undefined reference to `sgivwfb_mem_size'
    drivers/built-in.o: In function `sgivwfb_mmap':
    sgivwfb.c:(.text+0x88c75): undefined reference to `sgivwfb_mem_size'
    sgivwfb.c:(.text+0x88c7f): undefined reference to `sgivwfb_mem_phys'
    drivers/built-in.o: In function `sgivwfb_probe':
    sgivwfb.c:(.init.text+0x4060): undefined reference to `sgivwfb_mem_size'
    sgivwfb.c:(.init.text+0x4065): undefined reference to `sgivwfb_mem_phys'
    sgivwfb.c:(.init.text+0x4076): undefined reference to `sgivwfb_mem_phys'
    sgivwfb.c:(.init.text+0x409c): undefined reference to `sgivwfb_mem_size'
    sgivwfb.c:(.init.text+0x410e): undefined reference to `sgivwfb_mem_size'
    sgivwfb.c:(.init.text+0x4113): undefined reference to `sgivwfb_mem_phys'
    sgivwfb.c:(.init.text+0x4162): undefined reference to `sgivwfb_mem_size'
    sgivwfb.c:(.init.text+0x4168): undefined reference to `sgivwfb_mem_phys'
    make: *** [.tmp_vmlinux1] Error 1

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

29 Jun, 2006

25 commits