15 Dec, 2009

38 commits

  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Convert locks which cannot be sleeping locks in preempt-rt to
    raw_spinlocks.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • plists are used with spinlocks and raw_spinlocks. Change the plist
    debugging to handle both types.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • kernel_lock.c emits a warning because a raw spinlock function is used
    with a spinlock. Convert BKL to raw_spinlock.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Make the name space hierarchy of locking functions consistent:
    raw_spin* -> _raw_spin* -> __raw_spin*

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • The name space hierarchy for the internal lock functions is now a bit
    backwards. raw_spin* functions map to _spin* which use __spin*, while
    we would like to have _raw_spin* and __raw_spin*.

    _raw_spin* is already used by lock debugging, so rename those funtions
    to do_raw_spin* to free up the _raw_spin* name space.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • spin_* functions are mostly static inline now. That causes the alpha
    compile to fail:

    CC arch/alpha/kernel/sys_sable.o
    cc1: warnings being treated as errors
    In file included from arch/alpha/kernel/sys_sable.c:25:
    arch/alpha/include/asm/core_t2.h: In function 't2_readb':
    arch/alpha/include/asm/core_t2.h:451: error: 'spinlock_check' is static but \
    used in inline function 't2_readb' which is not static
    arch/alpha/include/asm/core_t2.h:456: error: 'spin_unlock_irqrestore' is \
    static but used in inline function 't2_readb' which is not static

    That's caused by the "extern inline" magic which is used for the
    subarch specific read/write[bwl] functions. I tried to distangle the
    uncountable macro onion layers, but failed miserably.

    Last resort solution: switch the t2_hae_lock to raw_spinlock_t so the
    lock functions are pure macros and function calls again.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar
    Cc: Richard Henderson
    Cc: linux-alpha@vger.kernel.org

    Thomas Gleixner
     
  • Now that the raw_spin name space is freed up, we can implement
    raw_spinlock and the related functions which are used to annotate the
    locks which are not converted to sleeping spinlocks in preempt-rt.

    A side effect is that only such locks can be used with the low level
    lock fsunctions which circumvent lockdep.

    For !rt spin_* functions are mapped to the raw_spin* implementations.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Name space cleanup for rwlock functions. No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     
  • Not strictly necessary for -rt as -rt does not have non sleeping
    rwlocks, but it's odd to not have a consistent naming convention.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     
  • Name space cleanup. No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     
  • Further name space cleanup. No functional change

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     
  • The raw_spin* namespace was taken by lockdep for the architecture
    specific implementations. raw_spin_* would be the ideal name space for
    the spinlocks which are not converted to sleeping locks in preempt-rt.

    Linus suggested to convert the raw_ to arch_ locks and cleanup the
    name space instead of using an artifical name like core_spin,
    atomic_spin or whatever

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: David S. Miller
    Acked-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org

    Thomas Gleixner
     
  • Move the rwlock smp api defines and functions into a separate header
    file. Makes the -rt selection simpler and less intrusive.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Move the rwlock defines and inlines into separate header files. This
    makes the selection for -rt easier.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Separate spin_lock and rw_lock functions. Preempt-RT needs to exclude
    the rw_lock functions from being compiled. The reordering allows to do
    that with a single #ifdef.

    No functional change.

    Signed-off-by: Thomas Gleixner
    Acked-by: Peter Zijlstra
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
    udf: Avoid IO in udf_clear_inode
    udf: Try harder when looking for VAT inode
    udf: Fix compilation with UDFFS_DEBUG enabled

    Linus Torvalds
     
  • It is not very good to do IO in udf_clear_inode. First, VFS does not really
    expect inode to become dirty there and thus we have to write it ourselves,
    second, memory reclaim gets blocked waiting for IO when it does not really
    expect it, third, the IO pattern (e.g. on umount) resulting from writes in
    udf_clear_inode is bad and it slows down writing a lot.

    The reason why UDF needed to do IO in udf_clear_inode is that UDF standard
    mandates extent length to exactly match inode size. But when we allocate
    extents to a file or directory, we don't really know what exactly the final
    file size will be and thus temporarily set it to block boundary and later
    truncate it to exact length in udf_clear_inode. Now, this is changed to
    truncate to final file size in udf_release_file for regular files. For
    directories and symlinks, we do the truncation at the moment when learn
    what the final file size will be.

    Signed-off-by: Jan Kara

    Jan Kara
     
  • Some disks do not contain VAT inode in the last recorded block as required
    by the standard but a few blocks earlier (or the number of recorded blocks
    is wrong). So look for the VAT inode a bit before the end of the media.

    Signed-off-by: Jan Kara

    Jan Kara
     
  • Signed-off-by: Jan Kara

    Jan Kara
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, mce: Clean up thermal init by introducing intel_thermal_supported()
    x86, mce: Thermal monitoring depends on APIC being enabled
    x86: Gart: fix breakage due to IOMMU initialization cleanup
    x86: Move swiotlb initialization before dma32_free_bootmem
    x86: Fix build warning in arch/x86/mm/mmio-mod.c
    x86: Remove usedac in feature-removal-schedule.txt
    x86: Fix duplicated UV BAU interrupt vector
    nvram: Fix write beyond end condition; prove to gcc copy is safe
    mm: Adjust do_pages_stat() so gcc can see copy_from_user() is safe
    x86: Limit the number of processor bootup messages
    x86: Remove enabling x2apic message for every CPU
    doc: Add documentation for bootloader_{type,version}
    x86, msr: Add support for non-contiguous cpumasks
    x86: Use find_e820() instead of hard coded trampoline address
    x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks

    Trivial percpu-naming-introduced conflicts in arch/x86/kernel/cpu/intel_cacheinfo.c

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
    pcmcia: CodingStyle fixes
    pcmcia: remove unused IRQ_FIRST_SHARED

    Linus Torvalds
     
  • * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (23 commits)
    spi: fix probe/remove section markings
    Add OMAP spi100k driver
    spi-imx: don't access struct device directly but use dev_get_platdata
    spi-imx: Add mx25 support
    spi-imx: use positive logic to distinguish cpu variants
    spi-imx: correct check for platform_get_irq failing
    ARM: NUC900: Add spi driver support for nuc900
    spi: SuperH MSIOF SPI Master driver V2
    spi: fix spidev compilation failure when VERBOSE is defined
    spi/au1550_spi: fix setupxfer not to override cfg with zeros
    spi/mpc8xxx: don't use __exit_p to wrap plat_mpc8xxx_spi_remove
    spi/i.MX: fix broken error handling for gpio_request
    spi/i.mx: drain MXC SPI transfer buffer when probing device
    MAINTAINERS: add SPI co-maintainer.
    spi/xilinx_spi: fix incorrect casting
    spi/mpc52xx-spi: minor cleanups
    xilinx_spi: add a platform driver using the xilinx_spi common module.
    xilinx_spi: add support for the DS570 IP.
    xilinx_spi: Switch to iomem functions and support little endian.
    xilinx_spi: Split into of driver and generic part.
    ...

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf sched: Fix build failure on sparc
    perf bench: Add "all" pseudo subsystem and "all" pseudo suite
    perf tools: Introduce perf_session class
    perf symbols: Ditch dso->find_symbol
    perf symbols: Allow lookups by symbol name too
    perf symbols: Add missing "Variables" entry to map_type__name
    perf symbols: Add support for 'variable' symtabs
    perf symbols: Introduce ELF counterparts to symbol_type__is_a
    perf symbols: Introduce symbol_type__is_a
    perf symbols: Rename kthreads to kmaps, using another abstraction for it
    perf tools: Allow building for ARM
    hw-breakpoints: Handle bad modify_user_hw_breakpoint off-case return value
    perf tools: Allow cross compiling
    tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE
    tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING

    Trivial conflict due to different fixes to modify_user_hw_breakpoint()
    in include/linux/hw_breakpoint.h

    Linus Torvalds
     
  • Global variable declarations must match the definitions in section attributes
    as the compiler is at liberty to vary the method it uses to access a variable,
    depending on the section it is in.

    When building the FRV arch, I now see:

    drivers/built-in.o: In function `pci_apply_final_quirks':
    drivers/pci/quirks.c:2606: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
    drivers/pci/quirks.c:2623: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
    drivers/pci/quirks.c:2630: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o

    because the declaration of pci_dfl_cache_line_size in linux/pci.h does not
    match the definition in drivers/pci/pci.c.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • If there is no hardware breakpoint support, modify_user_hw_breakpoint()
    tries to return a NULL pointer through as an 'int' return value:

    In file included from kernel/exit.c:53:
    include/linux/hw_breakpoint.h: In function 'modify_user_hw_breakpoint':
    include/linux/hw_breakpoint.h:96: warning: return makes integer from pointer without a cast

    Return 0 instead.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • * 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze: (46 commits)
    microblaze: Remove rt_sigsuspend wrapper
    microblaze: nommu: Don't clobber R11 on syscalls
    microblaze: Remove show_tmem function
    microblaze: Support for WB cache
    microblaze: Add PVR for Microblaze v7.30.a
    microblaze: Remove ancient and fake microblaze version from cpu_ver table
    microblaze: Remove panic_timeout init value
    microblaze: Do not count system calls in default
    microblaze: Enable DTC compilation
    microblaze: Core oprofile configs and hooks
    microblaze: Fix level interrupt ACKing
    microblaze: Enable futimesat syscall
    microblaze: Checking DTS against PVR for write-back cache
    microblaze: Remove duplicity from pgalloc.h
    microblaze: Futex support
    microblaze: Adding dev_arch_data functions
    microblaze: Fix the heartbeat gpio to be more robust
    microblaze: Simple __copy_tofrom_user for noMMU
    microblaze: Export memory_start for modules
    microblaze: Use lowest-common-denominator default CPU settings
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md: (27 commits)
    md: add 'recovery_start' per-device sysfs attribute
    md: rcu_read_lock() walk of mddev->disks in md_do_sync()
    md: integrate spares into array at earliest opportunity.
    md: move compat_ioctl handling into md.c
    md: revise Kconfig help for MD_MULTIPATH
    md: add MODULE_DESCRIPTION for all md related modules.
    raid: improve MD/raid10 handling of correctable read errors.
    md/raid10: print more useful messages on device failure.
    md/bitmap: update dirty flag when bitmap bits are explicitly set.
    md: Support write-intent bitmaps with externally managed metadata.
    md/bitmap: move setting of daemon_lastrun out of bitmap_read_sb
    md: support updating bitmap parameters via sysfs.
    md: factor out parsing of fixed-point numbers
    md: support bitmap offset appropriate for external-metadata arrays.
    md: remove needless setting of thread->timeout in raid10_quiesce
    md: change daemon_sleep to be in 'jiffies' rather than 'seconds'.
    md: move offset, daemon_sleep and chunksize out of bitmap structure
    md: collect bitmap-specific fields into one structure.
    md/raid1: add takeover support for raid5->raid1
    md: add honouring of suspend_{lo,hi} to raid1.
    ...

    Linus Torvalds
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (58 commits)
    mfd: Add twl6030 regulator subdevices
    regulator: Add support for twl6030 regulators
    rtc: Add twl6030 RTC support
    mfd: Add support for twl6030 irq framework
    mfd: Rename twl4030_ routines in twl-regulator.c
    mfd: Rename twl4030_ routines in rtc-twl.c
    mfd: Rename all twl4030_i2c*
    mfd: Rename twl4030* driver files to enable re-use
    mfd: Clarify twl4030 return value for read and write
    mfd: Add all twl4030 regulators to the twl4030 mfd driver
    mfd: Don't set mc13783 ADREFMODE for touch conversions
    mfd: Remove ezx-pcap defines for custom led gpio encoding
    mfd: Near complete mc13783 rewrite
    mfd: Remove build time warning for WM835x register default tables
    mfd: Force I2C to be built in when building WM831x
    mfd: Don't allow wm831x to be built as a module
    mfd: Fix incorrect error check for wm8350-core
    mfd: Fix twl4030 warning
    gpiolib: Implement gpio_to_irq() for wm831x
    mfd: Remove default selection of AB4500
    ...

    Linus Torvalds
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: fix lh7a40x build
    ARM: fix sa1100 build
    ARM: fix clps711x, footbridge, integrator, ixp2000, ixp2300 and s3c build bug
    ARM: VFP: fix vfp thread init bug and document vfp notifier entry conditions
    ARM: pxa: fix now incorrect reference of skt->irq by using skt->socket.pci_irq
    [ARM] pxa/zeus: default configuration for Arcom Zeus SBC.
    [ARM] pxa/zeus: make Viper pcmcia support more generic to support Zeus
    [ARM] pxa/zeus: basic support for Arcom Zeus SBC
    [ARM] pxa/em-x270: fix usb hub power up/reset sequence
    PCMCIA: fix pxa2xx_lubbock modular build error
    ARM: RealView: Fix typo in the RealView/PBX Kconfig entry
    ARM: Do not allow the probing of the local timer
    ARM: Add an earlyprintk debug console

    Linus Torvalds
     
  • * git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (75 commits)
    NFS: Fix nfs_migrate_page()
    rpc: remove unneeded function parameter in gss_add_msg()
    nfs41: Invoke RECLAIM_COMPLETE on all new client ids
    SUNRPC: IS_ERR/PTR_ERR confusion
    NFSv41: Fix a potential state leakage when restarting nfs4_close_prepare
    nfs41: Handle NFSv4.1 session errors in the delegation recall code
    nfs41: Retry delegation return if it failed with session error
    nfs41: Handle session errors during delegation return
    nfs41: Mark stateids in need of reclaim if state manager gets stale clientid
    NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured
    nfs41: Don't clear DRAINING flag on NFS4ERR_STALE_CLIENTID
    nfs41: nfs41_setup_state_renewal
    NFSv41: More cleanups
    NFSv41: Fix up some bugs in the NFS4CLNT_SESSION_DRAINING code
    NFSv41: Clean up slot table management
    NFSv41: Fix nfs4_proc_create_session
    nfs41: Invoke RECLAIM_COMPLETE
    nfs41: RECLAIM_COMPLETE functionality
    nfs41: RECLAIM_COMPLETE XDR functionality
    Cleanup some NFSv4 XDR decode comments
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)
    m68k: rename global variable vmalloc_end to m68k_vmalloc_end
    percpu: add missing per_cpu_ptr_to_phys() definition for UP
    percpu: Fix kdump failure if booted with percpu_alloc=page
    percpu: make misc percpu symbols unique
    percpu: make percpu symbols in ia64 unique
    percpu: make percpu symbols in powerpc unique
    percpu: make percpu symbols in x86 unique
    percpu: make percpu symbols in xen unique
    percpu: make percpu symbols in cpufreq unique
    percpu: make percpu symbols in oprofile unique
    percpu: make percpu symbols in tracer unique
    percpu: make percpu symbols under kernel/ and mm/ unique
    percpu: remove some sparse warnings
    percpu: make alloc_percpu() handle array types
    vmalloc: fix use of non-existent percpu variable in put_cpu_var()
    this_cpu: Use this_cpu_xx in trace_functions_graph.c
    this_cpu: Use this_cpu_xx for ftrace
    this_cpu: Use this_cpu_xx in nmi handling
    this_cpu: Use this_cpu operations in RCU
    this_cpu: Use this_cpu ops for VM statistics
    ...

    Fix up trivial (famous last words) global per-cpu naming conflicts in
    arch/x86/kvm/svm.c
    mm/slab.c

    Linus Torvalds
     
  • In recent months, two different network projects erroneously
    strayed down the rw_lock path. Update the Documentation
    based upon comments by Eric Dumazet and Paul E. McKenney in
    those threads.

    Further updates await somebody else with more expertise.

    Changes:
    - Merged with extensive content by Stephen Hemminger.
    - Fix one of the comments by Linus Torvalds.

    Signed-off-by: William.Allen.Simpson@gmail.com
    Acked-by: Paul E. McKenney
    Signed-off-by: Linus Torvalds

    William Allen Simpson
     

14 Dec, 2009

2 commits

  • It looks better to have a common function. No change in functionality.

    Signed-off-by: Hidetoshi Seto
    Cc: Cyrill Gorcunov
    LKML-Reference:
    Signed-off-by: Ingo Molnar
    Cc: Cyrill Gorcunov

    Hidetoshi Seto
     
  • Add check if APIC is not disabled since thermal
    monitoring depends on it. As only apic gets disabled
    we should not try to install "thermal monitor" vector,
    print out that thermal monitoring is enabled and etc...

    Note that "Intel Correct Machine Check Interrupts" already
    has such a check.

    Also I decided to not add cpu_has_apic check into
    mcheck_intel_therm_init since even if it'll call apic_read on
    disabled apic -- it's safe here and allow us to save a few code
    bytes.

    Reported-by: Thomas Gleixner
    Signed-off-by: Cyrill Gorcunov
    Signed-off-by: Hidetoshi Seto
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Cyrill Gorcunov