1. 01 Aug, 2014 2 commits
  2. 31 Jul, 2014 1 commit
  3. 30 Jul, 2014 9 commits
    • Huacai Chen's avatar
      MIPS: Remove BUG_ON(!is_fpu_owner()) in do_ade() · 2e5767a2
      Huacai Chen authored
      In do_ade(), is_fpu_owner() isn't preempt-safe. For example, when an
      unaligned ldc1 is executed, do_cpu() is called and then FPU will be
      enabled (and TIF_USEDFPU will be set for the current process). Then,
      do_ade() is called because the access is unaligned.  If the current
      process is preempted at this time, TIF_USEDFPU will be cleard.  So when
      the process is scheduled again, BUG_ON(!is_fpu_owner()) is triggered.
      
      This small program can trigger this BUG in a preemptible kernel:
      
      int main (int argc, char *argv[])
      {
              double u64[2];
      
              while (1) {
                      asm volatile (
                              ".set push \n\t"
                              ".set noreorder \n\t"
                              "ldc1 $f3, 4(%0) \n\t"
                              ".set pop \n\t"
                              ::"r"(u64):
                      );
              }
      
              return 0;
      }
      
      V2: Remove the BUG_ON() unconditionally due to Paul's suggestion.
      Signed-off-by: default avatarHuacai Chen <chenhc@lemote.com>
      Signed-off-by: default avatarJie Chen <chenj@lemote.com>
      Signed-off-by: default avatarRui Wang <wangr@lemote.com>
      Cc: <stable@vger.kernel.org>
      Cc: John Crispin <john@phrozen.org>
      Cc: Steven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: Fuxin Zhang <zhangfx@lemote.com>
      Cc: Zhangjin Wu <wuzhangjin@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2e5767a2
    • Petri Gynther's avatar
      MIPS: ftrace: Fix dynamic tracing of kernel modules · dce0e7d5
      Petri Gynther authored
      Dynamic tracing of kernel modules is broken on 32-bit MIPS. When modules
      are loaded, the kernel crashes when dynamic tracing is enabled with:
       cd /sys/kernel/debug/tracing
       echo > set_ftrace_filter
       echo function > current_tracer
      
      1) arch/mips/kernel/ftrace.c
      When the kernel boots, or when a module is initialized, ftrace_make_nop()
      modifies every _mcount call site to eliminate the ftrace overhead.
      However, when ftrace is later enabled for a call site, ftrace_make_call()
      does not currently restore the _mcount call correctly for module call sites.
      Added ftrace_modify_code_2r() and modified ftrace_make_call() to fix this.
      
      2) arch/mips/kernel/mcount.S
      _mcount assembly routine is supposed to have the caller's _mcount call site
      address in register a0. However, a0 is currently not calculated correctly for
      module call sites. a0 should be (ra - 20) or (ra - 24), depending on whether
      the kernel was built with KBUILD_MCOUNT_RA_ADDRESS or not.
      
      This fix has been tested on Broadcom BMIPS5000 processor. Dynamic tracing
      now works for both built-in functions and module functions.
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Cc: linux-mips@linux-mips.org
      Cc: rostedt@goodmis.org
      Cc: alcooperx@gmail.com
      Cc: cminyard@mvista.com
      Patchwork: https://patchwork.linux-mips.org/patch/7476/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      dce0e7d5
    • Paul Burton's avatar
      MIPS: Prevent user from setting FCSR cause bits · b1442d39
      Paul Burton authored
      If one or more matching FCSR cause & enable bits are set in saved thread
      context then when that context is restored the kernel will take an FP
      exception. This is of course undesirable and considered an oops, leading
      to the kernel writing a backtrace to the console and potentially
      rebooting depending upon the configuration. Thus the kernel avoids this
      situation by clearing the cause bits of the FCSR register when handling
      FP exceptions and after emulating FP instructions.
      
      However the kernel does not prevent userland from setting arbitrary FCSR
      cause & enable bits via ptrace, using either the PTRACE_POKEUSR or
      PTRACE_SETFPREGS requests. This means userland can trivially cause the
      kernel to oops on any system with an FPU. Prevent this from happening
      by clearing the cause bits when writing to the saved FCSR context via
      ptrace.
      
      This problem appears to exist at least back to the beginning of the git
      era in the PTRACE_POKEUSR case.
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: stable@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Cc: Paul Burton <paul.burton@imgtec.com>
      Cc: stable@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/7438/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      b1442d39
    • Rob Kendrick's avatar
    • Huacai Chen's avatar
      MIPS: tlbex: Fix a missing statement for HUGETLB · 8393c524
      Huacai Chen authored
      In commit 2c8c53e2 (MIPS: Optimize TLB handlers for Octeon CPUs)
      build_r4000_tlb_refill_handler() is modified. But it doesn't compatible
      with the original code in HUGETLB case. Because there is a copy & paste
      error and one line of code is missing. It is very easy to produce a bug
      with LTP's hugemmap05 test.
      Signed-off-by: default avatarHuacai Chen <chenhc@lemote.com>
      Signed-off-by: default avatarBinbin Zhou <zhoubb@lemote.com>
      Cc: <stable@vger.kernel.org>
      Cc: John Crispin <john@phrozen.org>
      Cc: Steven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: Fuxin Zhang <zhangfx@lemote.com>
      Cc: Zhangjin Wu <wuzhangjin@gmail.com>
      Patchwork: https://patchwork.linux-mips.org/patch/7496/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      8393c524
    • Waldemar Brodkorb's avatar
      MIPS: RB532: Fix reregistering of serial console · f98fd44b
      Waldemar Brodkorb authored
      Runtime tested on Mikrotik RB532 board.
      Thanks goes to Geert Uytterhoeven for the explanation of the problem.
      
      "I'm afraid this is not gonna help. When the port is unregistered,
      its type will be reset to PORT_UNKNOWN.
      So before registering it again, its type must be set again the actual
      serial driver, cfr. the change to of_serial.c."
      Signed-off-by: default avatarWaldemar Brodkorb <wbx@openadk.org>
      Reviewed-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Cc: Linux MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: geert@linux-m68k.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/7241/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f98fd44b
    • Levente Kurusa's avatar
      MIPS: IP22: Add missing put_device call · 82242d28
      Levente Kurusa authored
      This is required so that we give up the last reference to the device.
      
      Also, create a gio_bus_release() that calls kfree on the device argument to
      properly kfree() the memory allocated for the device.
      
      [ralf@linux-mips.org: Reformat to Linux coding style and make
      gio_bus_release static.]
      Signed-off-by: default avatarLevente Kurusa <levex@linux.com>
      Cc: LKML <linux-kernel@vger.kernel.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6261/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      82242d28
    • Levente Kurusa's avatar
      MIPS: TXx9: 7segled: add missing put_device call · f0a7a2d0
      Levente Kurusa authored
      This is required so that we give up the last reference to the device.
      
      Also, add a new tx_7segled_release function which will be called after the
      put_device to ensure that device is kfree'd.
      
      [ralf@linux-mips.org: Reformat to Linux coding style and make
      tx_7segled_release static.]
      Signed-off-by: default avatarLevente Kurusa <levex@linux.com>
      Cc: LKML <linux-kernel@vger.kernel.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6260/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f0a7a2d0
    • Levente Kurusa's avatar
      MIPS: TXx9: Add missing put_device call · 1610c8a8
      Levente Kurusa authored
      This is required so that we give up the last reference to the device.
      
      Also, rework error path so that it is easier to read.
      
      [ralf@linux-mips.org: Reformat to Linux coding style and make
      txx9_device_release static; folded in build fix by Levente for the
      original patch.]
      Signed-off-by: default avatarLevente Kurusa <levex@linux.com>
      Cc: LKML <linux-kernel@vger.kernel.org>
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Cc: Markos Chandras <markos.chandras@imgtec.com>
      Cc: Steven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6259/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      1610c8a8
  4. 13 Jul, 2014 14 commits
    • Linus Torvalds's avatar
      Linux 3.16-rc5 · 1795cd9b
      Linus Torvalds authored
      1795cd9b
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 18b34d9a
      Linus Torvalds authored
      Pull ext4 bugfixes from Ted Ts'o:
       "More bug fixes for ext4 -- most importantly, a fix for a bug
        introduced in 3.15 that can end up triggering a file system corruption
        error after a journal replay.
      
        It shouldn't lead to any actual data corruption, but it is scary and
        can force file systems to be remounted read-only, etc"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix potential null pointer dereference in ext4_free_inode
        ext4: fix a potential deadlock in __ext4_es_shrink()
        ext4: revert commit which was causing fs corruption after journal replays
        ext4: disable synchronous transaction batching if max_batch_time==0
        ext4: clarify ext4_error message in ext4_mb_generate_buddy_error()
        ext4: clarify error count warning messages
        ext4: fix unjournalled bg descriptor while initializing inode bitmap
      18b34d9a
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mike.turquette/linux · 502fde1a
      Linus Torvalds authored
      Pull clock driver fixes from Mike Turquette:
       "This batch of fixes is for a handful of clock drivers from Allwinner,
        Samsung, ST & TI.  Most of them are of the "this hardware won't work
        without this fix" variety, including patches that fix platforms that
        did not boot under certain configurations.  Other fixes are the result
        of changes to the clock core introduced in 3.15 that had subtle
        impacts on the clock drivers.
      
        There are no fixes to the clock framework core in this pull request"
      
      * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mike.turquette/linux:
        clk: spear3xx: Set proper clock parent of uart1/2
        clk: spear3xx: Use proper control register offset
        clk: qcom: HDMI source sel is 3 not 2
        clk: sunxi: fix devm_ioremap_resource error detection code
        clk: s2mps11: Fix double free corruption during driver unbind
        clk: ti: am43x: Fix boot with CONFIG_SOC_AM33XX disabled
        clk: exynos5420: Remove aclk66_peric from the clock tree description
        clk/exynos5250: fix bit number for tv sysmmu clock
        clk: s3c64xx: Hookup SPI clocks correctly
        clk: samsung: exynos4: Remove SRC_MASK_ISP gates
        clk: samsung: add more aliases for s3c24xx
        clk: samsung: fix several typos to fix boot on s3c2410
        clk: ti: set CLK_SET_RATE_NO_REPARENT for ti,mux-clock
        clk: ti: am43x: Fix boot with CONFIG_SOC_AM33XX disabled
        clk: ti: dra7: return error code in failure case
        clk: ti: apll: not allocating enough data
      502fde1a
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2f3870e9
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "This week's arm-soc fixes:
      
         - Another set of OMAP fixes
           * Clock fixes
           * Restart handling
           * PHY regulators
           * SATA hwmod data for DRA7
           + Some trivial fixes and removal of a bit of dead code
         - Exynos fixes
           * A bunch of clock fixes
           * Some SMP fixes
           * Exynos multi-core timer: register as clocksource and fix ftrace.
           + a few other minor fixes
      
        There's also a couple more patches, and at91 fix for USB caused by
        common clock conversion, and more MAINTAINERS entries for shmobile.
      
        We're definitely switching to only regression fixes from here on out,
        we've been a little less strict than usual up until now"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
        ARM: at91: at91sam9x5: add clocks for usb device
        ARM: EXYNOS: Register cpuidle device only on exynos4210 and 5250
        ARM: dts: Add clock property for mfc_pd in exynos5420
        clk: exynos5420: Add IDs for clocks used in PD mfc
        ARM: EXYNOS: Add support for clock handling in power domain
        ARM: OMAP2+: Remove non working OMAP HDMI audio initialization
        ARM: imx: fix shared gate clock
        ARM: dts: Update the parent for Audss clocks in Exynos5420
        ARM: EXYNOS: Update secondary boot addr for secure mode
        ARM: dts: Fix TI CPSW Phy mode selection on IGEP COM AQUILA.
        ARM: dts: am335x-evmsk: Enable the McASP FIFO for audio
        ARM: dts: am335x-evm: Enable the McASP FIFO for audio
        ARM: OMAP2+: Make GPMC skip disabled devices
        ARM: OMAP2+: create dsp device only on OMAP3 SoCs
        ARM: dts: dra7-evm: Make VDDA_1V8_PHY supply always on
        ARM: DRA7/AM43XX: fix header definition for omap44xx_restart
        ARM: OMAP2+: clock/dpll: fix _dpll_test_fint arithmetics overflow
        ARM: DRA7: hwmod: Add SYSCONFIG for usb_otg_ss
        ARM: DRA7: hwmod: Fixup SATA hwmod
        ARM: OMAP3: PRM/CM: Add back macros used by TI DSP/Bridge driver
        ...
      2f3870e9
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 5fa77b54
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Another round of fixes for ARM:
         - a set of kprobes fixes from Jon Medhurst
         - fix the revision checking for the L2 cache which wasn't noticed to
           have been broken"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: l2c: fix revision checking
        ARM: kprobes: Fix test code compilation errors for ARMv4 targets
        ARM: kprobes: Disallow instructions with PC and register specified shift
        ARM: kprobes: Prevent known test failures stopping other tests running
      5fa77b54
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 33fe3aee
      Linus Torvalds authored
      Pull m68k fixes from Geert Uytterhoeven:
       "Summary:
        - Fix for a boot regression introduced in v3.16-rc1,
        - Fix for a build issue in -next"
      
      Christoph Hellwig questioned why mach_random_get_entropy should be
      exported to modules, and Geert explains that random_get_entropy() is
      called by at least the crypto layer and ends up using it on m68k.  On
      most other architectures it just uses get_cycles() (which is typically
      inlined and doesn't need exporting),
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Export mach_random_get_entropy to modules
        m68k: Fix boot regression on machines with RAM at non-zero
      33fe3aee
    • Linus Torvalds's avatar
      Merge branch 'parisc-3.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 54f8c2aa
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
       "The major patch in here is one which fixes the fanotify_mark() syscall
        in the compat layer of the 64bit parisc kernel.  It went unnoticed so
        long, because the calling syntax when using a 64bit parameter in a
        32bit syscall is quite complex and even worse, it may be even
        different if you call syscall() or the glibc wrapper.  This patch
        makes the kernel accept the calling convention when called by the
        glibc wrapper.
      
        The other two patches are trivial and remove unused headers, #includes
        and adds the serial ports of the fastest C8000 workstation to the
        parisc-kernel internal hardware database"
      
      * 'parisc-3.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: drop unused defines and header includes
        parisc: fix fanotify_mark() syscall on 32bit compat kernel
        parisc: add serial ports of C8000/1GHz machine to hardware database
      54f8c2aa
    • Thomas Gleixner's avatar
      clk: spear3xx: Set proper clock parent of uart1/2 · 44943777
      Thomas Gleixner authored
      The uarts only work when the parent is ras_ahb_clk. The stale 3.5
      based ST tree does this in the board file.
      
      Add it to the clk init function. Not pretty, but the mess there is
      amazing anyway.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      44943777
    • Thomas Gleixner's avatar
      clk: spear3xx: Use proper control register offset · 15ebb052
      Thomas Gleixner authored
      The control register is at offset 0x10, not 0x0. This is wreckaged
      since commit 5df33a62 (SPEAr: Switch to common clock framework).
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      15ebb052
    • Helge Deller's avatar
      parisc: drop unused defines and header includes · fe22ddcb
      Helge Deller authored
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: stable@vger.kernel.org # 3.13+
      fe22ddcb
    • Helge Deller's avatar
      parisc: fix fanotify_mark() syscall on 32bit compat kernel · ab8a261b
      Helge Deller authored
      On parisc we can not use the existing compat implementation for fanotify_mark()
      because for the 64bit mask parameter the higher and lower 32bits are ordered
      differently than what the compat function expects from big endian
      architectures.
      
      Specifically:
      It finally turned out, that on hppa we end up with different assignments
      of parameters to kernel arguments depending on if we call the glibc
      wrapper function
       int fanotify_mark (int __fanotify_fd, unsigned int __flags,
                          uint64_t __mask, int __dfd, const char *__pathname);
      or directly calling the syscall manually
       syscall(__NR_fanotify_mark, ...)
      
      Reason is, that the syscall() function is implemented as C-function and
      because we now have the sysno as first parameter in front of the other
      parameters the compiler will unexpectedly add an empty paramenter in
      front of the u64 value to ensure the correct calling alignment for 64bit
      values.
      This means, on hppa you can't simply use syscall() to call the kernel
      fanotify_mark() function directly, but you have to use the glibc
      function instead.
      
      This patch fixes the kernel in the hppa-arch specifc coding to adjust
      the parameters in a way as if userspace calls the glibc wrapper function
      fanotify_mark().
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: stable@vger.kernel.org # 3.13+
      ab8a261b
    • Helge Deller's avatar
      parisc: add serial ports of C8000/1GHz machine to hardware database · eadcc720
      Helge Deller authored
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: stable@vger.kernel.org # 3.13+
      eadcc720
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · 28b1fae5
      Linus Torvalds authored
      Pull slave-dmaengine fixes from Vinod Koul:
       "We have two small fixes.  First one from Daniel to handle 0-length
        packets for usb cppi dma.  Second by Russell for imx-sdam cyclic
        residue reporting"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        Update imx-sdma cyclic handling to report residue
        dma: cppi41: handle 0-length packets
      28b1fae5
    • Olof Johansson's avatar
      Merge tag 'samsung-fixes-3' of... · cacadb4f
      Olof Johansson authored
      Merge tag 'samsung-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      Merge "Samsung fixes-3 for 3.16" from Kukjin Kim:
      
      Samsung fixes-3 for v3.16
      - update the parent for Auudss clock because kernel will be hang
        during late boot if the parent clock is disabled in bootloader.
      - enable clk handing in power domain because while power domain
        on/off, its regarding clock source will be reset and it causes
        a problem so need to handle it.
      - add mux clocks to be used by power domain for exynos5420-mfc
        during power domain on/off and property in device tree also.
      - register cpuidle only for exynos4210 and exynos5250 because a
        system failure will be happened on other exynos SoCs.
      
      * tag 'samsung-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: EXYNOS: Register cpuidle device only on exynos4210 and 5250
        ARM: dts: Add clock property for mfc_pd in exynos5420
        clk: exynos5420: Add IDs for clocks used in PD mfc
        ARM: EXYNOS: Add support for clock handling in power domain
        ARM: dts: Update the parent for Audss clocks in Exynos5420
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      cacadb4f
  5. 12 Jul, 2014 14 commits