04 Jul, 2013

5 commits

  • Prepare for killing free_all_bootmem_node() by using free_all_bootmem().

    Signed-off-by: Jiang Liu
    Cc: Paul Mundt
    Cc: Wen Congyang
    Cc: Tang Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Prepare for removing num_physpages and simplify mem_init().

    Signed-off-by: Jiang Liu
    Cc: Paul Mundt
    Cc: Wen Congyang
    Cc: Tang Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Concentrate code to modify totalram_pages into the mm core, so the arch
    memory initialized code doesn't need to take care of it. With these
    changes applied, only following functions from mm core modify global
    variable totalram_pages: free_bootmem_late(), free_all_bootmem(),
    free_all_bootmem_node(), adjust_managed_page_count().

    With this patch applied, it will be much more easier for us to keep
    totalram_pages and zone->managed_pages in consistence.

    Signed-off-by: Jiang Liu
    Acked-by: David Howells
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Address more review comments from last round of code review.
    1) Enhance free_reserved_area() to support poisoning freed memory with
    pattern '0'. This could be used to get rid of poison_init_mem()
    on ARM64.
    2) A previous patch has disabled memory poison for initmem on s390
    by mistake, so restore to the original behavior.
    3) Remove redundant PAGE_ALIGN() when calling free_reserved_area().

    Signed-off-by: Jiang Liu
    Cc: Geert Uytterhoeven
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Change signature of free_reserved_area() according to Russell King's
    suggestion to fix following build warnings:

    arch/arm/mm/init.c: In function 'mem_init':
    arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
    free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
    ^
    In file included from include/linux/mman.h:4:0,
    from arch/arm/mm/init.c:15:
    include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
    extern unsigned long free_reserved_area(unsigned long start, unsigned long end,

    mm/page_alloc.c: In function 'free_reserved_area':
    >> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
    In file included from arch/mips/include/asm/page.h:49:0,
    from include/linux/mmzone.h:20,
    from include/linux/gfp.h:4,
    from include/linux/mm.h:8,
    from mm/page_alloc.c:18:
    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
    mm/page_alloc.c: In function 'free_area_init_nodes':
    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]

    Also address some minor code review comments.

    Signed-off-by: Jiang Liu
    Reported-by: Arnd Bergmann
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     

03 Jul, 2013

2 commits

  • Pull WW mutex support from Ingo Molnar:
    "This tree adds support for wound/wait style locks, which the graphics
    guys would like to make use of in the TTM graphics subsystem.

    Wound/wait mutexes are used when other multiple lock acquisitions of a
    similar type can be done in an arbitrary order. The deadlock handling
    used here is called wait/wound in the RDBMS literature: The older
    tasks waits until it can acquire the contended lock. The younger
    tasks needs to back off and drop all the locks it is currently
    holding, ie the younger task is wounded.

    See this LWN.net description of W/W mutexes:

    https://lwn.net/Articles/548909/

    The comments there outline specific usecases for this facility (which
    have already been implemented for the DRM tree).

    Also see Documentation/ww-mutex-design.txt for more details"

    * 'core-mutexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking-selftests: Handle unexpected failures more strictly
    mutex: Add more w/w tests to test EDEADLK path handling
    mutex: Add more tests to lib/locking-selftest.c
    mutex: Add w/w tests to lib/locking-selftest.c
    mutex: Add w/w mutex slowpath debugging
    mutex: Add support for wound/wait style locks
    arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here's the big driver core merge for 3.11-rc1

    Lots of little things, and larger firmware subsystem updates, all
    described in the shortlog. Nice thing here is that we finally get rid
    of CONFIG_HOTPLUG, after 10+ years, thanks to Stephen Rohtwell (it had
    been always on for a number of kernel releases, now it's just
    removed)"

    * tag 'driver-core-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (27 commits)
    driver core: device.h: fix doc compilation warnings
    firmware loader: fix another compile warning with PM_SLEEP unset
    build some drivers only when compile-testing
    firmware loader: fix compile warning with PM_SLEEP set
    kobject: sanitize argument for format string
    sysfs_notify is only possible on file attributes
    firmware loader: simplify holding module for request_firmware
    firmware loader: don't export cache_firmware and uncache_firmware
    drivers/base: Use attribute groups to create sysfs memory files
    firmware loader: fix compile warning
    firmware loader: fix build failure with !CONFIG_FW_LOADER_USER_HELPER
    Documentation: Updated broken link in HOWTO
    Finally eradicate CONFIG_HOTPLUG
    driver core: firmware loader: kill FW_ACTION_NOHOTPLUG requests before suspend
    driver core: firmware loader: don't cache FW_ACTION_NOHOTPLUG firmware
    Documentation: Tidy up some drivers/base/core.c kerneldoc content.
    platform_device: use a macro instead of platform_driver_register
    firmware: move EXPORT_SYMBOL annotations
    firmware: Avoid deadlock of usermodehelper lock at shutdown
    dell_rbu: Select CONFIG_FW_LOADER_USER_HELPER explicitly
    ...

    Linus Torvalds
     

