27 Jun, 2007

1 commit


17 Jun, 2007

1 commit

  • Some changes done a while ago to avoid pounding on ptep_set_access_flags and
    update_mmu_cache in some race situations break sun4c which requires
    update_mmu_cache() to always be called on minor faults.

    This patch reworks ptep_set_access_flags() semantics, implementations and
    callers so that it's now responsible for returning whether an update is
    necessary or not (basically whether the PTE actually changed). This allow
    fixing the sparc implementation to always return 1 on sun4c.

    [akpm@linux-foundation.org: fixes, cleanups]
    Signed-off-by: Benjamin Herrenschmidt
    Cc: Hugh Dickins
    Cc: David Miller
    Cc: Mark Fortescue
    Acked-by: William Lee Irwin III
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

25 May, 2007

1 commit


19 May, 2007

1 commit


17 May, 2007

1 commit


15 May, 2007

1 commit


12 May, 2007

4 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] Quicklist support for IA64
    [IA64] fix Kprobes reentrancy
    [IA64] SN: validate smp_affinity mask on intr redirect
    [IA64] drivers/char/snsc_event.c:206: warning: unused variable `p'
    [IA64] mca.c:121: warning: 'cpe_poll_timer' defined but not used
    [IA64] Fix - Section mismatch: reference to .init.data:mvec_name
    [IA64] more warning cleanups
    [IA64] Wire up epoll_pwait and utimensat
    [IA64] Fix warnings resulting from type-checking in dev_dbg()
    [IA64] typo s/kenrel/kernel/

    Linus Torvalds
     
  • IA64 is the origin of the quicklist implementation. So cut out the pieces
    that are now in core code and modify the functions called.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    Christoph Lameter
     
  • In case of reentrance i.e when a probe handler calls a functions which
    inturn has a probe, we save a previous kprobe information and just single
    step the reentrant probe without calling the actual probe handler. During
    this reentracy period, if an interrupt occurs and if probe happens to
    trigger in the inturrupt path, then we were corrupting the previous kprobe(
    as we were overriding the previous kprobe info) info their by crashing the
    system. This patch fixes this issues by having a an array of previous
    kprobe info struct(with the array size of 2).

    This similar technique is not needed on i386 and x86_64 because by default
    interrupts are turn off in the break/int3 exception handler.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    Anil S Keshavamurthy
     
  • On SN, only allow one bit to be set in the smp_affinty mask when
    redirecting an interrupt. Currently setting multiple bits is allowed, but
    only the first bit is used in determining the CPU to redirect to. This has
    caused confusion among some customers.

    [akpm@linux-foundation.org: fixes]
    Signed-off-by: John Keller
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    John Keller
     

11 May, 2007

2 commits


10 May, 2007

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] wire up pselect, ppoll
    [IA64] Add TIF_RESTORE_SIGMASK
    [IA64] unwind did not work for processes born with CLONE_STOPPED
    [IA64] Optional method to purge the TLB on SN systems
    [IA64] SPIN_LOCK_UNLOCKED macro cleanup in arch/ia64
    [IA64-SN2][KJ] mmtimer.c-kzalloc
    [IA64] fix stack alignment for ia32 signal handlers
    [IA64] - Altix: hotplug after intr redirect can crash system
    [IA64] save and restore cpus_allowed in cpu_idle_wait
    [IA64] Removal of percpu TR cleanup in kexec code
    [IA64] Fix some section mismatch errors

    Linus Torvalds
     
  • Recently a few direct accesses to the thread_info in the task structure snuck
    back, so this wraps them with the appropriate wrapper.

    Signed-off-by: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roman Zippel
     
  • Always ask the hardware to determine the hardware processor id in both UP and
    SMP kernels.

    Signed-off-by: Fernando Luis Vazquez Cao
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Cc: "Eric W. Biederman"
    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fernando Luis Vazquez Cao
     
  • With the advent of kdump, the assumption that the boot CPU when booting an UP
    kernel is always the CPU with a particular hardware ID (often 0) (usually
    referred to as BSP on some architectures) is not valid anymore. The reason
    being that the dump capture kernel boots on the crashed CPU (the CPU that
    invoked crash_kexec), which may be or may not be that particular CPU.

    Move definition of hard_smp_processor_id for the UP case to
    architecture-specific code ("asm/smp.h") where it belongs, so that each
    architecture can provide its own implementation.

    Signed-off-by: Fernando Luis Vazquez Cao
    Cc: "Luck, Tony"
    Acked-by: Andi Kleen
    Cc: "Eric W. Biederman"
    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fernando Luis Vazquez Cao
     

09 May, 2007

10 commits

  • Signed-off-by: Alexey Kuznetsov
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Tony Luck

    Alexey Kuznetsov
     
  • Preparation for pselect and ppoll.
    ia32 compat code not tested. :-(

    Signed-off-by: Alexey Kuznetsov
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Tony Luck

    Alexey Dobriyan
     
  • This patch adds an optional method for purging the TLB on SN IA64 systems.
    The change should not affect any non-SN system.

    Signed-off-by: Jack Steiner
    Signed-off-by: Tony Luck

    Jack Steiner
     
  • Signed-off-by: Mathieu Desnoyers
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • atomic_add_unless as inline. Remove system.h atomic.h circular dependency.
    I agree (with Andi Kleen) this typeof is not needed and more error
    prone. All the original atomic.h code that uses cmpxchg (which includes
    the atomic_add_unless) uses defines instead of inline functions,
    probably to circumvent a circular dependency between system.h and
    atomic.h on powerpc (which my patch addresses). Therefore, it makes
    sense to use inline functions that will provide type checking.

    atomic_add_unless as inline. Remove system.h atomic.h circular dependency.
    Digging into the FRV architecture shows me that it is also affected by
    such a circular dependency. Here is the diff applying this against the
    rest of my atomic.h patches.

    It applies over the atomic.h standardization patches.

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • Signed-off-by: Mathieu Desnoyers
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • Most architectures defined three macros, MK_IOSPACE_PFN(), GET_IOSPACE()
    and GET_PFN() in pgtable.h. However, the only callers of any of these
    macros are in Sparc specific code, either in arch/sparc, arch/sparc64 or
    drivers/sbus.

    This patch removes the redundant macros from all architectures except
    sparc and sparc64.

    Signed-off-by: David Gibson
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     
  • Currently the size of the per-cpu region reserved to save crash notes is
    set by the per-architecture value MAX_NOTE_BYTES. Which in turn is
    currently set to 1024 on all supported architectures.

    While testing ia64 I recently discovered that this value is in fact too
    small. The particular setup I was using actually needs 1172 bytes. This
    lead to very tedious failure mode where the tail of one elf note would
    overwrite the head of another if they ended up being alocated sequentially
    by kmalloc, which was often the case.

    It seems to me that a far better approach is to caclculate the size that
    the area needs to be. This patch does just that.

    If a simpler stop-gap patch for ia64 to be squeezed into 2.6.21(.X) is
    needed then this should be as easy as making MAX_NOTE_BYTES larger in
    arch/asm-ia64/kexec.h. Perhaps 2048 would be a good choice. However, I
    think that the approach in this patch is a much more robust idea.

    Acked-by: Vivek Goyal
    Signed-off-by: Simon Horman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Horman
     
  • This patch moves the die notifier handling to common code. Previous
    various architectures had exactly the same code for it. Note that the new
    code is compiled unconditionally, this should be understood as an appel to
    the other architecture maintainer to implement support for it aswell (aka
    sprinkling a notify_die or two in the proper place)

    arm had a notifiy_die that did something totally different, I renamed it to
    arm_notify_die as part of the patch and made it static to the file it's
    declared and used at. avr32 used to pass slightly less information through
    this interface and I brought it into line with the other architectures.

    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix vmalloc_sync_all bustage]
    [bryan.wu@analog.com: fix vmalloc_sync_all in nommu]
    Signed-off-by: Christoph Hellwig
    Cc:
    Cc: Russell King
    Signed-off-by: Bryan Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • When redirecting a device interrupt on SN, not all links
    between platform specific structures are being updated.
    This can result in a system crash if an interrupt
    redirection is followed by an unplug of that device.

    The complete fix also requires a prom update. Though,
    this patch is backward compatable and not dependent on
    the prom patch.

    Signed-off-by: John Keller
    Signed-off-by: Tony Luck

    John Keller
     

08 May, 2007

2 commits

  • Section mismatch: reference to ...

    .init.text:prefill_possible_map from .text between 'setup_per_cpu_areas' and 'cpu_init'
    .init.text:iosapic_override_isa_irq from .text between 'iosapic_init' and 'iosapic_remove'

    Signed-off-by: Tony Luck

    Tony Luck
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] update memory attribute aliasing documentation & test cases
    [IA64] fail mmaps that span areas with incompatible attributes
    [IA64] allow WB /sys/.../legacy_mem mmaps
    [IA64] make ioremap avoid unsupported attributes
    [IA64] rename ioremap variables to match i386
    [IA64] relax per-cpu TLB requirement to DTC
    [IA64] remove per-cpu ia64_phys_stacked_size_p8
    [IA64] Fix example error injection program
    [IA64] Itanium MC Error Injection Tool: pal_mc_error_inject() interface
    [IA64] Itanium MC Error Injection Tool: Makefile changes
    [IA64] Itanium MC Error Injection Tool: Driver sysfs interface
    [IA64] Itanium MC Error Injection Tool: Doc and sample application
    [IA64] Itanium MC Error Injection Tool: Kernel configuration

    Linus Torvalds
     

06 May, 2007

1 commit

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (231 commits)
    [PATCH] i386: Don't delete cpu_devs data to identify different x86 types in late_initcall
    [PATCH] i386: type may be unused
    [PATCH] i386: Some additional chipset register values validation.
    [PATCH] i386: Add missing !X86_PAE dependincy to the 2G/2G split.
    [PATCH] x86-64: Don't exclude asm-offsets.c in Documentation/dontdiff
    [PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu
    [PATCH] i386: white space fixes in i387.h
    [PATCH] i386: Drop noisy e820 debugging printks
    [PATCH] x86-64: Fix allnoconfig error in genapic_flat.c
    [PATCH] x86-64: Shut up warnings for vfat compat ioctls on other file systems
    [PATCH] x86-64: Share identical video.S between i386 and x86-64
    [PATCH] x86-64: Remove CONFIG_REORDER
    [PATCH] x86-64: Print type and size correctly for unknown compat ioctls
    [PATCH] i386: Remove copy_*_user BUG_ONs for (size < 0)
    [PATCH] i386: Little cleanups in smpboot.c
    [PATCH] x86-64: Don't enable NUMA for a single node in K8 NUMA scanning
    [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible
    [PATCH] i386: Add X86_FEATURE_RDTSCP
    [PATCH] i386: Implement X86_FEATURE_SYNC_RDTSC on i386
    [PATCH] i386: Implement alternative_io for i386
    ...

    Fix up trivial conflict in include/linux/highmem.h manually.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 May, 2007

2 commits

  • Most architectures' scatterlist.h use the type dma_addr_t, but omit to
    include which defines it. This could lead to build failures,
    so let's add the missing includes.

    Signed-off-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     
  • Add hooks to allow a paravirt implementation to track the lifetime of
    an mm. Paravirtualization requires three hooks, but only two are
    needed in common code. They are:

    arch_dup_mmap, which is called when a new mmap is created at fork

    arch_exit_mmap, which is called when the last process reference to an
    mm is dropped, which typically happens on exit and exec.

    The third hook is activate_mm, which is called from the arch-specific
    activate_mm() macro/function, and so doesn't need stub versions for
    other architectures. It's called when an mm is first used.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Andi Kleen
    Cc: linux-arch@vger.kernel.org
    Cc: James Bottomley
    Acked-by: Ingo Molnar

    Jeremy Fitzhardinge
     

01 May, 2007

3 commits


26 Apr, 2007

2 commits

  • Now that network timestamps use ktime_t infrastructure, we can add a new
    SOL_SOCKET sockopt SO_TIMESTAMPNS.

    This command is similar to SO_TIMESTAMP, but permits transmission of
    a 'timespec struct' instead of a 'timeval struct' control message.
    (nanosecond resolution instead of microsecond)

    Control message is labelled SCM_TIMESTAMPNS instead of SCM_TIMESTAMP

    A socket cannot mix SO_TIMESTAMP and SO_TIMESTAMPNS : the two modes are
    mutually exclusive.

    sock_recv_timestamp() became too big to be fully inlined so I added a
    __sock_recv_timestamp() helper function.

    Signed-off-by: Eric Dumazet
    CC: linux-arch@vger.kernel.org
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Now network timestamps use ktime_t infrastructure, we can add a new
    ioctl() SIOCGSTAMPNS command to get timestamps in 'struct timespec'.
    User programs can thus access to nanosecond resolution.

    Signed-off-by: Eric Dumazet
    CC: Stephen Hemminger
    Signed-off-by: David S. Miller

    Eric Dumazet
     

07 Apr, 2007

1 commit


05 Apr, 2007

1 commit


31 Mar, 2007

1 commit

  • Example memory map (from HP sx1000 with VGA enabled):
    0x00000 - 0x9FFFF supports only WB (cacheable) access
    0xA0000 - 0xBFFFF supports only UC (uncacheable) access
    0xC0000 - 0xFFFFF supports only WB (cacheable) access

    pci_read_rom() indirectly uses ioremap(0xC0000) to read the shadow VGA option
    ROM. ioremap() used to default to a 16MB or 64MB UC kernel identity mapping,
    which would cause an MCA when reading 0xC0000 since only WB is supported there.

    X uses reads the option ROM to initialize devices. A smaller test case is:
    # echo 1 > /sys/bus/pci/devices/0000:aa:03.0/rom
    # cp /sys/bus/pci/devices/0000:aa:03.0/rom x

    To avoid this, we can use the same ioremap_page_range() strategy that most
    architectures use for all ioremaps. These page table mappings come out of the
    vmalloc area. On ia64, these are in region 5 (0xA... addresses) and typically
    use 16KB or 64KB mappings instead of 16MB or 64MB mappings. The smaller
    mappings give more flexibility to use the correct attributes.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Tony Luck

    Bjorn Helgaas
     

22 Mar, 2007

1 commit