17 Nov, 2014

2 commits

  • …ernel/git/tmlind/linux-omap into fixes

    Merge "omap fixes against v3.18-rc4" from Tony Lindgren:

    Few omap fixes for hangs and wrong pinctrl defines, and update
    MAINTAINERS file to avoid missing PMIC and SoC related patches:

    - Fix random hangs on am437x because of incorrect default
    value for the DDR regulator

    - Fix wrong partition name for NAND on am335x-evm

    - Fix wrong pinctrl defines for dra7xx

    - Update maintainers entries for PMICs and SoCs

    * tag 'omap-fixes-against-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    pinctrl: dra: dt-bindings: Fix output pull up/down
    MAINTAINERS: Update entry for omap related .dts files to cover new SoCs
    MAINTAINERS: add more files under OMAP SUPPORT
    ARM: dts: AM437x-SK-EVM: Fix DCDC3 voltage
    ARM: dts: AM437x-GP-EVM: Fix DCDC3 voltage
    ARM: dts: AM43x-EPOS-EVM: Fix DCDC3 voltage
    ARM: dts: am335x-evm: Fix 5th NAND partition's name

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Merge "mvebu fixes for v3.18" from Jason Cooper:

    - Armada XP
    - Generalize i2c quirk

    - orion
    - Fix irq storm caused by specific sequence of request_irq

    * tag 'mvebu-fixes-3.18' of git://git.infradead.org/linux-mvebu:
    ARM: orion: Fix for certain sequence of request_irq can cause irq storm
    ARM: mvebu: armada xp: Generalize use of i2c quirk

    Olof Johansson
     

11 Nov, 2014

6 commits

  • For PIN_OUTPUT_PULLUP and PIN_OUTPUT_PULLDOWN we must not set the
    PULL_DIS bit which disables the PULLs.

    PULL_ENA is a 0 and using it in an OR operation is a NOP, so don't
    use it in the PIN_OUTPUT_PULLUP/DOWN macros.

    Fixes: 23d9cec07c58 ("pinctrl: dra: dt-bindings: Fix pull enable/disable")

    Signed-off-by: Roger Quadros
    Acked-by: Nishanth Menon
    Signed-off-by: Tony Lindgren

    Roger Quadros
     
  • DRA7(including AM5x) and AM47x series are handled under OMAP umbrella.
    These SoC support and dts have been added since 3.14 kernel and Pull
    requests for these have come in from OMAP till date.

    So just ensure that get_maintainers can pick up this list as well.

    Cc: linux-omap@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Nishanth Menon
    Acked-by: Benoît Cousson
    Signed-off-by: Tony Lindgren

    Nishanth Menon
     
  • These files are very important to the healt
    of the OMAP architecture, specially when it
    comes to PM support which currently we have
    working for at least OMAP3 and we'd like
    to know about any changes being made to our
    PMICs and IRQ controllers.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Tony Lindgren

    Felipe Balbi
     
  • DCDC3 supplies voltage to DDR. Fix DCDC3 volatge to 1.5V which is the reset
    value. Programming to a non-reset value while executing from DDR will result
    in random hangs.

    Signed-off-by: Keerthy
    Signed-off-by: Tony Lindgren

    Keerthy
     
  • DCDC3 supplies voltage to DDR. Fix DCDC3 volatge to 1.5V which is the reset
    value. Programming to a non-reset value while executing from DDR will result
    in random hangs.

    Signed-off-by: Keerthy
    Signed-off-by: Tony Lindgren

    Keerthy
     
  • DCDC3 supplies voltage to DDR. Fix DCDC3 volatge to 1.5V which is the reset
    value. Programming to a non-reset value while executing from DDR will result
    in random hangs.

    Signed-off-by: Keerthy
    Signed-off-by: Tony Lindgren

    Keerthy
     

09 Nov, 2014

1 commit

  • The Parallella board comes with a U-Boot bootloader that loads one of
    two predefined FPGA bitstreams before booting the kernel. Both define an
    AXI interface to the on-board Epiphany processor.

    Enable clocks FCLK0..FCLK3 for the Programmable Logic by default.

    Otherwise accessing, e.g., the ESYSRESET register freezes the board,
    as seen with the Epiphany SDK tools e-reset and e-hw-rev, using /dev/mem.

    Cc: # 3.17.x
    Signed-off-by: Andreas Färber
    Acked-by: Michal Simek
    Signed-off-by: Olof Johansson

    Andreas Färber
     

