24 Oct, 2014

1 commit


19 Aug, 2014

1 commit

  • Using kstrtol to parse the "{e,}memsize" variables was wrong because this
    parses signed long numbers. In case of '{e,}memsize' >= 2G, the top bit
    is set, resulting to -ERANGE errors and possibly random system memory
    boundaries. We fix this by replacing "kstrtol" with "kstrtoul".
    We also improve the code to check the kstrtoul return value and
    print a warning if an error was returned.

    Signed-off-by: Markos Chandras
    Cc: # v3.15+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7543/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     

02 Aug, 2014

3 commits

  • Initialise the MAARs such that speculation is enabled for all physical
    addresses outside of the I/O region.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7333/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • The Malta malta_ipi_irqdispatch() routine now checks only IPI interrupts
    when handling IPIs. It could previously call do_IRQ() for non-IPIs, and
    also call do_IRQ() with an invalid IRQ number if there were no pending
    GIC interrupts when gic_get_int() was called.

    Signed-off-by: Jeffrey Deans
    Signed-off-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7377/
    Signed-off-by: Ralf Baechle

    Jeffrey Deans
     
  • irq-gic.c:gic_get_int() masks out interrupts from the pending set which
    aren’t in the pcpu_mask. Only interrupts marked with GIC_FLAG_IPI were
    set in pcpu_mask, meaning that peripheral interrupts also had to be
    marked as IPIs. Remove the use of GIC_FLAG_IPI and allow the flags
    member of struct gic_intr_map to be zero.

    Signed-off-by: Jeffrey Deans
    Signed-off-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7374/
    Signed-off-by: Ralf Baechle

    Jeffrey Deans
     

10 Jun, 2014

1 commit

  • Pull MIPS updates from Ralf Baechle:
    - three fixes for 3.15 that didn't make it in time
    - limited Octeon 3 support.
    - paravirtualization support
    - improvment to platform support for Netlogix SOCs.
    - add support for powering down the Malta eval board in software
    - add many instructions to the in-kernel microassembler.
    - add support for the BPF JIT.
    - minor cleanups of the BCM47xx code.
    - large cleanup of math emu code resulting in significant code size
    reduction, better readability of the code and more accurate
    emulation.
    - improvments to the MIPS CPS code.
    - support C3 power status for the R4k count/compare clock device.
    - improvments to the GIO support for older SGI workstations.
    - increase number of supported CPUs to 256; this can be reached on
    certain embedded multithreaded ccNUMA configurations.
    - various small cleanups, updates and fixes

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (173 commits)
    MIPS: IP22/IP28: Improve GIO support
    MIPS: Octeon: Add twsi interrupt initialization for OCTEON 3XXX, 5XXX, 63XX
    DEC: Document the R4k MB ASIC mini interrupt controller
    DEC: Add self as the maintainer
    MIPS: Add microMIPS MSA support.
    MIPS: Replace calls to obsolete strict_strto call with kstrto* equivalents.
    MIPS: Replace obsolete strict_strto call with kstrto
    MIPS: BFP: Simplify code slightly.
    MIPS: Call find_vma with the mmap_sem held
    MIPS: Fix 'write_msa_##' inline macro.
    MIPS: Fix MSA toolchain support detection.
    mips: Update the email address of Geert Uytterhoeven
    MIPS: Add minimal defconfig for mips_paravirt
    MIPS: Enable build for new system 'paravirt'
    MIPS: paravirt: Add pci controller for virtio
    MIPS: Add code for new system 'paravirt'
    MIPS: Add functions for hypervisor call
    MIPS: OCTEON: Add OCTEON3 to __get_cpu_type
    MIPS: Add function get_ebase_cpunum
    MIPS: Add minimal support for OCTEON3 to c-r4k.c
    ...

    Linus Torvalds
     

05 Jun, 2014

1 commit


04 Jun, 2014

