Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1347712 > unrolled thread

[PATCH 3.10 00/80] 3.10.99-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2016-03-02 03:40 +0100
Last post2016-03-02 18:30 +0100
Articles 20 on this page of 23 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 3.10 00/80] 3.10.99-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 08/80] dm thin metadata: fix bug when taking a metadata snapshot Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 02/80] drm/ast: Initialized data needed to map fbdev memory Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 23/80] dts: vt8500: Add SDHC node to DTS file for WM8650 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 07/80] efi: Disable interrupts around EFI calls, not in the epilog/prolog calls Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 31/80] mac: validate mac_partition is within sector Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 14/80] proc: Fix ptrace-based permission checks for accessing task maps Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 29/80] megaraid_sas : SMAP restriction--do not access user memory from IOCTL code Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 32/80] ARC: dw2 unwind: Remove falllback linear search thru FDE entries Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 11/80] USB: cp210x: add IDs for GE B650V3 and B850V3 boards Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 41/80] dm btree: fix bufio buffer leaks in dm_btree_del() error path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 27/80] wm831x_power: Use IRQF_ONESHOT to request threaded IRQs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 10/80] can: ems_usb: Fix possible tx overflow Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 01/80] tracepoints: Do not trace when cpu is offline Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 06/80] drm/radeon: fix hotplug race at startup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 26/80] devres: fix a for loop bounds check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 30/80] mmc: remove bondage between REQ_META and reliable write Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 15/80] iw_cxgb3: Fix incorrectly returning error on success Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 35/80] virtio: fix memory leak of virtio ida cache layers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:40 +0100
    [PATCH 3.10 04/80] bcache: unregister reboot notifier if bcache fails to unregister device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 03:50 +0100
    Re: [PATCH 3.10 00/80] 3.10.99-stable review Guenter Roeck <linux@roeck-us.net> - 2016-03-02 15:40 +0100
      Re: [PATCH 3.10 00/80] 3.10.99-stable review Willy Tarreau <w@1wt.eu> - 2016-03-02 16:50 +0100
        Re: [PATCH 3.10 00/80] 3.10.99-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-03-02 18:30 +0100

Page 1 of 2  [1] 2  Next page →


#1347712 — [PATCH 3.10 00/80] 3.10.99-stable review

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 00/80] 3.10.99-stable review
Message-ID<r82dd-7Iy-17@gated-at.bofh.it>
This is the start of the stable review cycle for the 3.10.99 release.
There are 80 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Thu Mar  3 23:43:32 UTC 2016.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.10.99-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 3.10.99-rc1

Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted.

Al Viro <viro@zeniv.linux.org.uk>
    do_last(): don't let a bogus return value from ->open() et.al. to confuse us

Simon Guinot <simon.guinot@sequanux.org>
    kernel/resource.c: fix muxed resource handling in __request_region()

Stefan Hajnoczi <stefanha@redhat.com>
    sunrpc/cache: fix off-by-one in qword_get()

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    tracing: Fix showing function event in available_events

Christian Borntraeger <borntraeger@de.ibm.com>
    KVM: async_pf: do not warn on page allocation failures

Christoph Hellwig <hch@lst.de>
    nfs: fix nfs_size_to_loff_t

Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    PCI/AER: Flush workqueue on device remove to avoid use-after-free

Tejun Heo <tj@kernel.org>
    libata: fix sff host state machine locking while polling

Tejun Heo <tj@kernel.org>
    Revert "workqueue: make sure delayed work run in local cpu"

Johannes Berg <johannes.berg@intel.com>
    rfkill: fix rfkill_fop_read wait_event usage

Oliver Neukum <oneukum@suse.com>
    cdc-acm:exclude Samsung phone 04e8:685d

Ilya Dryomov <idryomov@gmail.com>
    libceph: don't bail early from try_read() when skipping a message

Mike Marciniszyn <mike.marciniszyn@intel.com>
    IB/qib: fix mcast detach when qp not attached

Rasmus Villemoes <linux@rasmusvillemoes.dk>
    drm/radeon: use post-decrement in error handling

Nicolai Hähnle <nicolai.haehnle@amd.com>
    drm/radeon: hold reference to fences in radeon_sa_bo_new

Alex Deucher <alexander.deucher@amd.com>
    drm/radeon: clean up fujitsu quirks

Rob Clark <robdclark@gmail.com>
    drm/vmwgfx: respect 'nomodeset'

Dmitry V. Levin <ldv@altlinux.org>
    sparc64: fix incorrect sign extension in sys_sparc64_personality

Linus Walleij <linus.walleij@linaro.org>
    mmc: mmci: fix an ages old detection error

Richard Cochran <richardcochran@gmail.com>
    posix-clock: Fix return code on the poll method's error path

Mikulas Patocka <mpatocka@redhat.com>
    dm snapshot: fix hung bios when copy error occurs

Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    tda1004x: only update the frontend properties if locked

Antonio Ospite <ao2@ao2.it>
    gspca: ov534/topro: prevent a division by 0

Malcolm Priestley <tvboxspy@gmail.com>
    media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode

Vegard Nossum <vegard.nossum@oracle.com>
    uml: fix hostfs mknod()

Vegard Nossum <vegard.nossum@oracle.com>
    uml: flush stdout before forking

Stefan Haberland <stefan.haberland@de.ibm.com>
    s390/dasd: fix refcount for PAV reassignment

Stefan Haberland <stefan.haberland@de.ibm.com>
    s390/dasd: prevent incorrect length error under z/VM after PAV changes

Ard Biesheuvel <ard.biesheuvel@linaro.org>
    s390: fix normalization bug in exception table sorting

Filipe Manana <fdmanana@suse.com>
    Btrfs: fix number of transaction units required to create symlink

Filipe Manana <fdmanana@suse.com>
    Btrfs: send, don't BUG_ON() when an empty symlink is found

Josef Bacik <jbacik@fb.com>
    Btrfs: igrab inode in writepage

Anand Jain <anand.jain@oracle.com>
    Btrfs: add missing brelse when superblock checksum fails

Russell King <rmk+kernel@arm.linux.org.uk>
    scripts: recordmcount: break hardlinks

James Bottomley <James.Bottomley@HansenPartnership.com>
    ses: fix additional element traversal bug

James Bottomley <James.Bottomley@HansenPartnership.com>
    ses: Fix problems with simple enclosures

Johannes Berg <johannes.berg@intel.com>
    rfkill: copy the name into the rfkill struct

Kirill A. Shutemov <kirill@shutemov.name>
    vgaarb: fix signal handling in vga_get()

Joe Thornber <ejt@redhat.com>
    dm btree: fix bufio buffer leaks in dm_btree_del() error path

Mikulas Patocka <mpatocka@redhat.com>
    sata_sil: disable trim

Sasha Levin <sasha.levin@oracle.com>
    sched/core: Remove false-positive warning from wake_up_process()

Mirza Krak <mirza.krak@hostmobility.com>
    can: sja1000: clear interrupts on start

Quentin Casasnovas <quentin.casasnovas@oracle.com>
    RDS: fix race condition when sending a message on unbound socket

Johannes Berg <johannes.berg@intel.com>
    mac80211: mesh: fix call_rcu() usage

Suman Anna <s-anna@ti.com>
    virtio: fix memory leak of virtio ida cache layers

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    ring-buffer: Update read stamp with first real commit on page

Jan Kara <jack@suse.cz>
    vfs: Avoid softlockups with sendfile(2)

Vineet Gupta <vgupta@synopsys.com>
    ARC: dw2 unwind: Remove falllback linear search thru FDE entries