07 Nov, 2014

1 commit

  • The 5th NAND partition should be named "NAND.u-boot-spl-os"
    instead of "NAND.u-boot-spl". This is to be consistent with other
    TI boards as well as u-boot.

    Fixes: 91994facdd2d ("ARM: dts: am335x-evm: NAND: update MTD partition table")

    Signed-off-by: Roger Quadros
    Signed-off-by: Sekhar Nori
    Signed-off-by: Tony Lindgren

    Roger Quadros
     

06 Nov, 2014

2 commits

  • The horrible split between the low-level part of the edma support
    and the dmaengine front-end driver causes problems on multiplatform
    kernels. This is an attempt to improve the situation slightly
    by only registering the dmaengine devices that are actually
    present.

    Signed-off-by: Arnd Bergmann
    [olof: add missing include of linux/dma-mapping.h]
    Signed-off-by: Olof Johansson

    Signed-off-by: Olof Johansson

    Arnd Bergmann
     
  • Driver has been there since a while back, but the dts never seems to
    have been updated with the node (nor pinctrl). Do so now.

    Cc: Matt Porter
    Acked-by: Shawn Guo
    Acked-by: Stefan Agner
    Signed-off-by: Olof Johansson

    Olof Johansson
     

05 Nov, 2014

2 commits

  • Add Lee Jones as a new co-maintainer.

    The kernel.org repo moved to allow us both to push to it. Update
    MAINTAINERS to match.

    Signed-off-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Stephen Warren
     
  • …awnguo/linux into fixes

    Merge "ARM: imx: fixes for 3.18, 2nd round" from Shawn Guo:

    "This is the second round of i.MX fixes for 3.18. The clk-vf610 fix is
    relatively big, because it needs some adaption to the change made by
    offending commit dc4805c2e78b (ARM: imx: remove ENABLE and BYPASS bits
    from clk-pllv3 driver). And it should have been sent to you for earlier
    -rc inclusion, but unfortunately it got delayed for some time because
    Stefan wasn't aware of my email address change."

    The i.MX fixes for 3.18, 2nd round:
    - Fix a regression on Vybrid platform which is caused by commit
    dc4805c2e78b (ARM: imx: remove ENABLE and BYPASS bits from clk-pllv3
    driver), and results in a missing configuration on PLL clocks.
    - Fix a regression with i.MX defconfig files where CONFIG_SPI option
    gets lost accidentally.

    * tag 'imx-fixes-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (460 commits)
    ARM: imx: Fix the removal of CONFIG_SPI option
    ARM: imx: clk-vf610: define PLL's clock tree
    + Linux 3.18-rc3

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

04 Nov, 2014

2 commits

  • Since 64546e9fe3a5b8c ("ARM: imx_v6_v7_defconfig updates") and commit
    0650f855d2e4b0b9 ("ARM: imx_v4_v5_defconfig: Select CONFIG_IMX_WEIM") CONFIG_SPI
    selection was dropped by savedefconfig for imx_v4_v5_defconfig and
    imx_v6_v7_defconfig.

    In order to keep the same behaviour as previous kernel versions and avoid
    regressions, let's add CONFIG_SPI option back.

    Signed-off-by: Fabio Estevam
    Signed-off-by: Shawn Guo

    Fabio Estevam
     
  • So far, the required PLL's (PLL1/PLL2/PLL5) have been initialized
    by boot loader and the kernel code defined fixed rates according
    to those default configurations. Beginning with the USB PLL7 the
    code started to initialize the PLL's itself (using imx_clk_pllv3).

    However, since commit dc4805c2e78ba5a22ea1632f3e3e4ee601a1743b
    (ARM: imx: remove ENABLE and BYPASS bits from clk-pllv3 driver)
    imx_clk_pllv3 no longer takes care of the ENABLE and BYPASS bits,
    hence the USB PLL were not configured correctly anymore.

    This patch not only fixes those USB PLL's, but also makes use of
    the imx_clk_pllv3 for all PLL's and alignes the code with the PLL
    support of the i.MX6 series.

    Signed-off-by: Stefan Agner
    Signed-off-by: Shawn Guo

    Stefan Agner
     

03 Nov, 2014

