30 Jun, 2006

38 commits

  • This is a fixed up and cleaned up replacement for genirq-msi-fixes.patch,
    which should solve the i386 4KSTACKS problem. I also added Ben's idea of
    pushing the __do_IRQ() check into generic_handle_irq().

    I booted this with MSI enabled, but i only have MSI devices, not MSI-X
    devices. I'd still expect MSI-X to work now.

    irqchip migration helper: call __do_IRQ() if a descriptor is attached to an
    irqtype-style controller. This also fixes MSI-X IRQ handling on i386 and
    x86_64.

    Signed-off-by: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Benjamin Herrenschmidt
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Core genirq support: add the irq-chip and irq-flow abstractions.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Update/add copyrights in the generic IRQ code.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Enable platforms to disable the automatic enabling of freshly set up irqs.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Enable platforms to disable request_irq() for certain interrupts.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Introduce IRQ_NOPROBE: enables platforms to control chip-probing.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Enable platforms that do not have a hardware-assisted hardirq-resend mechanism
    to resend them via a softirq-driven IRQ emulation mechanism.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Add docbook file - includes API documentation.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Clean up no_irq_type: share the NOP functions where possible, and properly
    name the ack_bad() function.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Document handle_IRQ_event() and __do_IRQ().

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Better document the hw_interrupt_type and irq_desc structures.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Add ->retrigger() irq op to consolidate hw_irq_resend() implementations.
    (Most architectures had it defined to NOP anyway.)

    NOTE: ia64 needs testing. i386 and x86_64 tested.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Make enable_irq() debug printouts user-readable.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Cleanup: change ARCH_HAS_IRQ_PER_CPU into a Kconfig method.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Consolidation: remove the pending_irq_cpumask[NR_IRQS] array and move it into
    the irq_desc[NR_IRQS].pending_mask field.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Consolidation: remove the irq_dir[NR_IRQS] and the smp_affinity_entry[NR_IRQS]
    arrays and move them into the irq_desc[] array.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Small cleanups in include/linux/irq.h.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Cleanup: remove irq_desc_t use from the generic IRQ code, and mark it
    obsolete.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Assorted code cleanups to the generic IRQ code.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Now that i386 defaults to regparm, explicit uses of fastcall are not needed
    anymore.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Cleanup: remove irq_descp() - explicit use of irq_desc[] is shorter and more
    readable.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Consolidation: remove the irq_affinity[NR_IRQS] array and move it into the
    irq_desc[NR_IRQS].affinity field.

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

    Ingo Molnar
     
  • Convert the irq auto-probing semaphore to a mutex. (This allows us to find
    probing API usage bugs sooner, via the mutex debugging code.)

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • 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

2 commits

  • The recent vsnprintf() fix introduced an off-by-one, and it's now
    possible to overrun the target buffer by one byte.

    The "end" pointer points to past the end of the buffer, so if we
    have to truncate the result, it needs to be done though "end[-1]".

    [ This is just an alternate and simpler patch to one proposed by Andrew
    and Jeremy, who actually noticed the problem ]

    Acked-by: Andrew Morton
    Acked-by: Jeremy Fitzhardinge
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'nommu' of master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] nommu: backtrace code must not reference a discarded section
    [ARM] nommu: Initial uCLinux support for MMU-based CPUs
    [ARM] nommu: prevent Xscale-based machines being selected
    [ARM] nommu: export flush_dcache_page()
    [ARM] nommu: remove fault-armv, mmap and mm-armv files from nommu build
    [ARM] Remove TABLE_SIZE, and several unused function prototypes
    [ARM] nommu: Provide a simple flush_dcache_page implementation
    [ARM] nommu: add arch/arm/Kconfig-nommu to Kconfig files
    [ARM] nommu: add stubs for ioremap and friends
    [ARM] nommu: avoid selecting TLB and CPU specific copy code
    [ARM] nommu: uaccess tweaks
    [ARM] nommu: adjust headers for !MMU ARM systems
    [ARM] nommu: we need the TLS register emulation for nommu mode

    Linus Torvalds