29 Jun, 2013

1 commit


26 Jun, 2013

1 commit

  • This will allow me to call functions that have multiple
    arguments if fastpath fails. This is required to support ticket
    mutexes, because they need to be able to pass an extra argument
    to the fail function.

    Originally I duplicated the functions, by adding
    __mutex_fastpath_lock_retval_arg. This ended up being just a
    duplication of the existing function, so a way to test if
    fastpath was called ended up being better.

    This also cleaned up the reservation mutex patch some by being
    able to call an atomic_set instead of atomic_xchg, and making it
    easier to detect if the wrong unlock function was previously
    used.

    Signed-off-by: Maarten Lankhorst
    Acked-by: Peter Zijlstra
    Cc: dri-devel@lists.freedesktop.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: robclark@gmail.com
    Cc: rostedt@goodmis.org
    Cc: daniel@ffwll.ch
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20130620113105.4001.83929.stgit@patser
    Signed-off-by: Ingo Molnar

    Maarten Lankhorst
     

04 Jun, 2013

1 commit

  • Ever since commit 45f035ab9b8f ("CONFIG_HOTPLUG should be always on"),
    it has been basically impossible to build a kernel with CONFIG_HOTPLUG
    turned off. Remove all the remaining references to it.

    Cc: Russell King
    Cc: Doug Thompson
    Cc: Bjorn Helgaas
    Cc: Steven Whitehouse
    Cc: Arnd Bergmann
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Cc: Andrew Morton
    Signed-off-by: Stephen Rothwell
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Hans Verkuil
    Signed-off-by: Greg Kroah-Hartman

    Stephen Rothwell
     

10 May, 2013

1 commit

  • Pull removal of GENERIC_GPIO from Grant Likely:
    "GENERIC_GPIO now synonymous with GPIOLIB. There are no longer any
    valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
    is possible to do so which has been causing confusion and breakage.
    This branch does the work to completely eliminate GENERIC_GPIO."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
    gpio: update gpio Chinese documentation
    Remove GENERIC_GPIO config option
    Convert selectors of GENERIC_GPIO to GPIOLIB
    blackfin: force use of gpiolib
    m68k: coldfire: use gpiolib
    mips: pnx833x: remove requirement for GENERIC_GPIO
    openrisc: default GENERIC_GPIO to false
    avr32: default GENERIC_GPIO to false
    xtensa: remove explicit selection of GENERIC_GPIO
    sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
    powerpc: remove redundant GENERIC_GPIO selection
    unicore32: default GENERIC_GPIO to false
    unicore32: remove unneeded select GENERIC_GPIO
    arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
    arm: remove redundant GENERIC_GPIO selection
    mips: alchemy: require gpiolib
    mips: txx9: change GENERIC_GPIO to GPIOLIB
    mips: loongson: use GPIO driver on CONFIG_GPIOLIB
    mips: remove redundant GENERIC_GPIO select

    Linus Torvalds
     

08 May, 2013

1 commit

  • Pull ARM SoC platform updates (part 2) from Arnd Bergmann:
    "These patches are all for Renesas shmobile, and depend on the earlier
    pinctrl updates. Remarkably, this adds support for three new SoCs:
    r8a73a4, r8a73a4 and r8a7778. The bulk of the code added for these is
    for pinctrl (using the new subsystem) and for clocks (not yet using
    the common clock subsystem). The latter will have to get converted in
    one of the upcoming releases, but shmobile is not ready for that yet.

    The series also contains Renesas shmobile board changes, adding one
    board file for each of the three new SoCs. These boards are using a
    mix of classic and device-tree based probing, as there is still a lot
    of infrastructure in shmobile that has not been converted to DT yet.
    Once those are resolved to the degree that no board specific setup
    code is needed, they can get folded into the respective SoC setup files."

    * tag 'soc-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (78 commits)
    ARM: shmobile: use r8a7790 timer setup code on Lager
    ARM: shmobile: force enable of r8a7790 arch timer
    ARM: shmobile: Add second I/O range for r8a7790 PFC
    ARM: shmobile: bockw: enable network settings on bootargs
    ARM: shmobile: bockw: add SMSC ethernet support
    ARM: shmobile: R8A7778: add Ether support
    ARM: shmobile: bockw: enable SMSC ethernet on defconfig
    ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin()
    ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO()
    ARM: shmobile: mackerel: clean up MMCIF vs. SDHI1 selection
    ARM: shmobile: mackerel: add interrupt names for SDHI0
    ARM: shmobile: mackerel: switch SDHI and MMCIF interfaces to slot-gpio
    ARM: shmobile: mackerel: remove OCR masks, where regulators are used
    ARM: shmobile: mackerel: SDHI resources do not have to be numbered
    ARM: shmobile: Initial r8a7790 Lager board support
    ARM: shmobile: APE6EVM LAN9220 support
    ARM: shmobile: APE6EVM PFC support
    ARM: shmobile: APE6EVM base support
    ARM: shmobile: kzm9g-reference: add ethernet support
    ARM: shmobile: add R-Car M1A Bock-W platform support
    ...

    Linus Torvalds
     