Kees Cook <keescook@chromium.org>
    mac: validate mac_partition is within sector

Luca Porzio <lporzio@micron.com>
    mmc: remove bondage between REQ_META and reliable write

sumit.saxena@avagotech.com <sumit.saxena@avagotech.com>
    megaraid_sas : SMAP restriction--do not access user memory from IOCTL code

sumit.saxena@avagotech.com <sumit.saxena@avagotech.com>
    megaraid_sas: Do not use PAGE_SIZE for max_sectors

Valentin Rothberg <valentinrothberg@gmail.com>
    wm831x_power: Use IRQF_ONESHOT to request threaded IRQs

Dan Carpenter <dan.carpenter@oracle.com>
    devres: fix a for loop bounds check

Andrey Ryabinin <aryabinin@virtuozzo.com>
    lockd: create NSM handles per net namespace

Roman Volkov <rvolkov@v1ros.org>
    clocksource/drivers/vt8500: Increase the minimum delta

Roman Volkov <rvolkov@v1ros.org>
    dts: vt8500: Add SDHC node to DTS file for WM8650

Thomas Gleixner <tglx@linutronix.de>
    genirq: Prevent chip buslock deadlock

Hannes Frederic Sowa <hannes@stressinduktion.org>
    unix: correctly track in-flight fds in sending process user_struct

Olga Kornievskaia <aglo@umich.edu>
    Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount

Christophe Leroy <christophe.leroy@c-s.fr>
    splice: sendfile() at once fails for big files

James Hogan <james.hogan@imgtec.com>
    MIPS: KVM: Uninit VCPU in vcpu_create error path

James Hogan <james.hogan@imgtec.com>
    MIPS: KVM: Fix CACHE immediate offset sign extension

James Hogan <james.hogan@imgtec.com>
    MIPS: KVM: Fix ASID restoration logic

Hariprasad S <hariprasad@chelsio.com>
    iw_cxgb3: Fix incorrectly returning error on success

Corey Wright <undefined@pobox.com>
    proc: Fix ptrace-based permission checks for accessing task maps

Bjørn Mork <bjorn@mork.no>
    USB: option: add "4G LTE usb-modem U901"

Andrey Skvortsov <andrej.skvortzov@gmail.com>
    USB: option: add support for SIM7100E

Ken Lin <ken.lin@advantech.com.tw>
    USB: cp210x: add IDs for GE B650V3 and B850V3 boards

Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
    can: ems_usb: Fix possible tx overflow

Nikolay Borisov <kernel@kyup.com>
    dm thin: fix race condition when destroying thin pool workqueue

Joe Thornber <ejt@redhat.com>
    dm thin metadata: fix bug when taking a metadata snapshot

Ingo Molnar <mingo@kernel.org>
    efi: Disable interrupts around EFI calls, not in the epilog/prolog calls

Dave Airlie <airlied@redhat.com>
    drm/radeon: fix hotplug race at startup

Kamal Mostafa <kamal@canonical.com>
    tools: Add a "make all" rule

Zheng Liu <wenqing.lz@taobao.com>
    bcache: unregister reboot notifier if bcache fails to unregister device

Andrey Vagin <avagin@openvz.org>
    netfilter: nf_conntrack: fix RCU race in nf_conntrack_find_get

Egbert Eich <eich@suse.de>
    drm/ast: Initialized data needed to map fbdev memory

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    tracepoints: Do not trace when cpu is offline


-------------

Diffstat:

 Makefile                                    |  4 ++--
 arch/arc/kernel/unwind.c                    | 37 ++++-------------------------
 arch/arm/boot/dts/wm8650.dtsi               |  9 +++++++
 arch/mips/kvm/kvm_locore.S                  | 16 ++++++++-----
 arch/mips/kvm/kvm_mips.c                    |  5 +++-
 arch/mips/kvm/kvm_mips_emul.c               |  2 +-
 arch/s390/mm/extable.c                      |  8 +++++--
 arch/sparc/kernel/sys_sparc_64.c            |  2 +-
 arch/um/os-Linux/start_up.c                 |  2 ++
 arch/x86/platform/efi/efi.c                 |  7 ++++++
 arch/x86/platform/efi/efi_32.c              | 11 +++------
 arch/x86/platform/efi/efi_64.c              |  3 ---
 block/partitions/mac.c                      | 10 +++++---
 drivers/ata/libata-sff.c                    | 32 +++++++++----------------
 drivers/ata/sata_sil.c                      |  3 +++
 drivers/clocksource/vt8500_timer.c          |  6 +++--
 drivers/gpu/drm/ast/ast_drv.h               |  1 +
 drivers/gpu/drm/ast/ast_fb.c                |  7 ++++++
 drivers/gpu/drm/ast/ast_main.c              |  1 +
 drivers/gpu/drm/ast/ast_mode.c              |  2 ++
 drivers/gpu/drm/radeon/radeon_atombios.c    | 12 +++-------
 drivers/gpu/drm/radeon/radeon_irq_kms.c     |  5 ++++
 drivers/gpu/drm/radeon/radeon_sa.c          |  5 ++++
 drivers/gpu/drm/radeon/radeon_ttm.c         |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c         |  7 ++++++
 drivers/gpu/vga/vgaarb.c                    |  6 +++--
 drivers/infiniband/hw/cxgb3/iwch_cm.c       |  4 ++--
 drivers/infiniband/hw/qib/qib_verbs_mcast.c | 35 ++++++++++++---------------
 drivers/md/bcache/super.c                   |  4 +++-
 drivers/md/dm-exception-store.h             |  2 +-
 drivers/md/dm-snap-persistent.c             |  5 +++-
 drivers/md/dm-snap-transient.c              |  4 ++--
 drivers/md/dm-snap.c                        | 20 ++++------------
 drivers/md/dm-thin-metadata.c               |  6 +++++
 drivers/md/dm-thin.c                        |  2 +-
 drivers/md/persistent-data/dm-btree.c       | 16 ++++++++++++-
 drivers/media/dvb-core/dvb_frontend.c       |  6 ++---
 drivers/media/dvb-frontends/tda1004x.c      |  9 +++++++
 drivers/media/usb/gspca/ov534.c             |  9 +++++--
 drivers/media/usb/gspca/topro.c             |  6 ++++-
 drivers/mmc/card/block.c                    | 11 +++------
 drivers/mmc/host/mmci.c                     |  2 +-
 drivers/net/can/sja1000/sja1000.c           |  3 +++
 drivers/net/can/usb/ems_usb.c               | 14 +++++++----
 drivers/pci/pcie/aer/aerdrv.c               |  4 +---
 drivers/pci/pcie/aer/aerdrv.h               |  1 -
 drivers/pci/pcie/aer/aerdrv_core.c          |  2 --
 drivers/pci/xen-pcifront.c                  | 10 ++++----
 drivers/power/wm831x_power.c                |  6 ++---
 drivers/s390/block/dasd_alias.c             | 23 +++++++++++++-----
 drivers/scsi/megaraid/megaraid_sas.h        |  2 ++
 drivers/scsi/megaraid/megaraid_sas_base.c   | 15 +++++++++---
 drivers/scsi/ses.c                          | 30 +++++++++++++++++++++--
 drivers/usb/class/cdc-acm.c                 |  5 ++++
 drivers/usb/serial/cp210x.c                 |  2 ++
 drivers/usb/serial/option.c                 |  9 +++++++
 drivers/virtio/virtio.c                     |  1 +
 fs/btrfs/disk-io.c                          |  1 +
 fs/btrfs/inode.c                            | 21 +++++++++++++---
 fs/btrfs/send.c                             | 16 ++++++++++++-
 fs/hostfs/hostfs_kern.c                     |  4 +---
 fs/lockd/host.c                             |  7 +++---
 fs/lockd/mon.c                              | 36 +++++++++++++++++-----------
 fs/lockd/netns.h                            |  1 +
 fs/lockd/svc.c                              |  1 +
 fs/lockd/svc4proc.c                         |  2 +-
 fs/lockd/svcproc.c                          |  2 +-
 fs/namei.c                                  |  4 ++++
 fs/nfs/nfs4state.c                          |  2 +-
 fs/proc/task_mmu.c                          |  4 ++--
 fs/proc/task_nommu.c                        |  2 +-
 fs/splice.c                                 | 13 +++++++++-
 include/linux/enclosure.h                   |  4 ++++
 include/linux/lockd/lockd.h                 |  9 ++++---
 include/linux/nfs_fs.h                      |  4 +---
 include/linux/tracepoint.h                  |  6 +++++
 include/net/af_unix.h                       |  4 ++--
 include/net/scm.h                           |  1 +
 kernel/irq/manage.c                         |  6 ++---
 kernel/resource.c                           |  5 ++--
 kernel/sched/core.c                         |  1 -
 kernel/time/posix-clock.c                   |  4 ++--
 kernel/trace/ring_buffer.c                  | 12 ++++------
 kernel/trace/trace_events.c                 |  3 ++-
 kernel/workqueue.c                          |  8 +++----
 lib/devres.c                                |  2 +-
 net/ceph/messenger.c                        |  4 ++--
 net/core/scm.c                              |  7 ++++++
 net/mac80211/mesh_pathtbl.c                 |  8 +++----
 net/netfilter/nf_conntrack_core.c           | 21 ++++++++++++----
 net/rds/connection.c                        |  6 -----
 net/rds/send.c                              |  4 +++-
 net/rfkill/core.c                           | 22 ++++++-----------
 net/sunrpc/cache.c                          |  2 +-
 net/unix/af_unix.c                          |  4 ++--
 net/unix/garbage.c                          |  8 +++----
 scripts/recordmcount.c                      | 14 +++++++++++
 tools/Makefile                              |  8 +++++++
 virt/kvm/async_pf.c                         |  2 +-
 99 files changed, 486 insertions(+), 282 deletions(-)

