Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Aug 14, 2012
  1. Revert "x86-64/efi: Use EFI to deal with platform wall clock"

    H. Peter Anvin authored
    This reverts commit bacef66.
    This commit has been found to cause serious regressions on a number of
    ASUS machines at the least.  We probably need to provide a 1:1 map in
    addition to the EFI virtual memory map in order for this to work.
    Signed-off-by: H. Peter Anvin <>
    Reported-and-bisected-by: Jérôme Carretero <>
    Cc: Jan Beulich <>
    Cc: Matt Fleming <>
    Cc: Matthew Garrett <>
    Cc: Linus Torvalds <>
    Cc: Andrew Morton <>
    Cc: Peter Zijlstra <>
Commits on Aug 1, 2012
  1. mm/hotplug: correctly setup fallback zonelists when creating new pgdat

    Jiang Liu authored committed
    When hotadd_new_pgdat() is called to create new pgdat for a new node, a
    fallback zonelist should be created for the new node.  There's code to try
    to achieve that in hotadd_new_pgdat() as below:
    	 * The node we allocated has no zone fallback lists. For avoiding
    	 * to access not-initialized zonelist, build here.
    	build_all_zonelists(pgdat, NULL);
    But it doesn't work as expected.  When hotadd_new_pgdat() is called, the
    new node is still in offline state because node_set_online(nid) hasn't
    been called yet.  And build_all_zonelists() only builds zonelists for
    online nodes as:
            for_each_online_node(nid) {
                    pg_data_t *pgdat = NODE_DATA(nid);
    Though we hope to create zonelist for the new pgdat, but it doesn't.  So
    add a new parameter "pgdat" the build_all_zonelists() to build pgdat for
    the new pgdat too.
    Signed-off-by: Jiang Liu <>
    Signed-off-by: Xishi Qiu <>
    Cc: Mel Gorman <>
    Cc: Michal Hocko <>
    Cc: Minchan Kim <>
    Cc: Rusty Russell <>
    Cc: Yinghai Lu <>
    Cc: Tony Luck <>
    Cc: KAMEZAWA Hiroyuki <>
    Cc: KOSAKI Motohiro <>
    Cc: David Rientjes <>
    Cc: Keping Chen <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  2. memcg: rename config variables

    Andrew Morton authored committed
    [ fix missed bits]
    Cc: Glauber Costa <>
    Acked-by: Michal Hocko <>
    Cc: Johannes Weiner <>
    Cc: KAMEZAWA Hiroyuki <>
    Cc: Hugh Dickins <>
    Cc: Tejun Heo <>
    Cc: Aneesh Kumar K.V <>
    Cc: David Rientjes <>
    Cc: KOSAKI Motohiro <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  3. @kvaneesh

    mm/hugetlb: add new HugeTLB cgroup

    kvaneesh authored committed
    Implement a new controller that allows us to control HugeTLB allocations.
    The extension allows to limit the HugeTLB usage per control group and
    enforces the controller limit during page fault.  Since HugeTLB doesn't
    support page reclaim, enforcing the limit at page fault time implies that,
    the application will get SIGBUS signal if it tries to access HugeTLB pages
    beyond its limit.  This requires the application to know beforehand how
    much HugeTLB pages it would require for its use.
    The charge/uncharge calls will be added to HugeTLB code in later patch.
    Support for cgroup removal will be added in later patches.
    Reviewed-by: KAMEZAWA Hiroyuki <>
    Signed-off-by: Aneesh Kumar K.V <>
    Cc: David Rientjes <>
    Cc: Hillf Danton <>
    Reviewed-by: Michal Hocko <>
    Cc: KOSAKI Motohiro <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
Commits on Jul 27, 2012
  1. Merge branch 'for-linus' of git://

    Pull ARM updates from Russell King:
     "First ARM push of this merge window, post me coming back from holiday.
      This is what has been in linux-next for the last few weeks.  Not much
      to say which isn't described by the commit summaries."
    * 'for-linus' of git:// (32 commits)
      ARM: 7463/1: topology: Update cpu_power according to DT information
      ARM: 7462/1: topology: factorize the update of sibling masks
      ARM: 7461/1: topology: Add arch_scale_freq_power function
      ARM: 7456/1: ptrace: provide separate functions for tracing syscall {entry,exit}
      ARM: 7455/1: audit: move syscall auditing until after ptrace SIGTRAP handling
      ARM: 7454/1: entry: don't bother with syscall tracing on ret_from_fork path
      ARM: 7453/1: audit: only allow syscall auditing for pure EABI userspace
      ARM: 7452/1: delay: allow timer-based delay implementation to be selected
      ARM: 7451/1: arch timer: implement read_current_timer and get_cycles
      ARM: 7450/1: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs
      ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions
      ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration
      ARM: 7447/1: rwlocks: remove unused branch labels from trylock routines
      ARM: 7446/1: spinlock: use ticket algorithm for ARMv6+ locking implementation
      ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process
      ARM: 7444/1: kernel: add arch-timer C3STOP feature
      ARM: 7460/1: remove asm/locks.h
      ARM: 7439/1: head.S: simplify initial page table mapping
      ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE
      ARM: 7436/1: Do not map the vectors page as write-through on UP systems
  2. Merge tag 'cpumask-for-linus' of git://…

    Pull cpumask changes from Rusty Russell:
     "Trivial comment changes to cpumask code.  I guess it's getting boring."
    Boring is good.
    * tag 'cpumask-for-linus' of git://
      cpumask: cpulist_parse() comments correction
      init: add comments to keep initcall-names in sync with initcall levels
      cpumask: add a few comments of cpumask functions
Commits on Jul 26, 2012
  1. @jimc @rustyrussell

    init: add comments to keep initcall-names in sync with initcall levels

    jimc authored rustyrussell committed
    main.c has initcall_level_names[] for parse_args to print in debug messages,
    add comments to keep them in sync with initcalls defined in init.h.
    Also add "loadable" into comment re not using *_initcall macros in
    modules, to disambiguate from kernel/params.c and other builtins.
    Signed-off-by: Jim Cromie <>
    Acked-by: Borislav Petkov <>
    Signed-off-by: Rusty Russell <>
  2. Merge branch 'x86-efi-for-linus' of git://…

    Pul x86/efi changes from Ingo Molnar:
     "This tree adds an EFI bootloader handover protocol, which, once
      supported on the bootloader side, will make bootup faster and might
      result in simpler bootloaders.
      The other change activates the EFI wall clock time accessors on x86-64
      as well, instead of the legacy RTC readout."
    * 'x86-efi-for-linus' of git://
      x86, efi: Handover Protocol
      x86-64/efi: Use EFI to deal with platform wall clock
Commits on Jul 22, 2012
  1. switch fput to task_work_add

    Al Viro authored
    ... and schedule_work() for interrupt/kernel_thread callers
    (and yes, now it *is* OK to call from interrupt).
    We are guaranteed that __fput() will be done before we return
    to userland (or exit).  Note that for fput() from a kernel
    thread we get an async behaviour; it's almost always OK, but
    sometimes you might need to have __fput() completed before
    you do anything else.  There are two mechanisms for that -
    a general barrier (flush_delayed_fput()) and explicit
    __fput_sync().  Both should be used with care (as was the
    case for fput() from kernel threads all along).  See comments
    in fs/file_table.c for details.
    Signed-off-by: Al Viro <>
Commits on Jul 9, 2012
  1. @wildea01

    ARM: 7453/1: audit: only allow syscall auditing for pure EABI userspace

    wildea01 authored Russell King committed
    The audit tools support only EABI userspace and, since there are no
    AUDIT_ARCH_* defines for the ARM OABI, it makes sense to allow syscall
    auditing on ARM only for EABI at the moment.
    Cc: Eric Paris <>
    Reviewed-by: Catalin Marinas <>
    Signed-off-by: Will Deacon <>
    Signed-off-by: Russell King <>
Commits on Jun 8, 2012
  1. @rustyrussell

    init: Drop initcall level output

    Borislav Petkov authored rustyrussell committed
    9fb48c7 ("params: add 3rd arg to option handler callback
    signature") added similar lines to dmesg:
    initlevel:0=early, 4 registered initcalls
    initlevel:1=core, 31 registered initcalls
    initlevel:2=postcore, 11 registered initcalls
    initlevel:3=arch, 7 registered initcalls
    initlevel:4=subsys, 40 registered initcalls
    initlevel:5=fs, 30 registered initcalls
    initlevel:6=device, 250 registered initcalls
    initlevel:7=late, 35 registered initcalls
    but they don't contain any info for the general user staring at dmesg.
    I'm very doubtful the count of initcalls registered per level helps
    anyone so drop that output completely.
    Cc: Jim Cromie <>
    Cc: Rusty Russell <>
    Cc: Jason Baron <>
    Signed-off-by: Borislav Petkov <>
    Signed-off-by: Rusty Russell <>
  2. @rustyrussell

    module_param: stop double-calling parameters.

    rustyrussell authored
    Commit 026cee0 "params:
    <level>_initcall-like kernel parameters" set old-style module
    parameters to level 0.  And we call those level 0 calls where we used
    to, early in start_kernel().
    We also loop through the initcall levels and call the levelled
    module_params before the corresponding initcall.  Unfortunately level
    0 is early_init(), so we call the standard module_param calls twice.
    (Turns out most things don't care, but at least ubi.mtd does).
    Change the level to -1 for standard module_param calls.
    Reported-by: Benoît Thébaudeau <>
    Signed-off-by: Rusty Russell <>
Commits on Jun 6, 2012
  1. @jbeulich

    x86-64/efi: Use EFI to deal with platform wall clock

    jbeulich authored Ingo Molnar committed
    Other than ix86, x86-64 on EFI so far didn't set the
    {g,s}et_wallclock accessors to the EFI routines, thus
    incorrectly using raw RTC accesses instead.
    Simply removing the #ifdef around the respective code isn't
    enough, however: While so far early get-time calls were done in
    physical mode, this doesn't work properly for x86-64, as virtual
    addresses would still need to be set up for all runtime regions
    (which wasn't the case on the system I have access to), so
    instead the patch moves the call to efi_enter_virtual_mode()
    ahead (which in turn allows to drop all code related to calling
    efi-get-time in physical mode).
    Additionally the earlier calling of efi_set_executable()
    requires the CPA code to cope, i.e. during early boot it must be
    avoided to call cpa_flush_array(), as the first thing this
    function does is a BUG_ON(irqs_disabled()).
    Also make the two EFI functions in question here static -
    they're not being referenced elsewhere.
    Signed-off-by: Jan Beulich <>
    Tested-by: Matt Fleming <>
    Acked-by: Matthew Garrett <>
    Cc: Linus Torvalds <>
    Cc: Andrew Morton <>
    Cc: Peter Zijlstra <>
    Signed-off-by: Ingo Molnar <>
Commits on Jun 1, 2012
  1. Merge branch 'akpm' (Andrew's patch-bomb)

    Merge misc patches from Andrew Morton:
     - the "misc" tree - stuff from all over the map
     - checkpatch updates
     - fatfs
     - kmod changes
     - procfs
     - cpumask
     - UML
     - kexec
     - mqueue
     - rapidio
     - pidns
     - some checkpoint-restore feature work.  Reluctantly.  Most of it
       delayed a release.  I'm still rather worried that we don't have a
       clear roadmap to completion for this work.
    * emailed from Andrew Morton <>: (78 patches)
      kconfig: update compression algorithm info
      c/r: prctl: add ability to set new mm_struct::exe_file
      c/r: prctl: extend PR_SET_MM to set up more mm_struct entries
      c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat
      syscalls, x86: add __NR_kcmp syscall
      fs, proc: introduce /proc/<pid>/task/<tid>/children entry
      sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE
      aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()
      eventfd: change int to __u64 in eventfd_signal()
      fs/nls: add Apple NLS
      pidns: make killed children autoreap
      pidns: use task_active_pid_ns in do_notify_parent
      rapidio/tsi721: add DMA engine support
      rapidio: add DMA engine support for RIO data transfers
      ipc/mqueue: add rbtree node caching support
      tools/selftests: add mq_perf_tests
      ipc/mqueue: strengthen checks on mqueue creation
      ipc/mqueue: correct mq_attr_ok test
      ipc/mqueue: improve performance of send/recv
      selftests: add mq_open_tests
  2. kconfig: update compression algorithm info

    Randy Dunlap authored committed
    There have been new compression algorithms added without updating nearby
    relevant descriptive text that refers to (a) the number of compression
    algorithms and (b) the most recent one.  Fix these inconsistencies.
    Signed-off-by: Randy Dunlap <>
    Reported-by: <>
    Cc: Lasse Collin <>
    Cc: "H. Peter Anvin" <>
    Cc: Markus Trippelsdorf <>
    Cc: Alain Knaff <>
    Cc: Albin Tonnerre <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  3. init: disable sparse checking of the mount.o source files

    H Hartley Sweeten authored committed
    The init/mount.o source files produce a number of sparse warnings of the
    warning: incorrect type in argument 1 (different address spaces)
       expected char [noderef] <asn:1>*dev_name
       got char *name
    This is due to the syscalls expecting some of the arguments to be user
    pointers but they are being passed as kernel pointers.  This is harmless
    but adds a lot of noise to a sparse build.
    To limit the noise just disable the sparse checking in the relevant source
    files, but still display a warning so that the user knows this has been
    Since the sparse checking has been disabled we can also remove the __user
    __force casts that are scattered thru the source.
    Signed-off-by: H Hartley Sweeten <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
Commits on May 30, 2012
  1. Merge branch 'for-3.5/core' of git://

    Merge block/IO core bits from Jens Axboe:
     "This is a bit bigger on the core side than usual, but that is purely
      because we decided to hold off on parts of Tejun's submission on 3.4
      to give it a bit more time to simmer.  As a consequence, it's seen a
      long cycle in for-next.
      It contains:
       - Bug fix from Dan, wrong locking type.
       - Relax splice gifting restriction from Eric.
       - A ton of updates from Tejun, primarily for blkcg.  This improves
         the code a lot, making the API nicer and cleaner, and also includes
         fixes for how we handle and tie policies and re-activate on
         switches.  The changes also include generic bug fixes.
       - A simple fix from Vivek, along with a fix for doing proper delayed
         allocation of the blkcg stats."
    Fix up annoying conflict just due to different merge resolution in
    * 'for-3.5/core' of git:// (92 commits)
      blkcg: tg_stats_alloc_lock is an irq lock
      vmsplice: relax alignement requirements for SPLICE_F_GIFT
      blkcg: use radix tree to index blkgs from blkcg
      blkcg: fix blkcg->css ref leak in __blkg_lookup_create()
      block: fix elvpriv allocation failure handling
      block: collapse blk_alloc_request() into get_request()
      blkcg: collapse blkcg_policy_ops into blkcg_policy
      blkcg: embed struct blkg_policy_data in policy specific data
      blkcg: mass rename of blkcg API
      blkcg: style cleanups for blk-cgroup.h
      blkcg: remove blkio_group->path[]
      blkcg: blkg_rwstat_read() was missing inline
      blkcg: shoot down blkgs if all policies are deactivated
      blkcg: drop stuff unused after per-queue policy activation update
      blkcg: implement per-queue policy activation
      blkcg: add request_queue->root_blkg
      blkcg: make request_queue bypassing on allocation
      blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
      blkcg: make blkg_conf_prep() take @pol and return with queue lock held
      blkcg: remove static policy ID enums
Commits on May 24, 2012
  1. Merge branch 'timers-core-for-linus' of git://…

    Pull timer updates from Thomas Gleixner.
    Various trivial conflict fixups in arch Kconfig due to addition of
    unrelated entries nearby.  And one slightly more subtle one for sparc32
    (new user of GENERIC_CLOCKEVENTS), fixed up as per Thomas.
    * 'timers-core-for-linus' of git:// (31 commits)
      timekeeping: Fix a few minor newline issues.
      time: remove obsolete declaration
      ntp: Fix a stale comment and a few stray newlines.
      ntp: Correct TAI offset during leap second
      timers: Fixup the Kconfig consolidation fallout
      x86: Use generic time config
      unicore32: Use generic time config
      um: Use generic time config
      tile: Use generic time config
      sparc: Use: generic time config
      sh: Use generic time config
      score: Use generic time config
      s390: Use generic time config
      openrisc: Use generic time config
      powerpc: Use generic time config
      mn10300: Use generic time config
      mips: Use generic time config
      microblaze: Use generic time config
      m68k: Use generic time config
      m32r: Use generic time config
  2. Merge branch 'for-linus' of git://…

    Pull user namespace enhancements from Eric Biederman:
     "This is a course correction for the user namespace, so that we can
      reach an inexpensive, maintainable, and reasonably complete
       - Config guards make it impossible to enable the user namespace and
         code that has not been converted to be user namespace safe.
       - Use of the new kuid_t type ensures the if you somehow get past the
         config guards the kernel will encounter type errors if you enable
         user namespaces and attempt to compile in code whose permission
         checks have not been updated to be user namespace safe.
       - All uids from child user namespaces are mapped into the initial
         user namespace before they are processed.  Removing the need to add
         an additional check to see if the user namespace of the compared
         uids remains the same.
       - With the user namespaces compiled out the performance is as good or
         better than it is today.
       - For most operations absolutely nothing changes performance or
         operationally with the user namespace enabled.
       - The worst case performance I could come up with was timing 1
         billion cache cold stat operations with the user namespace code
         enabled.  This went from 156s to 164s on my laptop (or 156ns to
         164ns per stat operation).
       - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.
         Most uid/gid setting system calls treat these value specially
         anyway so attempting to use -1 as a uid would likely cause
         entertaining failures in userspace.
       - If setuid is called with a uid that can not be mapped setuid fails.
         I have looked at sendmail, login, ssh and every other program I
         could think of that would call setuid and they all check for and
         handle the case where setuid fails.
       - If stat or a similar system call is called from a context in which
         we can not map a uid we lie and return overflowuid.  The LFS
         experience suggests not lying and returning an error code might be
         better, but the historical precedent with uids is different and I
         can not think of anything that would break by lying about a uid we
         can't map.
       - Capabilities are localized to the current user namespace making it
         safe to give the initial user in a user namespace all capabilities.
      My git tree covers all of the modifications needed to convert the core
      kernel and enough changes to make a system bootable to runlevel 1."
    Fix up trivial conflicts due to nearby independent changes in fs/stat.c
    * 'for-linus' of git:// (46 commits)
      userns:  Silence silly gcc warning.
      cred: use correct cred accessor with regards to rcu read lock
      userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
      userns: Convert cgroup permission checks to use uid_eq
      userns: Convert tmpfs to use kuid and kgid where appropriate
      userns: Convert sysfs to use kgid/kuid where appropriate
      userns: Convert sysctl permission checks to use kuid and kgids.
      userns: Convert proc to use kuid/kgid where appropriate
      userns: Convert ext4 to user kuid/kgid where appropriate
      userns: Convert ext3 to use kuid/kgid where appropriate
      userns: Convert ext2 to use kuid/kgid where appropriate.
      userns: Convert devpts to use kuid/kgid where appropriate
      userns: Convert binary formats to use kuid/kgid where appropriate
      userns: Add negative depends on entries to avoid building code that is userns unsafe
      userns: signal remove unnecessary map_cred_ns
      userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
      userns: Fail exec for suid and sgid binaries with ids outside our user namespace.
      userns: Convert stat to return values mapped from kuids and kgids
      userns: Convert user specfied uids and gids in chown into kuids and kgid
      userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs
Commits on May 23, 2012
  1. Merge branch 'x86-extable-for-linus' of git://…

    Pull exception table generation updates from Ingo Molnar:
     "The biggest change here is to allow the build-time sorting of the
      exception table, to speed up booting.  This is achieved by the
      architecture enabling BUILDTIME_EXTABLE_SORT.  This option is enabled
      for x86 and MIPS currently.
      On x86 a number of fixes and changes were needed to allow build-time
      sorting of the exception table, in particular a relocation invariant
      exception table format was needed.  This required the abstracting out
      of exception table protocol and the removal of 20 years of accumulated
      assumptions about the x86 exception table format.
      While at it, this tree also cleans up various other aspects of
      exception handling, such as early(er) exception handling for
      rdmsr_safe() et al.
      All in one, as the result of these changes the x86 exception code is
      now pretty nice and modern.  As an added bonus any regressions in this
      code will be early and violent crashes, so if you see any of those,
      you'll know whom to blame!"
    Fix up trivial conflicts in arch/{mips,x86}/Kconfig files due to nearby
    modifications of other core architecture options.
    * 'x86-extable-for-linus' of git:// (35 commits)
      Revert "x86, extable: Disable presorted exception table for now"
      scripts/sortextable: Handle relative entries, and other cleanups
      x86, extable: Switch to relative exception table entries
      x86, extable: Disable presorted exception table for now
      x86, extable: Add _ASM_EXTABLE_EX() macro
      x86, extable: Remove open-coded exception table entries in arch/x86/ia32/ia32entry.S
      x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/xsave.h
      x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/kvm_host.h
      x86, extable: Remove the now-unused __ASM_EX_SEC macros
      x86, extable: Remove open-coded exception table entries in arch/x86/xen/xen-asm_32.S
      x86, extable: Remove open-coded exception table entries in arch/x86/um/checksum_32.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/usercopy_32.c
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/putuser.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/getuser.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/csum-copy_64.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_nocache_64.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_64.S
      x86, extable: Remove open-coded exception table entries in arch/x86/lib/checksum_32.S
      x86, extable: Remove open-coded exception table entries in arch/x86/kernel/test_rodata.c
      x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_64.S
  2. Merge branch 'perf-core-for-linus' of git://…

    Pull perf changes from Ingo Molnar:
     "Lots of changes:
       - (much) improved assembly annotation support in perf report, with
         jump visualization, searching, navigation, visual output
         improvements and more.
        - kernel support for AMD IBS PMU hardware features.  Notably 'perf
          record -e cycles:p' and 'perf top -e cycles:p' should work without
          skid now, like PEBS does on the Intel side, because it takes
          advantage of IBS transparently.
        - the libtracevents library: it is the first step towards unifying
          tracing tooling and perf, and it also gives a tracing library for
          external tools like powertop to rely on.
        - infrastructure: various improvements and refactoring of the UI
          modules and related code
        - infrastructure: cleanup and simplification of the profiling
          targets code (--uid, --pid, --tid, --cpu, --all-cpus, etc.)
        - tons of robustness fixes all around
        - various ftrace updates: speedups, cleanups, robustness
        - typing 'make' in tools/ will now give you a menu of projects to
          build and a short help text to explain what each does.
        - ... and lots of other changes I forgot to list.
      The perf record make bzImage + perf report regression you reported
      should be fixed."
    * 'perf-core-for-linus' of git:// (166 commits)
      tracing: Remove kernel_lock annotations
      tracing: Fix initial buffer_size_kb state
      ring-buffer: Merge separate resize loops
      perf evsel: Create events initially disabled -- again
      perf tools: Split term type into value type and term type
      perf hists: Fix callchain ip printf format
      perf target: Add uses_mmap field
      ftrace: Remove selecting FRAME_POINTER with FUNCTION_TRACER
      ftrace/x86: Have x86 ftrace use the ftrace_modify_all_code()
      ftrace: Make ftrace_modify_all_code() global for archs to use
      ftrace: Return record ip addr for ftrace_location()
      ftrace: Consolidate ftrace_location() and ftrace_text_reserved()
      ftrace: Speed up search by skipping pages by address
      ftrace: Remove extra helper functions
      ftrace: Sort all function addresses, not just per page
      tracing: change CPU ring buffer state from tracing_cpumask
      tracing: Check return value of tracing_dentry_percpu()
      ring-buffer: Reset head page before running self test
      ring-buffer: Add integrity check at end of iter read
      ring-buffer: Make addition of pages in ring buffer atomic
Commits on May 22, 2012
  1. Merge tag 'driver-core-3.5-rc1' of git://…

    Pull driver core updates from Greg Kroah-Hartman:
     "Here's the driver core, and other driver subsystems, pull request for
      the 3.5-rc1 merge window.
      Outside of a few minor driver core changes, we ended up with the
      following different subsystem and core changes as well, due to
      interdependancies on the driver core:
       - hyperv driver updates
       - drivers/memory being created and some drivers moved into it
       - extcon driver subsystem created out of the old Android staging
         switch driver code
       - dynamic debug updates
       - printk rework, and /dev/kmsg changes
      All of this has been tested in the linux-next releases for a few weeks
      with no reported problems.
      Signed-off-by: Greg Kroah-Hartman <>"
    Fix up conflicts in drivers/extcon/extcon-max8997.c where git noticed
    that a patch to the deleted drivers/misc/max8997-muic.c driver needs to
    be applied to this one.
    * tag 'driver-core-3.5-rc1' of git:// (90 commits)
      uio_pdrv_genirq: get irq through platform resource if not set otherwise
      memory: tegra{20,30}-mc: Remove empty *_remove()
      printk() - isolate KERN_CONT users from ordinary complete lines
      sysfs: get rid of some lockdep false positives
      Drivers: hv: util: Properly handle version negotiations.
      Drivers: hv: Get rid of an unnecessary check in vmbus_prep_negotiate_resp()
      memory: tegra{20,30}-mc: Use dev_err_ratelimited()
      driver core: Add dev_*_ratelimited() family
      Driver Core: don't oops with unregistered driver in driver_find_device()
      printk() - restore prefix/timestamp printing for multi-newline strings
      printk: add stub for prepend_timestamp()
      ARM: tegra30: Make MC optional in Kconfig
      ARM: tegra20: Make MC optional in Kconfig
      ARM: tegra30: MC: Remove unnecessary BUG*()
      ARM: tegra20: MC: Remove unnecessary BUG*()
      printk: correctly align __log_buf
      ARM: tegra30: Add Tegra Memory Controller(MC) driver
      ARM: tegra20: Add Tegra Memory Controller(MC) driver
      printk() - restore timestamp printing at console output
      printk() - do not merge continuation lines of different threads
  2. Merge branch 'smp-hotplug-for-linus' of git://…

    Pull smp hotplug cleanups from Thomas Gleixner:
     "This series is merily a cleanup of code copied around in arch/* and
      not changing any of the real cpu hotplug horrors yet.  I wish I'd had
      something more substantial for 3.5, but I underestimated the lurking
    Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
    * 'smp-hotplug-for-linus' of git:// (79 commits)
      um: Remove leftover declaration of alloc_task_struct_node()
      task_allocator: Use config switches instead of magic defines
      sparc: Use common threadinfo allocator
      score: Use common threadinfo allocator
      mn10300: Use common threadinfo allocator
      powerpc: Use common threadinfo allocator
      mips: Use common threadinfo allocator
      hexagon: Use common threadinfo allocator
      m32r: Use common threadinfo allocator
      frv: Use common threadinfo allocator
      cris: Use common threadinfo allocator
      x86: Use common threadinfo allocator
      c6x: Use common threadinfo allocator
      fork: Provide kmemcache based thread_info allocator
      tile: Use common threadinfo allocator
      fork: Provide weak arch_release_[task_struct|thread_info] functions
      fork: Move thread info gfp flags to header
      fork: Remove the weak insanity
      sh: Remove cpu_idle_wait()
  3. Merge branch 'core-rcu-for-linus' of git://…

    Pull RCU changes from Ingo Molnar:
     "This is the v3.5 RCU tree from Paul E.  McKenney:
     1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
        more on the way for 3.6).  Posted to LKML:
  (commits 1-3 and 5),
  (commit 4),
  (commit 6), and
  (commit 7, combined with
           the other commits for the convenience of the tester).
     2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
        that have no RCU callbacks.  Posted to LKML:
     3) A couple of commits that improve the efficiency of the interaction
        between preemptible RCU and the scheduler, these two being all that
        survived an abortive attempt to allow preemptible RCU's
        __rcu_read_lock() to be inlined.  The full set was posted to LKML at, and the first and third patches
        of that set remain.
     4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
        call_srcu() and srcu_barrier().  A major feature of this new
        implementation is that synchronize_srcu() no longer disturbs the
        execution of other CPUs.  This work is based on earlier
        implementations by Peter Zijlstra and Paul E.  McKenney.  Posted to
     5) A number of miscellaneous bug fixes and improvements which were
        posted to LKML at: with
        subsequent updates posted to LKML."
    * 'core-rcu-for-linus' of git:// (32 commits)
      rcu: Make rcu_barrier() less disruptive
      rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
      rcu: Make RCU_FAST_NO_HZ handle timer migration
      rcu: Update RCU maintainership
      rcu: Make exit_rcu() more precise and consolidate
      rcu: Move PREEMPT_RCU preemption to switch_to() invocation
      rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
      rcu: Add rcutorture test for call_srcu()
      rcu: Implement per-domain single-threaded call_srcu() state machine
      rcu: Use single value to handle expedited SRCU grace periods
      rcu: Improve srcu_readers_active_idx()'s cache locality
      rcu: Remove unused srcu_barrier()
      rcu: Implement a variant of Peter's SRCU algorithm
      rcu: Improve SRCU's wait_idx() comments
      rcu: Flip ->completed only once per SRCU grace period
      rcu: Increment upper bit only for srcu_read_lock()
      rcu: Remove fast check path from __synchronize_srcu()
      rcu: Direct algorithmic SRCU implementation
      rcu: Introduce rcutorture testing for rcu_barrier()
      timer: Fix mod_timer_pinned() header comment
Commits on May 21, 2012
  1. timers: Fixup the Kconfig consolidation fallout

    Thomas Gleixner authored
    Sigh, I missed to check which architecture Kconfig files actually
    include the core Kconfig file. There are a few which did not. So we
    broke them.
    Instead of adding the includes to those, we are better off to move the
    include to init/Kconfig like we did already with irqs and others.
    This does not change anything for the architectures using the old
    style periodic timer mode. It just solves the build wreckage there.
    For those architectures which use the clock events infrastructure it
    moves the include of the core Kconfig file to "General setup" which is
    a way more logical place than having it at random locations specified
    by the architecture specific Kconfigs.
    Reported-by: Ingo Molnar <>
    Cc: Anna-Maria Gleixner <>
    Signed-off-by: Thomas Gleixner <>
  2. Fix blocking allocations called very early during bootup

    During early boot, when the scheduler hasn't really been fully set up,
    we really can't do blocking allocations because with certain (dubious)
    configurations the "might_resched()" calls can actually result in
    scheduling events.
    We could just make such users always use GFP_ATOMIC, but quite often the
    code that does the allocation isn't really aware of the fact that the
    scheduler isn't up yet, and forcing that kind of random knowledge on the
    initialization code is just annoying and not good for anybody.
    And we actually have a the 'gfp_allowed_mask' exactly for this reason:
    it's just that the kernel init sequence happens to set it to allow
    blocking allocations much too early.
    So move the 'gfp_allowed_mask' initialization from 'start_kernel()'
    (which is some of the earliest init code, and runs with preemption
    disabled for good reasons) into 'kernel_init()'.  kernel_init() is run
    in the newly created thread that will become the 'init' process, as
    opposed to the early startup code that runs within the context of what
    will be the first idle thread.
    So by the time we reach 'kernel_init()', we know that the scheduler must
    be at least limping along, because we've already scheduled from the idle
    thread into the init thread.
    Reported-by: Steven Rostedt <>
    Cc: David Rientjes <>
    Signed-off-by: Linus Torvalds <>
Commits on May 18, 2012
  1. Merge remote-tracking branch 'tip/perf/urgent' into perf/core

    Arnaldo Carvalho de Melo authored
    Merge reason: We are going to queue up a dependent patch:
    "perf tools: Move parse event automated tests to separated object"
    That depends on:
    commit e7c72d8
    perf tools: Add 'G' and 'H' modifiers to event parsing
    Conflicted with the recent 'perf_target' patches when checking the
    result of perf_evsel open routines to see if a retry is needed to cope
    with older kernels where the exclude guest/host perf_event_attr bits
    were not used.
    Signed-off-by: Arnaldo Carvalho de Melo <>
Commits on May 15, 2012
  1. @ebiederm

    userns: Convert the move_pages, and migrate_pages permission checks t…

    ebiederm authored
    …o use uid_eq
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  2. @ebiederm

    userns: Convert cgroup permission checks to use uid_eq

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  3. @ebiederm

    userns: Convert tmpfs to use kuid and kgid where appropriate

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  4. @ebiederm

    userns: Convert sysfs to use kgid/kuid where appropriate

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  5. @ebiederm

    userns: Convert sysctl permission checks to use kuid and kgids.

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  6. @ebiederm

    userns: Convert proc to use kuid/kgid where appropriate

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  7. @ebiederm

    userns: Convert ext4 to user kuid/kgid where appropriate

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
  8. @ebiederm

    userns: Convert ext3 to use kuid/kgid where appropriate

    ebiederm authored
    Acked-by: Serge Hallyn <>
    Signed-off-by: Eric W. Biederman <>
Something went wrong with that request. Please try again.