05 May, 2013

2 commits

  • Cc: vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Pull ARM SoC pinctrl changes for Renesas from Olof Johansson:
    "This is yet another driver change, which is split out just because of
    its size. As already in 3.9, a lot of changes are going on here, as
    the shmobile platform gets converted from its own pin control API to
    the generic drivers/pinctrl subsystem.

    Based on agreements with Paul Mundt, we are merging the sh-arch-side
    changes here as well"

    * tag 'renesas-pinctrl-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (142 commits)
    ARM: shmobile: r8a7779: Remove INTC function GPIOs
    ARM: shmobile: r8a7779: Remove LBSC function GPIOs
    ARM: shmobile: r8a7779: Remove USB function GPIOs
    ARM: shmobile: r8a7779: Remove HSPI function GPIOs
    ARM: shmobile: r8a7779: Remove SCIF function GPIOs
    ARM: shmobile: r8a7779: Remove SDHI and MMCIF function GPIOs
    ARM: shmobile: r8a7779: Remove DU function GPIOs
    ARM: shmobile: r8a7779: Remove DU1_DOTCLKOUT1 GPIO
    ARM: shmobile: r8a7740: Remove SDHI and MMCIF function GPIOs
    ARM: shmobile: r8a7740: Remove LCD0 and LCD1 function GPIOs
    ARM: shmobile: sh73a0: Remove IrDA function GPIOs
    ARM: shmobile: sh73a0: Remove USB function GPIOs
    ARM: shmobile: sh73a0: Remove BSC function GPIOs
    ARM: shmobile: sh73a0: Remove KEYSC function GPIOs
    ARM: shmobile: sh73a0: Remove pull-up function GPIOS
    ARM: shmobile: sh73a0: Remove FSI function GPIOs
    ARM: shmobile: sh73a0: Remove I2C function GPIOs
    ARM: shmobile: sh73a0: Remove SCIFA and SCIFB function GPIOs
    ARM: shmobile: sh73a0: Remove LCDC and LCDC2 function GPIOs
    ARM: shmobile: sh7372: Remove SDHI and MMCIF function GPIOs
    ...

    Linus Torvalds
     

03 May, 2013

1 commit

  • Pull powerpc update from Benjamin Herrenschmidt:
    "The main highlights this time around are:

    - A pile of addition POWER8 bits and nits, such as updated
    performance counter support (Michael Ellerman), new branch history
    buffer support (Anshuman Khandual), base support for the new PCI
    host bridge when not using the hypervisor (Gavin Shan) and other
    random related bits and fixes from various contributors.

    - Some rework of our page table format by Aneesh Kumar which fixes a
    thing or two and paves the way for THP support. THP itself will
    not make it this time around however.

    - More Freescale updates, including Altivec support on the new e6500
    cores, new PCI controller support, and a pile of new boards support
    and updates.

    - The usual batch of trivial cleanups & fixes"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (156 commits)
    powerpc: Fix build error for book3e
    powerpc: Context switch the new EBB SPRs
    powerpc: Turn on the EBB H/FSCR bits
    powerpc: Replace CPU_FTR_BCTAR with CPU_FTR_ARCH_207S
    powerpc: Setup BHRB instructions facility in HFSCR for POWER8
    powerpc: Fix interrupt range check on debug exception
    powerpc: Update tlbie/tlbiel as per ISA doc
    powerpc: Print page size info during boot
    powerpc: print both base and actual page size on hash failure
    powerpc: Fix hpte_decode to use the correct decoding for page sizes
    powerpc: Decode the pte-lp-encoding bits correctly.
    powerpc: Use encode avpn where we need only avpn values
    powerpc: Reduce PTE table memory wastage
    powerpc: Move the pte free routines from common header
    powerpc: Reduce the PTE_INDEX_SIZE
    powerpc: Switch 16GB and 16MB explicit hugepages to a different page table format
    powerpc: New hugepage directory format
    powerpc: Don't truncate pgd_index wrongly
    powerpc: Don't hard code the size of pte page
    powerpc: Save DAR and DSISR in pt_regs on MCE
    ...

    Linus Torvalds
     