[toc] | [next] | [standalone]


#1347713 — [PATCH 3.10 08/80] dm thin metadata: fix bug when taking a metadata snapshot

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 08/80] dm thin metadata: fix bug when taking a metadata snapshot
Message-ID<r84RI-1dc-27@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Joe Thornber <ejt@redhat.com>

commit 49e99fc717f624aa75ca755d6e7bc029efd3f0e9 upstream.

When you take a metadata snapshot the btree roots for the mapping and
details tree need to have their reference counts incremented so they
persist for the lifetime of the metadata snap.

The roots being incremented were those currently written in the
superblock, which could possibly be out of date if concurrent IO is
triggering new mappings, breaking of sharing, etc.

Fix this by performing a commit with the metadata lock held while taking
a metadata snapshot.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-thin-metadata.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -1191,6 +1191,12 @@ static int __reserve_metadata_snap(struc
 	dm_block_t held_root;
 
 	/*
+	 * We commit to ensure the btree roots which we increment in a
+	 * moment are up to date.
+	 */
+	__commit_transaction(pmd);
+
+	/*
 	 * Copy the superblock.
 	 */
 	dm_sm_inc_block(pmd->metadata_sm, THIN_SUPERBLOCK_LOCATION);

[toc] | [prev] | [next] | [standalone]


#1347714 — [PATCH 3.10 02/80] drm/ast: Initialized data needed to map fbdev memory

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 02/80] drm/ast: Initialized data needed to map fbdev memory
Message-ID<r84RI-1dc-29@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Egbert Eich <eich@suse.de>

commit 28fb4cb7fa6f63dc2fbdb5f2564dcbead8e3eee0 upstream.

Due to a missing initialization there was no way to map fbdev memory.
Thus for example using the Xserver with the fbdev driver failed.
This fix adds initialization for fix.smem_start and fix.smem_len
in the fb_info structure, which fixes this problem.

Requested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Egbert Eich <eich@suse.de>
[pulled from SuSE tree by me - airlied]
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/ast/ast_drv.h  |    1 +
 drivers/gpu/drm/ast/ast_fb.c   |    7 +++++++
 drivers/gpu/drm/ast/ast_main.c |    1 +
 drivers/gpu/drm/ast/ast_mode.c |    2 ++
 4 files changed, 11 insertions(+)

--- a/drivers/gpu/drm/ast/ast_drv.h
+++ b/drivers/gpu/drm/ast/ast_drv.h
@@ -296,6 +296,7 @@ int ast_framebuffer_init(struct drm_devi
 int ast_fbdev_init(struct drm_device *dev);
 void ast_fbdev_fini(struct drm_device *dev);
 void ast_fbdev_set_suspend(struct drm_device *dev, int state);
+void ast_fbdev_set_base(struct ast_private *ast, unsigned long gpu_addr);
 
 struct ast_bo {
 	struct ttm_buffer_object bo;
--- a/drivers/gpu/drm/ast/ast_fb.c
+++ b/drivers/gpu/drm/ast/ast_fb.c
@@ -366,3 +366,10 @@ void ast_fbdev_set_suspend(struct drm_de
 
 	fb_set_suspend(ast->fbdev->helper.fbdev, state);
 }
+
+void ast_fbdev_set_base(struct ast_private *ast, unsigned long gpu_addr)
+{
+	ast->fbdev->helper.fbdev->fix.smem_start =
+		ast->fbdev->helper.fbdev->apertures->ranges[0].base + gpu_addr;
+	ast->fbdev->helper.fbdev->fix.smem_len = ast->vram_size - gpu_addr;
+}
--- a/drivers/gpu/drm/ast/ast_main.c
+++ b/drivers/gpu/drm/ast/ast_main.c
@@ -359,6 +359,7 @@ int ast_driver_load(struct drm_device *d
 	dev->mode_config.min_height = 0;
 	dev->mode_config.preferred_depth = 24;
 	dev->mode_config.prefer_shadow = 1;
+	dev->mode_config.fb_base = pci_resource_start(ast->dev->pdev, 0);
 
 	if (ast->chip == AST2100 ||
 	    ast->chip == AST2200 ||
--- a/drivers/gpu/drm/ast/ast_mode.c
+++ b/drivers/gpu/drm/ast/ast_mode.c
@@ -509,6 +509,8 @@ static int ast_crtc_do_set_base(struct d
 		ret = ttm_bo_kmap(&bo->bo, 0, bo->bo.num_pages, &bo->kmap);
 		if (ret)
 			DRM_ERROR("failed to kmap fbcon\n");
+		else
+			ast_fbdev_set_base(ast, gpu_addr);
 	}
 	ast_bo_unreserve(bo);
 

[toc] | [prev] | [next] | [standalone]


#1347717 — [PATCH 3.10 23/80] dts: vt8500: Add SDHC node to DTS file for WM8650

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 23/80] dts: vt8500: Add SDHC node to DTS file for WM8650
Message-ID<r84RI-1dc-35@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roman Volkov <rvolkov@v1ros.org>

commit 0f090bf14e51e7eefb71d9d1c545807f8b627986 upstream.

Since WM8650 has the same 'WMT' SDHC controller as WM8505, and the driver
is already in the kernel, this node enables the controller support for
WM8650

Signed-off-by: Roman Volkov <rvolkov@v1ros.org>
Reviewed-by: Alexey Charkov <alchark@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/boot/dts/wm8650.dtsi |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/arch/arm/boot/dts/wm8650.dtsi
+++ b/arch/arm/boot/dts/wm8650.dtsi
@@ -130,6 +130,15 @@
 			interrupts = <43>;
 		};
 
+		sdhc@d800a000 {
+			compatible = "wm,wm8505-sdhc";
+			reg = <0xd800a000 0x400>;
+			interrupts = <20>, <21>;
+			clocks = <&clksdhc>;
+			bus-width = <4>;
+			sdon-inverted;
+		};
+
 		fb: fb@d8050800 {
 			compatible = "wm,wm8505-fb";
 			reg = <0xd8050800 0x200>;

[toc] | [prev] | [next] | [standalone]


#1347718 — [PATCH 3.10 07/80] efi: Disable interrupts around EFI calls, not in the epilog/prolog calls

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 07/80] efi: Disable interrupts around EFI calls, not in the epilog/prolog calls
Message-ID<r84RJ-1dc-37@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ingo Molnar <mingo@kernel.org>

commit 23a0d4e8fa6d3a1d7fb819f79bcc0a3739c30ba9 upstream.

Tapasweni Pathak reported that we do a kmalloc() in efi_call_phys_prolog()
on x86-64 while having interrupts disabled, which is a big no-no, as
kmalloc() can sleep.

Solve this by removing the irq disabling from the prolog/epilog calls
around EFI calls: it's unnecessary, as in this stage we are single
threaded in the boot thread, and we don't ever execute this from
interrupt contexts.

Reported-by: Tapasweni Pathak <tapaswenipathak@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
[ luis: backported to 3.10: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/platform/efi/efi.c    |    7 +++++++
 arch/x86/platform/efi/efi_32.c |   11 +++--------
 arch/x86/platform/efi/efi_64.c |    3 ---
 3 files changed, 10 insertions(+), 11 deletions(-)

--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -250,12 +250,19 @@ static efi_status_t __init phys_efi_set_
 	efi_memory_desc_t *virtual_map)
 {
 	efi_status_t status;
+	unsigned long flags;
 
 	efi_call_phys_prelog();
+
+	/* Disable interrupts around EFI calls: */
+	local_irq_save(flags);
 	status = efi_call_phys4(efi_phys.set_virtual_address_map,
 				memory_map_size, descriptor_size,
 				descriptor_version, virtual_map);
+	local_irq_restore(flags);
+
 	efi_call_phys_epilog();
+
 	return status;
 }
 
--- a/arch/x86/platform/efi/efi_32.c
+++ b/arch/x86/platform/efi/efi_32.c
@@ -33,19 +33,16 @@
 
 /*
  * To make EFI call EFI runtime service in physical addressing mode we need
- * prelog/epilog before/after the invocation to disable interrupt, to
- * claim EFI runtime service handler exclusively and to duplicate a memory in
- * low memory space say 0 - 3G.
+ * prolog/epilog before/after the invocation to claim the EFI runtime service
+ * handler exclusively and to duplicate a memory mapping in low memory space,
+ * say 0 - 3G.
  */
 
-static unsigned long efi_rt_eflags;
 
 void efi_call_phys_prelog(void)
 {
 	struct desc_ptr gdt_descr;
 
-	local_irq_save(efi_rt_eflags);
-
 	load_cr3(initial_page_table);
 	__flush_tlb_all();
 
@@ -64,6 +61,4 @@ void efi_call_phys_epilog(void)
 
 	load_cr3(swapper_pg_dir);
 	__flush_tlb_all();
-
-	local_irq_restore(efi_rt_eflags);
 }
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -40,7 +40,6 @@
 #include <asm/fixmap.h>
 
 static pgd_t *save_pgd __initdata;
-static unsigned long efi_flags __initdata;
 
 static void __init early_code_mapping_set_exec(int executable)
 {
@@ -66,7 +65,6 @@ void __init efi_call_phys_prelog(void)
 	int n_pgds;
 
 	early_code_mapping_set_exec(1);
-	local_irq_save(efi_flags);
 
 	n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT), PGDIR_SIZE);
 	save_pgd = kmalloc(n_pgds * sizeof(pgd_t), GFP_KERNEL);
@@ -90,7 +88,6 @@ void __init efi_call_phys_epilog(void)
 		set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]);
 	kfree(save_pgd);
 	__flush_tlb_all();
-	local_irq_restore(efi_flags);
 	early_code_mapping_set_exec(0);
 }
 

[toc] | [prev] | [next] | [standalone]


#1347719 — [PATCH 3.10 31/80] mac: validate mac_partition is within sector

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 31/80] mac: validate mac_partition is within sector
Message-ID<r84RJ-1dc-39@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <keescook@chromium.org>

commit 02e2a5bfebe99edcf9d694575a75032d53fe1b73 upstream.

If md->signature == MAC_DRIVER_MAGIC and md->block_size == 1023, a single
512 byte sector would be read (secsize / 512). However the partition
structure would be located past the end of the buffer (secsize % 512).

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 block/partitions/mac.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

--- a/block/partitions/mac.c
+++ b/block/partitions/mac.c
@@ -32,7 +32,7 @@ int mac_partition(struct parsed_partitio
 	Sector sect;
 	unsigned char *data;
 	int slot, blocks_in_map;
-	unsigned secsize;
+	unsigned secsize, datasize, partoffset;
 #ifdef CONFIG_PPC_PMAC
 	int found_root = 0;
 	int found_root_goodness = 0;
@@ -50,10 +50,14 @@ int mac_partition(struct parsed_partitio
 	}
 	secsize = be16_to_cpu(md->block_size);
 	put_dev_sector(sect);
-	data = read_part_sector(state, secsize/512, &sect);
+	datasize = round_down(secsize, 512);
+	data = read_part_sector(state, datasize / 512, &sect);
 	if (!data)
 		return -1;
-	part = (struct mac_partition *) (data + secsize%512);
+	partoffset = secsize % 512;
+	if (partoffset + sizeof(*part) > datasize)
+		return -1;
+	part = (struct mac_partition *) (data + partoffset);
 	if (be16_to_cpu(part->signature) != MAC_PARTITION_MAGIC) {
 		put_dev_sector(sect);
 		return 0;		/* not a MacOS disk */

[toc] | [prev] | [next] | [standalone]


#1347722 — [PATCH 3.10 14/80] proc: Fix ptrace-based permission checks for accessing task maps

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 14/80] proc: Fix ptrace-based permission checks for accessing task maps
Message-ID<r84RJ-1dc-43@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Corey Wright <undefined@pobox.com>

Modify mm_access() calls in fs/proc/task_mmu.c and fs/proc/task_nommu.c to
have the mode include PTRACE_MODE_FSCREDS so accessing /proc/pid/maps and
/proc/pid/pagemap is not denied to all users.

In backporting upstream commit caaee623 to pre-3.18 kernel versions it was
overlooked that mm_access() is used in fs/proc/task_*mmu.c as those calls
were removed in 3.18 (by upstream commit 29a40ace) and did not exist at the
time of the original commit.

Signed-off-by: Corey Wright <undefined@pobox.com>
Acked-by: Jann Horn <jann@thejh.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/proc/task_mmu.c   |    4 ++--
 fs/proc/task_nommu.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -170,7 +170,7 @@ static void *m_start(struct seq_file *m,
 	if (!priv->task)
 		return ERR_PTR(-ESRCH);
 
-	mm = mm_access(priv->task, PTRACE_MODE_READ);
+	mm = mm_access(priv->task, PTRACE_MODE_READ_FSCREDS);
 	if (!mm || IS_ERR(mm))
 		return mm;
 	down_read(&mm->mmap_sem);
@@ -1044,7 +1044,7 @@ static ssize_t pagemap_read(struct file
 	if (!pm.buffer)
 		goto out_task;
 
-	mm = mm_access(task, PTRACE_MODE_READ);
+	mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
 	ret = PTR_ERR(mm);
 	if (!mm || IS_ERR(mm))
 		goto out_free;
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -223,7 +223,7 @@ static void *m_start(struct seq_file *m,
 	if (!priv->task)
 		return ERR_PTR(-ESRCH);
 
-	mm = mm_access(priv->task, PTRACE_MODE_READ);
+	mm = mm_access(priv->task, PTRACE_MODE_READ_FSCREDS);
 	if (!mm || IS_ERR(mm)) {
 		put_task_struct(priv->task);
 		priv->task = NULL;

[toc] | [prev] | [next] | [standalone]


#1347723 — [PATCH 3.10 29/80] megaraid_sas : SMAP restriction--do not access user memory from IOCTL code

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 29/80] megaraid_sas : SMAP restriction--do not access user memory from IOCTL code
Message-ID<r84RJ-1dc-45@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: sumit.saxena@avagotech.com <sumit.saxena@avagotech.com>

commit 323c4a02c631d00851d8edc4213c4d184ef83647 upstream.

This is an issue on SMAP enabled CPUs and 32 bit apps running on 64 bit
OS. Do not access user memory from kernel code. The SMAP bit restricts
accessing user memory from kernel code.

Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/megaraid/megaraid_sas_base.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -5051,6 +5051,9 @@ static int megasas_mgmt_compat_ioctl_fw(
 	int i;
 	int error = 0;
 	compat_uptr_t ptr;
+	unsigned long local_raw_ptr;
+	u32 local_sense_off;
+	u32 local_sense_len;
 
 	if (clear_user(ioc, sizeof(*ioc)))
 		return -EFAULT;
@@ -5068,9 +5071,15 @@ static int megasas_mgmt_compat_ioctl_fw(
 	 * sense_len is not null, so prepare the 64bit value under
 	 * the same condition.
 	 */
-	if (ioc->sense_len) {
+	if (get_user(local_raw_ptr, ioc->frame.raw) ||
+		get_user(local_sense_off, &ioc->sense_off) ||
+		get_user(local_sense_len, &ioc->sense_len))
+		return -EFAULT;
+
+
+	if (local_sense_len) {
 		void __user **sense_ioc_ptr =
-			(void __user **)(ioc->frame.raw + ioc->sense_off);
+			(void __user **)((u8*)local_raw_ptr + local_sense_off);
 		compat_uptr_t *sense_cioc_ptr =
 			(compat_uptr_t *)(cioc->frame.raw + cioc->sense_off);
 		if (get_user(ptr, sense_cioc_ptr) ||

[toc] | [prev] | [next] | [standalone]


#1347726 — [PATCH 3.10 32/80] ARC: dw2 unwind: Remove falllback linear search thru FDE entries

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 32/80] ARC: dw2 unwind: Remove falllback linear search thru FDE entries
Message-ID<r84RJ-1dc-53@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vineet Gupta <vgupta@synopsys.com>

commit 2e22502c080f27afeab5e6f11e618fb7bc7aea53 upstream.

Fixes STAR 9000953410: "perf callgraph profiling causing RCU stalls"

| perf record -g -c 15000 -e cycles /sbin/hackbench
|
| INFO: rcu_preempt self-detected stall on CPU
| 1: (1 GPs behind) idle=609/140000000000002/0 softirq=2914/2915 fqs=603
| Task dump for CPU 1:

in-kernel dwarf unwinder has a fast binary lookup and a fallback linear
search (which iterates thru each of ~11K entries) thus takes 2 orders of
magnitude longer (~3 million cycles vs. 2000). Routines written in hand
assembler lack dwarf info (as we don't support assembler CFI pseudo-ops
yet) fail the unwinder binary lookup, hit linear search, failing
nevertheless in the end.

However the linear search is pointless as binary lookup tables are created
from it in first place. It is impossible to have binary lookup fail while
succeed the linear search. It is pure waste of cycles thus removed by
this patch.

This manifested as RCU stalls / NMI watchdog splat when running
hackbench under perf with callgraph profiling. The triggering condition
was perf counter overflowing in routine lacking dwarf info (like memset)
leading to patheic 3 million cycle unwinder slow path and by the time it
returned new interrupts were already pending (Timer, IPI) and taken
rightaway. The original memset didn't make forward progress, system kept
accruing more interrupts and more unwinder delayes in a vicious feedback
loop, ultimately triggering the NMI diagnostic.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arc/kernel/unwind.c |   37 ++++---------------------------------
 1 file changed, 4 insertions(+), 33 deletions(-)

--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -984,42 +984,13 @@ int arc_unwind(struct unwind_frame_info
 							    (const u8 *)(fde +
 									 1) +
 							    *fde, ptrType);
-				if (pc >= endLoc)
+				if (pc >= endLoc) {
 					fde = NULL;
-			} else
-				fde = NULL;
-		}
-		if (fde == NULL) {
-			for (fde = table->address, tableSize = table->size;
-			     cie = NULL, tableSize > sizeof(*fde)
-			     && tableSize - sizeof(*fde) >= *fde;
-			     tableSize -= sizeof(*fde) + *fde,
-			     fde += 1 + *fde / sizeof(*fde)) {
-				cie = cie_for_fde(fde, table);
-				if (cie == &bad_cie) {
 					cie = NULL;
-					break;
 				}
-				if (cie == NULL
-				    || cie == &not_fde
-				    || (ptrType = fde_pointer_type(cie)) < 0)
-					continue;
-				ptr = (const u8 *)(fde + 2);
-				startLoc = read_pointer(&ptr,
-							(const u8 *)(fde + 1) +
-							*fde, ptrType);
-				if (!startLoc)
-					continue;
-				if (!(ptrType & DW_EH_PE_indirect))
-					ptrType &=
-					    DW_EH_PE_FORM | DW_EH_PE_signed;
-				endLoc =
-				    startLoc + read_pointer(&ptr,
-							    (const u8 *)(fde +
-									 1) +
-							    *fde, ptrType);
-				if (pc >= startLoc && pc < endLoc)
-					break;
+			} else {
+				fde = NULL;
+				cie = NULL;
 			}
 		}
 	}

[toc] | [prev] | [next] | [standalone]


#1347727 — [PATCH 3.10 11/80] USB: cp210x: add IDs for GE B650V3 and B850V3 boards

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 11/80] USB: cp210x: add IDs for GE B650V3 and B850V3 boards
Message-ID<r84RJ-1dc-55@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ken Lin <ken.lin@advantech.com.tw>

commit 6627ae19385283b89356a199d7f03c75ba35fb29 upstream.

Add USB ID for cp2104/5 devices on GE B650v3 and B850v3 boards.

Signed-off-by: Ken Lin <ken.lin@advantech.com.tw>
Signed-off-by: Akshay Bhat <akshay.bhat@timesys.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/cp210x.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -162,6 +162,8 @@ static const struct usb_device_id id_tab
 	{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
 	{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
 	{ USB_DEVICE(0x18EF, 0xE025) }, /* ELV Marble Sound Board 1 */
+	{ USB_DEVICE(0x1901, 0x0190) }, /* GE B850 CP2105 Recorder interface */
+	{ USB_DEVICE(0x1901, 0x0193) }, /* GE B650 CP2104 PMC interface */
 	{ USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
 	{ USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */
 	{ USB_DEVICE(0x1BA4, 0x0002) },	/* Silicon Labs 358x factory default */

[toc] | [prev] | [next] | [standalone]


#1347729 — [PATCH 3.10 41/80] dm btree: fix bufio buffer leaks in dm_btree_del() error path

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 41/80] dm btree: fix bufio buffer leaks in dm_btree_del() error path
Message-ID<r84RJ-1dc-59@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Joe Thornber <ejt@redhat.com>

commit ed8b45a3679eb49069b094c0711b30833f27c734 upstream.

If dm_btree_del()'s call to push_frame() fails, e.g. due to
btree_node_validator finding invalid metadata, the dm_btree_del() error
path must unlock all frames (which have active dm-bufio buffers) that
were pushed onto the del_stack.

Otherwise, dm_bufio_client_destroy() will BUG_ON() because dm-bufio
buffers have leaked, e.g.:
  device-mapper: bufio: leaked buffer 3, hold count 1, list 0

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/persistent-data/dm-btree.c |   16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -235,6 +235,16 @@ static bool is_internal_level(struct dm_
 	return f->level < (info->levels - 1);
 }
 
+static void unlock_all_frames(struct del_stack *s)
+{
+	struct frame *f;
+
+	while (unprocessed_frames(s)) {
+		f = s->spine + s->top--;
+		dm_tm_unlock(s->tm, f->b);
+	}
+}
+
 int dm_btree_del(struct dm_btree_info *info, dm_block_t root)
 {
 	int r;
@@ -290,9 +300,13 @@ int dm_btree_del(struct dm_btree_info *i
 			f->current_child = f->nr_children;
 		}
 	}
-
 out:
+	if (r) {
+		/* cleanup all frames of del_stack */
+		unlock_all_frames(s);
+	}
 	kfree(s);
+
 	return r;
 }
 EXPORT_SYMBOL_GPL(dm_btree_del);

[toc] | [prev] | [next] | [standalone]


#1347730 — [PATCH 3.10 27/80] wm831x_power: Use IRQF_ONESHOT to request threaded IRQs

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 27/80] wm831x_power: Use IRQF_ONESHOT to request threaded IRQs
Message-ID<r84RK-1dc-63@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Valentin Rothberg <valentinrothberg@gmail.com>

commit 90adf98d9530054b8e665ba5a928de4307231d84 upstream.

Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
threaded IRQs without a primary handler need to be requested with
IRQF_ONESHOT, otherwise the request will fail.

scripts/coccinelle/misc/irqf_oneshot.cocci detected this issue.

Fixes: b5874f33bbaf ("wm831x_power: Use genirq")
Signed-off-by: Valentin Rothberg <valentinrothberg@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/power/wm831x_power.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/power/wm831x_power.c
+++ b/drivers/power/wm831x_power.c
@@ -567,7 +567,7 @@ static int wm831x_power_probe(struct pla
 
 	irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
 	ret = request_threaded_irq(irq, NULL, wm831x_syslo_irq,
-				   IRQF_TRIGGER_RISING, "System power low",
+				   IRQF_TRIGGER_RISING | IRQF_ONESHOT, "System power low",
 				   power);
 	if (ret != 0) {
 		dev_err(&pdev->dev, "Failed to request SYSLO IRQ %d: %d\n",
@@ -577,7 +577,7 @@ static int wm831x_power_probe(struct pla
 
 	irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "PWR SRC"));
 	ret = request_threaded_irq(irq, NULL, wm831x_pwr_src_irq,
-				   IRQF_TRIGGER_RISING, "Power source",
+				   IRQF_TRIGGER_RISING | IRQF_ONESHOT, "Power source",
 				   power);
 	if (ret != 0) {
 		dev_err(&pdev->dev, "Failed to request PWR SRC IRQ %d: %d\n",
@@ -590,7 +590,7 @@ static int wm831x_power_probe(struct pla
 				 platform_get_irq_byname(pdev,
 							 wm831x_bat_irqs[i]));
 		ret = request_threaded_irq(irq, NULL, wm831x_bat_irq,
-					   IRQF_TRIGGER_RISING,
+					   IRQF_TRIGGER_RISING | IRQF_ONESHOT,
 					   wm831x_bat_irqs[i],
 					   power);
 		if (ret != 0) {

[toc] | [prev] | [next] | [standalone]


#1347732 — [PATCH 3.10 10/80] can: ems_usb: Fix possible tx overflow

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 10/80] can: ems_usb: Fix possible tx overflow
Message-ID<r84RK-1dc-61@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>

commit 90cfde46586d2286488d8ed636929e936c0c9ab2 upstream.

This patch fixes the problem that more CAN messages could be sent to the
interface as could be send on the CAN bus. This was more likely for slow baud
rates. The sleeping _start_xmit was woken up in the _write_bulk_callback. Under
heavy TX load this produced another bulk transfer without checking the
free_slots variable and hence caused the overflow in the interface.

Signed-off-by: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/ems_usb.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -118,6 +118,9 @@ MODULE_LICENSE("GPL v2");
  */
 #define EMS_USB_ARM7_CLOCK 8000000
 
+#define CPC_TX_QUEUE_TRIGGER_LOW	25
+#define CPC_TX_QUEUE_TRIGGER_HIGH	35
+
 /*
  * CAN-Message representation in a CPC_MSG. Message object type is
  * CPC_MSG_TYPE_CAN_FRAME or CPC_MSG_TYPE_RTR_FRAME or
@@ -279,6 +282,11 @@ static void ems_usb_read_interrupt_callb
 	switch (urb->status) {
 	case 0:
 		dev->free_slots = dev->intr_in_buffer[1];
+		if(dev->free_slots > CPC_TX_QUEUE_TRIGGER_HIGH){
+			if (netif_queue_stopped(netdev)){
+				netif_wake_queue(netdev);
+			}
+		}
 		break;
 
 	case -ECONNRESET: /* unlink */
@@ -530,8 +538,6 @@ static void ems_usb_write_bulk_callback(
 	/* Release context */
 	context->echo_index = MAX_TX_URBS;
 
-	if (netif_queue_stopped(netdev))
-		netif_wake_queue(netdev);
 }
 
 /*
@@ -591,7 +597,7 @@ static int ems_usb_start(struct ems_usb
 	int err, i;
 
 	dev->intr_in_buffer[0] = 0;
-	dev->free_slots = 15; /* initial size */
+	dev->free_slots = 50; /* initial size */
 
 	for (i = 0; i < MAX_RX_URBS; i++) {
 		struct urb *urb = NULL;
@@ -841,7 +847,7 @@ static netdev_tx_t ems_usb_start_xmit(st
 
 		/* Slow down tx path */
 		if (atomic_read(&dev->active_tx_urbs) >= MAX_TX_URBS ||
-		    dev->free_slots < 5) {
+		    dev->free_slots < CPC_TX_QUEUE_TRIGGER_LOW) {
 			netif_stop_queue(netdev);
 		}
 	}

[toc] | [prev] | [next] | [standalone]


#1347733 — [PATCH 3.10 01/80] tracepoints: Do not trace when cpu is offline

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 01/80] tracepoints: Do not trace when cpu is offline
Message-ID<r84RK-1dc-67@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Steven Rostedt (Red Hat) <rostedt@goodmis.org>

commit f37755490fe9bf76f6ba1d8c6591745d3574a6a6 upstream.

The tracepoint infrastructure uses RCU sched protection to enable and
disable tracepoints safely. There are some instances where tracepoints are
used in infrastructure code (like kfree()) that get called after a CPU is
going offline, and perhaps when it is coming back online but hasn't been
registered yet.

This can probuce the following warning:

 [ INFO: suspicious RCU usage. ]
 4.4.0-00006-g0fe53e8-dirty #34 Tainted: G S
 -------------------------------
 include/trace/events/kmem.h:141 suspicious rcu_dereference_check() usage!

 other info that might help us debug this:

 RCU used illegally from offline CPU!  rcu_scheduler_active = 1, debug_locks = 1
 no locks held by swapper/8/0.

 stack backtrace:
  CPU: 8 PID: 0 Comm: swapper/8 Tainted: G S              4.4.0-00006-g0fe53e8-dirty #34
  Call Trace:
  [c0000005b76c78d0] [c0000000008b9540] .dump_stack+0x98/0xd4 (unreliable)
  [c0000005b76c7950] [c00000000010c898] .lockdep_rcu_suspicious+0x108/0x170
  [c0000005b76c79e0] [c00000000029adc0] .kfree+0x390/0x440
  [c0000005b76c7a80] [c000000000055f74] .destroy_context+0x44/0x100
  [c0000005b76c7b00] [c0000000000934a0] .__mmdrop+0x60/0x150
  [c0000005b76c7b90] [c0000000000e3ff0] .idle_task_exit+0x130/0x140
  [c0000005b76c7c20] [c000000000075804] .pseries_mach_cpu_die+0x64/0x310
  [c0000005b76c7cd0] [c000000000043e7c] .cpu_die+0x3c/0x60
  [c0000005b76c7d40] [c0000000000188d8] .arch_cpu_idle_dead+0x28/0x40
  [c0000005b76c7db0] [c000000000101e6c] .cpu_startup_entry+0x50c/0x560
  [c0000005b76c7ed0] [c000000000043bd8] .start_secondary+0x328/0x360
  [c0000005b76c7f90] [c000000000008a6c] start_secondary_prolog+0x10/0x14

This warning is not a false positive either. RCU is not protecting code that
is being executed while the CPU is offline.

Instead of playing "whack-a-mole(TM)" and adding conditional statements to
the tracepoints we find that are used in this instance, simply add a
cpu_online() test to the tracepoint code where the tracepoint will be
ignored if the CPU is offline.

Use of raw_smp_processor_id() is fine, as there should never be a case where
the tracepoint code goes from running on a CPU that is online and suddenly
gets migrated to a CPU that is offline.

Link: http://lkml.kernel.org/r/1455387773-4245-1-git-send-email-kda@linux-powerpc.org

Reported-by: Denis Kirjanov <kda@linux-powerpc.org>
Fixes: 97e1c18e8d17b ("tracing: Kernel Tracepoints")
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/tracepoint.h |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -14,8 +14,11 @@
  * See the file COPYING for more details.
  */
 
+#include <linux/smp.h>
 #include <linux/errno.h>
 #include <linux/types.h>
+#include <linux/percpu.h>
+#include <linux/cpumask.h>
 #include <linux/rcupdate.h>
 #include <linux/static_key.h>
 
@@ -126,6 +129,9 @@ static inline void tracepoint_synchroniz
 		void *it_func;						\
 		void *__data;						\
 									\
+		if (!cpu_online(raw_smp_processor_id()))		\
+			return;						\
+									\
 		if (!(cond))						\
 			return;						\
 		prercu;							\

[toc] | [prev] | [next] | [standalone]


#1347734 — [PATCH 3.10 06/80] drm/radeon: fix hotplug race at startup

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 06/80] drm/radeon: fix hotplug race at startup
Message-ID<r84RK-1dc-69@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Airlie <airlied@redhat.com>

commit 7f98ca454ad373fc1b76be804fa7138ff68c1d27 upstream.

We apparantly get a hotplug irq before we've initialised
modesetting,

[drm] Loading R100 Microcode
BUG: unable to handle kernel NULL pointer dereference at   (null)
IP: [<c125f56f>] __mutex_lock_slowpath+0x23/0x91
*pde = 00000000
Oops: 0002 [#1]
Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit backlight pcspkr psmouse evdev sr_mod input_leds led_class cdrom sg parport_pc parport floppy intel_agp intel_gtt lpc_ich acpi_cpufreq processor button mfd_core agpgart uhci_hcd ehci_hcd rng_core snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm usbcore usb_common i2c_i801 i2c_core snd_timer snd soundcore thermal_sys
CPU: 0 PID: 15 Comm: kworker/0:1 Not tainted 4.2.0-rc7-00015-gbf67402 #111
Hardware name: MicroLink                               /D850MV                         , BIOS MV85010A.86A.0067.P24.0304081124 04/08/2003
Workqueue: events radeon_hotplug_work_func [radeon]
task: f6ca5900 ti: f6d3e000 task.ti: f6d3e000
EIP: 0060:[<c125f56f>] EFLAGS: 00010282 CPU: 0
EIP is at __mutex_lock_slowpath+0x23/0x91
EAX: 00000000 EBX: f5e900fc ECX: 00000000 EDX: fffffffe
ESI: f6ca5900 EDI: f5e90100 EBP: f5e90000 ESP: f6d3ff0c
 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
CR0: 8005003b CR2: 00000000 CR3: 36f61000 CR4: 000006d0
Stack:
 f5e90100 00000000 c103c4c1 f6d2a5a0 f5e900fc f6df394c c125f162 f8b0faca
 f6d2a5a0 c138ca00 f6df394c f7395600 c1034741 00d40000 00000000 f6d2a5a0
 c138ca00 f6d2a5b8 c138ca10 c1034b58 00000001 f6d40000 f6ca5900 f6d0c940
Call Trace:
 [<c103c4c1>] ? dequeue_task_fair+0xa4/0xb7
 [<c125f162>] ? mutex_lock+0x9/0xa
 [<f8b0faca>] ? radeon_hotplug_work_func+0x17/0x57 [radeon]
 [<c1034741>] ? process_one_work+0xfc/0x194
 [<c1034b58>] ? worker_thread+0x18d/0x218
 [<c10349cb>] ? rescuer_thread+0x1d5/0x1d5
 [<c103742a>] ? kthread+0x7b/0x80
 [<c12601c0>] ? ret_from_kernel_thread+0x20/0x30
 [<c10373af>] ? init_completion+0x18/0x18
Code: 42 08 e8 8e a6 dd ff c3 57 56 53 83 ec 0c 8b 35 48 f7 37 c1 8b 10 4a 74 1a 89 c3 8d 78 04 8b 40 08 89 63

Reported-and-Tested-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/radeon/radeon_irq_kms.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -73,6 +73,11 @@ static void radeon_hotplug_work_func(str
 	struct drm_mode_config *mode_config = &dev->mode_config;
 	struct drm_connector *connector;
 
+	/* we can race here at startup, some boards seem to trigger
+	 * hotplug irqs when they shouldn't. */
+	if (!rdev->mode_info.mode_config_initialized)
+		return;
+
 	mutex_lock(&mode_config->mutex);
 	if (mode_config->num_connector) {
 		list_for_each_entry(connector, &mode_config->connector_list, head)

[toc] | [prev] | [next] | [standalone]


#1347735 — [PATCH 3.10 26/80] devres: fix a for loop bounds check

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 26/80] devres: fix a for loop bounds check
Message-ID<r84RK-1dc-71@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Carpenter <dan.carpenter@oracle.com>

commit 1f35d04a02a652f14566f875aef3a6f2af4cb77b upstream.

The iomap[] array has PCIM_IOMAP_MAX (6) elements and not
DEVICE_COUNT_RESOURCE (16).  This bug was found using a static checker.
It may be that the "if (!(mask & (1 << i)))" check means we never
actually go past the end of the array in real life.

Fixes: ec04b075843d ('iomap: implement pcim_iounmap_regions()')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 lib/devres.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/lib/devres.c
+++ b/lib/devres.c
@@ -423,7 +423,7 @@ void pcim_iounmap_regions(struct pci_dev
 	if (!iomap)
 		return;
 
-	for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+	for (i = 0; i < PCIM_IOMAP_MAX; i++) {
 		if (!(mask & (1 << i)))
 			continue;
 

[toc] | [prev] | [next] | [standalone]


#1347737 — [PATCH 3.10 30/80] mmc: remove bondage between REQ_META and reliable write

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 30/80] mmc: remove bondage between REQ_META and reliable write
Message-ID<r84RK-1dc-75@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Luca Porzio <lporzio@micron.com>

commit d3df0465db00cf4ed9f90d0bfc3b827d32b9c796 upstream.

Anytime a write operation is performed with Reliable Write flag enabled,
the eMMC device is enforced to bypass the cache and do a write to the
underling NVM device by Jedec specification; this causes a performance
penalty since write operations can't be optimized by the device cache.

In our tests, we replayed a typical mobile daily trace pattern and found
~9% overall time reduction in trace replay by using this patch. Also the
write ops within 4KB~64KB chunk size range get a 40~60% performance
improvement by using the patch (as this range of write chunks are the ones
affected by REQ_META).

This patch has been discussed in the Mobile & Embedded Linux Storage Forum
and it's the results of feedbacks from many people. We also checked with
fsdevl and f2fs mailing list developers that this change in the usage of
REQ_META is not affecting FS behavior and we got positive feedbacks.
Reporting here the feedbacks:
http://comments.gmane.org/gmane.linux.file-systems/97219
http://thread.gmane.org/gmane.linux.file-systems.f2fs/3178/focus=3183

Signed-off-by: Bruce Ford <bford@micron.com>
Signed-off-by: Luca Porzio <lporzio@micron.com>
Fixes: ce39f9d17c14 ("mmc: support packed write command for eMMC4.5 devices")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mmc/card/block.c |   11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -59,8 +59,7 @@ MODULE_ALIAS("mmc:block");
 #define INAND_CMD38_ARG_SECTRIM2 0x88
 #define MMC_BLK_TIMEOUT_MS  (10 * 60 * 1000)        /* 10 minute timeout */
 
-#define mmc_req_rel_wr(req)	(((req->cmd_flags & REQ_FUA) || \
-				  (req->cmd_flags & REQ_META)) && \
+#define mmc_req_rel_wr(req)	((req->cmd_flags & REQ_FUA) && \
 				  (rq_data_dir(req) == WRITE))
 #define PACKED_CMD_VER	0x01
 #define PACKED_CMD_WR	0x02
@@ -1300,13 +1299,9 @@ static void mmc_blk_rw_rq_prep(struct mm
 
 	/*
 	 * Reliable writes are used to implement Forced Unit Access and
-	 * REQ_META accesses, and are supported only on MMCs.
-	 *
-	 * XXX: this really needs a good explanation of why REQ_META
-	 * is treated special.
+	 * are supported only on MMCs.
 	 */
-	bool do_rel_wr = ((req->cmd_flags & REQ_FUA) ||
-			  (req->cmd_flags & REQ_META)) &&
+	bool do_rel_wr = (req->cmd_flags & REQ_FUA) &&
 		(rq_data_dir(req) == WRITE) &&
 		(md->flags & MMC_BLK_REL_WR);
 

[toc] | [prev] | [next] | [standalone]


#1347739 — [PATCH 3.10 15/80] iw_cxgb3: Fix incorrectly returning error on success

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 15/80] iw_cxgb3: Fix incorrectly returning error on success
Message-ID<r84RK-1dc-79@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hariprasad S <hariprasad@chelsio.com>

commit 67f1aee6f45059fd6b0f5b0ecb2c97ad0451f6b3 upstream.

The cxgb3_*_send() functions return NET_XMIT_ values, which are
positive integers values. So don't treat positive return values
as an error.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
[a pox on developers and maintainers who do not cc: stable for bug fixes like this - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/hw/cxgb3/iwch_cm.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -149,7 +149,7 @@ static int iwch_l2t_send(struct t3cdev *
 	error = l2t_send(tdev, skb, l2e);
 	if (error < 0)
 		kfree_skb(skb);
-	return error;
+	return error < 0 ? error : 0;
 }
 
 int iwch_cxgb3_ofld_send(struct t3cdev *tdev, struct sk_buff *skb)
@@ -165,7 +165,7 @@ int iwch_cxgb3_ofld_send(struct t3cdev *
 	error = cxgb3_ofld_send(tdev, skb);
 	if (error < 0)
 		kfree_skb(skb);
-	return error;
+	return error < 0 ? error : 0;
 }
 
 static void release_tid(struct t3cdev *tdev, u32 hwtid, struct sk_buff *skb)

[toc] | [prev] | [next] | [standalone]


#1347740 — [PATCH 3.10 35/80] virtio: fix memory leak of virtio ida cache layers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:40 +0100
Subject[PATCH 3.10 35/80] virtio: fix memory leak of virtio ida cache layers
Message-ID<r84RK-1dc-81@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Suman Anna <s-anna@ti.com>

commit c13f99b7e945dad5273a8b7ee230f4d1f22d3354 upstream.

The virtio core uses a static ida named virtio_index_ida for
assigning index numbers to virtio devices during registration.
The ida core may allocate some internal idr cache layers and
an ida bitmap upon any ida allocation, and all these layers are
truely freed only upon the ida destruction. The virtio_index_ida
is not destroyed at present, leading to a memory leak when using
the virtio core as a module and atleast one virtio device is
registered and unregistered.

Fix this by invoking ida_destroy() in the virtio core module
exit.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/virtio/virtio.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -238,6 +238,7 @@ static int virtio_init(void)
 static void __exit virtio_exit(void)
 {
 	bus_unregister(&virtio_bus);
+	ida_destroy(&virtio_index_ida);
 }
 core_initcall(virtio_init);
 module_exit(virtio_exit);

[toc] | [prev] | [next] | [standalone]


#1347741 — [PATCH 3.10 04/80] bcache: unregister reboot notifier if bcache fails to unregister device

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-03-02 03:50 +0100
Subject[PATCH 3.10 04/80] bcache: unregister reboot notifier if bcache fails to unregister device
Message-ID<r851n-1hr-1@gated-at.bofh.it>
In reply to#1347712
3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Zheng Liu <wenqing.lz@taobao.com>

commit 2ecf0cdb2b437402110ab57546e02abfa68a716b upstream.

In bcache_init() function it forgot to unregister reboot notifier if
bcache fails to unregister a block device.  This commit fixes this.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Tested-by: Joshua Schmid <jschmid@suse.com>
Tested-by: Eric Wheeler <bcache@linux.ewheeler.net>
Cc: Kent Overstreet <kmo@daterainc.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/bcache/super.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1959,8 +1959,10 @@ static int __init bcache_init(void)
 	closure_debug_init();
 
 	bcache_major = register_blkdev(0, "bcache");
-	if (bcache_major < 0)
+	if (bcache_major < 0) {
+		unregister_reboot_notifier(&reboot);
 		return bcache_major;
+	}
 
 	if (!(bcache_wq = create_workqueue("bcache")) ||
 	    !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | linux.kernel


csiph-web