17 commits

  • Linus Torvalds
     
  • Pull MTD fixes from Brian Norris:
    "Three main MTD fixes for 3.18:

    - A regression from 3.16 which was noticed in 3.17. With the
    restructuring of the m25p80.c driver and the SPI NOR library
    framework, we omitted proper listing of the SPI device IDs. This
    means m25p80.c wouldn't auto-load (modprobe) properly when built as
    a module. For now, we duplicate the device IDs into both modules.

    - The OMAP / ELM modules were depending on an implicit link ordering.
    Use deferred probing so that the new link order (in 3.18-rc) can
    still allow for successful probing.

    - Fix suspend/resume support for LH28F640BF NOR flash"

    * tag 'for-linus-20141102' of git://git.infradead.org/linux-mtd:
    mtd: cfi_cmdset_0001.c: fix resume for LH28F640BF chips
    mtd: omap: fix mtd devices not showing up
    mtd: m25p80,spi-nor: Fix module aliases for m25p80
    mtd: spi-nor: make spi_nor_scan() take a chip type name, not spi_device_id
    mtd: m25p80: get rid of spi_get_device_id

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of six patches consisting of:
    - two MAINTAINER updates
    - two scsi-mq fixs for the old parallel interface (not every request
    is tagged and we need to set the right flags to populate the SPI
    tag message)
    - a fix for a memory leak in scatterlist traversal caused by a
    preallocation update in 3.17
    - an ipv6 fix for cxgbi"

    [ The scatterlist fix also came in separately through the block layer tree ]

    * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    MAINTAINERS: ufs - remove self
    MAINTAINERS: change hpsa and cciss maintainer
    libcxgbi : support ipv6 address host_param
    scsi: set REQ_QUEUE for the blk-mq case
    Revert "block: all blk-mq requests are tagged"
    lib/scatterlist: fix memory leak with scsi-mq

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Nothing too astounding or major: radeon, i915, vmwgfx, armada and
    exynos.

    Biggest ones:
    - vmwgfx has one big locking regression fix
    - i915 has come displayport fixes
    - radeon has some stability and a memory alloc failure
    - armada and exynos have some vblank fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (24 commits)
    drm/exynos: correct connector->dpms field before resuming
    drm/exynos: enable vblank after DPMS on
    drm/exynos: init kms poll at the end of initialization
    drm/exynos: propagate plane initialization errors
    drm/exynos: vidi: fix build warning
    drm/exynos: remove explicit encoder/connector de-initialization
    drm/exynos: init vblank with real number of crtcs
    drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size.
    drm/vmwgfx: Fix hash key computation
    drm/vmwgfx: fix lock breakage
    drm/i915/dp: only use training pattern 3 on platforms that support it
    drm/radeon: remove some buggy dead code
    drm/i915: Ignore VBT backlight check on Macbook 2, 1
    drm/radeon: remove invalid pci id
    drm/radeon: dpm fixes for asrock systems
    radeon: clean up coding style differences in radeon_get_bios()
    drm/radeon: Use drm_malloc_ab instead of kmalloc_array
    drm/radeon/dpm: disable ulv support on SI
    drm/i915: Fix GMBUSFREQ on vlv/chv
    drm/i915: Ignore long hpds on eDP ports
    ...

    Linus Torvalds
     
  • …/git/tmlind/linux-omap into fixes

    Merge "omap fixes against v3.18-rc2" from Tony Lindgren:

    Few fixes for omaps to enable NAND BCH so devices won't
    produce errors when booted with omap2plus_defconfig, and
    reduce bloat by making IPV6 a loadable module.

    Also let's add a warning about legacy boot being deprecated
    for omap3.

    We now have things working with device tree, and only omap3 is
    still booting in legacy mode. So hopefully this warning will
    help move the remaining legacy mode users to boot with device
    tree.

    As the total reduction of code and static data is somewhere
    around 20000 lines of code once we remove omap3 legacy mode
    booting, we really do want to make omap3 to boot also in
    device tree mode only over the next few merge cycles.

    * tag 'fixes-against-v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (407 commits)
    ARM: OMAP2+: Warn about deprecated legacy booting mode
    ARM: omap2plus_defconfig: Fix errors with NAND BCH
    ARM: omap2plus_defconfig: Fix bloat caused by having ipv6 built-in
    + Linux 3.18-rc2

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Pull ARM fixes from Russell King:
    - add the new bpf syscall to ARM.
    - drop a redundant return statement in __iommu_alloc_remap()
    - fix a performance issue noticed by Thomas Petazzoni with
    kmap_atomic().
    - fix an issue with the L2 cache OF parsing code which caused it to
    incorrectly print warnings on each boot, and make the warning text
    more consistent with the rest of the code

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8180/1: mm: implement no-highmem fast path in kmap_atomic_pfn()
    ARM: 8183/1: l2c: Improve l2c310_of_parse() error message
    ARM: 8181/1: Drop extra return statement
    ARM: 8182/1: l2c: Make l2x0_cache_size_of_parse() return 'int'
    ARM: enable bpf syscall

    Linus Torvalds
     
  • Pull kvm fixes from Paolo Bonzini:
    "A small set of x86 fixes. The most serious is an SRCU lockdep fix.

    A bit late - needed some time to test the SRCU fix, which only came in
    on Friday"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: vmx: defer load of APIC access page address during reset
    KVM: nVMX: Disable preemption while reading from shadow VMCS
    KVM: x86: Fix far-jump to non-canonical check
    KVM: emulator: fix execution close to the segment limit
    KVM: emulator: fix error code for __linearize

    Linus Torvalds
     
  • …/daeinki/drm-exynos into drm-fixes

    This pull-request includes some bug fixes and code cleanups.
    Especially, this fixes the bind failure issue occurred when it tries
    to re-bind Exynos drm driver after unbound, and the modetest failure
    issue incurred by not having a pair to vblank on and off requests.

    * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
    drm/exynos: correct connector->dpms field before resuming
    drm/exynos: enable vblank after DPMS on
    drm/exynos: init kms poll at the end of initialization
    drm/exynos: propagate plane initialization errors
    drm/exynos: vidi: fix build warning
    drm/exynos: remove explicit encoder/connector de-initialization
    drm/exynos: init vblank with real number of crtcs

    Dave Airlie
     
  • Pull VFS fixes from Al Viro:
    "A bunch of assorted fixes, most of them followups to overlayfs merge"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    ovl: initialize ->is_cursor
    Return short read or 0 at end of a raw device, not EIO
    isofs: don't bother with ->d_op for normal case
    isofs_cmp(): we'll never see a dentry for . or ..
    overlayfs: fix lockdep misannotation
    ovl: fix check for cursor
    overlayfs: barriers for opening upper-layer directory
    rcu: Provide counterpart to rcu_dereference() for non-RCU situations
    staging: android: logger: Fix log corruption regression

    Linus Torvalds
     
  • The sk_prot is irda's own set of protocol handlers, so irda should
    statically know what that function is anyway, without using an indirect
    pointer. And as it happens, we know *exactly* what that pointer is
    statically: it's NULL, because irda doesn't define a disconnect
    operation.

    So calling that function is doubly wrong, and will just cause an oops.

    Reported-by: Martin Lang
    Cc: Samuel Ortiz
    Cc: David Miller
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • During system suspend after connector switch off its dpms field
    is set to connector previous dpms state. To properly resume dpms field
    should be set to its actual state (off) before resuming to previous dpms state.

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     
  • Before DPMS off driver disables vblank.
    It should be balanced by vblank enable after DPMS on.
    The patch fixes issue with page_flip ioctl not being able
    to acquire vblank counter introduced by patch:
    drm: Always reject drm_vblank_get() after drm_vblank_off()

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     
  • HPD events can be generated by components even if drm_dev is not fully
    initialized, to skip such events kms poll initialization should
    be performed at the end of load callback followed directly by forced
    connection detection.

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     
  • In case of error during plane initialization load callback
    incorrectly return success, this patch fixes it.

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     
  • encoder object isn't used anymore so remove it.

    Signed-off-by: Inki Dae

    Inki Dae
     
  • All KMS objects are destroyed by drm_mode_config_cleanup in proper order
    so component drivers should not care about it.

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     
  • Initialization of vblank with MAX_CRTC caused attempts
    to disabling vblanks for non-existing crtcs in case
    drm used fewer crtcs. The patch fixes it.

    Signed-off-by: Andrzej Hajda
    Signed-off-by: Inki Dae

    Andrzej Hajda
     