02 May, 2013

1 commit

  • Pull VFS updates from Al Viro,

    Misc cleanups all over the place, mainly wrt /proc interfaces (switch
    create_proc_entry to proc_create(), get rid of the deprecated
    create_proc_read_entry() in favor of using proc_create_data() and
    seq_file etc).

    7kloc removed.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
    don't bother with deferred freeing of fdtables
    proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
    proc: Make the PROC_I() and PDE() macros internal to procfs
    proc: Supply a function to remove a proc entry by PDE
    take cgroup_open() and cpuset_open() to fs/proc/base.c
    ppc: Clean up scanlog
    ppc: Clean up rtas_flash driver somewhat
    hostap: proc: Use remove_proc_subtree()
    drm: proc: Use remove_proc_subtree()
    drm: proc: Use minor->index to label things, not PDE->name
    drm: Constify drm_proc_list[]
    zoran: Don't print proc_dir_entry data in debug
    reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
    proc: Supply an accessor for getting the data from a PDE's parent
    airo: Use remove_proc_subtree()
    rtl8192u: Don't need to save device proc dir PDE
    rtl8187se: Use a dir under /proc/net/r8180/
    proc: Add proc_mkdir_data()
    proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
    proc: Move PDE_NET() to fs/proc/proc_net.c
    ...

    Linus Torvalds
     

01 May, 2013

