1. 19 Jul, 2013 21 commits
    • 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
    • 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
    • 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
    • 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
    • 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
  2. 18 Jul, 2013 19 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 0a693ab6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "You'll be terribly disappointed in this, I'm not trying to sneak any
        features in or anything, its mostly radeon and intel fixes, a couple
        of ARM driver fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (34 commits)
        drm/radeon/dpm: add debugfs support for RS780/RS880 (v3)
        drm/radeon/dpm/atom: fix broken gcc harder
        drm/radeon/dpm/atom: restructure logic to work around a compiler bug
        drm/radeon/dpm: fix atom vram table parsing
        drm/radeon: fix an endian bug in atom table parsing
        drm/radeon: add a module parameter to disable aspm
        drm/rcar-du: Use the GEM PRIME helpers
        drm/shmobile: Use the GEM PRIME helpers
        uvesafb: Really allow mtrr being 0, as documented and warn()ed
        radeon kms: do not flush uninitialized hotplug work
        drm/radeon/dpm/sumo: handle boost states properly when forcing a perf level
        drm/radeon: align VM PTBs (Page Table Blocks) to 32K
        drm/radeon: allow selection of alignment in the sub-allocator
        drm/radeon: never unpin UVD bo v3
        drm/radeon: fix UVD fence emit
        drm/radeon: add fault decode function for CIK
        drm/radeon: add fault decode function for SI (v2)
        drm/radeon: add fault decode function for cayman/TN (v2)
        drm/radeon: use radeon device for request firmware
        drm/radeon: add missing ttm_eu_backoff_reservation to radeon_bo_list_validate
        ...
      0a693ab6
    • Eric Dumazet's avatar
      vlan: fix a race in egress prio management · 3e3aac49
      Eric Dumazet authored
      egress_priority_map[] hash table updates are protected by rtnl,
      and we never remove elements until device is dismantled.
      
      We have to make sure that before inserting an new element in hash table,
      all its fields are committed to memory or else another cpu could
      find corrupt values and crash.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Patrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3e3aac49
    • Eric Dumazet's avatar
      vlan: mask vlan prio bits · d4b812de
      Eric Dumazet authored
      In commit 48cc32d3
      ("vlan: don't deliver frames for unknown vlans to protocols")
      Florian made sure we set pkt_type to PACKET_OTHERHOST
      if the vlan id is set and we could find a vlan device for this
      particular id.
      
      But we also have a problem if prio bits are set.
      
      Steinar reported an issue on a router receiving IPv6 frames with a
      vlan tag of 4000 (id 0, prio 2), and tunneled into a sit device,
      because skb->vlan_tci is set.
      
      Forwarded frame is completely corrupted : We can see (8100:4000)
      being inserted in the middle of IPv6 source address :
      
      16:48:00.780413 IP6 2001:16d8:8100:4000:ee1c:0:9d9:bc87 >
      9f94:4d95:2001:67c:29f4::: ICMP6, unknown icmp6 type (0), length 64
             0x0000:  0000 0029 8000 c7c3 7103 0001 a0ae e651
             0x0010:  0000 0000 ccce 0b00 0000 0000 1011 1213
             0x0020:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
             0x0030:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
      
      It seems we are not really ready to properly cope with this right now.
      
      We can probably do better in future kernels :
      vlan_get_ingress_priority() should be a netdev property instead of
      a per vlan_dev one.
      
      For stable kernels, lets clear vlan_tci to fix the bugs.
      Reported-by: default avatarSteinar H. Gunderson <sesse@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4b812de
    • Jason Wang's avatar
      macvtap: do not zerocopy if iov needs more pages than MAX_SKB_FRAGS · ece793fc
      Jason Wang authored
      We try to linearize part of the skb when the number of iov is greater than
      MAX_SKB_FRAGS. This is not enough since each single vector may occupy more than
      one pages, so zerocopy_sg_fromiovec() may still fail and may break the guest
      network.
      
      Solve this problem by calculate the pages needed for iov before trying to do
      zerocopy and switch to use copy instead of zerocopy if it needs more than
      MAX_SKB_FRAGS.
      
      This is done through introducing a new helper to count the pages for iov, and
      call uarg->callback() manually when switching from zerocopy to copy to notify
      vhost.
      
      We can do further optimization on top.
      
      This bug were introduced from b92946e2
      (macvtap: zerocopy: validate vectors before building skb).
      
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ece793fc
    • Jason Wang's avatar
      tuntap: do not zerocopy if iov needs more pages than MAX_SKB_FRAGS · 88529176
      Jason Wang authored
      We try to linearize part of the skb when the number of iov is greater than
      MAX_SKB_FRAGS. This is not enough since each single vector may occupy more than
      one pages, so zerocopy_sg_fromiovec() may still fail and may break the guest
      network.
      
      Solve this problem by calculate the pages needed for iov before trying to do
      zerocopy and switch to use copy instead of zerocopy if it needs more than
      MAX_SKB_FRAGS.
      
      This is done through introducing a new helper to count the pages for iov, and
      call uarg->callback() manually when switching from zerocopy to copy to notify
      vhost.
      
      We can do further optimization on top.
      
      The bug were introduced from commit 0690899b
      (tun: experimental zero copy tx support)
      
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      88529176
    • Paolo Valente's avatar
      pkt_sched: sch_qfq: remove a source of high packet delay/jitter · 87f40dd6
      Paolo Valente authored
      QFQ+ inherits from QFQ a design choice that may cause a high packet
      delay/jitter and a severe short-term unfairness. As QFQ, QFQ+ uses a
      special quantity, the system virtual time, to track the service
      provided by the ideal system it approximates. When a packet is
      dequeued, this quantity must be incremented by the size of the packet,
      divided by the sum of the weights of the aggregates waiting to be
      served. Tracking this sum correctly is a non-trivial task, because, to
      preserve tight service guarantees, the decrement of this sum must be
      delayed in a special way [1]: this sum can be decremented only after
      that its value would decrease also in the ideal system approximated by
      QFQ+. For efficiency, QFQ+ keeps track only of the 'instantaneous'
      weight sum, increased and decreased immediately as the weight of an
      aggregate changes, and as an aggregate is created or destroyed (which,
      in its turn, happens as a consequence of some class being
      created/destroyed/changed). However, to avoid the problems caused to
      service guarantees by these immediate decreases, QFQ+ increments the
      system virtual time using the maximum value allowed for the weight
      sum, 2^10, in place of the dynamic, instantaneous value. The
      instantaneous value of the weight sum is used only to check whether a
      request of weight increase or a class creation can be satisfied.
      
      Unfortunately, the problems caused by this choice are worse than the
      temporary degradation of the service guarantees that may occur, when a
      class is changed or destroyed, if the instantaneous value of the
      weight sum was used to update the system virtual time. In fact, the
      fraction of the link bandwidth guaranteed by QFQ+ to each aggregate is
      equal to the ratio between the weight of the aggregate and the sum of
      the weights of the competing aggregates. The packet delay guaranteed
      to the aggregate is instead inversely proportional to the guaranteed
      bandwidth. By using the maximum possible value, and not the actual
      value of the weight sum, QFQ+ provides each aggregate with the worst
      possible service guarantees, and not with service guarantees related
      to the actual set of competing aggregates. To see the consequences of
      this fact, consider the following simple example.
      
      Suppose that only the following aggregates are backlogged, i.e., that
      only the classes in the following aggregates have packets to transmit:
      one aggregate with weight 10, say A, and ten aggregates with weight 1,
      say B1, B2, ..., B10. In particular, suppose that these aggregates are
      always backlogged. Given the weight distribution, the smoothest and
      fairest service order would be:
      A B1 A B2 A B3 A B4 A B5 A B6 A B7 A B8 A B9 A B10 A B1 A B2 ...
      
      QFQ+ would provide exactly this optimal service if it used the actual
      value for the weight sum instead of the maximum possible value, i.e.,
      11 instead of 2^10. In contrast, since QFQ+ uses the latter value, it
      serves aggregates as follows (easy to prove and to reproduce
      experimentally):
      A B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 A A A A A A A A A A B1 B2 ... B10 A A ...
      
      By replacing 10 with N in the above example, and by increasing N, one
      can increase at will the maximum packet delay and the jitter
      experienced by the classes in aggregate A.
      
      This patch addresses this issue by just using the above
      'instantaneous' value of the weight sum, instead of the maximum
      possible value, when updating the system virtual time.  After the
      instantaneous weight sum is decreased, QFQ+ may deviate from the ideal
      service for a time interval in the order of the time to serve one
      maximum-size packet for each backlogged class. The worst-case extent
      of the deviation exhibited by QFQ+ during this time interval [1] is
      basically the same as of the deviation described above (but, without
      this patch, QFQ+ suffers from such a deviation all the time). Finally,
      this patch modifies the comment to the function qfq_slot_insert, to
      make it coherent with the fact that the weight sum used by QFQ+ can
      now be lower than the maximum possible value.
      
      [1] P. Valente, "Extending WF2Q+ to support a dynamic traffic mix",
      Proceedings of AAA-IDEA'05, June 2005.
      Signed-off-by: default avatarPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      87f40dd6
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.11-rc2' of... · 7a62711a
      Linus Torvalds authored
      Merge tag 'driver-core-3.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core patches from Greg KH:
       "Here are some driver core patches for 3.11-rc2.  They aren't really
        bugfixes, but a bunch of new helper macros for drivers to properly
        create attribute groups, which drivers and subsystems need to fix up a
        ton of race issues with incorrectly creating sysfs files (binary and
        normal) after userspace has been told that the device is present.
      
        Also here is the ability to create binary files as attribute groups,
        to solve that race condition, which was impossible to do before this,
        so that's my fault the drivers were broken.
      
        The majority of the .c changes is indenting and moving code around a
        bit.  It affects no existing code, but allows the large backlog of 70+
        patches that I already have created to start flowing into the
        different subtrees, instead of having to live in my driver-core tree,
        causing merge nightmares in linux-next for the next few months.
      
        These were finalized too late for the -rc1 merge window, which is why
        they were didn't make that pull request, testing and review from
        others didn't happen until a few weeks ago, and then there's the whole
        distraction of the past few days, which prevented these from getting
        to you sooner, sorry about that.
      
        Oh, and there's a bugfix for the documentation build warning in here
        as well.  All of these have been in linux-next this week, with no
        reported problems"
      
      * tag 'driver-core-3.11-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        driver-core: fix new kernel-doc warning in base/platform.c
        sysfs: use file mode defines from stat.h
        sysfs: add more helper macro's for (bin_)attribute(_groups)
        driver core: add default groups to struct class
        driver core: Introduce device_create_groups
        sysfs: prevent warning when only using binary attributes
        sysfs: add support for binary attributes in groups
        driver core: device.h: add RW and RO attribute macros
        sysfs.h: add BIN_ATTR macro
        sysfs.h: add ATTRIBUTE_GROUPS() macro
        sysfs.h: add __ATTR_RW() macro
      7a62711a
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-fixes' · 5a8d2815
      Rafael J. Wysocki authored
      * pm-fixes:
        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
      5a8d2815
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-fixes' · fc0ad6c7
      Rafael J. Wysocki authored
      * acpi-fixes:
        ACPI / video: ignore BIOS initial backlight value for Fujitsu E753
        PNP / ACPI: avoid garbage in resource name
        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
      fc0ad6c7
    • Lan Tianyu's avatar
      ACPI / video: ignore BIOS initial backlight value for Fujitsu E753 · 9657a565
      Lan Tianyu authored
      The BIOS of FUjitsu E753 reports an incorrect initial backlight value
      for WIN8 compatible OS, causing backlight to be dark during startup.
      This change causes the incorrect initial value from BIOS to be ignored.
      
      References: https://bugzilla.kernel.org/show_bug.cgi?id=60161Reported-and-tested-by: default avatarJan Hinnerk Stosch <janhinnerk.stosch@gmail.com>
      Signed-off-by: default avatarLan Tianyu <tianyu.lan@intel.com>
      Cc: 3.7+ <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9657a565
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 5d88d15e
      Linus Torvalds authored
      Pull hwmon fix from Guenter Roeck:
       "Single patch to staticize a local variable"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (abx500) Staticize abx500_temp_attributes
      5d88d15e
    • Linus Torvalds's avatar
      Merge branch 'cpuinit_phase2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · 3f334c20
      Linus Torvalds authored
      Pull phase two of __cpuinit removal from Paul Gortmaker:
       "With the __cpuinit infrastructure removed earlier, this group of
        commits only removes the function/data tagging that was done with the
        various (now no-op) __cpuinit related prefixes.
      
        Now that the dust has settled with yesterday's v3.11-rc1, there
        hopefully shouldn't be any new users leaking back in tree, but I think
        we can leave the harmless no-op stubs there for a release as a
        courtesy to those who still have out of tree stuff and weren't paying
        attention.
      
        Although the commits are against the recent tag to allow for minor
        context refreshes for things like yesterday's v3.11-rc1~ slab content,
        the patches have been largely unchanged for weeks, aside from such
        trivial updates.
      
        For detail junkies, the largely boring and mostly irrelevant history
        of the patches can be viewed at:
      
          http://git.kernel.org/cgit/linux/kernel/git/paulg/cpuinit-delete.git
      
        If nothing else, I guess it does at least demonstrate the level of
        involvement required to shepherd such a treewide change to completion.
      
        This is the same repository of patches that has been applied to the
        end of the daily linux-next branches for the past several weeks"
      
      * 'cpuinit_phase2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (28 commits)
        block: delete __cpuinit usage from all block files
        drivers: delete __cpuinit usage from all remaining drivers files
        kernel: delete __cpuinit usage from all core kernel files
        rcu: delete __cpuinit usage from all rcu files
        net: delete __cpuinit usage from all net files
        acpi: delete __cpuinit usage from all acpi files
        hwmon: delete __cpuinit usage from all hwmon files
        cpufreq: delete __cpuinit usage from all cpufreq files
        clocksource+irqchip: delete __cpuinit usage from all related files
        x86: delete __cpuinit usage from all x86 files
        score: delete __cpuinit usage from all score files
        xtensa: delete __cpuinit usage from all xtensa files
        openrisc: delete __cpuinit usage from all openrisc files
        m32r: delete __cpuinit usage from all m32r files
        hexagon: delete __cpuinit usage from all hexagon files
        frv: delete __cpuinit usage from all frv files
        cris: delete __cpuinit usage from all cris files
        metag: delete __cpuinit usage from all metag files
        tile: delete __cpuinit usage from all tile files
        sh: delete __cpuinit usage from all sh files
        ...
      3f334c20
    • Linus Torvalds's avatar
      Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · c66bce9b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Except for a slightly big OMAP changes, all rest are small, mostly
        boring changes; all either 3.11 regression fixes or stable materials.
      
         - ASoC OMAP fixes due to non-DT OMAP4 removals
         - Other ASoC driver changes (sglt5000, wm8978, wm8948, samsung)
         - Fix missing locking for snd_pcm_stop() calls in many drivers
         - Fix the blocking request_module() in OSS sequencer
         - Fix old OSS vwsnd driver builds
         - Add a new HD-audio HDMI codec ID"
      
      * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits)
        ALSA: seq-oss: Initialize MIDI clients asynchronously
        ALSA: hda - Add new GPU codec ID to snd-hda
        staging: line6: Fix unlocked snd_pcm_stop() call
        [media] saa7134: Fix unlocked snd_pcm_stop() call
        ASoC: s6000: Fix unlocked snd_pcm_stop() call
        ASoC: atmel: Fix unlocked snd_pcm_stop() call
        ALSA: pxa2xx: Fix unlocked snd_pcm_stop() call
        ALSA: usx2y: Fix unlocked snd_pcm_stop() call
        ALSA: ua101: Fix unlocked snd_pcm_stop() call
        ALSA: 6fire: Fix unlocked snd_pcm_stop() call
        ALSA: atiixp: Fix unlocked snd_pcm_stop() call
        ALSA: asihpi: Fix unlocked snd_pcm_stop() call
        sound: oss/vwsnd: Always define vwsnd_mutex
        sound: oss/vwsnd: Add missing inclusion of linux/delay.h
        ASoC: wm8978: enable symmetric rates
        ASoC: omap-mcbsp: Use different method for DMA request when booted with DT
        ASoC: omap-dmic: Do not use platform_get_resource_byname() for DMA
        ASoC: omap-mcpdm: Do not use platform_get_resource_byname() for DMA
        ASoC: omap-pcm: Request the DMA channel differently when DT is involved
        ASoC: Samsung: Set RFS and BFS in slave mode
        ...
      c66bce9b
    • Michael Holzheu's avatar
      s390/kdump: Allow copy_oldmem_page() copy to virtual memory · 191a2fa0
      Michael Holzheu authored
      The kdump mmap patch series (git commit 83086978) changed the
      requirements for copy_oldmem_page(). Now this function is used for copying
      to virtual memory.
      
      So implement vmalloc support for the s390 version of copy_oldmem_page().
      Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      191a2fa0
    • Michael Holzheu's avatar
      s390/kdump: Disable mmap for s390 · 5a74953f
      Michael Holzheu authored
      The kdump mmap patch series (git commit 83086978) directly
      map the PT_LOADs to memory. On s390 this does not work because the
      copy_from_oldmem() function swaps [0,crashkernel size] with
      [crashkernel base, crashkernel base+crashkernel size]. The swap
      int copy_from_oldmem() was done in order correctly implement /dev/oldmem.
      
      See: http://marc.info/?l=kexec&m=136940802511603&w=2Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      5a74953f
    • Heiko Carstens's avatar
      s390/bpf,jit: add pkt_type support · c9a7afa3
      Heiko Carstens authored
      s390 version of 3b58908a "x86: bpf_jit_comp: add pkt_type support".
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      c9a7afa3
    • Heiko Carstens's avatar
      s390/bpf,jit: address randomize and write protect jit code · aa2d2c73
      Heiko Carstens authored
      This is the s390 variant of 314beb9b "x86: bpf_jit_comp: secure bpf
      jit against spraying attacks".
      With this change the whole jit code and literal pool will be write
      protected after creation. In addition the start address of the jit
      code won't be always on a page boundary anymore.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      aa2d2c73
    • Heiko Carstens's avatar
      s390/bpf,jit: use generic jit dumper · fee1b548
      Heiko Carstens authored
      This is the s390 backend of 79617801 "filter: bpf_jit_comp: refactor
      and unify BPF JIT image dump output".
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      fee1b548
    • Heiko Carstens's avatar
      s390/bpf,jit: call module_free() from any context · 1eeb7478
      Heiko Carstens authored
      The workqueue workaround is no longer needed. Same as 5199dfe5
      "sparc: bpf_jit_comp: can call module_free() from any context".
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      1eeb7478