1 commit

  • Pull KVM updates from Paolo Bonzini:
    "At over 200 commits, covering almost all supported architectures, this
    was a pretty active cycle for KVM. Changes include:

    - a lot of s390 changes: optimizations, support for migration, GDB
    support and more

    - ARM changes are pretty small: support for the PSCI 0.2 hypercall
    interface on both the guest and the host (the latter acked by
    Catalin)

    - initial POWER8 and little-endian host support

    - support for running u-boot on embedded POWER targets

    - pretty large changes to MIPS too, completing the userspace
    interface and improving the handling of virtualized timer hardware

    - for x86, a larger set of changes is scheduled for 3.17. Still, we
    have a few emulator bugfixes and support for running nested
    fully-virtualized Xen guests (para-virtualized Xen guests have
    always worked). And some optimizations too.

    The only missing architecture here is ia64. It's not a coincidence
    that support for KVM on ia64 is scheduled for removal in 3.17"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (203 commits)
    KVM: add missing cleanup_srcu_struct
    KVM: PPC: Book3S PR: Rework SLB switching code
    KVM: PPC: Book3S PR: Use SLB entry 0
    KVM: PPC: Book3S HV: Fix machine check delivery to guest
    KVM: PPC: Book3S HV: Work around POWER8 performance monitor bugs
    KVM: PPC: Book3S HV: Make sure we don't miss dirty pages
    KVM: PPC: Book3S HV: Fix dirty map for hugepages
    KVM: PPC: Book3S HV: Put huge-page HPTEs in rmap chain for base address
    KVM: PPC: Book3S HV: Fix check for running inside guest in global_invalidates()
    KVM: PPC: Book3S: Move KVM_REG_PPC_WORT to an unused register number
    KVM: PPC: Book3S: Add ONE_REG register names that were missed
    KVM: PPC: Add CAP to indicate hcall fixes
    KVM: PPC: MPIC: Reset IRQ source private members
    KVM: PPC: Graciously fail broken LE hypercalls
    PPC: ePAPR: Fix hypercall on LE guest
    KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler
    KVM: PPC: BOOK3S: Always use the saved DAR value
    PPC: KVM: Make NX bit available with magic page
    KVM: PPC: Disable NX for old magic page using guests
    KVM: PPC: BOOK3S: HV: Add mixed page-size support for guest
    ...

    Linus Torvalds
     

31 May, 2014

3 commits

  • This patch powers down the Malta in response to a power off command (eg.
    poweroff or shutdown -P). It may then be powered back up by pressing the
    "ON/NMI" button (S4) on the board. In cases where the power off state
    cannot be entered (eg. because the required PCI support is disabled) the
    current reset behaviour will be used as a fallback.

    Signed-off-by: Paul Burton
    Tested-by: James Hogan
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6907/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • When the system is halted it makes little sense to reset it. Instead,
    hang by executing an infinite loop.

    [ralf@linux-mips.org: Remove printk from mips_machine_halt() - this is not
    the place to communicate with the user.]

    Suggested-by: Maciej W. Rozycki
    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6906/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • This patch introduces code which will enter a suspend state via the
    PIIX4. This can only be done when PCI support is enabled since it
    requires access to PCI I/O space and the generation of a special cycle
    on the PCI bus. In cases where PCI is disabled the mips_pm_suspend
    function will simply always return an error.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6905/
    Signed-off-by: Ralf Baechle

    Paul Burton
     

30 May, 2014

1 commit

  • The KVM_HOST_FREQ Kconfig symbol was used by KVM guest kernels to
    override the timer frequency calculation to a value based on the host
    frequency. Now that the KVM timer emulation is implemented independent
    of the host timer frequency and defaults to 100MHz, adjust the working
    of CONFIG_KVM_HOST_FREQ to match.

    The Kconfig symbol now specifies the guest timer frequency directly, and
    has been renamed accordingly to KVM_GUEST_TIMER_FREQ. It now defaults to
    100MHz too and the help text is updated to make it clear that a zero
    value will allow the normal timer frequency calculation to take place
    (based on the emulated RTC).

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: Sanjay Lal
    Acked-by: Ralf Baechle
    Signed-off-by: Paolo Bonzini

    James Hogan
     

25 May, 2014

2 commits

  • First introduced in e6ca4e5bf11466b5e9423a1e4ea51a8216c4b9b6
    "MIPS: malta: malta-memory: Add support for the 'ememsize' variable"
    but it is not needed since both variables are visible to the compiler.

    Signed-off-by: Markos Chandras
    Cc: # v3.15+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6985/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • If the 'memsize' environmental variable is not set by the bootloader
    the 'memsize' variable is not initialized, leading to potential memory
    problems. This patch fixes the problem by setting the initial
    value to '0' to force the kernel to set a good default memory size.

    Cc: # v3.15+
    Reported-by: Matheus Almeida
    Signed-off-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Cc: Markos Chandras
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/6984/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     

24 May, 2014

1 commit

  • Nobody is maintaining SMTC anymore and there also seems to be no userbase.
    Which is a pity - the SMTC technology primarily developed by Kevin D.
    Kissell is an ingenious demonstration for the MT
    ASE's power and elegance.

    Based on Markos Chandras patch
    https://patchwork.linux-mips.org/patch/6719/ which while very similar did
    no longer apply cleanly when I tried to merge it plus some additional
    post-SMTC cleanup - SMTC was a feature as tricky to remove as it was to
    merge once upon a time.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     