5 commits

  • Pull compat cleanup from Al Viro:
    "Mostly about syscall wrappers this time; there will be another pile
    with patches in the same general area from various people, but I'd
    rather push those after both that and vfs.git pile are in."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    syscalls.h: slightly reduce the jungles of macros
    get rid of union semop in sys_semctl(2) arguments
    make do_mremap() static
    sparc: no need to sign-extend in sync_file_range() wrapper
    ppc compat wrappers for add_key(2) and request_key(2) are pointless
    x86: trim sys_ia32.h
    x86: sys32_kill and sys32_mprotect are pointless
    get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC
    merge compat sys_ipc instances
    consolidate compat lookup_dcookie()
    convert vmsplice to COMPAT_SYSCALL_DEFINE
    switch getrusage() to COMPAT_SYSCALL_DEFINE
    switch epoll_pwait to COMPAT_SYSCALL_DEFINE
    convert sendfile{,64} to COMPAT_SYSCALL_DEFINE
    switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE
    make SYSCALL_DEFINE-generated wrappers do asmlinkage_protect
    make HAVE_SYSCALL_WRAPPERS unconditional
    consolidate cond_syscall and SYSCALL_ALIAS declarations
    teach SYSCALL_DEFINE how to deal with long long/unsigned long long
    get rid of duplicate logics in __SC_....[1-6] definitions

    Linus Torvalds
     
  • Merge third batch of fixes from Andrew Morton:
    "Most of the rest. I still have two large patchsets against AIO and
    IPC, but they're a bit stuck behind other trees and I'm about to
    vanish for six days.

    - random fixlets
    - inotify
    - more of the MM queue
    - show_stack() cleanups
    - DMI update
    - kthread/workqueue things
    - compat cleanups
    - epoll udpates
    - binfmt updates
    - nilfs2
    - hfs
    - hfsplus
    - ptrace
    - kmod
    - coredump
    - kexec
    - rbtree
    - pids
    - pidns
    - pps
    - semaphore tweaks
    - some w1 patches
    - relay updates
    - core Kconfig changes
    - sysrq tweaks"

    * emailed patches from Andrew Morton : (109 commits)
    Documentation/sysrq: fix inconstistent help message of sysrq key
    ethernet/emac/sysrq: fix inconstistent help message of sysrq key
    sparc/sysrq: fix inconstistent help message of sysrq key
    powerpc/xmon/sysrq: fix inconstistent help message of sysrq key
    ARM/etm/sysrq: fix inconstistent help message of sysrq key
    power/sysrq: fix inconstistent help message of sysrq key
    kgdb/sysrq: fix inconstistent help message of sysrq key
    lib/decompress.c: fix initconst
    notifier-error-inject: fix module names in Kconfig
    kernel/sys.c: make prctl(PR_SET_MM) generally available
    UAPI: remove empty Kbuild files
    menuconfig: print more info for symbol without prompts
    init/Kconfig: re-order CONFIG_EXPERT options to fix menuconfig display
    kconfig menu: move Virtualization drivers near other virtualization options
    Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
    relay: use macro PAGE_ALIGN instead of FIX_SIZE
    kernel/relay.c: move FIX_SIZE macro into relay.c
    kernel/relay.c: remove unused function argument actor
    drivers/w1/slaves/w1_ds2760.c: fix the error handling in w1_ds2760_add_slave()
    drivers/w1/slaves/w1_ds2781.c: fix the error handling in w1_ds2781_add_slave()
    ...

    Linus Torvalds
     
  • show_regs() is inherently arch-dependent but it does make sense to print
    generic debug information and some archs already do albeit in slightly
    different forms. This patch introduces a generic function to print debug
    information from show_regs() so that different archs print out the same
    information and it's much easier to modify what's printed.

    show_regs_print_info() prints out the same debug info as dump_stack()
    does plus task and thread_info pointers.

    * Archs which didn't print debug info now do.

    alpha, arc, blackfin, c6x, cris, frv, h8300, hexagon, ia64, m32r,
    metag, microblaze, mn10300, openrisc, parisc, score, sh64, sparc,
    um, xtensa

    * Already prints debug info. Replaced with show_regs_print_info().
    The printed information is superset of what used to be there.

    arm, arm64, avr32, mips, powerpc, sh32, tile, unicore32, x86

    * s390 is special in that it used to print arch-specific information
    along with generic debug info. Heiko and Martin think that the
    arch-specific extra isn't worth keeping s390 specfic implementation.
    Converted to use the generic version.

    Note that now all archs print the debug info before actual register
    dumps.

    An example BUG() dump follows.

    kernel BUG at /work/os/work/kernel/workqueue.c:4841!
    invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #7
    Hardware name: empty empty/S3992, BIOS 080011 10/26/2007
    task: ffff88007c85e040 ti: ffff88007c860000 task.ti: ffff88007c860000
    RIP: 0010:[] [] init_workqueues+0x4/0x6
    RSP: 0000:ffff88007c861ec8 EFLAGS: 00010246
    RAX: ffff88007c861fd8 RBX: ffffffff824466a8 RCX: 0000000000000001
    RDX: 0000000000000046 RSI: 0000000000000001 RDI: ffffffff8234a07a
    RBP: ffff88007c861ec8 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff8234a07a
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    FS: 0000000000000000(0000) GS:ffff88007dc00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: ffff88015f7ff000 CR3: 00000000021f1000 CR4: 00000000000007f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Stack:
    ffff88007c861ef8 ffffffff81000312 ffffffff824466a8 ffff88007c85e650
    0000000000000003 0000000000000000 ffff88007c861f38 ffffffff82335e5d
    ffff88007c862080 ffffffff8223d8c0 ffff88007c862080 ffffffff81c47760
    Call Trace:
    [] do_one_initcall+0x122/0x170
    [] kernel_init_freeable+0x9b/0x1c8
    [] ? rest_init+0x140/0x140
    [] kernel_init+0xe/0xf0
    [] ret_from_fork+0x7c/0xb0
    [] ? rest_init+0x140/0x140
    ...

    v2: Typo fix in x86-32.

    v3: CPU number dropped from show_regs_print_info() as
    dump_stack_print_info() has been updated to print it. s390
    specific implementation dropped as requested by s390 maintainers.

    Signed-off-by: Tejun Heo
    Acked-by: David S. Miller
    Acked-by: Jesper Nilsson
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Bjorn Helgaas
    Cc: Fengguang Wu
    Cc: Mike Frysinger
    Cc: Vineet Gupta
    Cc: Sam Ravnborg
    Acked-by: Chris Metcalf [tile bits]
    Acked-by: Richard Kuo [hexagon bits]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     
  • Both dump_stack() and show_stack() are currently implemented by each
    architecture. show_stack(NULL, NULL) dumps the backtrace for the
    current task as does dump_stack(). On some archs, dump_stack() prints
    extra information - pid, utsname and so on - in addition to the
    backtrace while the two are identical on other archs.

    The usages in arch-independent code of the two functions indicate
    show_stack(NULL, NULL) should print out bare backtrace while
    dump_stack() is used for debugging purposes when something went wrong,
    so it does make sense to print additional information on the task which
    triggered dump_stack().

    There's no reason to require archs to implement two separate but mostly
    identical functions. It leads to unnecessary subtle information.

    This patch expands the dummy fallback dump_stack() implementation in
    lib/dump_stack.c such that it prints out debug information (taken from
    x86) and invokes show_stack(NULL, NULL) and drops arch-specific
    dump_stack() implementations in all archs except blackfin. Blackfin's
    dump_stack() does something wonky that I don't understand.

    Debug information can be printed separately by calling
    dump_stack_print_info() so that arch-specific dump_stack()
    implementation can still emit the same debug information. This is used
    in blackfin.

    This patch brings the following behavior changes.

    * On some archs, an extra level in backtrace for show_stack() could be
    printed. This is because the top frame was determined in
    dump_stack() on those archs while generic dump_stack() can't do that
    reliably. It can be compensated by inlining dump_stack() but not
    sure whether that'd be necessary.

    * Most archs didn't use to print debug info on dump_stack(). They do
    now.

    An example WARN dump follows.

    WARNING: at kernel/workqueue.c:4841 init_workqueues+0x35/0x505()
    Hardware name: empty
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #9
    0000000000000009 ffff88007c861e08 ffffffff81c614dc ffff88007c861e48
    ffffffff8108f50f ffffffff82228240 0000000000000040 ffffffff8234a03c
    0000000000000000 0000000000000000 0000000000000000 ffff88007c861e58
    Call Trace:
    [] dump_stack+0x19/0x1b
    [] warn_slowpath_common+0x7f/0xc0
    [] warn_slowpath_null+0x1a/0x20
    [] init_workqueues+0x35/0x505
    ...

    v2: CPU number added to the generic debug info as requested by s390
    folks and dropped the s390 specific dump_stack(). This loses %ksp
    from the debug message which the maintainers think isn't important
    enough to keep the s390-specific dump_stack() implementation.

    dump_stack_print_info() is moved to kernel/printk.c from
    lib/dump_stack.c. Because linkage is per objecct file,
    dump_stack_print_info() living in the same lib file as generic
    dump_stack() means that archs which implement custom dump_stack()
    - at this point, only blackfin - can't use dump_stack_print_info()
    as that will bring in the generic version of dump_stack() too. v1
    The v1 patch broke build on blackfin due to this issue. The build
    breakage was reported by Fengguang Wu.

    Signed-off-by: Tejun Heo
    Acked-by: David S. Miller
    Acked-by: Vineet Gupta
    Acked-by: Jesper Nilsson
    Acked-by: Vineet Gupta
    Acked-by: Martin Schwidefsky [s390 bits]
    Cc: Heiko Carstens
    Cc: Mike Frysinger
    Cc: Fengguang Wu
    Cc: Bjorn Helgaas
    Cc: Sam Ravnborg
    Acked-by: Richard Kuo [hexagon bits]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     
  • Pull power management and ACPI updates from Rafael J Wysocki:

    - ARM big.LITTLE cpufreq driver from Viresh Kumar.

    - exynos5440 cpufreq driver from Amit Daniel Kachhap.

    - cpufreq core cleanup and code consolidation from Viresh Kumar and
    Stratos Karafotis.

    - cpufreq scalability improvement from Nathan Zimmer.

    - AMD "frequency sensitivity feedback" powersave bias for the ondemand
    cpufreq governor from Jacob Shin.

    - cpuidle code consolidation and cleanups from Daniel Lezcano.

    - ARM OMAP cpuidle fixes from Santosh Shilimkar and Daniel Lezcano.

    - ACPICA fixes and other improvements from Bob Moore, Jung-uk Kim, Lv
    Zheng, Yinghai Lu, Tang Chen, Colin Ian King, and Linn Crosetto.

    - ACPI core updates related to hotplug from Toshi Kani, Paul Bolle,
    Yasuaki Ishimatsu, and Rafael J Wysocki.

    - Intel Lynxpoint LPSS (Low-Power Subsystem) support improvements from
    Rafael J Wysocki and Andy Shevchenko.

    * tag 'pm+acpi-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (192 commits)
    cpufreq: Revert incorrect commit 5800043
    cpufreq: MAINTAINERS: Add co-maintainer
    cpuidle: add maintainer entry
    ACPI / thermal: do not always return THERMAL_TREND_RAISING for active trip points
    ARM: s3c64xx: cpuidle: use init/exit common routine
    cpufreq: pxa2xx: initialize variables
    ACPI: video: correct acpi_video_bus_add error processing
    SH: cpuidle: use init/exit common routine
    ARM: S5pv210: compiling issue, ARM_S5PV210_CPUFREQ needs CONFIG_CPU_FREQ_TABLE=y
    ACPI: Fix wrong parameter passed to memblock_reserve
    cpuidle: fix comment format
    pnp: use %*phC to dump small buffers
    isapnp: remove debug leftovers
    ARM: imx: cpuidle: use init/exit common routine
    ARM: davinci: cpuidle: use init/exit common routine
    ARM: kirkwood: cpuidle: use init/exit common routine
    ARM: calxeda: cpuidle: use init/exit common routine
    ARM: tegra: cpuidle: use init/exit common routine for tegra3
    ARM: tegra: cpuidle: use init/exit common routine for tegra2
    ARM: OMAP4: cpuidle: use init/exit common routine
    ...

    Linus Torvalds
     

