Skip to content
  1. Jul 21, 2013
    • Zheng Liu's avatar
      ext4: fix a BUG when opening a file with O_TMPFILE flag · e94bd349
      Zheng Liu authored
      
      
      When we try to open a file with O_TMPFILE flag, we will trigger a bug.
      The root cause is that in ext4_orphan_add() we check ->i_nlink == 0 and
      this check always fails because we set ->i_nlink = 1 in
      inode_init_always().  We can use the following program to trigger it:
      
      int main(int argc, char *argv[])
      {
      	int fd;
      
      	fd = open(argv[1], O_TMPFILE, 0666);
      	if (fd < 0) {
      		perror("open ");
      		return -1;
      	}
      	close(fd);
      	return 0;
      }
      
      The oops message looks like this:
      
      kernel BUG at fs/ext4/namei.c:2572!
      invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
      Modules linked in: dlci bridge stp hidp cmtp kernelcapi l2tp_ppp l2tp_netlink l2tp_core sctp libcrc32c rfcomm tun fuse nfnetli
      nk can_raw ipt_ULOG can_bcm x25 scsi_transport_iscsi ipx p8023 p8022 appletalk phonet psnap vmw_vsock_vmci_transport af_key vmw_vmci rose vsock atm can netrom ax25 af_rxrpc ir
      da pppoe pppox ppp_generic slhc bluetooth nfc rfkill rds caif_socket caif crc_ccitt af_802154 llc2 llc snd_hda_codec_realtek snd_hda_intel snd_hda_codec serio_raw snd_pcm pcsp
      kr edac_core snd_page_alloc snd_timer snd soundcore r8169 mii sr_mod cdrom pata_atiixp radeon backlight drm_kms_helper ttm
      CPU: 1 PID: 1812571 Comm: trinity-child2 Not tainted 3.11.0-rc1+ #12
      Hardware name: Gigabyte Technology Co., Ltd. GA-MA78GM-S2H/GA-MA78GM-S2H, BIOS F12a 04/23/2010
      task: ffff88007dfe69a0 ti: ffff88010f7b6000 task.ti: ffff88010f7b6000
      RIP: 0010:[<ffffffff8125ce69>]  [<ffffffff8125ce69>] ext4_orphan_add+0x299/0x2b0
      RSP: 0018:ffff88010f7b7cf8  EFLAGS: 00010202
      RAX: 0000000000000000 RBX: ffff8800966d3020 RCX: 0000000000000000
      RDX: 0000000000000000 RSI: ffff88007dfe70b8 RDI: 0000000000000001
      RBP: ffff88010f7b7d40 R08: ffff880126a3c4e0 R09: ffff88010f7b7ca0
      R10: 0000000000000000 R11: 0000000000000000 R12: ffff8801271fd668
      R13: ffff8800966d2f78 R14: ffff88011d7089f0 R15: ffff88007dfe69a0
      FS:  00007f70441a3740(0000) GS:ffff88012a800000(0000) knlGS:00000000f77c96c0
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000002834000 CR3: 0000000107964000 CR4: 00000000000007e0
      DR0: 0000000000780000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
      Stack:
       0000000000002000 00000020810b6dde 0000000000000000 ffff88011d46db00
       ffff8800966d3020 ffff88011d7089f0 ffff88009c7f4c10 ffff88010f7b7f2c
       ffff88007dfe69a0 ffff88010f7b7da8 ffffffff8125cfac ffff880100000004
      Call Trace:
       [<ffffffff8125cfac>] ext4_tmpfile+0x12c/0x180
       [<ffffffff811cba78>] path_openat+0x238/0x700
       [<ffffffff8100afc4>] ? native_sched_clock+0x24/0x80
       [<ffffffff811cc647>] do_filp_open+0x47/0xa0
       [<ffffffff811db73f>] ? __alloc_fd+0xaf/0x200
       [<ffffffff811ba2e4>] do_sys_open+0x124/0x210
       [<ffffffff81010725>] ? syscall_trace_enter+0x25/0x290
       [<ffffffff811ba3ee>] SyS_open+0x1e/0x20
       [<ffffffff816ca8d4>] tracesys+0xdd/0xe2
       [<ffffffff81001001>] ? start_thread_common.constprop.6+0x1/0xa0
      Code: 04 00 00 00 89 04 24 31 c0 e8 c4 77 04 00 e9 43 fe ff ff 66 25 00 d0 66 3d 00 80 0f 84 0e fe ff ff 83 7b 48 00 0f 84 04 fe ff ff <0f> 0b 49 8b 8c 24 50 07 00 00 e9 88 fe ff ff 0f 1f 84 00 00 00
      
      Here we couldn't call clear_nlink() directly because in d_tmpfile() we
      will call inode_dec_link_count() to decrease ->i_nlink.  So this commit
      tries to call d_tmpfile() before ext4_orphan_add() to fix this problem.
      
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarZheng Liu <wenqing.lz@taobao.com>
      Tested-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
      Tested-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e94bd349
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 36231d25
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "The sget() one is a long-standing bug and will need to go into -stable
        (in fact, it had been originally caught in RHEL6), the other two are
        3.11-only"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: constify dentry parameter in d_count()
        livelock avoidance in sget()
        allow O_TMPFILE to work with O_WRONLY
      36231d25
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 19bf1c2c
      Linus Torvalds authored
      Pull ext4 bugfixes from Ted Ts'o:
       "Fixes for 3.11-rc2, sent at 5pm, in the professoinal style.  :-)"
      
      I'm not sure I like this new level of "professionalism".
      9-5, people, 9-5.
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: call ext4_es_lru_add() after handling cache miss
        ext4: yield during large unlinks
        ext4: make the extent_status code more robust against ENOMEM failures
        ext4: simplify calculation of blocks to free on error
        ext4: fix error handling in ext4_ext_truncate()
      19bf1c2c
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.11-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 3be542d4
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       - Fix a regression against NFSv4 FreeBSD servers when creating a new
         file
       - Fix another regression in rpc_client_register()
      
      * tag 'nfs-for-3.11-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4: Fix a regression against the FreeBSD server
        SUNRPC: Fix another issue with rpc_client_register()
      3be542d4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next · 90290c4e
      Linus Torvalds authored
      Pull btrfs fixes from Josef Bacik:
       "I'm playing the role of Chris Mason this week while he's on vacation.
        There are a few critical fixes for btrfs here, all regressions and
        have been tested well"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next:
        Btrfs: fix wrong write offset when replacing a device
        Btrfs: re-add root to dead root list if we stop dropping it
        Btrfs: fix lock leak when resuming snapshot deletion
        Btrfs: update drop progress before stopping snapshot dropping
      90290c4e
  2. Jul 20, 2013
    • Peng Tao's avatar
      vfs: constify dentry parameter in d_count() · 24924a20
      Peng Tao authored
      
      
      so that it can be used in places like d_compare/d_hash
      without causing a compiler warning.
      
      Signed-off-by: default avatarPeng Tao <tao.peng@emc.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      24924a20
    • Al Viro's avatar
      livelock avoidance in sget() · acfec9a5
      Al Viro authored
      
      
      Eric Sandeen has found a nasty livelock in sget() - take a mount(2) about
      to fail.  The superblock is on ->fs_supers, ->s_umount is held exclusive,
      ->s_active is 1.  Along comes two more processes, trying to mount the same
      thing; sget() in each is picking that superblock, bumping ->s_count and
      trying to grab ->s_umount.  ->s_active is 3 now.  Original mount(2)
      finally gets to deactivate_locked_super() on failure; ->s_active is 2,
      superblock is still ->fs_supers because shutdown will *not* happen until
      ->s_active hits 0.  ->s_umount is dropped and now we have two processes
      chasing each other:
      s_active = 2, A acquired ->s_umount, B blocked
      A sees that the damn thing is stillborn, does deactivate_locked_super()
      s_active = 1, A drops ->s_umount, B gets it
      A restarts the search and finds the same superblock.  And bumps it ->s_active.
      s_active = 2, B holds ->s_umount, A blocked on trying to get it
      ... and we are in the earlier situation with A and B switched places.
      
      The root cause, of course, is that ->s_active should not grow until we'd
      got MS_BORN.  Then failing ->mount() will have deactivate_locked_super()
      shut the damn thing down.  Fortunately, it's easy to do - the key point
      is that grab_super() is called only for superblocks currently on ->fs_supers,
      so it can bump ->s_count and grab ->s_umount first, then check MS_BORN and
      bump ->s_active; we must never increment ->s_count for superblocks past
      ->kill_sb(), but grab_super() is never called for those.
      
      The bug is pretty old; we would've caught it by now, if not for accidental
      exclusion between sget() for block filesystems; the things like cgroup or
      e.g. mtd-based filesystems don't have anything of that sort, so they get
      bitten.  The right way to deal with that is obviously to fix sget()...
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      acfec9a5
    • Al Viro's avatar
      allow O_TMPFILE to work with O_WRONLY · ba57ea64
      Al Viro authored
      
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ba57ea64
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · d471ce53
      Linus Torvalds authored
      Pull UML fixes from Richard Weinberger:
       "Special thanks goes to Toralf Föster for continuously testing UML and
        reporting issues!"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: remove dead code
        um: siginfo cleanup
        uml: Fix which_tmpdir failure when /dev/shm is a symlink, and in other edge cases
        um: Fix wait_stub_done() error handling
        um: Mark stub pages mapping with VM_PFNMAP
        um: Fix return value of strnlen_user()
      d471ce53
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 1b050180
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "MIPS fixes for 3.11.  Half of then is for Netlogic the remainder
        touches things across arch/mips.
      
        Nothing really dramatic and by rc1 standards MIPS will be in fairly
        good shape with this applied.  Tested by building all MIPS defconfigs
        of which with this pull request four platforms won't build.  And yes,
        it boots also on my favorite test systems"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: kvm: Kconfig: Drop HAVE_KVM dependency from VIRTUALIZATION
        MIPS: Octeon: Fix DT pruning bug with pip ports
        MIPS: KVM: Mark KVM_GUEST (T&E KVM) as BROKEN_ON_SMP
        MIPS: tlbex: fix broken build in v3.11-rc1
        MIPS: Netlogic: Add XLP PIC irqdomain
        MIPS: Netlogic: Fix USB block's coherent DMA mask
        MIPS: tlbex: Fix typo in r3000 tlb store handler
        MIPS: BMIPS: Fix thinko to release slave TP from reset
        MIPS: Delete dead invocation of exception_exit().
      1b050180
    • Linus Torvalds's avatar
      Merge tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 · 89d0abe3
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       - Post -rc1 update to the common reboot infrastructure.
       - Fixes (user cache maintenance fault handling, !COMPAT compilation,
         CPU online and interrupt hanlding).
      
      * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
        arm64: use common reboot infrastructure
        arm64: mm: don't treat user cache maintenance faults as writes
        arm64: add '#ifdef CONFIG_COMPAT' for aarch32_break_handler()
        arm64: Only enable local interrupts after the CPU is marked online
      89d0abe3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 89a8c594
      Linus Torvalds authored
      Pull s390 fixes from Martin Schwidefsky:
       "An update for the BFP jit to the latest and greatest, two patches to
        get kdump working again, the random-abort ptrace extention for
        transactional execution, the z90crypt module alias for ap and a tiny
        cleanup"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/zcrypt: Alias for new zcrypt device driver base module
        s390/kdump: Allow copy_oldmem_page() copy to virtual memory
        s390/kdump: Disable mmap for s390
        s390/bpf,jit: add pkt_type support
        s390/bpf,jit: address randomize and write protect jit code
        s390/bpf,jit: use generic jit dumper
        s390/bpf,jit: call module_free() from any context
        s390/qdio: remove unused variable
        s390/ptrace: PTRACE_TE_ABORT_RAND
      89a8c594
    • Stefan Behrens's avatar
      Btrfs: fix wrong write offset when replacing a device · 115930cb
      Stefan Behrens authored
      Miao Xie reported the following issue:
      
      The filesystem was corrupted after we did a device replace.
      
      Steps to reproduce:
       # mkfs.btrfs -f -m single -d raid10 <device0>..<device3>
       # mount <device0> <mnt>
       # btrfs replace start -rfB 1 <device4> <mnt>
       # umount <mnt>
       # btrfsck <device4>
      
      The reason for the issue is that we changed the write offset by mistake,
      introduced by commit 625f1c8d
      
      .
      
      We read the data from the source device at first, and then write the
      data into the corresponding place of the new device. In order to
      implement the "-r" option, the source location is remapped using
      btrfs_map_block(). The read takes place on the mapped location, and
      the write needs to take place on the unmapped location. Currently
      the write is using the mapped location, and this commit changes it
      back by undoing the change to the write address that the aforementioned
      commit added by mistake.
      
      Reported-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
      Cc: <stable@vger.kernel.org> # 3.10+
      Signed-off-by: default avatarStefan Behrens <sbehrens@giantdisaster.de>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      115930cb
    • Josef Bacik's avatar
      Btrfs: re-add root to dead root list if we stop dropping it · d29a9f62
      Josef Bacik authored
      
      
      If we stop dropping a root for whatever reason we need to add it back to the
      dead root list so that we will re-start the dropping next transaction commit.
      The other case this happens is if we recover a drop because we will add a root
      without adding it to the fs radix tree, so we can leak it's root and commit root
      extent buffer, adding this to the dead root list makes this cleanup happen.
      Thanks,
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarAlex Lyakas <alex.btrfs@zadarastorage.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      d29a9f62
    • Josef Bacik's avatar
      Btrfs: fix lock leak when resuming snapshot deletion · fec386ac
      Josef Bacik authored
      
      
      We aren't setting path->locks[level] when we resume a snapshot deletion which
      means we won't unlock the buffer when we free the path.  This causes deadlocks
      if we happen to re-allocate the block before we've evicted the extent buffer
      from cache.  Thanks,
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarAlex Lyakas <alex.btrfs@zadarastorage.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      fec386ac
    • Josef Bacik's avatar
      Btrfs: update drop progress before stopping snapshot dropping · 3c8f2422
      Josef Bacik authored
      
      
      Alex pointed out a problem and fix that exists in the drop one snapshot at a
      time patch.  If we decide we need to exit for whatever reason (umount for
      example) we will just exit the snapshot dropping without updating the drop
      progress.  So the next time we go to resume we will BUG_ON() because we can't
      find the extent we left off at because we never updated it.  This patch fixes
      the problem.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarAlex Lyakas <alex.btrfs@zadarastorage.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      3c8f2422
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · b8a33fc7
      Linus Torvalds authored
      Pull KVM fix from Paolo Bonzini:
       "This single patch fixes a regression caused by one of the
        optimizations introduced in 3.11, which is generally visible only on
        AMD processors"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: MMU: avoid fast page fault fixing mmio page fault
      b8a33fc7
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b7356abb
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
       "These are fixes collected over the last week, most importnatly two
        cpufreq reverts fixing regressions introduced in 3.10, an autoseelp
        fix preventing systems using it from crashing during shutdown and two
        ACPI scan fixes related to hotplug.
      
        Specifics:
      
         - Two cpufreq commits from the 3.10 cycle introduced regressions.
           The first of them was buggy (it did way much more than it needed to
           do) and the second one attempted to fix an issue introduced by the
           first one.  Fixes from Srivatsa S Bhat revert both.
      
         - If autosleep triggers during system shutdown and the shutdown
           callbacks of some device drivers have been called already, it may
           crash the system.  Fix from Liu Shuo prevents that from happening
           by making try_to_suspend() check system_state.
      
         - The ACPI memory hotplug driver doesn't clear its driver_data on
           errors which may cause a NULL poiter dereference to happen later.
           Fix from Toshi Kani.
      
         - The ACPI namespace scanning code should not try to attach scan
           handlers to device objects that have them already, which may
           confuse things quite a bit, and it should rescan the whole
           namespace branch starting at the given node after receiving a bus
           check notify event even if the device at that particular node has
           been discovered already.  Fixes from Rafael J Wysocki.
      
         - New ACPI video blacklist entry for a system whose initial backlight
           setting from the BIOS doesn't make sense.  From Lan Tianyu.
      
         - Garbage string output avoindance for ACPI PNP from Liu Shuo.
      
         - Two Kconfig fixes for issues introduced recently in the s3c24xx
           cpufreq driver (when moving the driver to drivers/cpufreq) from
           Paul Bolle.
      
         - Trivial comment fix in pm_wakeup.h from Chanwoo Choi"
      
      * tag 'pm+acpi-3.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / video: ignore BIOS initial backlight value for Fujitsu E753
        PNP / ACPI: avoid garbage in resource name
        cpufreq: Revert commit 2f7021a8 to fix CPU hotplug regression
        cpufreq: s3c24xx: fix "depends on ARM_S3C24XX" in Kconfig
        cpufreq: s3c24xx: rename CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
        PM / Sleep: Fix comment typo in pm_wakeup.h
        PM / Sleep: avoid 'autosleep' in shutdown progress
        cpufreq: Revert commit a66b2e to fix suspend/resume regression
        ACPI / memhotplug: Fix a stale pointer in error path
        ACPI / scan: Always call acpi_bus_scan() for bus check notifications
        ACPI / scan: Do not try to attach scan handlers to devices having them
      b7356abb
  3. Jul 19, 2013
    • Marc Zyngier's avatar
      arm64: use common reboot infrastructure · ff701306
      Marc Zyngier authored
      Commit 7b6d864b
      
       (reboot: arm: change reboot_mode to use enum
      reboot_mode) changed the way reboot is handled on arm, which has a
      direct impact on arm64 as we share the reset driver on the VE platform.
      
      The obvious fix is to move arm64 to use the same infrastructure.
      
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      [catalin.marinas@arm.com: removed reboot_mode = REBOOT_HARD default setting]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      ff701306
    • Will Deacon's avatar
      arm64: mm: don't treat user cache maintenance faults as writes · db6f4106
      Will Deacon authored
      
      
      On arm64, cache maintenance faults appear as data aborts with the CM
      bit set in the ESR. The WnR bit, usually used to distinguish between
      faulting loads and stores, always reads as 1 and (slightly confusingly)
      the instructions are treated as reads by the architecture.
      
      This patch fixes our fault handling code to treat cache maintenance
      faults in the same way as loads.
      
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      db6f4106
    • Chen Gang's avatar
      arm64: add '#ifdef CONFIG_COMPAT' for aarch32_break_handler() · c783c281
      Chen Gang authored
      
      
      If 'COMPAT' not defined, aarch32_break_handler() cannot pass compiling,
      and it can work independent with 'COMPAT', so remove dummy definition.
      
      The related error:
      
        arch/arm64/kernel/debug-monitors.c:249:5: error: redefinition of ‘aarch32_break_handler’
        In file included from arch/arm64/kernel/debug-monitors.c:29:0:
        /root/linux-next/arch/arm64/include/asm/debug-monitors.h:89:12: note: previous definition of ‘aarch32_break_handler’ was here
      
      Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      c783c281
    • Catalin Marinas's avatar
      arm64: Only enable local interrupts after the CPU is marked online · 53ae3acd
      Catalin Marinas authored
      
      
      There is a slight chance that (timer) interrupts are triggered before a
      secondary CPU has been marked online with implications on softirq thread
      affinity.
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      53ae3acd
    • Markos Chandras's avatar
      MIPS: kvm: Kconfig: Drop HAVE_KVM dependency from VIRTUALIZATION · f1b70019
      Markos Chandras authored
      
      
      Virtualization does not always need KVM capabilities so drop the
      dependency. The KVM symbol already depends on HAVE_KVM.
      
      Fixes the following problem on a randconfig:
      warning: (REMOTEPROC && RPMSG) selects VIRTUALIZATION which has unmet direct
      dependencies (HAVE_KVM)
      warning: (REMOTEPROC && RPMSG) selects VIRTUALIZATION which has unmet
      direct dependencies (HAVE_KVM)
      
      Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
      Acked-by: default avatarSteven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5443/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f1b70019
    • Richard Weinberger's avatar
      um: remove dead code · 9e82d450
      Richard Weinberger authored
      
      
      "me" is not used.
      
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      9e82d450
    • Richard Weinberger's avatar
      um: siginfo cleanup · 9a8c1359
      Richard Weinberger authored
      
      
      Currently we use both struct siginfo and siginfo_t.
      Let's use struct siginfo internally to avoid ongoing
      compiler warning. We are allowed to do so because
      struct siginfo and siginfo_t are equivalent.
      
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      9a8c1359
    • Faidon Liambotis's avatar
      MIPS: Octeon: Fix DT pruning bug with pip ports · ab2bb148
      Faidon Liambotis authored
      
      
      During the pruning of the device tree octeon_fdt_pip_iface() is called
      for each PIP interface and every port up to the port count is removed
      from the device tree. However, the count was set to the return value of
      cvmx_helper_interface_enumerate() which doesn't actually return the
      count but just returns zero on success. This effectively removed *all*
      ports from the tree.
      
      Use cvmx_helper_ports_on_interface() instead to fix this. This
      successfully restores the 3 ports of my ERLite-3 and fixes the "kernel
      assigns random MAC addresses" issue.
      
      Signed-off-by: default avatarFaidon Liambotis <paravoid@debian.org>
      Tested-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Acked-by: default avatarDavid Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5587/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      ab2bb148
    • Tristan Schmelcher's avatar
      uml: Fix which_tmpdir failure when /dev/shm is a symlink, and in other edge cases · 74735341
      Tristan Schmelcher authored
      
      
      which_tmpdir did the wrong thing if /dev/shm was a symlink (e.g., to /run/shm),
      if there were multiple mounts on top of each other, if the mount(s) were
      obscured by a later mount, or if /dev/shm was a prefix of another mount point.
      This fixes these cases. Applies to 3.9.6.
      
      Signed-off-by: default avatarTristan Schmelcher <tschmelcher@google.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      74735341
    • Richard Weinberger's avatar
      um: Fix wait_stub_done() error handling · 0974a9ca
      Richard Weinberger authored
      
      
      If we die within a stub handler we only way to reliable
      kill the (obviously) dying uml guest process is killing
      it's host twin on the host side.
      
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      0974a9ca
    • Richard Weinberger's avatar
      um: Mark stub pages mapping with VM_PFNMAP · dee20035
      Richard Weinberger authored
      
      
      Ensure that a process cannot destroy his stub pages with
      using MADV_DONTNEED and friends.
      
      Reported-by: default avatar <toralf.foerster@gmx.de>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      dee20035
    • Richard Weinberger's avatar
      um: Fix return value of strnlen_user() · 3179ce72
      Richard Weinberger authored
      
      
      In case of an error it must not return -EFAULT.
      Return 0 like all other archs do.
      
      Reported-by: default avatar <toralf.foerster@gmx.de>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      3179ce72
    • James Hogan's avatar
      MIPS: KVM: Mark KVM_GUEST (T&E KVM) as BROKEN_ON_SMP · f2a5b1d7
      James Hogan authored
      
      
      Make KVM_GUEST depend on BROKEN_ON_SMP so that it cannot be enabled with
      SMP.
      
      SMP kernels use ll/sc instructions for an atomic section in the tlb fill
      handler, with a tlbp instruction contained in the middle. This cannot be
      emulated with trap & emulate KVM because the tlbp instruction traps and
      the eret to return to the guest code clears the LLbit which makes the sc
      instruction always fail.
      
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Sanjay Lal <sanjayl@kymasys.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/5588/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f2a5b1d7
    • Aaro Koskinen's avatar
      MIPS: tlbex: fix broken build in v3.11-rc1 · 38a997a7
      Aaro Koskinen authored
      Commit 6ba045f9
      
       (MIPS: Move generated code
      to .text for microMIPS) deleted tlbmiss_handler_setup_pgd_array, but some
      references were not converted. Fix that to enable building a MIPS kernel.
      
      Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Acked-by: default avatarJayachandran C. <jchandra@broadcom.com>
      Acked-by: default avatarDavid Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5589/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      38a997a7
    • Jayachandran C's avatar
      MIPS: Netlogic: Add XLP PIC irqdomain · 628f0650
      Jayachandran C authored
      Add a legacy irq domain for the XLP PIC interrupts. This will be used
      when interrupts are assigned from the device tree. This change is required
      after commit c5cdc67a
      
       "irqdomain: Remove temporary MIPS workaround code".
      
      Signed-off-by: default avatarJayachandran C <jchandra@broadcom.com>
      Cc: linux-mips@linux-mips.org
      Cc: Jayachandran C <jchandra@broadcom.com>
      Patchwork: https://patchwork.linux-mips.org/patch/5597/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      628f0650
    • Ganesan Ramalingam's avatar
      MIPS: Netlogic: Fix USB block's coherent DMA mask · 35ac7840
      Ganesan Ramalingam authored
      
      
      The on-chip USB controller on Netlogic XLP does not suppport
      DMA beyond 32-bit physical address. Set the coherent_dma_mask
      of the USB in its PCI fixup to support this.
      
      Signed-off-by: default avatarGanesan Ramalingam <ganesanr@broadcom.com>
      Signed-off-by: default avatarJayachandran C. <jchandra@broadcom.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5596/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      35ac7840
    • Tony Wu's avatar
      MIPS: tlbex: Fix typo in r3000 tlb store handler · afc813ae
      Tony Wu authored
      commit 6ba045f9
      
       (MIPS: Move generated code to .text for microMIPS)
      causes a panic at boot. The handler builder should test against
      handle_tlbs_end, not handle_tlbs.
      
      Signed-off-by: default avatarTony Wu <tung7970@gmail.com>
      Acked-by: default avatarJayachandran C. <jchandra@broadcom.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5600/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      afc813ae
    • Florian Fainelli's avatar
      MIPS: BMIPS: Fix thinko to release slave TP from reset · 976f39b1
      Florian Fainelli authored
      Commit 4df715aa
      
       ["MIPS: BMIPS: support booting from physical CPU other
      than 0"] introduced a thinko which will prevents slave CPUs from being
      released from reset on systems where we boot from TP0. The problem is
      that we are checking whether the slave CPU logical CPU map is 0, which
      is never true for systems booting from TP0, so we do not release the
      slave TP from reset and we are just stuck. Fix this by properly checking
      that the CPU we intend to boot really is the physical slave CPU (logical
      and physical value being 1).
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Cc: blogic@openwrt.org
      Cc: jogo@openwrt.org
      Cc: cernekee@gmail.com
      Cc: Florian Fainelli <florian@openwrt.org>
      Patchwork: https://patchwork.linux-mips.org/patch/5598/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      976f39b1
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Alias for new zcrypt device driver base module · 9da3545d
      Ingo Tuchscherer authored
      
      
      The zcrypt device driver has been split into base/bus module, api-module,
      card modules and message type modules. The base module has been renamed
      from z90crypt to ap.
      A module alias (with the well-known z90crypt identifier) will be introduced
      that enable users to use their existing way to load the zcrypt device driver.
      
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      9da3545d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ecb2cf1a
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "A couple interesting SKB fragment handling fixes, plus the usual small
        bits here and there:
      
         1) Fix 64-bit divide build failure on 32-bit platforms in mlx5, from
            Tim Gardner.
      
         2) Get rid of a stupid reimplementation on "%*phC" in our sysfs MAC
            address printing helper.
      
         3) Fix NETIF_F_SG capability advertisement in hyperv driver, if the
            device can't do checksumming offloads then it shouldn't say it can
            do SG either.  From Haiyang Zhang.
      
         4) bgmac needs to depend on PHYLIB, from Hauke Mehrtens.
      
         5) Don't leak DMA mappings on mapping failures, from Neil Horman.
      
         6) We need to reset the transport header of SKBs in ipv4 before we
            attempt to perform early socket demux, just like ipv6 does.  From
            Eric Dumazet.
      
         7) Add missing locking on vxlan device removal, from Stephen
            Hemminger.
      
         8) xen-netfront has to make two passes over an SKB to prepare it for
            transfer.  One pass calculates the number of slots needed, the
            second massages the SKB and fills the slots.  Unfortunately, the
            first pass doesn't calculate the number of slots properly so we
            can end up trying to build a MAX_SKB_FRAGS + 1 SKB which doesn't
            work out so well.  Fix from Jan Beulich with help and discussion
            with several others.
      
         9) Fix a similar problem in tun and macvtap, which have to split up
            scatter-gather elements at PAGE_SIZE boundaries.  Don't do
            zerocopy if it would result in a > MAX_SKB_FRAGS skb.  Fixes from
            Jason Wang.
      
        10) On receive, once we've decoded the VLAN state completely, clear
            skb->vlan_tci.  Otherwise demuxed tunnels underneath can trigger
            the VLAN code again, corrupting the packet.  Fix from Eric
            Dumazet"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        vlan: fix a race in egress prio management
        vlan: mask vlan prio bits
        macvtap: do not zerocopy if iov needs more pages than MAX_SKB_FRAGS
        tuntap: do not zerocopy if iov needs more pages than MAX_SKB_FRAGS
        pkt_sched: sch_qfq: remove a source of high packet delay/jitter
        xen-netfront: pull on receive skb may need to happen earlier
        vxlan: add necessary locking on device removal
        hyperv: Fix the NETIF_F_SG flag setting in netvsc
        net: Fix sysfs_format_mac() code duplication.
        be2net: Fix to avoid hardware workaround when not needed
        macvtap: do not assume 802.1Q when send vlan packets
        macvtap: fix the missing ret value of TUNSETQUEUE
        ipv4: set transport header earlier
        mlx5 core: Fix __udivdi3 when compiling for 32 bit arches
        bgmac: add dependency to phylib
        net/irda: fixed style issues in irlan_eth
        ethtool: fixed trailing statements in ethtool
        ndisc: bool initializations should use true and false
        atl1e: unmap partially mapped skb on dma error and free skb
      ecb2cf1a
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ee114b97
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "Trying again to get the fixes queue, including the fixed IDT alignment
        patch.
      
        The UEFI patch is by far the biggest issue at hand: it is currently
        causing quite a few machines to boot.  Which is sad, because the only
        reason they would is because their BIOSes touch memory that has
        already been freed.  The other major issue is that we finally have
        tracked down the root cause of a significant number of machines
        failing to suspend/resume"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Make sure IDT is page aligned
        x86, suspend: Handle CPUs which fail to #GP on RDMSR
        x86/platform/ce4100: Add header file for reboot type
        Revert "UEFI: Don't pass boot services regions to SetVirtualAddressMap()"
        efivars: check for EFI_RUNTIME_SERVICES
      ee114b97
    • Linus Torvalds's avatar
      Merge tag 'md-3.11-fixes' of git://neil.brown.name/md · 4b8b8a4a
      Linus Torvalds authored
      Pull md bug fixes from NeilBrown:
       "Sorry boss, back at work now boss.  Here's them nice shiny patches ya
        wanted.  All nicely tagged and justified for -stable and everyfing:
      
        Three bug fixes for md in 3.10
      
        3.10 wasn't a good release for md.  The bio changes left a couple of
        bugs, and an md "fix" created another one.
      
        These three patches appear to fix the issues and have been tagged for
        -stable"
      
      * tag 'md-3.11-fixes' of git://neil.brown.name/md:
        md/raid1: fix bio handling problems in process_checks()
        md: Remove recent change which allows devices to skip recovery.
        md/raid10: fix two problems with RAID10 resync.
      4b8b8a4a