02 Nov, 2014

7 commits

  • Most call paths to vmx_vcpu_reset do not hold the SRCU lock. Defer loading
    the APIC access page to the next vmentry.

    This avoids the following lockdep splat:

    [ INFO: suspicious RCU usage. ]
    3.18.0-rc2-test2+ #70 Not tainted
    -------------------------------
    include/linux/kvm_host.h:474 suspicious rcu_dereference_check() usage!

    other info that might help us debug this:

    rcu_scheduler_active = 1, debug_locks = 0
    1 lock held by qemu-system-x86/2371:
    #0: (&vcpu->mutex){+.+...}, at: [] vcpu_load+0x20/0xd0 [kvm]

    stack backtrace:
    CPU: 4 PID: 2371 Comm: qemu-system-x86 Not tainted 3.18.0-rc2-test2+ #70
    Hardware name: Dell Inc. OptiPlex 9010/0M9KCM, BIOS A12 01/10/2013
    0000000000000001 ffff880209983ca8 ffffffff816f514f 0000000000000000
    ffff8802099b8990 ffff880209983cd8 ffffffff810bd687 00000000000fee00
    ffff880208a2c000 ffff880208a10000 ffff88020ef50040 ffff880209983d08
    Call Trace:
    [] dump_stack+0x4e/0x71
    [] lockdep_rcu_suspicious+0xe7/0x120
    [] gfn_to_memslot+0xd5/0xe0 [kvm]
    [] __gfn_to_pfn+0x33/0x60 [kvm]
    [] gfn_to_page+0x25/0x90 [kvm]
    [] kvm_vcpu_reload_apic_access_page+0x3c/0x80 [kvm]
    [] vmx_vcpu_reset+0x20c/0x460 [kvm_intel]
    [] kvm_vcpu_reset+0x15e/0x1b0 [kvm]
    [] kvm_arch_vcpu_setup+0x2c/0x50 [kvm]
    [] kvm_vm_ioctl+0x1d0/0x780 [kvm]
    [] ? __lock_is_held+0x54/0x80
    [] do_vfs_ioctl+0x300/0x520
    [] ? __fget+0x5/0x250
    [] ? __fget_light+0x2a/0xe0
    [] SyS_ioctl+0x81/0xa0
    [] system_call_fastpath+0x16/0x1b

    Reported-by: Takashi Iwai
    Reported-by: Alexei Starovoitov
    Reviewed-by: Wanpeng Li
    Tested-by: Wanpeng Li
    Fixes: 38b9917350cb2946e368ba684cfc33d1672f104e
    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • In order to access the shadow VMCS, we need to load it. At this point,
    vmx->loaded_vmcs->vmcs and the actually loaded one start to differ. If
    we now get preempted by Linux, vmx_vcpu_put and, on return, the
    vmx_vcpu_load will work against the wrong vmcs. That can cause
    copy_shadow_to_vmcs12 to corrupt the vmcs12 state.

    Fix the issue by disabling preemption during the copy operation.
    copy_vmcs12_to_shadow is safe from this issue as it is executed by
    vmx_vcpu_run when preemption is already disabled before vmentry.

    This bug is exposed by running Jailhouse within KVM on CPUs with
    shadow VMCS support. Jailhouse never expects an interrupt pending
    vmexit, but the bug can cause it if, after copy_shadow_to_vmcs12
    is preempted, the active VMCS happens to have the virtual interrupt
    pending flag set in the CPU-based execution controls.

    Signed-off-by: Jan Kiszka
    Signed-off-by: Paolo Bonzini

    Jan Kiszka
     
  • Commit d1442d85cc30 ("KVM: x86: Handle errors when RIP is set during far
    jumps") introduced a bug that caused the fix to be incomplete. Due to
    incorrect evaluation, far jump to segment with L bit cleared (i.e., 32-bit
    segment) and RIP with any of the high bits set (i.e, RIP[63:32] != 0) set may
    not trigger #GP. As we know, this imposes a security problem.

    In addition, the condition for two warnings was incorrect.

    Fixes: d1442d85cc30ea75f7d399474ca738e0bc96f715
    Reported-by: Dan Carpenter
    Signed-off-by: Nadav Amit
    [Add #ifdef CONFIG_X86_64 to avoid complaints of undefined behavior. - Paolo]
    Signed-off-by: Paolo Bonzini

    Nadav Amit
     
  • A critical 3.18 regression fix from Rob, (thanks!)
    A fix to avoid advertizing modes we can't support from Sinclair
    (welcome Sinclair!)
    and a fix for an incorrect hash key computation from me that is
    completely harmless, but can wait 'til the next merge window if necessary.
    (I can't really bother stable with this one).

    * 'vmwgfx-fixes-3.18' of git://people.freedesktop.org/~thomash/linux:
    drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size.
    drm/vmwgfx: Fix hash key computation
    drm/vmwgfx: fix lock breakage

    Dave Airlie
     
  • Pull staging fixes from Greg KH:
    "Here are some staging driver fixes for 3.18-rc3. Mostly iio and
    comedi driver fixes for issues reported by people.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'staging-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: comedi: fix memory leak / bad pointer freeing for chanlist
    staging: comedi: Kconfig: fix config COMEDI_ADDI_APCI_3120 dependants
    staging: comedi: widen subdevice number argument in ioctl handlers
    staging: rtl8723au: Fix alignment of mac_addr for ether_addr_copy() usage
    drivers/staging/comedi/Kconfig: Let COMEDI_II_PCI20KC depend on HAS_IOMEM
    staging: comedi: (regression) channel list must be set for COMEDI_CMD ioctl
    iio: adc: mxs-lradc: Disable the clock on probe failure
    iio: st_sensors: Fix buffer copy
    staging:iio:ad5933: Drop "raw" from channel names
    staging:iio:ad5933: Fix NULL pointer deref when enabling buffer

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a bunch of USB fixes for 3.18-rc3.

    Mostly usb-serial device ids and gadget fixes for issues that have
    been reported. Full details are in the shortlog.

    All of these have been in linux-next for a while"

    * tag 'usb-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (42 commits)
    usb: chipidea: Fix oops when removing the ci_hdrc module
    usb: gadget: function: Fixed the return value on error path
    usb: dwc2: gadget: disable phy before turning off power regulators
    usb: gadget: function: Remove redundant usb_free_all_descriptors
    usb: dwc3: gadget: Properly initialize LINK TRB
    usb: dwc2: gadget: fix gadget unregistration in udc_stop() function
    usb: dwc2: Bits in bitfield should add up to 32
    usb: dwc2: gadget: sparse warning of context imbalance
    usb: gadget: udc: core: fix kernel oops with soft-connect
    usb: musb: musb_dsps: fix NULL pointer in suspend
    usb: musb: dsps: start OTG timer on resume again
    usb: gadget: loopback: don't queue requests to bogus endpoints
    usb: ffs: fix regression when quirk_ep_out_aligned_size flag is set
    usb: gadget: f_fs: remove redundant ffs_data_get()
    usb: gadget: udc: USB_GADGET_XILINX should depend on HAS_DMA
    Revert "usb: dwc3: dwc3-omap: Disable/Enable only wrapper interrupts in prepare/complete"
    usb: gadget: composite: enable BESL support
    usb: musb: cppi41: restart hrtimer only if not yet done
    usb: dwc3: ep0: fix Data Phase for transfer sizes aligned to wMaxPacketSize
    usb: serial: ftdi_sio: add "bricked" FTDI device PID
    ...

    Linus Torvalds
     
  • The problem is that hardware handled by arm/plat-orion/gpio.c,
    require ack for edge irq, and no ack for level irq.

    The code handle this issue, by two "struct irq_chip_type" per
    one "struct irq_chip_generic". For one "struct irq_chip_generic"
    irq_ack pointer is setted, for another it is NULL.

    But we have only one mask_cache per two "struct irq_chip_type".
    So if we
    1)unmask interrupt A for "edge type" trigger,
    2)unmask interrupt B for "level type" trigger,
    3)unmask interrupt C for "edge type",

    we, because of usage of generic irq_gc_mask_clr_bit/irq_gc_mask_set_bit,
    have hardware configured to trigger interrupt B on "edge type",
    because of shared mask_cache. But kernel think that B is "level type",
    so when interrupt B occur via "edge" reason, we don't ack it,
    and B triggered again and again.

    Signed-off-by: Evgeniy A. Dushistov
    Link: https://lkml.kernel.org/r/20140726155659.GA22977@fifteen
    Signed-off-by: Jason Cooper

    Evgeniy Dushistov