30 Apr, 2013

7 commits

  • Pull SMP/hotplug changes from Ingo Molnar:
    "This is a pretty large, multi-arch series unifying and generalizing
    the various disjunct pieces of idle routines that architectures have
    historically copied from each other and have grown in random, wildly
    inconsistent and sometimes buggy directions:

    101 files changed, 455 insertions(+), 1328 deletions(-)

    this went through a number of review and test iterations before it was
    committed, it was tested on various architectures, was exposed to
    linux-next for quite some time - nevertheless it might cause problems
    on architectures that don't read the mailing lists and don't regularly
    test linux-next.

    This cat herding excercise was motivated by the -rt kernel, and was
    brought to you by Thomas "the Whip" Gleixner."

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
    idle: Remove GENERIC_IDLE_LOOP config switch
    um: Use generic idle loop
    ia64: Make sure interrupts enabled when we "safe_halt()"
    sparc: Use generic idle loop
    idle: Remove unused ARCH_HAS_DEFAULT_IDLE
    bfin: Fix typo in arch_cpu_idle()
    xtensa: Use generic idle loop
    x86: Use generic idle loop
    unicore: Use generic idle loop
    tile: Use generic idle loop
    tile: Enter idle with preemption disabled
    sh: Use generic idle loop
    score: Use generic idle loop
    s390: Use generic idle loop
    powerpc: Use generic idle loop
    parisc: Use generic idle loop
    openrisc: Use generic idle loop
    mn10300: Use generic idle loop
    mips: Use generic idle loop
    microblaze: Use generic idle loop
    ...

    Linus Torvalds
     
  • Merge second batch of fixes from Andrew Morton:

    - various misc bits

    - some printk updates

    - a new "SRAM" driver.

    - MAINTAINERS updates

    - the backlight driver queue

    - checkpatch updates

    - a few init/ changes

    - a huge number of drivers/rtc changes

    - fatfs updates

    - some lib/idr.c work

    - some renaming of the random driver interfaces

    * emailed patches from Andrew Morton : (285 commits)
    net: rename random32 to prandom
    net/core: remove duplicate statements by do-while loop
    net/core: rename random32() to prandom_u32()
    net/netfilter: rename random32() to prandom_u32()
    net/sched: rename random32() to prandom_u32()
    net/sunrpc: rename random32() to prandom_u32()
    scsi: rename random32() to prandom_u32()
    lguest: rename random32() to prandom_u32()
    uwb: rename random32() to prandom_u32()
    video/uvesafb: rename random32() to prandom_u32()
    mmc: rename random32() to prandom_u32()
    drbd: rename random32() to prandom_u32()
    kernel/: rename random32() to prandom_u32()
    mm/: rename random32() to prandom_u32()
    lib/: rename random32() to prandom_u32()
    x86: rename random32() to prandom_u32()
    x86: pageattr-test: remove srandom32 call
    uuid: use prandom_bytes()
    raid6test: use prandom_bytes()
    sctp: convert sctp_assoc_set_id() to use idr_alloc_cyclic()
    ...

    Linus Torvalds
     
  • Pull async update from Tejun Heo:
    "This contains three cleanup patches for async from Lai. All three
    patches are essentially cosmetic."

    * 'for-3.10-async' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    async: rename and redefine async_func_ptr
    async: remove unused @node from struct async_domain
    async: simplify lowest_in_progress()

    Linus Torvalds
     
  • The early console implementations are the same all over the place. Move
    the print function to kernel/printk and get rid of the copies.

    [akpm@linux-foundation.org: arch/mips/kernel/early_printk.c needs kernel.h for va_list]
    [paul.gortmaker@windriver.com: sh4: make the bios early console support depend on EARLY_PRINTK]
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Paul Gortmaker
    Cc: Russell King
    Acked-by: Mike Frysinger
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: Chris Metcalf
    Cc: Richard Weinberger
    Reviewed-by: Ingo Molnar
    Tested-by: Paul Gortmaker
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Commit abf09bed3cce ("s390/mm: implement software dirty bits")
    introduced another difference in the pte layout vs. the pmd layout on
    s390, thoroughly breaking the s390 support for hugetlbfs. This requires
    replacing some more pte_xxx functions in mm/hugetlbfs.c with a
    huge_pte_xxx version.

    This patch introduces those huge_pte_xxx functions and their generic
    implementation in asm-generic/hugetlb.h, which will now be included on
    all architectures supporting hugetlbfs apart from s390. This change
    will be a no-op for those architectures.

    [akpm@linux-foundation.org: fix warning]
    Signed-off-by: Gerald Schaefer
    Cc: Mel Gorman
    Cc: Hugh Dickins
    Cc: Hillf Danton
    Acked-by: Michal Hocko [for !s390 parts]
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: Chris Metcalf
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gerald Schaefer
     
  • Use common help functions to free reserved pages.

    Signed-off-by: Jiang Liu
    Acked-by: Paul Mundt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Don't use create_proc_read_entry() as that is deprecated, but rather use
    proc_create_data() and seq_file instead.

    Signed-off-by: David Howells
    cc: Paul Mundt
    cc: linux-sh@vger.kernel.org
    Signed-off-by: Al Viro

    David Howells
     

