30 Jun, 2014

4 commits

  • Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "Another round of ARM fixes. The largest change here is the L2 changes
    to work around problems for the Armada 37x/380 devices, where most of
    the size comes down to comments rather than code.

    The other significant fix here is for the ptrace code, to ensure that
    rewritten syscalls work as intended. This was pointed out by Kees
    Cook, but Will Deacon reworked the patch to be more elegant.

    The remainder are fairly trivial changes"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8087/1: ptrace: reload syscall number after secure_computing() check
    ARM: 8086/1: Set memblock limit for nommu
    ARM: 8085/1: sa1100: collie: add top boot mtd partition
    ARM: 8084/1: sa1100: collie: revert back to cfi_probe
    ARM: 8080/1: mcpm.h: remove unused variable declaration
    ARM: 8076/1: mm: add support for HW coherent systems in PL310 cache

    Linus Torvalds
     
  • Note that I don't maintain Documentation/ABI/,
    Documentation/devicetree/, or the language translation files.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • These days most people use git to send patches so I have added a section
    about that.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     

29 Jun, 2014

9 commits

  • On the syscall tracing path, we call out to secure_computing() to allow
    seccomp to check the syscall number being attempted. As part of this, a
    SIGTRAP may be sent to the tracer and the syscall could be re-written by
    a subsequent SET_SYSCALL ptrace request. Unfortunately, this new syscall
    is ignored by the current code unless TIF_SYSCALL_TRACE is also set on
    the current thread.

    This patch slightly reworks the enter path of the syscall tracing code
    so that we always reload the syscall number from
    current_thread_info()->syscall after the potential ptrace traps.

    Acked-by: Kees Cook
    Tested-by: Kees Cook
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • Commit 1c2f87c (ARM: 8025/1: Get rid of meminfo) changed find_limits
    to use memblock_get_current_limit for calculating the max_low pfn.
    nommu targets never actually set a limit on memblock though which
    means memblock_get_current_limit will just return the default
    value. Set the memblock_limit to be the end of DDR to make sure
    bounds are calculated correctly.

    Signed-off-by: Laura Abbott
    Signed-off-by: Russell King

    Laura Abbott
     
  • The CFI mapping is now perfect so we can expose the top block, read only.
    There isn't much to read, though, just the sharpsl_params values.

    Signed-off-by: Andrea Adami
    Signed-off-by: Russell King

    Andrea Adami
     
  • Reverts commit d26b17edafc45187c30cae134a5e5429d58ad676
    ARM: sa1100: collie.c: fall back to jedec_probe flash detection

    Unfortunately the detection was challenged on the defective unit used for tests:
    one of the NOR chips did not respond to the CFI query.
    Moreover that bad device needed extra delays on erase-suspend/resume cycles.

    Tested personally on 3 different units and with feedback of two other users.

    Signed-off-by: Andrea Adami
    Signed-off-by: Russell King

    Andrea Adami
     
  • The sync_phys variable has been replaced by link time computation in
    mcpm_head.S before the code was submitted upstream.

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Russell King

    Nicolas Pitre
     
  • When a PL310 cache is used on a system that provides hardware
    coherency, the outer cache sync operation is useless, and can be
    skipped. Moreover, on some systems, it is harmful as it causes
    deadlocks between the Marvell coherency mechanism, the Marvell PCIe
    controller and the Cortex-A9.

    To avoid this, this commit introduces a new Device Tree property
    'arm,io-coherent' for the L2 cache controller node, valid only for the
    PL310 cache. It identifies the usage of the PL310 cache in an I/O
    coherent configuration. Internally, it makes the driver disable the
    outer cache sync operation.

    Note that technically speaking, a fully coherent system wouldn't
    require any of the other .outer_cache operations. However, in
    practice, when booting secondary CPUs, these are not yet coherent, and
    therefore a set of cache maintenance operations are necessary at this
    point. This explains why we keep the other .outer_cache operations and
    only ->sync is disabled.

    While in theory any write to a PL310 register could cause the
    deadlock, in practice, disabling ->sync is sufficient to workaround
    the deadlock, since the other cache maintenance operations are only
    used in very specific situations.

    Contrary to previous versions of this patch, this new version does not
    simply NULL-ify the ->sync member, because the l2c_init_data
    structures are now 'const' and therefore cannot be modified, which is
    a good thing. Therefore, this patch introduces a separate
    l2c_init_data instance, called of_l2c310_coherent_data.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Russell King

    Thomas Petazzoni
     
  • Pull spi fixes from Mark Brown:
    "A few driver specific fixes, the biggest one being a fix for the newly
    added Qualcomm SPI controller driver to make it not use its internal
    chip select due to hardware bugs, replacing it with GPIOs"

    * tag 'spi-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: qup: Remove chip select function
    spi: qup: Fix order of spi_register_master
    spi: sh-sci: fix use-after-free in sh_sci_spi_remove()
    spi/pxa2xx: fix incorrect SW mode chipselect setting for BayTrail LPSS SPI

    Linus Torvalds
     
  • Pull regulator fixes from Mark Brown:
    "Several driver specific fixes here, the palmas fixes being especially
    important for a range of boards - the recent updates to support new
    devices have introduced several regressions"

    * tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: tps65218: Correct the the config register for LDO1
    regulator: tps65218: Add the missing of_node assignment in probe
    regulator: palmas: fix typo in enable_reg calculation
    regulator: bcm590xx: fix vbus name
    regulator: palmas: Fix SMPS enable/disable/is_enabled

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Mostly minor fixes this time around. The highlights include:

    - iscsi-target CHAP authentication fixes to enforce explicit key
    values (Tejas Vaykole + rahul.rane)
    - fix a long-standing OOPs in target-core when a alua configfs
    attribute is accessed after port symlink has been removed.
    (Sebastian Herbszt)
    - fix a v3.10.y iscsi-target regression causing the login reject
    status class/detail to be ignored (Christoph Vu-Brugier)
    - fix a v3.10.y iscsi-target regression to avoid rejecting an
    existing ITT during Data-Out when data-direction is wrong (Santosh
    Kulkarni + Arshad Hussain)
    - fix a iscsi-target related shutdown deadlock on UP kernels (Mikulas
    Patocka)
    - fix a v3.16-rc1 build issue with vhost-scsi + !CONFIG_NET (MST)"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    iscsi-target: fix iscsit_del_np deadlock on unload
    iovec: move memcpy_from/toiovecend to lib/iovec.c
    iscsi-target: Avoid rejecting incorrect ITT for Data-Out
    tcm_loop: Fix memory leak in tcm_loop_submission_work error path
    iscsi-target: Explicily clear login response PDU in exception path
    target: Fix left-over se_lun->lun_sep pointer OOPs
    iscsi-target; Enforce 1024 byte maximum for CHAP_C key value
    iscsi-target: Convert chap_server_compute_md5 to use kstrtoul

    Linus Torvalds
     

28 Jun, 2014

15 commits

  • Mark Brown
     
  • …and 'regulator/fix/tps65218' into regulator-linus

    Mark Brown
     
  • On uniprocessor preemptible kernel, target core deadlocks on unload. The
    following events happen:
    * iscsit_del_np is called
    * it calls send_sig(SIGINT, np->np_thread, 1);
    * the scheduler switches to the np_thread
    * the np_thread is woken up, it sees that kthread_should_stop() returns
    false, so it doesn't terminate
    * the np_thread clears signals with flush_signals(current); and goes back
    to sleep in iscsit_accept_np
    * the scheduler switches back to iscsit_del_np
    * iscsit_del_np calls kthread_stop(np->np_thread);
    * the np_thread is waiting in iscsit_accept_np and it doesn't respond to
    kthread_stop

    The deadlock could be resolved if the administrator sends SIGINT signal to
    the np_thread with killall -INT iscsi_np

    The reproducible deadlock was introduced in commit
    db6077fd0b7dd41dc6ff18329cec979379071f87, but the thread-stopping code was
    racy even before.

    This patch fixes the problem. Using kthread_should_stop to stop the
    np_thread is unreliable, so we test np_thread_state instead. If
    np_thread_state equals ISCSI_NP_THREAD_SHUTDOWN, the thread exits.

    Signed-off-by: Mikulas Patocka
    Cc: stable@vger.kernel.org
    Signed-off-by: Nicholas Bellinger

    Mikulas Patocka
     
  • Pull IOMMU fixes from Joerg Roedel:

    - fix VT-d regression with handling multiple RMRR entries per device

    - fix a small race that was left in the mmu_notifier handling in the
    AMD IOMMUv2 driver

    * tag 'iommu-fixes-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/amd: Fix small race between invalidate_range_end/start
    iommu/vt-d: fix bug in handling multiple RMRRs for the same PCI device

    Linus Torvalds
     
  • Pull x86 fixes from Peter Anvin:
    "A pile of fixes related to the VDSO, EFI and 32-bit badsys handling.

    It turns out that removing the section headers from the VDSO breaks
    gdb, so this puts back most of them. A very simple typo broke
    rt_sigreturn on some versions of glibc, with obviously disastrous
    results. The rest is pretty much fixes for the corresponding fallout.

    The EFI fixes fixes an arithmetic overflow on 32-bit systems and
    quiets some build warnings.

    Finally, when invoking an invalid system call number on x86-32, we
    bypass a bunch of handling, which can make the audit code oops"

    * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi-pstore: Fix an overflow on 32-bit builds
    x86/vdso: Error out in vdso2c if DT_RELA is present
    x86/vdso: Move DISABLE_BRANCH_PROFILING into the vdso makefile
    x86_32, signal: Fix vdso rt_sigreturn
    x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
    x86/vdso: Create .build-id links for unstripped vdso files
    x86/vdso: Remove some redundant in-memory section headers
    x86/vdso: Improve the fake section headers
    x86/vdso2c: Use better macros for ELF bitness
    x86/vdso: Discard the __bug_table section
    efi: Fix compiler warnings (unused, const, type)

    Linus Torvalds
     
  • Pull MIPS fixes from Ralf Baechle:
    "This is dominated by a large number of changes necessary for the MIPS
    BPF code. code. Aside of that there are

    - a fix for the MSC system controller support code.
    - a Turbochannel fix.
    - a recordmcount fix that's MIPS-specific.
    - barrier fixes to smp-cps / pm-cps after unrelated changes elsewhere
    in the kernel.
    - revert support for MSA registers in the signal frames. The
    reverted patch did modify the signal stack frame which of course is
    inacceptable.
    - fix math-emu build breakage with older compilers.
    - some related cleanup.
    - fix Lasat build error if CONFIG_CRC32 isn't set to y by the user"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (27 commits)
    MIPS: Lasat: Fix build error if CRC32 is not enabled.
    TC: Handle device_register() errors.
    MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
    MIPS: bpf: Fix stack space allocation for BPF memwords on MIPS64
    MIPS: BPF: Use 32 or 64-bit load instruction to load an address to register
    MIPS: bpf: Fix PKT_TYPE case for big-endian cores
    MIPS: BPF: Prevent kernel fall over for >=32bit shifts
    MIPS: bpf: Drop update_on_xread and always initialize the X register
    MIPS: bpf: Fix is_range() semantics
    MIPS: bpf: Use pr_debug instead of pr_warn for unhandled opcodes
    MIPS: bpf: Fix return values for VLAN_TAG_PRESENT case
    MIPS: bpf: Use correct mask for VLAN_TAG case
    MIPS: bpf: Fix branch conditional for BPF_J{GT/GE} cases
    MIPS: bpf: Add SEEN_SKB to flags when looking for the PKT_TYPE
    MIPS: bpf: Use 'andi' instead of 'and' for the VLAN cases
    MIPS: bpf: Return error code if the offset is a negative number
    MIPS: bpf: Use the LO register to get division's quotient
    MIPS: mm: uasm: Fix lh micro-assembler instruction
    MIPS: uasm: Add SLT uasm instruction
    MIPS: uasm: Add s3s1s2 instruction builder
    ...

    Linus Torvalds
     
  • Pull ARC fixes from Vineet Gupta:
    "Some SMP changes, a ptrace request for NPTL debugging, bunch of build
    breakages/warnings"

    * tag 'arc-fixes-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [SMP] Enable icache coherency
    ARC: [SMP] Fix IPI IRQ registration
    ARC: Implement ptrace(PTRACE_GET_THREAD_AREA)
    ARC: optimize kernel bss clearing in early boot code
    ARC: Fix build breakage for !CONFIG_ARC_DW2_UNWIND
    ARC: fix build warning in devtree
    ARC: remove checks for CONFIG_ARC_MMU_V4

    Linus Torvalds
     
  • Pull compress bugfix from Greg KH:
    "Here is another lz4 bugfix for 3.16-rc3 that resolves a reported issue
    with that compression algorithm"

    * tag 'compress-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    lz4: fix another possible overrun

    Linus Torvalds
     
  • …kernel/git/konrad/swiotlb

    Pull swiotlb bugfix from Konrad Rzeszutek Wilk:
    "One bug-fix that had been in tree for quite some time. We had assumed
    that the physical address zero was invalid and would fail it. But
    that is not true and on some architectures it is not reserved and
    valid. This fixes it"

    * tag 'stable/for-linus-3.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
    swiotlb: don't assume PA 0 is invalid

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Here includes a few patchset for fixing mostly HD-audio issues in
    addition to a patch assuring the compress API bytes alignment and a
    fix for the die-hard existing race condition at USB-audio
    disconnection. The volume looks big in Realtek HD-audio code, but
    it's just a translation of the fixup tables, and the actual changes
    are rather trivial"

    * tag 'sound-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controller
    ALSA: usb-audio: Fix races at disconnection and PCM closing
    ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13
    ALSA: hda - Make the pin quirk tables use the SND_HDA_PIN_QUIRK macro
    ALSA: hda - Make a SND_HDA_PIN_QUIRK macro
    ALSA: hda - Add pin quirk for Dell XPS 15
    ALSA: hda - hdmi: call overridden init on resume
    ALSA: hda - Fix usage of "model" module parameter
    ALSA: compress: fix the struct alignment to 4 bytes

    Linus Torvalds
     
  • Pull MFD fixes from Lee Jones:
    "Couple of simple fixes due for the v3.16 -rcs"

    * tag 'mfd-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
    mfd: ab8500: Fix dt irq mapping
    mfd: davinci: Voicecodec needs regmap_mmio
    mfd: STw481x: Allow modular build
    mfd: UCB1x00: Enable modular build

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Exynos, i915 and msm fixes and one core fix.

    exynos:
    hdmi power off and mixer issues

    msm:
    iommu, build fixes,

    i915:
    regression races and warning fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (22 commits)
    drm/i915: vlv_prepare_pll is only needed in case of non DSI interfaces
    drm: fix NULL pointer access by wrong ioctl
    drm/exynos: enable vsync interrupt while waiting for vblank
    drm/exynos: soft reset mixer before reconfigure after power-on
    drm/exynos: allow multiple layer updates per vsync for mixer
    drm/i915: Hold the table lock whilst walking the file's idr and counting the objects in debugfs
    drm/i915: BDW: Adding Reserved PCI IDs.
    drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation
    drm/exynos: stop mixer before gating clocks during poweroff
    drm/exynos: set power state variable after enabling clocks and power
    drm/exynos: disable unused windows on apply
    drm/exynos: Fix de-registration ordering
    drm/exynos: change zero to NULL for sparse
    drm/exynos: dpi: Fix NULL pointer dereference with legacy bindings
    drm/exynos: hdmi: fix power order issue
    drm/i915: default to having backlight if VBT not available
    drm/i915: cache hw power well enabled state
    drm/msm: fix IOMMU cleanup for -EPROBE_DEFER
    drm/msm: use PAGE_ALIGNED instead of IS_ALIGNED(PAGE_SIZE)
    drm/msm/hdmi: set hdp clock rate before prepare_enable
    ...

    Linus Torvalds
     
  • ERROR: "memcpy_fromiovecend" [drivers/vhost/vhost_scsi.ko] undefined!

    commit 9f977ef7b671f6169eca78bf40f230fe84b7c7e5
    vhost-scsi: Include prot_bytes into expected data transfer length
    in target-pending makes drivers/vhost/scsi.c call memcpy_fromiovecend().
    This function is not available when CONFIG_NET is not enabled.

    socket.h already includes uio.h, so no callers need updating.

    Reported-by: Randy Dunlap
    Cc: Stephen Rothwell
    Cc: "David S. Miller"
    Signed-off-by: David S. Miller
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Nicholas Bellinger

    Michael S. Tsirkin
     
  • This patch changes iscsit_check_dataout_hdr() to dump the incoming
    Data-Out payload when the received ITT is not associated with a
    WRITE, instead of calling iscsit_reject_cmd() for the non WRITE
    ITT descriptor.

    This addresses a bug where an initiator sending an Data-Out for
    an ITT associated with a READ would end up generating a reject
    for the READ, eventually resulting in list corruption.

    Reported-by: Santosh Kulkarni
    Reported-by: Arshad Hussain
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • There is one other possible overrun in the lz4 code as implemented by
    Linux at this point in time (which differs from the upstream lz4
    codebase, but will get synced at in a future kernel release.) As
    pointed out by Don, we also need to check the overflow in the data
    itself.

    While we are at it, replace the odd error return value with just a
    "simple" -1 value as the return value is never used for anything other
    than a basic "did this work or not" check.

    Reported-by: "Don A. Bailey"
    Reported-by: Willy Tarreau
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

27 Jun, 2014

10 commits

  • * Fix a few compiler warnings (one being a real bug) in the arm64 EFI
    code that lots of people are running into and reporting - Catalin Marinas

    * Use a cast to avoid a 32-bit overflow issue when generating pstore
    filenames - Andrzej Zaborowski

    Signed-off-by: H. Peter Anvin

    H. Peter Anvin
     
  • In generic_id the long int timestamp is multiplied by 100000 and needs
    an explicit cast to u64.

    Without that the id in the resulting pstore filename is wrong and
    userspace may have problems parsing it, but more importantly files in
    pstore can never be deleted and may fill the EFI flash (brick device?).
    This happens because when generic pstore code wants to delete a file,
    it passes the id to the EFI backend which reinterpretes it and a wrong
    variable name is attempted to be deleted. There's no error message but
    after remounting pstore, deleted files would reappear.

    Signed-off-by: Andrew Zaborowski
    Acked-by: David Rientjes
    Cc:
    Signed-off-by: Matt Fleming

    Andrzej Zaborowski
     
  • Fixes for 3.16-rc2; regressions, races, and warns; Broadwell PCI IDs.

    * tag 'drm-intel-fixes-2014-06-26' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: vlv_prepare_pll is only needed in case of non DSI interfaces
    drm/i915: Hold the table lock whilst walking the file's idr and counting the objects in debugfs
    drm/i915: BDW: Adding Reserved PCI IDs.
    drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation
    drm/i915: default to having backlight if VBT not available
    drm/i915: cache hw power well enabled state

    Dave Airlie
     
  • This patch fixes a tcm_loop_cmd descriptor memory leak in the
    tcm_loop_submission_work() error path, and would result in
    warnings about leaked tcm_loop_cmd_cache objects at module
    unload time.

    Go ahead and invoke kmem_cache_free() to release tl_cmd back to
    tcm_loop_cmd_cache before calling sc->scsi_done().

    Reported-by: Sebastian Herbszt
    Tested-by: Sebastian Herbszt
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch adds a explicit memset to the login response PDU
    exception path in iscsit_tx_login_rsp().

    This addresses a regression bug introduced in commit baa4d64b
    where the initiator would end up not receiving the login
    response and associated status class + detail, before closing
    the login connection.

    Reported-by: Christophe Vu-Brugier
    Tested-by: Christophe Vu-Brugier
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch fixes a left-over se_lun->lun_sep pointer OOPs when one
    of the /sys/kernel/config/target/$FABRIC/$WWPN/$TPGT/lun/$LUN/alua*
    attributes is accessed after the $DEVICE symlink has been removed.

    To address this bug, go ahead and clear se_lun->lun_sep memory in
    core_dev_unexport(), so that the existing checks for show/store
    ALUA attributes in target_core_fabric_configfs.c work as expected.

    Reported-by: Sebastian Herbszt
    Tested-by: Sebastian Herbszt
    Cc: stable@vger.kernel.org
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch adds a check in chap_server_compute_md5() to enforce a
    1024 byte maximum for the CHAP_C key value following the requirement
    in RFC-3720 Section 11.1.4:

    "..., C and R are large-binary-values and their binary length (not
    the length of the character string that represents them in encoded
    form) MUST not exceed 1024 bytes."

    Reported-by: rahul.rane
    Tested-by: rahul.rane
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch converts chap_server_compute_md5() from simple_strtoul() to
    kstrtoul usage().

    This addresses the case where a empty 'CHAP_I=' key value received during
    mutual authentication would be converted to a '0' by simple_strtoul(),
    instead of failing the login attempt.

    Reported-by: Tejas Vaykole
    Tested-by: Tejas Vaykole
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • Pull block fixes from Jens Axboe:
    "A small collection of fixes/changes for the current series. This
    contains:

    - Removal of dead code from Gu Zheng.

    - Revert of two bad fixes that went in earlier in this round, marking
    things as __init that were not purely used from init.

    - A fix for blk_mq_start_hw_queue() using the __blk_mq_run_hw_queue(),
    which could place us wrongly. Make it use the non __ variant,
    which handles cases where we are called from the wrong CPU set.
    From me.

    - A fix for drbd, which allocates discard requests without room for
    the SCSI payload. From Lars Ellenberg.

    - A fix for user-after-free in the blkcg code from Tejun.

    - Addition of limiting gaps in SG lists, if the hardware needs it.
    This is the last pre-req patch for blk-mq to enable the full NVMe
    conversion. Could wait until 3.17, but it's simple enough so would
    be nice to have everything we need for the NVMe port in the 3.17
    release. From me"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    drbd: fix NULL pointer deref in blk_add_request_payload
    blk-mq: blk_mq_start_hw_queue() should use blk_mq_run_hw_queue()
    block: add support for limiting gaps in SG lists
    bio: remove unused macro bip_vec_idx()
    Revert "block: add __init to elv_register"
    Revert "block: add __init to blkcg_policy_register"
    blkcg: fix use-after-free in __blkg_release_rcu() by making blkcg_gq refcnt an atomic_t
    floppy: format block0 read error message properly

    Linus Torvalds
     
  • blkdev_read_iter() wants to cap the iov_iter by the amount of data
    remaining to the end of device. That's what iov_iter_truncate() is for
    (trim iter->count if it's above the given limit). So far, so good, but
    the argument of iov_iter_truncate() is size_t, so on 32bit boxen (in
    case of a large device) we end up with that upper limit truncated down
    to 32 bits *before* comparing it with iter->count.

    Easily fixed by making iov_iter_truncate() take 64bit argument - it does
    the right thing after such change (we only reach the assignment in there
    when the current value of iter->count is greater than the limit, i.e.
    for anything that would get truncated we don't reach the assignment at
    all) and that argument is not the new value of iter->count - it's an
    upper limit for such.

    The overhead of passing u64 is not an issue - the thing is inlined, so
    callers passing size_t won't pay any penalty.

    Reported-and-tested-by: Theodore Tso
    Signed-off-by: Al Viro
    Tested-by: Alan Cox
    Tested-by: Bruno Wolff III
    Signed-off-by: Linus Torvalds

    Al Viro
     

26 Jun, 2014

2 commits

  • For Intel Haswell/Broadwell display HD-A controller, the 24MHz HD-A link BCLK
    is converted from Core Display Clock (CDCLK): BCLK = CDCLK * M / N
    And there are two registers EM4 and EM5 to program M, N value respectively.
    The EM4/EM5 values will be lost and when the display power well is disabled.

    BIOS programs CDCLK selected by OEM and EM4/EM5, but BIOS has no idea about
    display power well on/off at runtime. So the M/N can be wrong if non-default
    CDCLK is used when the audio controller resumes, which results in an invalid
    BCLK and abnormal audio playback rate. So this patch saves and restores valid
    M/N values on controller suspend/resume.

    And 'struct hda_intel' is defined to contain standard HD-A 'struct azx' and
    Intel specific fields, as Takashi suggested.

    Signed-off-by: Mengdong Lin
    Cc:
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • Kconfig doesn't select CRC32 so it's possible to build a Lasat kernel
    without CONFIG_CRC32 resulting in a build error:

    LD vmlinux
    arch/mips/built-in.o: In function `lasat_init_board_info':
    (.text+0x22c): undefined reference to `crc32_le'
    arch/mips/built-in.o: In function `lasat_write_eeprom_info':
    (.text+0x7fc): undefined reference to `crc32_le'
    make: *** [vmlinux] Error 1

    Signed-off-by: Ralf Baechle

    Ralf Baechle