01 Apr, 2014

3 commits


27 Mar, 2014

8 commits

  • Shift System Controller memory mapping to 0x80000000

    Signed-off-by: Leonid Yegoshin
    Signed-off-by: Markos Chandras

    Leonid Yegoshin
     
  • Use a Malta specific function to free the init section once the
    kernel has booted. When operating in EVA mode, the physical memory
    is shifted to 0x80000000. Kernel is loaded into 0x80000000 (virtual)
    so the offset between physical and virtual addresses is 0.

    Signed-off-by: Markos Chandras

    Markos Chandras
     
  • PHYS_OFFSET is used to denote the physical start address of the
    first bank of RAM. When the Malta board is in EVA mode, the physical
    start address of RAM is shifted to 0x80000000 so it's necessary to use
    this macro in order to make the code EVA agnostic.

    Signed-off-by: Markos Chandras

    Markos Chandras
     
  • The 'ememsize' variable is used to denote the real RAM which is
    present on the Malta board. This is different compared to 'memsize'
    which is capped to 256MB. The 'ememsize' is used to get the actual
    physical memory when setting up the Malta memory layout. This only
    makes sense in case the core operates in the EVA mode, and it's
    ignored otherwise.

    Signed-off-by: Markos Chandras

    Markos Chandras
     
  • The Malta board aliases 0x80000000 - 0xffffffff to 0x00000000
    - 0x7fffffff ignoring the 256 MB IO hole in 0x10000000.
    The physical memory is shifted to 0x80000000 so up to 2GB
    can be used. Kuseg is expanded to 3GB (due to board limitations
    only 2GB can be accessed) and lowmem (kernel space) is expanded to 2GB.

    The Segment Control registers are programmed as follows:

    Virtual memory Physical memory Mapping
    0x00000000 - 0x7fffffff 0x80000000 - 0xfffffffff MUSUK (kuseg)
    0x80000000 - 0x9fffffff 0x00000000 - 0x1ffffffff MUSUK (kseg0)
    0xa0000000 - 0xbf000000 0x00000000 - 0x1ffffffff MUSUK (kseg1)
    0xc0000000 - 0xdfffffff - MK (kseg2)
    0xe0000000 - 0xffffffff - MK (kseg3)

    The location of exception vectors remain the same since 0xbfc00000
    (traditional exception base) still maps to 0x1fc00000 physical.

    Signed-off-by: Markos Chandras

    Markos Chandras
     
  • This patch simply attempts to register the MIPS Coherent Processing
    System SMP implementation when it is enabled. If registering that fails
    for some reason (like the Kconfig option being disabled or a lack of
    hardware support) then we fall back to the same SMP implementations as
    before.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6365/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • When CPC support is compiled into the kernel (ie. CONFIG_MIPS_CPC=y),
    probe the CPC on boot for Malta in order to allow any users of the CPC
    to detect its presence & function correctly.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6363/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • Remove the Malta-specific CM probe code and instead make use of the
    newly added generic CM code.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6364/
    Signed-off-by: Ralf Baechle

    Paul Burton
     

07 Mar, 2014

2 commits

  • Now we have CONFIG_MIPS_VPE_LOADER and CONFIG_MIPS_VPE_LOADER_[CMP|MT]. The
    latter two are used by the 2 exclusive flavors. The vpe_run in malta-amon.c
    is for CMP APRP. Without the fix, this vpe_run will be used in MT APRP.

    Reviewed-by: Steven J. Hill
    Signed-off-by: Deng-Cheng Zhu
    Cc: linux-mips@linux-mips.org
    Cc: john@phrozen.org
    Patchwork: https://patchwork.linux-mips.org/patch/6589/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     
  • There are 2 errors with the existing aprp_hook linking:
    - The prefix CONFIG_ is missing;
    - The hook should be linked exclusively in the cases of MT and CMP.
    Signed-off-by: Deng-Cheng Zhu
    Reviewed-by: Steven J. Hill
    Cc: linux-mips@linux-mips.org
    Cc: john@phrozen.org
    Patchwork: https://patchwork.linux-mips.org/patch/6588/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     

25 Jan, 2014

1 commit

  • None of these files are actually using any __init type directives
    and hence don't need to include . Most are just a
    left over from __devinit and __cpuinit removal, or simply due to
    code getting copied from one driver to the next.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6320/

    Paul Gortmaker
     

23 Jan, 2014