28 Apr, 2013

1 commit

  • * pm-cpufreq: (57 commits)
    cpufreq: MAINTAINERS: Add co-maintainer
    cpufreq: pxa2xx: initialize variables
    ARM: S5pv210: compiling issue, ARM_S5PV210_CPUFREQ needs CONFIG_CPU_FREQ_TABLE=y
    cpufreq: cpu0: Put cpu parent node after using it
    cpufreq: ARM big LITTLE: Adapt to latest cpufreq updates
    cpufreq: ARM big LITTLE: put DT nodes after using them
    cpufreq: Don't call __cpufreq_governor() for drivers without target()
    cpufreq: exynos5440: Protect OPP search calls with RCU lock
    cpufreq: dbx500: Round to closest available freq
    cpufreq: Call __cpufreq_governor() with correct policy->cpus mask
    cpufreq / intel_pstate: Optimize intel_pstate_set_policy
    cpufreq: OMAP: instantiate omap-cpufreq as a platform_driver
    arm: exynos: Enable OPP library support for exynos5440
    cpufreq: exynos: Remove error return even if no soc is found
    cpufreq: exynos: Add cpufreq driver for exynos5440
    cpufreq: AMD "frequency sensitivity feedback" powersave bias for ondemand governor
    cpufreq: ondemand: allow custom powersave_bias_target handler to be registered
    cpufreq: convert cpufreq_driver to using RCU
    cpufreq: powerpc/platforms/cell: move cpufreq driver to drivers/cpufreq
    cpufreq: sparc: move cpufreq driver to drivers/cpufreq
    ...

    Conflicts:
    MAINTAINERS (with commit a8e39c3 from pm-cpuidle)
    drivers/cpufreq/cpufreq_governor.h (with commit beb0ff3)

    Rafael J. Wysocki
     

