01 Apr, 2006

13 commits

  • Make baby-simple the code for /proc/devices. Based on the proven design
    for /proc/interrupts.

    This also fixes the early-termination regression 2.6.16 introduced, as
    demonstrated by:

    # dd if=/proc/devices bs=1
    Character devices:
    1 mem
    27+0 records in
    27+0 records out

    This should also work (but is untested) when /proc/devices >4096 bytes,
    which I believe is what the original 2.6.16 rewrite fixed.

    [akpm@osdl.org: cleanups, simplifications]
    Signed-off-by: Joe Korty
    Cc: Neil Horman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Korty
     
  • Commit a4a6198b80cf82eb8160603c98da218d1bd5e104:
    [PATCH] tvec_bases too large for per-cpu data

    introduced "struct tvec_t_base_s boot_tvec_bases" which is visible at
    compile time. This means we can kill __init_timer_base and move
    timer_base_s's content into tvec_t_base_s.

    Signed-off-by: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • for_each_cpu() actually iterates across all possible CPUs. We've had mistakes
    in the past where people were using for_each_cpu() where they should have been
    iterating across only online or present CPUs. This is inefficient and
    possibly buggy.

    We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
    future.

    This patch replaces for_each_cpu with for_each_possible_cpu.

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • If running on a host not supporting TLS (for instance 2.4) we should report
    that cleanly to the user, instead of printing not comprehensible "error 5" for
    that.

    Additionally, i386 and x86_64 support different ranges for
    user_desc->entry_number, and we must account for that; we couldn't pass
    ourselves -1 because we need to override previously existing TLS descriptors
    which glibc has possibly set, so test at startup the range to use.

    x86 and x86_64 existing ranges are hardcoded.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Implement sys_[gs]et_thread_area and the corresponding ptrace operations for
    UML. This is the main chunk, additional parts follow. This implementation is
    now well tested and has run reliably for some time, and we've understood all
    the previously existing problems.

    Their implementation saves the new GDT content and then forwards the call to
    the host when appropriate, i.e. immediately when the target process is
    running or on context switch otherwise (i.e. on fork and on ptrace() calls).

    In SKAS mode, we must switch registers on each context switch (because SKAS
    does not switches tls_array together with current->mm).

    Also, added get_cpu() locking; this has been done for SKAS mode, since TT does
    not need it (it does not use smp_processor_id()).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • ldt-{i386,x86_64}.h is made of two different parts - some code for parsing of
    LDT descriptors, which is arch-dependant, and the code to handle uml_ldt_t (an
    LDT block inside UML), which is mostly arch-independant (among x86 and x86_64,
    at least).

    Join the common part in a single file (ldt.h) and split the rest away
    (host_ldt-{i386,x86_64}.h).

    This is needed because processor.h, with next patches, will start including
    the LDT descriptor parsing macros in host_ldt.h, but it can't include ldt.h
    because it uses semaphores (and to define semaphores one must first include
    processor.h!).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • misc sparse annotations

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Porting the patch I posted for x86_64 to i386.

    http://marc.theaimsgroup.com/?l=linux-kernel&m=114178139610707&w=2

    o While using kdump, after a system crash when second kernel boots, timer
    vector gets (0x31) locked and CPU does not see timer interrupts
    travelling from IOAPIC to APIC. Currently it does not lead to boot
    failure in second kernel as timer interrupts continues to come as ExtInt
    through LAPIC directly, but fixing it is good in case some boards do not
    support the other mode.

    o After a system crash, it is not safe to service interrupts any more,
    hence interrupts are disabled. This leads to pending interrupts at
    LAPIC. LAPIC sends these interrupts to the CPU during early boot of
    second kernel. Other pending interrupts are discarded saying unexpected
    trap but timer interrupt is serviced and CPU does not issue an LAPIC EOI
    because it think this interrupt came from i8259 and sends ack to 8259.
    This leads to vector 0x31 locking as LAPIC does not clear respective ISR
    and keeps on waiting for EOI.

    o This patch issues extra EOI for the pending interrupts who have ISR set.

    o Though today only timer seems to be the special case because in early
    boot it thinks interrupts are coming from i8259 and uses
    mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI. But
    probably doing it in generic manner for all vectors makes sense.

    Signed-off-by: Vivek Goyal
    Cc: "Eric W. Biederman"
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • It's been disabled since v2.1.88

    Signed-off-by: Brian Gerst
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Gerst
     
  • find_trylock_page() is an odd interface in that it doesn't take a reference
    like the others. Now that XFS no longer uses it, and its last remaining
    caller actually wants an elevated refcount, opencode that callsite and
    schedule find_trylock_page() for removal.

    Signed-off-by: Nick Piggin
    Acked-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Fix migrate_pages_to() definition.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • - chips/sharp.c: make two needlessly global functions static

    - move some declarations to a header file where they belong to

    Signed-off-by: Adrian Bunk
    Acked-by: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Semaphore to mutex conversion.

    The conversion was generated via scripts, and the result was validated
    automatically via a script as well.

    Signed-off-by: Ingo Molnar
    Cc: Thomas Gleixner
    Acked-by: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

