1. 19 Mar, 2013 4 commits
    • David Howells's avatar
      Fix breakage in MIPS siginfo handling · 2a148698
      David Howells authored
      MIPS's siginfo handling has been broken since this commit:
      
      	commit 574c4866
      	Author: Al Viro <viro@zeniv.linux.org.uk>
      	Date:   Sun Nov 25 22:24:19 2012 -0500
      	consolidate kernel-side struct sigaction declarations
      
      for 64-bit BE MIPS CPUs.
      
      The UAPI variant looks like this:
      
      	struct sigaction {
      		unsigned int	sa_flags;
      		__sighandler_t	sa_handler;
      		sigset_t	sa_mask;
      	};
      
      but the core kernel's variant looks like this:
      
      	struct sigaction {
      	#ifndef __ARCH_HAS_ODD_SIGACTION
      		__sighandler_t	sa_handler;
      		unsigned long	sa_flags;
      	#else
      		unsigned long	sa_flags;
      		__sighandler_t	sa_handler;
      	#endif
      	#ifdef __ARCH_HAS_SA_RESTORER
      		__sigrestore_t sa_restorer;
      	#endif
      		sigset_t	sa_mask;
      	};
      
      The problem is that sa_flags has been changed from an unsigned int to an
      unsigned long.
      
      Fix this by making sa_flags unsigned int if __ARCH_HAS_ODD_SIGACTION is
      defined.
      
      Whilst we're at it, rename __ARCH_HAS_ODD_SIGACTION to
      __ARCH_HAS_IRIX_SIGACTION.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: stable@vger.kernel.org
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2a148698
    • Jonas Gorski's avatar
      Revert "MIPS: BCM63XX: Call board_register_device from device_initcall()" · 1762c5ab
      Jonas Gorski authored
      This commit causes a race between PCI scan and SSB fallback SPROM handler
      registration, causing the wifi to not work on slower systems. The only
      subsystem touched from board_register_devices is platform device
      registration, which is safe as an arch init call.
      
      This reverts commit d64ed7ad [MIPS:
      BCM63XX: Call board_register_device from device_initcall()].
      Signed-off-by: default avatarJonas Gorski <jogo@openwrt.org>
      To: linux-mips@linux-mips.org
      Cc: John Crispin <blogic@openwrt.org>
      Cc: Maxime Bizon <mbizon@freebox.fr>
      Cc: Florian Fainelli <florian@openwrt.org>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      1762c5ab
    • Jonas Gorski's avatar
      MIPS: BCM63XX: Make nvram checksum failure non fatal · 97367519
      Jonas Gorski authored
      Some vendors modify the nvram layout moving the checksum to a different
      place or dropping entirely, so reduce the checksum failure to a warning.
      Reported-by: default avatarÁlvaro Fernández Rojas <noltari@gmail.com>
      Signed-off-by: default avatarJonas Gorski <jogo@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Cc: John Crispin <blogic@openwrt.org>
      Cc: Maxime Bizon <mbizon@freebox.fr>
      Cc: Florian Fainelli <florian@openwrt.org>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      97367519
    • Florian Fainelli's avatar
      MIPS: Fix code generation for non-DSP capable CPUs · 63c2b681
      Florian Fainelli authored
      Commit 32a7ede6 (MIPS: dsp: Add assembler support for DSP ASEs) has
      enabled the use of DSP ASE specific instructions such as rddsp and wrdsp
      under the idea that all code path that will make use of these two
      instructions are properly checking for cpu_has_dsp to ensure that the
      particular CPU we are running on *actually* supports DSP ASE.
      
      This commit actually causes the following oops on QEMU Malta emulating a
      MIPS 24Kc without the DSP ASE implemented:
      
      [    7.960000] Reserved instruction in kernel
      [    7.960000] Cpu 0
      [    7.960000] $ 0   : 00000000 00000000 00000014 00000005
      [    7.960000] $ 4   : 8fc2de48 00000001 00000000 8f59ddb0
      [    7.960000] $ 8   : 8f5ceec4 00000018 00000c00 00800000
      [    7.960000] $12   : 00000100 00000200 00000000 00457b84
      [    7.960000] $16   : 00000000 8fc2ba78 8f4ec980 00000001
      [    7.960000] $20   : 80418f90 00000000 00000000 000002dd
      [    7.960000] $24   : 0000009c 7730d7b8
      [    7.960000] $28   : 8f59c000 8f59dd38 00000001 80104248
      [    7.960000] Hi    : 0000001d
      [    7.960000] Lo    : 0000000b
      [    7.960000] epc   : 801041ec thread_saved_pc+0x2c/0x38
      [    7.960000]     Not tainted
      [    7.960000] ra    : 80104248 get_wchan+0x48/0xac
      [    7.960000] Status: 1000b703    KERNEL EXL IE
      [    7.960000] Cause : 10800028
      [    7.960000] PrId  : 00019300 (MIPS 24Kc)
      [    7.960000] Modules linked in:
      [    7.960000] Process killall (pid: 1574, threadinfo=8f59c000,
      task=8fd14558, tls=773aa440)
      [    7.960000] Stack : 8fc2ba78 8012b008 0000000c 0000001d 00000000
      00000000 8f58a380
                        8f58a380 8fc2ba78 80202668 8f59de78 8f468600 8f59de28
      801b2a3c 8f59df00 8f98ba20 74696e69
                        8f468600 8f59de28 801b7308 0081c007 00000000 00000000
      00000000 00000000 00000000 00000000
                        00000000 8fc2bbb4 00000001 0000001d 0000000b 77f038cc
      7fe80648 ffffffff ffffffff 00000000
                        00000001 0016e000 00000000 ...
      [    7.960000] Call Trace:
      [    7.960000] [<801041ec>] thread_saved_pc+0x2c/0x38
      [    7.960000] [<80104248>] get_wchan+0x48/0xac
      
      The disassembly of thread_saved_pc points to the following:
      000006d0 <thread_saved_pc>:
       6d0:   8c820208        lw      v0,520(a0)
       6d4:   3c030000        lui     v1,0x0
       6d8:   24630000        addiu   v1,v1,0
       6dc:   10430008        beq     v0,v1,700 <thread_saved_pc+0x30>
       6e0:   00000000        nop
       6e4:   3c020000        lui     v0,0x0
       6e8:   8c43000c        lw      v1,12(v0)
       6ec:   04620004        bltzl   v1,700 <thread_saved_pc+0x30>
       6f0:   00001021        move    v0,zero
       6f4:   8c840200        lw      a0,512(a0)
       6f8:   00031080        sll     v0,v1,0x2
       6fc:   7c44100a        lwx     v0,a0(v0)   <------------
       700:   03e00008        jr      ra
       704:   00000000        nop
      
      If we specifically disable -mdsp/-mdspr2 for arch/mips/kernel/process.o,
      we get the following (non-crashing) assembly:
      
      00000708 <thread_saved_pc>:
       708:   8c820208        lw      v0,520(a0)
       70c:   3c030000        lui     v1,0x0
       710:   24630000        addiu   v1,v1,0
       714:   10430009        beq     v0,v1,73c <thread_saved_pc+0x34>
       718:   00000000        nop
       71c:   3c020000        lui     v0,0x0
       720:   8c42000c        lw      v0,12(v0)
       724:   04420005        bltzl   v0,73c <thread_saved_pc+0x34>
       728:   00001021        move    v0,zero
       72c:   8c830200        lw      v1,512(a0)
       730:   00021080        sll     v0,v0,0x2
       734:   00431021        addu    v0,v0,v1
       738:   8c420000        lw      v0,0(v0)
       73c:   03e00008        jr      ra
       740:   00000000        nop
      
      The specific line that leads a different assembly being produced is:
      
      unsigned long thread_saved_pc(struct task_struct *tsk)
      ...
      	return ((unsigned long *)t->reg29)[schedule_mfi.pc_offset]; <---
      
      The problem here is that the compiler was given the right to use DSP
      instructions with the -mdsp / -mdspr2 command-line switches and
      performed some optimization for us and used DSP ASE instructions where
      we are not checking that the running CPU actually supports DSP ASE.
      
      This patch fixes the issue by partially reverting commit 32a7ede6 for
      arch/mips/kernel/Makefile in order to remove the -mdsp / -mdspr2
      compiler command-line switches such that we are now guaranteed that the
      compiler will not optimize using DSP ASE reserved instructions. We also
      need to fixup the rddsp/wrdsp and m{t,h}{hi,lo}{0,1,2,3} macros in
      arch/mips/include/asm/mipsregs.h to tell the assembler that we are going
      to explicitely use DSP ASE reserved instructions. The comment in
      arch/mips/kernel/Makefile is also updated to reflect that.
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Acked-by: default avatarSteven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: blogic@openwrt.org
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      63c2b681
  2. 13 Mar, 2013 1 commit
  3. 12 Mar, 2013 6 commits
  4. 11 Mar, 2013 1 commit
  5. 10 Mar, 2013 2 commits
    • Linus Torvalds's avatar
      Linux 3.9-rc2 · f6161aa1
      Linus Torvalds authored
      f6161aa1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 72932611
      Linus Torvalds authored
      Pull namespace bugfixes from Eric Biederman:
       "This is three simple fixes against 3.9-rc1.  I have tested each of
        these fixes and verified they work correctly.
      
        The userns oops in key_change_session_keyring and the BUG_ON triggered
        by proc_ns_follow_link were found by Dave Jones.
      
        I am including the enhancement for mount to only trigger requests of
        filesystem modules here instead of delaying this for the 3.10 merge
        window because it is both trivial and the kind of change that tends to
        bit-rot if left untouched for two months."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        proc: Use nd_jump_link in proc_ns_follow_link
        fs: Limit sys_mount to only request filesystem modules (Part 2).
        fs: Limit sys_mount to only request filesystem modules.
        userns: Stop oopsing in key_change_session_keyring
      72932611
  6. 09 Mar, 2013 5 commits
    • Linus Torvalds's avatar
      Atmel MXT touchscreen: increase reset timeouts · 8343bce1
      Linus Torvalds authored
      There is a more complete atmel patch-series out by Nick Dyer that fixes
      this and other things, but in the meantime this is the minimal thing to
      get the touchscreen going on (at least my) Pixel Chromebook.
      
      Not that I want my dirty fingers near that beautiful screen, but it
      seems that a non-initialized touchscreen will also end up being a
      constant wakeup source, so you have to disable it to go to sleep.  And
      it's easier to just fix the initialization sequence.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8343bce1
    • Eric W. Biederman's avatar
      proc: Use nd_jump_link in proc_ns_follow_link · db04dc67
      Eric W. Biederman authored
      Update proc_ns_follow_link to use nd_jump_link instead of just
      manually updating nd.path.dentry.
      
      This fixes the BUG_ON(nd->inode != parent->d_inode) reported by Dave
      Jones and reproduced trivially with mkdir /proc/self/ns/uts/a.
      
      Sigh it looks like the VFS change to require use of nd_jump_link
      happend while proc_ns_follow_link was baking and since the common case
      of proc_ns_follow_link continued to work without problems the need for
      making this change was overlooked.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      db04dc67
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 0aefda3e
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "These are scattered fixes and one performance improvement.  The
        biggest functional change is in how we throttle metadata changes.  The
        new code bumps our average file creation rate up by ~13% in fs_mark,
        and lowers CPU usage.
      
        Stefan bisected out a regression in our allocation code that made
        balance loop on extents larger than 256MB."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: improve the delayed inode throttling
        Btrfs: fix a mismerge in btrfs_balance()
        Btrfs: enforce min_bytes parameter during extent allocation
        Btrfs: allow running defrag in parallel to administrative tasks
        Btrfs: avoid deadlock on transaction waiting list
        Btrfs: do not BUG_ON on aborted situation
        Btrfs: do not BUG_ON in prepare_to_reloc
        Btrfs: free all recorded tree blocks on error
        Btrfs: build up error handling for merge_reloc_roots
        Btrfs: check for NULL pointer in updating reloc roots
        Btrfs: fix unclosed transaction handler when the async transaction commitment fails
        Btrfs: fix wrong handle at error path of create_snapshot() when the commit fails
        Btrfs: use set_nlink if our i_nlink is 0
      0aefda3e
    • Benson Leung's avatar
      Platform: x86: chromeos_laptop : Add basic platform data for atmel devices · 2ef39204
      Benson Leung authored
      Add basic platform data to get the current upstream driver working
      with the 224s touchpad and 1664s touchscreen.
      We will be using NULL config so we will use the settings from the
      devices' NVRAMs.
      Signed-off-by: default avatarBenson Leung <bleung@chromium.org>
      Tested-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2ef39204
    • Daniel Kurtz's avatar
      Input: atmel_mxt_ts - Support for touchpad variant · 22dfab7f
      Daniel Kurtz authored
      This same driver can be used by atmel based touchscreens and touchpads
      (buttonpads). Platform data may specify a device is a touchpad
      using the is_tp flag.
      
      This will cause the driver to perform some touchpad specific
      initializations, such as:
        * register input device name "Atmel maXTouch Touchpad" instead of
        Touchscreen.
        * register BTN_LEFT & BTN_TOOL_* event types.
        * register axis resolution (as a fixed constant, for now)
        * register BUTTONPAD property
        * process GPIO buttons using reportid T19
      
      Input event GPIO mapping is done by the platform data key_map array.
      
      key_map[x] should contain the KEY or BTN code to send when processing
      GPIOx from T19. To specify a GPIO as not an input source, populate
      with KEY_RESERVED, or 0.
      Signed-off-by: default avatarDaniel Kurtz <djkurtz@chromium.org>
      Signed-off-by: default avatarBenson Leung <bleung@chromium.org>
      Signed-off-by: default avatarNick Dyer <nick.dyer@itdev.co.uk>
      Tested-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      22dfab7f
  7. 08 Mar, 2013 19 commits
  8. 07 Mar, 2013 2 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 47b3bc90
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "Several boot fixes (MacBook, legacy EFI bootloaders), another
        please-don't-brick fix, and some minor stuff."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Do not try to sync identity map for non-mapped pages
        x86, doc: Be explicit about what the x86 struct boot_params requires
        x86: Don't clear efi_info even if the sentinel hits
        x86, mm: Make sure to find a 2M free block for the first mapped area
        x86: Fix 32-bit *_cpu_data initializers
        efivarfs: return accurate error code in efivarfs_fill_super()
        efivars: efivarfs_valid_name() should handle pstore syntax
        efi: be more paranoid about available space when creating variables
        iommu, x86: Add DMA remap fault reason
        x86, smpboot: Remove unused variable
      47b3bc90
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · af2841cd
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Misc radeon, nouveau, mgag200 and intel fixes.
      
        The intel fixes should contain the fix for the touchpad on the
        Chromebook - hey I'm an input maintainer now!"
      
      Hate to pee on your parade, Dave, but I don't think being an input
      maintainer is necessarily something to strive for..
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (25 commits)
        drm/tegra: drop "select DRM_HDMI"
        drm: Documentation typo fixes
        drm/mgag200: Bug fix: Renesas board now selects native resolution.
        drm/mgag200: Reject modes that are too big for VRAM
        drm/mgag200: 'fbdev_list' in 'struct mga_fbdev' is not used
        drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK
        drm/radeon: skip MC reset as it's probably not hung
        drm/radeon: add primary dac adj quirk for R200 board
        drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
        drm/i915: Turn off hsync and vsync on ADPA when disabling crt
        drm/i915: Fix incorrect definition of ADPA HSYNC and VSYNC bits
        drm/i915: also disable south interrupts when handling them
        drm/i915: enable irqs earlier when resuming
        drm/i915: Increase the RC6p threshold.
        DRM/i915: On G45 enable cursor plane briefly after enabling the display plane.
        drm/nv50-: prevent some races between modesetting and page flipping
        drm/nouveau/i2c: drop parent refcount when creating ports
        drm/nv84: fix regression in page flipping
        drm/nouveau: Fix typo in init_idx_addr_latched().
        drm/nouveau: Disable AGP on PowerPC again.
        ...
      af2841cd