6 commits

  • This patch switches Malta from using the MIPS implementation of early
    printk with Malta's prom_putchar to using the generic 8250_early
    implementation. This offers a couple of advantages:

    - We duplicate less generic code.

    - The UART can be initialised rather than being reliant upon
    inheriting a valid setup from the bootloader.

    The Malta console_config function is extended to initialise the early
    console if no earlycon= kernel parameter is provided, inheriting the
    modetty0 bootloader environment if present and falling back to a
    default 38400n8r setup if not. This matches the behaviour used for the
    regular console= parameter.

    Signed-off-by: Paul Burton
    Reviewed-by: Markos Chandras
    Reviewed-by: James Hogan
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6183/

    Paul Burton
     
  • The RTC is used on Malta to estimate the clock frequency of the CPU &
    optionally the GIC. However the kernel previously did not initialise the
    RTC, instead relying upon the bootloader having done so. In order to
    minimise dependencies which the kernel has upon the bootloader this
    patch causes the kernel to initialise the RTC itself prior to making use
    of it.

    Signed-off-by: Paul Burton
    Reviewed-by: Markos Chandras
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6184/

    Paul Burton
     
  • This variable was introduced by commit 96348c8f (of Ralf's historic
    Linux/MIPS repository) "Remaining fixes for MIPS's eval boards." but
    I don't see any use of it either then or now. Remove it.

    Signed-off-by: Paul Burton
    Reviewed-by: Markos Chandras
    Reviewed-by: James Hogan
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6171/

    Paul Burton
     
  • Clean-up code according to the 'checkpatch.pl' script.

    Signed-off-by: Steven J. Hill
    Reviewed-by: Qais Yousef
    Patchwork: http://patchwork.linux-mips.org/patch/6097/
    Reviewed-by: John Crispin

    Steven J. Hill
     
  • Malta with multi-core CM platforms can now use APRP functionality.

    Signed-off-by: Deng-Cheng Zhu
    Signed-off-by: Steven J. Hill
    Reviewed-by: Qais Yousef
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6096/

    Deng-Cheng Zhu
     
  • Commit 225ae5fd9a320e22841410049c3bdb6cf14a5841
    "MIPS: Malta: Fix interupt number of CBUS UART"

    fixed the IRQ number for the ttyS2 CBUS UART. However, this now
    conflicts with the GIC IPI1 interrupt in CMP platforms. The Malta
    interrupt code arbitrarily binds IPIs to INT2 and INT3 and since
    ttyS2 uses the INT2 IRQ line, closing the device disables the
    INT2 interrupt and this effectively disables the IPI1 interrupt
    as well. This patch is mainly a workaround until the Malta code
    is fixed properly.

    Signed-off-by: Leonid Yegoshin
    Signed-off-by: Markos Chandras
    Signed-off-by: John Crispin
    Patchwork: http://patchwork.linux-mips.org/patch/6045/

    Leonid Yegoshin
     

08 Nov, 2013

1 commit

  • Pull MIPS updates from Ralf Baechle:
    - Some minor work bringing the Cobalt MIPS platforms in line with other
    MIPS platforms
    - Make vmlinux.32 and vmlinux.64 build messages less verbose
    - Always register the R4k clocksource when selected, the clock source's
    rating will decide if this or another clock source is actually going
    to be used
    - Drop support for the Cisco (formerly Scientific Atlanta) PowerTV
    platform. There appears to be nobody left who cares and the USB
    driver went stale while waiting for years to be merged
    - Some cleanup of Loongson 2 related #ifdefery
    - Various minor cleanups
    - Major rework on all things related to tracing / ptrace on MIPS,
    including switching the MIPS ELF core dumper to regsets, enabling the
    entries for SIGSYS in struct siginfo for MIPS, enabling ftrace
    syscall trace points
    - Some more work to bring DECstation support code in line with other
    more modern code
    - Report the name of the detected CPU, not just its CP0 PrID value
    - Some more BCM 47xx and atheros ath79xx work
    - Support for compressed kernels using the XZ compression scheme

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (53 commits)
    MIPS: remove duplicate define
    MIPS: Random whitespace clean-ups
    MIPS: traps: Reformat notify_die invocations to 80 columns.
    MIPS: Print correct PC in trace dump after NMI exception
    MIPS: kernel: cpu-probe: Report CPU id during probe
    MIPS: Remove unused defines in piix4.h
    MIPS: Get rid of hard-coded values for Malta PIIX4 fixups
    MIPS: Always register R4K clock when selected
    MIPS: Loongson: Get rid of Loongson 2 #ifdefery all over arch/mips.
    MIPS: cacheops.h: Increase indentation by one tab.
    MIPS: Remove bogus BUG_ON()
    MIPS: PowerTV: Remove support code.
    MIPS: ftrace: Add support for syscall tracepoints.
    MIPS: ptrace: Switch syscall reporting to tracehook_report_syscall_entry().
    MIPS: Move audit_arch() helper function to __syscall_get_arch().
    MIPS: Enable HAVE_ARCH_TRACEHOOK.
    MIPS: Switch ELF core dumper to use regsets.
    MIPS: Implement task_user_regset_view.
    MIPS: ptrace: Use tracehook helpers.
    MIPS: O32 / 32-bit: Always copy 4 stack arguments.
    ...

    Linus Torvalds
     

