Skip to content
  1. Mar 08, 2017
  2. Mar 03, 2017
    • Ingo Molnar's avatar
      sched/headers: Move task_struct::signal and task_struct::sighand types and... · c3edc401
      Ingo Molnar authored
      
      sched/headers: Move task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h>
      
      task_struct::signal and task_struct::sighand are pointers, which would normally make it
      straightforward to not define those types in sched.h.
      
      That is not so, because the types are accompanied by a myriad of APIs (macros and inline
      functions) that dereference them.
      
      Split the types and the APIs out of sched.h and move them into a new header, <linux/sched/signal.h>.
      
      With this change sched.h does not know about 'struct signal' and 'struct sighand' anymore,
      trying to put accessors into sched.h as a test fails the following way:
      
        ./include/linux/sched.h: In function ‘test_signal_types’:
        ./include/linux/sched.h:2461:18: error: dereferencing pointer to incomplete type ‘struct signal_struct’
                          ^
      
      This reduces the size and complexity of sched.h significantly.
      
      Update all headers and .c code that relied on getting the signal handling
      functionality from <linux/sched.h> to include <linux/sched/signal.h>.
      
      The list of affected files in the preparatory patch was partly generated by
      grepping for the APIs, and partly by doing coverage build testing, both
      all[yes|mod|def|no]config builds on 64-bit and 32-bit x86, and an array of
      cross-architecture builds.
      
      Nevertheless some (trivial) build breakage is still expected related to rare
      Kconfig combinations and in-flight patches to various kernel code, but most
      of it should be handled by this patch.
      
      Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c3edc401
    • Ingo Molnar's avatar
      sched/headers: Move task->mm handling methods to <linux/sched/mm.h> · 68e21be2
      Ingo Molnar authored
      Move the following task->mm helper APIs into a new header file,
      <linux/sched/mm.h>, to further reduce the size and complexity
      of <linux/sched.h>.
      
      Here are how the APIs are used in various kernel files:
      
        # mm_alloc():
        arch/arm/mach-rpc/ecard.c
        fs/exec.c
        include/linux/sched/mm.h
        kernel/fork.c
      
        # __mmdrop():
        arch/arc/include/asm/mmu_context.h
        include/linux/sched/mm.h
        kernel/fork.c
      
        # mmdrop():
        arch/arm/mach-rpc/ecard.c
        arch/m68k/sun3/mmu_emu.c
        arch/x86/mm/tlb.c
        drivers/gpu/drm/amd/amdkfd/kfd_process.c
        drivers/gpu/drm/i915/i915_gem_userptr.c
        drivers/infiniband/hw/hfi1/file_ops.c
        drivers/vfio/vfio_iommu_spapr_tce.c
        fs/exec.c
        fs/proc/base.c
        fs/proc/task_mmu.c
        fs/proc/task_nommu.c
        fs/userfaultfd.c
        include/linux/mmu_notifier.h
        include/linux/sched/mm.h
        kernel/fork.c
        kernel/futex.c
        kernel/sched/core.c
        mm/khugepaged.c
        mm/ksm.c
        mm/mmu_context.c
        mm/mmu_notifier.c
        mm/oom_kill.c
        virt/kvm...
      68e21be2
    • Linus Walleij's avatar
      ARM: deconfig: fix the moxart defconfig · 332524ea
      Linus Walleij authored
      
      
      The moxart defconfig wasn't even building a kernel for Moxart,
      it was building a kernel for V4T on the nothing platform. Switch
      to MULTI_V4 and keep the right drivers, update a few selections.
      Now it (presumably) builds a minimalist Moxart kernel again.
      
      Cc: Jonas Jensen <jonas.jensen@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      332524ea
    • Linus Walleij's avatar
      ARM: ux500: resume the second core properly · 3131d970
      Linus Walleij authored
      The pen hold/release scheme was copied over to Ux500 from the ARM
      reference designs like most of these at the time. It is not needed
      at all, and was mostly removed in commit c00def71
      "ARM: ux500: simplify secondary CPU boot".
      
      However on the suspend/resume path and hot plug/unplug of CPUs,
      the .cpu_die() callback was still waiting for the pen to be
      released which made it spin forever and the second core never come
      back online after suspend/resume.
      
      Fix this by simply replacing the strange custom .cpu_die() with
      a oneline wfi() just like e.g. the qcom platform does. This fixes
      the issue and makes the second core come up properly after
      suspend/resume.
      
      As a side effect, this rids us of the completely surplus local
      setup.h and hotplug.c files, and we just compile this into platsmp.c
      with everything else SMP.
      
      Cc: stable@vger.kernel.org
      Fixes: c00def71
      
       ("ARM: ux500: simplify secondary CPU boot")
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      3131d970
  3. Mar 02, 2017
  4. Mar 01, 2017
  5. Feb 28, 2017