31 Mar, 2006

19 commits


30 Mar, 2006

7 commits

  • Add RMPP support for additional management classes that support it.
    Also, validate RMPP is consistent with management class specified.

    Signed-off-by: Hal Rosenstock
    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Hal Rosenstock
     
  • Add a field to the host_set called 'flags' (was host_set_flags changed
    to suit Jeff)
    Add a simplex_claimed field so we can remember who owns the DMA channel
    Add a ->mode_filter() hook to allow drivers to filter modes
    Add docs for mode_filter and set_mode
    Filter according to simplex state
    Filter cable in core

    This provides the needed framework to support all the mode rules found
    in the PATA world. The simplex filter deals with 'to spec' simplex DMA
    systems found in older chips. The cable filter avoids duplicating the
    same rules in each chip driver with PATA. Finally the mode filter is
    neccessary because drive/chip combinations have errata that forbid
    certain modes with some drives or types of ATA object.

    Drive speed setup remains per channel for now and the filters now use
    the framework Tejun put into place which cleans them up a lot from the
    older libata-pata patches.

    Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • Some hardware doesn't want the usual mode setup logic running. This
    allows the hardware driver to replace it for special cases in the least
    invasive way possible.

    Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • This is the minimal patch set to enable the current code to be used with
    a controller following SFF (ie any PATA and early SATA controllers)
    safely without crashes if there is no BMDMA area or if BMDMA is not
    assigned by the BIOS for some reason.

    Simplex status is recorded but not acted upon in this change, this isn't
    a problem with the current drivers as none of them are for simplex
    hardware. A following diff will deal with that.

    The flags in the probe structure remain ->host_set_flags although Jeff
    asked me to rename them, simply because the rename would break the usual
    Linux rules that old code should break when there are changes. not
    compile and run and then blow up/eat your computer/etc. Renaming this
    later is a trivial exercise once a better name is chosen.

    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • Jeff Garzik
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [NETFILTER]: Rename init functions.
    [TCP]: Fix RFC2465 typo.
    [INET]: Introduce tunnel4/tunnel6
    [NET]: deinline 200+ byte inlines in sock.h
    [ECONET]: Convert away from SOCKOPS_WRAPPED
    [NET]: Fix ipx/econet/appletalk/irda ioctl crashes
    [NET]: Kill Documentation/networking/TODO
    [TG3]: Update version and reldate
    [TG3]: Skip timer code during full lock
    [TG3]: Speed up SRAM access
    [TG3]: Fix PHY loopback on 5700
    [TG3]: Fix bug in 40-bit DMA workaround code
    [TG3]: Fix probe failure due to invalid MAC address

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (67 commits)
    [PATCH] powerpc: Remove oprofile spinlock backtrace code
    [PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus
    [PATCH] powerpc: Add oprofile calltrace support
    [PATCH] for_each_possible_cpu: ppc
    [PATCH] for_each_possible_cpu: powerpc
    [PATCH] lock PTE before updating it in 440/BookE page fault handler
    [PATCH] powerpc: Kill _machine and hard-coded platform numbers
    ppc: Fix compile error in arch/ppc/lib/strcase.c
    [PATCH] git-powerpc: WARN was a dumb idea
    [PATCH] powerpc: a couple of trivial compile warning fixes
    powerpc: remove OCP references
    powerpc: Make uImage default build output for MPC8540 ADS
    powerpc: move math-emu over to arch/powerpc
    powerpc: use memparse() for mem= command line parsing
    ppc: fix strncasecmp prototype
    [PATCH] powerpc: make ISA floppies work again
    [PATCH] powerpc: Fix some initcall return values
    [PATCH] powerpc: Workaround for pSeries RTAS bug
    [PATCH] spufs: fix __init/__exit annotations
    [PATCH] powerpc: add hvc backend for rtas
    ...

    Linus Torvalds
     

29 Mar, 2006

1 commit