30 Oct, 2013

2 commits

  • The GIC interrupt offsets are calculated based on the value of NR_CPUS.
    However, this is wrong because NR_CPUS may or may not contain the real
    number of the actual cpus present in the system. We fix that by using
    the 'nr_cpu_ids' variable which contains the real number of cpus in
    the system. Previously, an MT core (eg with 8 VPEs) will fail to boot if
    NR_CPUS was > 8 with the following errors:

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at kernel/irq/chip.c:670 __irq_set_handler+0x15c/0x164()
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.12.0-rc5-00087-gced5633 5
    Stack : 00000006 00000004 00000000 00000000 00000000 00000000 807a4f36 00000053
    807a0000 00000000 80173218 80565aa8 00000000 00000000 00000000 0000000
    00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000000
    00000000 00000000 00000000 8054fd00 8054fd94 80500514 805657a7 8016eb4
    807a0000 80500514 00000000 00000000 80565aa8 8079a5d8 80565766 8054fd0
    ...
    Call Trace:
    [] show_stack+0x64/0x7c
    [] dump_stack+0x64/0x84
    [] warn_slowpath_common+0x84/0xb4
    [] warn_slowpath_null+0x18/0x24
    [] __irq_set_handler+0x15c/0x164
    [] arch_init_ipiirq+0x2c/0x3c
    [] arch_init_irq+0x3c4/0x4bc
    [] init_IRQ+0x3c/0x50
    [] start_kernel+0x230/0x3d8

    ---[ end trace 4eaa2a86a8e2da26 ]---

    This is now fixed and the Malta board can boot with any NR_CPUS value
    which also helps supporting more processors in a single kernel binary.

    Signed-off-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6091/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • The PIIX4_ICTLR* and PIIX4_OCW* defines are not used by any other files.
    Remove them.

    The only file (other than fixup-malta.c which includes piix4.h in patch #1)
    containing "#include " is
    arch/mips/mti-malta/malta-int.c whose first version is actually
    "1da177e4c3:arch/mips/mips-boards/malta/malta_int.c". In that version, in
    the function get_int(), things in piix4.h are used. But now malta-int.c no
    longer needs those stuff.

    Signed-off-by: Deng-Cheng Zhu
    Cc: Steven J. Hill
    Reviewed-by: James Hogan
    Reviewed-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6032/
    Signed-off-by: Ralf Baechle

    Deng-Cheng Zhu
     

19 Sep, 2013

1 commit


15 Jul, 2013

1 commit

  • commit 3747069b25e419f6b51395f48127e9812abc3596 upstream.

    The __cpuinit type of throwaway sections might have made sense
    some time ago when RAM was more constrained, but now the savings
    do not offset the cost and complications. For example, the fix in
    commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
    is a good example of the nasty type of bugs that can be created
    with improper use of the various __init prefixes.

    After a discussion on LKML[1] it was decided that cpuinit should go
    the way of devinit and be phased out. Once all the users are gone,
    we can then finally remove the macros themselves from linux/init.h.

    Note that some harmless section mismatch warnings may result, since
    notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
    and are flagged as __cpuinit -- so if we remove the __cpuinit from
    the arch specific callers, we will also get section mismatch warnings.
    As an intermediate step, we intend to turn the linux/init.h cpuinit
    related content into no-ops as early as possible, since that will get
    rid of these warnings. In any case, they are temporary and harmless.

    Here, we remove all the MIPS __cpuinit from C code and __CPUINIT
    from asm files. MIPS is interesting in this respect, because there
    are also uasm users hiding behind their own renamed versions of the
    __cpuinit macros.

    [1] https://lkml.org/lkml/2013/5/20/589

    [ralf@linux-mips.org: Folded in Paul's followup fix.]

    Signed-off-by: Paul Gortmaker
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5494/
    Patchwork: https://patchwork.linux-mips.org/patch/5495/
    Patchwork: https://patchwork.linux-mips.org/patch/5509/
    Signed-off-by: Ralf Baechle

    Paul Gortmaker