24 Apr, 2013

1 commit


23 Apr, 2013

1 commit

  • The en_core_tk_irqen flag is set in all the cpuidle driver which
    means it is not necessary to specify this flag.

    Remove the flag and the code related to it.

    Signed-off-by: Daniel Lezcano
    Acked-by: Kevin Hilman # for mach-omap2/*
    Signed-off-by: Rafael J. Wysocki

    Daniel Lezcano
     

22 Apr, 2013

4 commits


18 Apr, 2013

1 commit

  • The Kconfig symbol MAX_ACTIVE_REGIONS is unused. Commit
    0ee332c1451869963626bf9cac88f165a90990e1 ("memblock: Kill
    early_node_map[]") removed the only place were it was actually used. But
    it did not remove its Kconfig entries (for powerpc and sh).

    Remove those two entries (and the entry for metag, that popped up in
    v3.9-rc1).

    Signed-off-by: Paul Bolle
    Acked-by: Paul Mundt
    Acked-by: James Hogan
    Signed-off-by: Michael Ellerman

    Paul Bolle
     

17 Apr, 2013

1 commit


16 Apr, 2013

1 commit

  • GENERIC_GPIO has been made equivalent to GPIOLIB in architecture code
    and all driver code has been switch to depend on GPIOLIB. It is thus
    safe to have GENERIC_GPIO removed.

    Signed-off-by: Alexandre Courbot
    Acked-by: Linus Walleij
    Acked-by: Grant Likely

    Alexandre Courbot
     

10 Apr, 2013

2 commits

  • The Kconfig symbol ARCH_HAS_DEFAULT_IDLE is unused. Commit
    a0bfa1373859e9d11dc92561a8667588803e42d8 ("cpuidle: stop
    depending on pm_idle") removed the only place were it was
    actually used. But it did not remove its Kconfig entries (for sh
    and x86). Remove those two entries now.

    Signed-off-by: Paul Bolle
    Cc: Len Brown
    Cc: Paul Mundt
    Link: http://lkml.kernel.org/r/1363869683.1390.134.camel@x61.thuisdomein
    Signed-off-by: Ingo Molnar

    Paul Bolle
     
  • This patch moves cpufreq driver of SUPERH architecture to drivers/cpufreq.

    Signed-off-by: Viresh Kumar
    Acked-by: Paul Mundt
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar