27 Apr, 2009

1 commit

  • This has the consequence of changing the section name use for head
    code from ".text.head" to ".head.text". Since this commit changes all
    users in the architecture, this change should be harmless.

    Signed-off-by: Tim Abbott
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Acked-by: Sam Ravnborg
    Signed-off-by: Linus Torvalds

    Tim Abbott
     

23 Apr, 2009

4 commits


22 Apr, 2009

1 commit

  • Pass clocksource pointer to the read() callback for clocksources. This
    allows us to share the callback between multiple instances.

    [hugh@veritas.com: fix powerpc build of clocksource pass clocksource mods]
    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Magnus Damm
    Acked-by: John Stultz
    Cc: Thomas Gleixner
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     

21 Apr, 2009

1 commit


14 Apr, 2009

11 commits

  • Start the cpu time accounting very early to catch the cpu time spent
    for the initial kernel setup. To make the output of /proc/uptime
    match the sum of all cpu accounting values of the boot cpu reset
    xtime and wall_to_monotonic to sane values based on the TOD clock.
    The values set by timekeeping_init are off by up to a second.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Add a read_persistent_clock function that does not just return 0.
    Since timekeeping_init calls the function before time_init has been
    called move reset_tod_clock to early.c to make sure that the TOD
    clock is running when read_persistent_clock is invoked.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Reset the cpu timer to the maximum value and correctly initialize the
    cpu accounting values in the lowcore when the cpu is started.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The steal time is calculated by subtracting the time the virtual cpu
    has been running on a physical cpu from the wall clock time. To make
    that work all wall time needs to be added to the steal time field first
    before the virtual cpu time is subtracted.

    The time between the last clock update and the load of the enabled wait
    psw needs to be added to the steal_time field as well to make the sum
    over all cpu accounting numbers match the wall clock.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The cpu_possible_map by default is initialized with all ones in s390.
    If the kernel paramert possible_cpus= is passed the cpu_possible_map
    is supposed to have x bits set.
    However the current code just sets the x bits without clearing the NR_CPUS
    bits that were already set. So we end up with an unchanged map that has
    all bits set.
    To fix this just clear the map before setting any new bits.

    This broke with def6cfb70bab83c0094bc0cedd27c4eda563043e
    "[S390] cpumask: Use accessors code."

    Cc: Rusty Russell
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • mod_virt_timer() was used to modify/add cpu timers for cpus that were
    set online. This resulted in a one-shot timer for every cpu that was
    newly added or previously set offline, instead of an interval timer,
    which broke the appldata vtime interval setup.

    To fix this, the new mod_virt_timer_periodic() function is used, which
    adds interval timers instead of one-shot timers.

    Signed-off-by: Gerald Schaefer
    Signed-off-by: Martin Schwidefsky

    Gerald Schaefer
     
  • In case mod_virt_timer is used to add a non pending timer the timer
    is always added as a one-shot timer. If mod_virt_timer is used for
    periodic timers they may therfore be degraded to one-shot timers.

    Add mod_virt_timer_periodic to the interface to allow safe re-programming
    of the interval value.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • Add a timer that retries the clock synchronization via the server time
    protocol if there is a usable clock but the synchronization failed.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • nmi_enter/nmi_exit includes the lockdep calls and various
    other calls which were missing so far.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Currently the storage of the machine flags is a globally exported unsigned
    long long variable. By moving the storage location into the lowcore struct we
    allow assembler code to check machine_flags directly even without needing a
    register. Addtionally the lowcore and therefore the machine flags too will be
    in cache most of the time.

    Signed-off-by: Christian Ehrhardt
    Signed-off-by: Martin Schwidefsky

    Christian Ehrhardt
     

10 Apr, 2009

1 commit

  • Impact: performance regression fix for s390

    The adaptive spinning mutexes will not always do what one would expect on
    virtualized architectures like s390. Especially the cpu_relax() loop in
    mutex_spin_on_owner might hurt if the mutex holding cpu has been scheduled
    away by the hypervisor.

    We would end up in a cpu_relax() loop when there is no chance that the
    state of the mutex changes until the target cpu has been scheduled again by
    the hypervisor.

    For that reason we should change the default behaviour to no-spin on s390.

    We do have an instruction which allows to yield the current cpu in favour of
    a different target cpu. Also we have an instruction which allows us to figure
    out if the target cpu is physically backed.

    However we need to do some performance tests until we can come up with
    a solution that will do the right thing on s390.

    Signed-off-by: Heiko Carstens
    Acked-by: Peter Zijlstra
    Cc: Martin Schwidefsky
    Cc: Christian Borntraeger
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Heiko Carstens
     

04 Apr, 2009

1 commit


03 Apr, 2009

3 commits

  • Pass the original flags to rwlock arch-code, so that it can re-enable
    interrupts if implemented for that architecture.

    Initially, make __raw_read_lock_flags and __raw_write_lock_flags stubs
    which just do the same thing as non-flags variants.

    Signed-off-by: Petr Tesarik
    Signed-off-by: Robin Holt
    Acked-by: Peter Zijlstra
    Cc:
    Acked-by: Ingo Molnar
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     
  • First argument unused since 2.3.11.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Alexey Dobriyan
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • This fixes a build failure with generic debug pagealloc:

    mm/debug-pagealloc.c: In function 'set_page_poison':
    mm/debug-pagealloc.c:8: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'clear_page_poison':
    mm/debug-pagealloc.c:13: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'page_poison':
    mm/debug-pagealloc.c:18: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: At top level:
    mm/debug-pagealloc.c:120: error: redefinition of 'kernel_map_pages'
    include/linux/mm.h:1278: error: previous definition of 'kernel_map_pages' was here
    mm/debug-pagealloc.c: In function 'kernel_map_pages':
    mm/debug-pagealloc.c:122: error: 'debug_pagealloc_enabled' undeclared (first use in this function)

    by fixing

    - debug_flags should be in struct page
    - define DEBUG_PAGEALLOC config option for all architectures

    Signed-off-by: Akinobu Mita
    Reported-by: Alexander Beregalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

02 Apr, 2009

1 commit

  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] cio: online_store - trigger recognition for boxed devices
    [S390] cio: disallow online setting of device in transient state
    [S390] cio: introduce notifier for boxed state
    [S390] cio: introduce ccw_device_schedule_sch_unregister
    [S390] cio: wake up on failed recognition
    [S390] fix hypfs build failure
    [PATCH] sysrq: include interrupt.h instead of irq.h

    Linus Torvalds
     

01 Apr, 2009

3 commits

  • CONFIG_DEBUG_PAGEALLOC is now supported by x86, powerpc, sparc64, and
    s390. This patch implements it for the rest of the architectures by
    filling the pages with poison byte patterns after free_pages() and
    verifying the poison patterns before alloc_pages().

    This generic one cannot detect invalid page accesses immediately but
    invalid read access may cause invalid dereference by poisoned memory and
    invalid write access can be detected after a long delay.

    Signed-off-by: Akinobu Mita
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • If a ccw device did not respond in time during internal io, we set it
    into boxed state. With this patch we have the following behaviour:
    * the ccw driver will get a notification if the device was online and
    goes into the boxed state
    * if the device was disconnected and got boxed nothing special is to be
    done (it will be handled in reprobing later)
    * if the device got boxed while initial sensing it will be unregistered

    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Fix build breakage below which probably was introduced with
    ("rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints").

    CC arch/s390/hypfs/hypfs_diag.o
    arch/s390/hypfs/hypfs_diag.c: In function 'diag204_free_buffer':
    arch/s390/hypfs/hypfs_diag.c:364: error: implicit declaration of function 'free_pages'
    arch/s390/hypfs/hypfs_diag.c: In function 'diag204_alloc_rbuf':
    arch/s390/hypfs/hypfs_diag.c:384: error: implicit declaration of function '__get_free_pages'
    arch/s390/hypfs/hypfs_diag.c:384: error: 'GFP_KERNEL' undeclared (first use in this function)
    arch/s390/hypfs/hypfs_diag.c:384: error: (Each undeclared identifier is reported only once
    arch/s390/hypfs/hypfs_diag.c:384: error: for each function it appears in.)

    Reported-by: Sachin Sant
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

28 Mar, 2009

2 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)
    fs: avoid I_NEW inodes
    Merge code for single and multiple-instance mounts
    Remove get_init_pts_sb()
    Move common mknod_ptmx() calls into caller
    Parse mount options just once and copy them to super block
    Unroll essentials of do_remount_sb() into devpts
    vfs: simple_set_mnt() should return void
    fs: move bdev code out of buffer.c
    constify dentry_operations: rest
    constify dentry_operations: configfs
    constify dentry_operations: sysfs
    constify dentry_operations: JFS
    constify dentry_operations: OCFS2
    constify dentry_operations: GFS2
    constify dentry_operations: FAT
    constify dentry_operations: FUSE
    constify dentry_operations: procfs
    constify dentry_operations: ecryptfs
    constify dentry_operations: CIFS
    constify dentry_operations: AFS
    ...

    Linus Torvalds
     
  • Due to a different size of ino_t ustat needs a compat handler, but
    currently only x86 and mips provide one. Add a generic compat_sys_ustat
    and switch all architectures over to it. Instead of doing various
    user copy hacks compat_sys_ustat just reimplements sys_ustat as
    it's trivial. This was suggested by Arnd Bergmann.

    Found by Eric Sandeen when running xfstests/017 on ppc64, which causes
    stack smashing warnings on RHEL/Fedora due to the too large amount of
    data writen by the syscall.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

27 Mar, 2009

5 commits

  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (81 commits)
    [S390] remove duplicated #includes
    [S390] cpumask: use mm_cpumask() wrapper
    [S390] cpumask: Use accessors code.
    [S390] cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.
    [S390] cpumask: remove cpu_coregroup_map
    [S390] fix clock comparator save area usage
    [S390] Add hwcap flag for the etf3 enhancement facility
    [S390] Ensure that ipl panic notifier is called late.
    [S390] fix dfp elf hwcap/facility bit detection
    [S390] smp: perform initial cpu reset before starting a cpu
    [S390] smp: fix memory leak on __cpu_up
    [S390] ipl: Improve checking logic and remove switch defaults.
    [S390] s390dbf: Remove needless check for NULL pointer.
    [S390] s390dbf: Remove redundant initilizations.
    [S390] use kzfree()
    [S390] BUG to BUG_ON changes
    [S390] zfcpdump: Prevent zcore from beeing built as a kernel module.
    [S390] Use csum_partial in checksum.h
    [S390] cleanup lowcore.h
    [S390] eliminate ipl_device from lowcore
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1750 commits)
    ixgbe: Allow Priority Flow Control settings to survive a device reset
    net: core: remove unneeded include in net/core/utils.c.
    e1000e: update version number
    e1000e: fix close interrupt race
    e1000e: fix loss of multicast packets
    e1000e: commonize tx cleanup routine to match e1000 & igb
    netfilter: fix nf_logger name in ebt_ulog.
    netfilter: fix warning in ebt_ulog init function.
    netfilter: fix warning about invalid const usage
    e1000: fix close race with interrupt
    e1000: cleanup clean_tx_irq routine so that it completely cleans ring
    e1000: fix tx hang detect logic and address dma mapping issues
    bridge: bad error handling when adding invalid ether address
    bonding: select current active slave when enslaving device for mode tlb and alb
    gianfar: reallocate skb when headroom is not enough for fcb
    Bump release date to 25Mar2009 and version to 0.22
    r6040: Fix second PHY address
    qeth: fix wait_event_timeout handling
    qeth: check for completion of a running recovery
    qeth: unregister MAC addresses during recovery.
    ...

    Manually fixed up conflicts in:
    drivers/infiniband/hw/cxgb3/cxio_hal.h
    drivers/infiniband/hw/nes/nes_nic.c

    Linus Torvalds
     
  • * 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (113 commits)
    KVM: VMX: Don't allow uninhibited access to EFER on i386
    KVM: Correct deassign device ioctl to IOW
    KVM: ppc: e500: Fix the bug that KVM is unstable in SMP
    KVM: ppc: e500: Fix the bug that mas0 update to wrong value when read TLB entry
    KVM: Fix missing smp tlb flush in invlpg
    KVM: Get support IRQ routing entry counts
    KVM: fix sparse warnings: Should it be static?
    KVM: fix sparse warnings: context imbalance
    KVM: is_long_mode() should check for EFER.LMA
    KVM: VMX: Update necessary state when guest enters long mode
    KVM: ia64: Fix the build errors due to lack of macros related to MSI.
    ia64: Move the macro definitions related to MSI to one header file.
    KVM: fix kvm_vm_ioctl_deassign_device
    KVM: define KVM_CAP_DEVICE_DEASSIGNMENT
    KVM: ppc: Add emulation of E500 register mmucsr0
    KVM: Report IRQ injection status for MSI delivered interrupts
    KVM: MMU: Fix another largepage memory leak
    KVM: SVM: set accessed bit for VMCB segment selectors
    KVM: Report IRQ injection status to userspace.
    KVM: MMU: remove assertion in kvm_mmu_alloc_page
    ...

    Linus Torvalds
     
  • Conflicts:
    drivers/net/wimax/i2400m/usb-notif.c

    David S. Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (29 commits)
    crypto: sha512-s390 - Add missing block size
    hwrng: timeriomem - Breaks an allyesconfig build on s390:
    nlattr: Fix build error with NET off
    crypto: testmgr - add zlib test
    crypto: zlib - New zlib crypto module, using pcomp
    crypto: testmgr - Add support for the pcomp interface
    crypto: compress - Add pcomp interface
    netlink: Move netlink attribute parsing support to lib
    crypto: Fix dead links
    hwrng: timeriomem - New driver
    crypto: chainiv - Use kcrypto_wq instead of keventd_wq
    crypto: cryptd - Per-CPU thread implementation based on kcrypto_wq
    crypto: api - Use dedicated workqueue for crypto subsystem
    crypto: testmgr - Test skciphers with no IVs
    crypto: aead - Avoid infinite loop when nivaead fails selftest
    crypto: skcipher - Avoid infinite loop when cipher fails selftest
    crypto: api - Fix crypto_alloc_tfm/create_create_tfm return convention
    crypto: api - crypto_alg_mod_lookup either tested or untested
    crypto: amcc - Add crypt4xx driver
    crypto: ansi_cprng - Add maintainer
    ...

    Linus Torvalds
     

26 Mar, 2009

6 commits

  • Remove duplicated #include's in arch/s390/kernel/ipl.c.

    Signed-off-by: Huang Weiyi
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Huang Weiyi
     
  • Makes code futureproof against the impending change to mm->cpu_vm_mask.

    It's also a chance to use the new cpumask_ ops which take a pointer
    (the older ones are deprecated, but there's no hurry for arch code).

    Signed-off-by: Rusty Russell
    Signed-off-by: Martin Schwidefsky

    Rusty Russell
     
  • Impact: use new API

    Use the accessors rather than frobbing bits directly. Most of this is
    in arch code I haven't even compiled, but is straightforward.

    Signed-off-by: Rusty Russell
    Signed-off-by: Mike Travis
    Signed-off-by: Martin Schwidefsky

    Rusty Russell
     
  • Impact: cleanup, futureproof

    In fact, all cpumask ops will only be valid (in general) for bit
    numbers < nr_cpu_ids. So use that instead of NR_CPUS in various
    places (I also updated the immediate sites to use the new cpumask_
    operators).

    This is always safe: no cpu number can be >= nr_cpu_ids, and
    nr_cpu_ids is initialized to NR_CPUS at boot.

    Signed-off-by: Rusty Russell
    Signed-off-by: Mike Travis
    Acked-by: Ingo Molnar
    Signed-off-by: Martin Schwidefsky

    Rusty Russell
     
  • Impact: cleanup

    cpu_coregroup_mask is the New Hotness.

    As S/390 uses theirs internally, so we just make it static.

    Signed-off-by: Rusty Russell
    Signed-off-by: Martin Schwidefsky

    Rusty Russell
     
  • The lowcore clock comparator save area on 64 bit machines is defined to
    contain only the seven most significant bits of the register.
    That's also why it starts at an uneven address (0x1331).
    The current code however writes eight bytes to the address and
    therefore overwrites the first byte of the access register save area.
    Fix this and write only seven bytes to the save area.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens