31 Oct, 2012

3 commits

  • This function is identically defined in all three allocators
    and it's trivial to move it to slab.h

    Since now it's static, inline, header-defined function
    this patch also drops the EXPORT_SYMBOL tag.

    Cc: Pekka Enberg
    Cc: Matt Mackall
    Acked-by: Christoph Lameter
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Pekka Enberg

    Ezequiel Garcia
     
  • Fields object_size and size are not the same: the latter might include
    slab metadata. Return object_size field in kmem_cache_size().
    Also, improve trace accuracy by correctly tracing reported size.

    Cc: Pekka Enberg
    Cc: Matt Mackall
    Acked-by: Christoph Lameter
    Acked-by: David Rientjes
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Pekka Enberg

    Ezequiel Garcia
     
  • This field was being used to store size allocation so it could be
    retrieved by ksize(). However, it is a bad practice to not mark a page
    as a slab page and then use fields for special purposes.
    There is no need to store the allocated size and
    ksize() can simply return PAGE_SIZE << compound_order(page).

    Cc: Pekka Enberg
    Cc: Matt Mackall
    Acked-by: Christoph Lameter
    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Pekka Enberg

    Ezequiel Garcia
     

24 Oct, 2012

5 commits

  • Right now, slab and slub have fields in struct page to derive which
    cache a page belongs to, but they do it slightly differently.

    slab uses a field called slab_cache, that lives in the third double
    word. slub, uses a field called "slab", living outside of the
    doublewords area.

    Ideally, we could use the same field for this. Since slub heavily makes
    use of the doubleword region, there isn't really much room to move
    slub's slab_cache field around. Since slab does not have such strict
    placement restrictions, we can move it outside the doubleword area.

    The naming used by slab, "slab_cache", is less confusing, and it is
    preferred over slub's generic "slab".

    Signed-off-by: Glauber Costa
    Acked-by: Christoph Lameter
    CC: David Rientjes
    Signed-off-by: Pekka Enberg

    Glauber Costa
     
  • Pekka Enberg
     
  • With all the infrastructure in place, we can now have slabinfo_show
    done from slab_common.c. A cache-specific function is called to grab
    information about the cache itself, since that is still heavily
    dependent on the implementation. But with the values produced by it, all
    the printing and handling is done from common code.

    Signed-off-by: Glauber Costa
    CC: Christoph Lameter
    CC: David Rientjes
    Signed-off-by: Pekka Enberg

    Glauber Costa
     
  • The header format is highly similar between slab and slub. The main
    difference lays in the fact that slab may optionally have statistics
    added here in case of CONFIG_SLAB_DEBUG, while the slub will stick them
    somewhere else.

    By making sure that information conditionally lives inside a
    globally-visible CONFIG_DEBUG_SLAB switch, we can move the header
    printing to a common location.

    Signed-off-by: Glauber Costa
    Acked-by: Christoph Lameter
    CC: David Rientjes
    Signed-off-by: Pekka Enberg

    Glauber Costa
     
  • This patch moves all the common machinery to slabinfo processing
    to slab_common.c. We can do better by noticing that the output is
    heavily common, and having the allocators to just provide finished
    information about this. But after this first step, this can be done
    easier.

    Signed-off-by: Glauber Costa
    Acked-by: Christoph Lameter
    CC: David Rientjes
    Signed-off-by: Pekka Enberg

    Glauber Costa
     

19 Oct, 2012

1 commit

  • When we try to free object, there is some of case that we need
    to take a node lock. This is the necessary step for preventing a race.
    After taking a lock, then we try to cmpxchg_double_slab().
    But, there is a possible scenario that cmpxchg_double_slab() is failed
    with taking a lock. Following example explains it.

    CPU A CPU B
    need lock
    ... need lock
    ... lock!!
    lock..but spin free success
    spin... unlock
    lock!!
    free fail

    In this case, retry with taking a lock is occured in CPU A.
    I think that in this case for CPU A,
    "release a lock first, and re-take a lock if necessary" is preferable way.

    There are two reasons for this.

    First, this makes __slab_free()'s logic somehow simple.
    With this patch, 'was_frozen = 1' is "always" handled without taking a lock.
    So we can remove one code path.

    Second, it may reduce lock contention.
    When we do retrying, status of slab is already changed,
    so we don't need a lock anymore in almost every case.
    "release a lock first, and re-take a lock if necessary" policy is
    helpful to this.

    Signed-off-by: Joonsoo Kim
    Acked-by: Christoph Lameter
    Signed-off-by: Pekka Enberg

    Joonsoo Kim
     

15 Oct, 2012

5 commits

  • Linus Torvalds
     
  • Pull MIPS update from Ralf Baechle:
    "Cleanups and fixes for breakage that occured earlier during this merge
    phase. Also a few patches that didn't make the first pull request.
    Of those is the Alchemy work that merges code for many of the SOCs and
    evaluation boards thus among other code shrinkage, reduces the number
    of MIPS defconfigs by 5."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (22 commits)
    MIPS: SNI: Switch RM400 serial to SCCNXP driver
    MIPS: Remove unused empty_bad_pmd_table[] declaration.
    MIPS: MT: Remove kspd.
    MIPS: Malta: Fix section mismatch.
    MIPS: asm-offset.c: Delete unused irq_cpustat_t struct offsets.
    MIPS: Alchemy: Merge PB1100/1500 support into DB1000 code.
    MIPS: Alchemy: merge PB1550 support into DB1550 code
    MIPS: Alchemy: Single kernel for DB1200/1300/1550
    MIPS: Optimize TLB refill for RI/XI configurations.
    MIPS: proc: Cleanup printing of ASEs.
    MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required.
    MIPS: Add detection of DSP ASE Revision 2.
    MIPS: Optimize pgd_init and pmd_init
    MIPS: perf: Add perf functionality for BMIPS5000
    MIPS: perf: Split the Kconfig option CONFIG_MIPS_MT_SMP
    MIPS: perf: Remove unnecessary #ifdef
    MIPS: perf: Add cpu feature bit for PCI (performance counter interrupt)
    MIPS: perf: Change the "mips_perf_event" table unsupported indicator.
    MIPS: Align swapper_pg_dir to 64K for better TLB Refill code.
    vmlinux.lds.h: Allow architectures to add sections to the front of .bss
    ...

    Linus Torvalds
     
  • Pull module signing support from Rusty Russell:
    "module signing is the highlight, but it's an all-over David Howells frenzy..."

    Hmm "Magrathea: Glacier signing key". Somebody has been reading too much HHGTTG.

    * 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)
    X.509: Fix indefinite length element skip error handling
    X.509: Convert some printk calls to pr_devel
    asymmetric keys: fix printk format warning
    MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking
    MODSIGN: Make mrproper should remove generated files.
    MODSIGN: Use utf8 strings in signer's name in autogenerated X.509 certs
    MODSIGN: Use the same digest for the autogen key sig as for the module sig
    MODSIGN: Sign modules during the build process
    MODSIGN: Provide a script for generating a key ID from an X.509 cert
    MODSIGN: Implement module signature checking
    MODSIGN: Provide module signing public keys to the kernel
    MODSIGN: Automatically generate module signing keys if missing
    MODSIGN: Provide Kconfig options
    MODSIGN: Provide gitignore and make clean rules for extra files
    MODSIGN: Add FIPS policy
    module: signature checking hook
    X.509: Add a crypto key parser for binary (DER) X.509 certificates
    MPILIB: Provide a function to read raw data into an MPI
    X.509: Add an ASN.1 decoder
    X.509: Add simple ASN.1 grammar compiler
    ...

    Linus Torvalds
     
  • The hostprogs need access to the CONFIG_* symbols found in
    include/generated/autoconf.h. But commit abbf1590de22 ("UAPI: Partition
    the header include path sets and add uapi/ header directories") replaced
    $(LINUXINCLUDE) with $(USERINCLUDE) which doesn't contain the necessary
    include paths.

    This has the undesirable effect of breaking the EFI boot stub because
    the #ifdef CONFIG_EFI_STUB code in arch/x86/boot/tools/build.c is
    never compiled.

    It should also be noted that because $(USERINCLUDE) isn't exported by
    the top-level Makefile it's actually empty in arch/x86/boot/Makefile.

    Cc: H. Peter Anvin
    Cc: Ingo Molnar
    Acked-by: David Howells
    Signed-off-by: Matt Fleming
    Signed-off-by: Linus Torvalds

    Matt Fleming
     
  • The UAPI commits forgot to test tooling builds such as tools/perf/,
    and this fixes the fallout.

    Manual conversion.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

14 Oct, 2012

9 commits

  • Pull ARM update from Russell King:
    "This is the final round of stuff for ARM, left until the end of the
    merge window to reduce the number of conflicts. This set contains the
    ARM part of David Howells UAPI changes, and a fix to the ordering of
    'select' statements in ARM Kconfig files (see the appropriate commit
    for why this happened - thanks to Andrew Morton for pointing out the
    problem.)

    I've left this as long as I dare for this window to avoid conflicts,
    and I regenerated the config patch yesterday, posting it to our
    mailing list for review and testing. I have several acks which
    include successful test reports for it.

    However, today I notice we've got new conflicts with previously unseen
    code... though that conflict should be trivial (it's my changes vs a
    one liner.)"

    * 'late-for-linus' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: config: make sure that platforms are ordered by option string
    ARM: config: sort select statements alphanumerically
    UAPI: (Scripted) Disintegrate arch/arm/include/asm

    Fix up fairly conflict in arch/arm/Kconfig (the select re-organization
    vs recent addition of GENERIC_KERNEL_EXECVE)

    Linus Torvalds
     
  • Pull UAPI disintegration for include/linux/{,byteorder/}*.h from David Howells:
    "The patches contained herein do the following:

    (1) Remove kernel-only stuff in linux/ppp-comp.h from the UAPI. I checked
    this with Paul Mackerras before I created the patch and he suggested some
    extra bits to unexport.

    (2) Remove linux/blk_types.h entirely from the UAPI as none of it is userspace
    applicable, and remove from the UAPI that part of linux/fs.h that was the
    reason for linux/blk_types.h being exported in the first place. I
    discussed this with Jens Axboe before creating the patch.

    (3) The big patch of the series to disintegrate include/linux/*.h as a unit.
    This could be split up, though there would be collisions in moving stuff
    between the two Kbuild files when the parts are merged as that file is
    sorted alphabetically rather than being grouped by subsystem.

    Of this set of headers, 17 files have changed in the UAPI exported region
    since the 4th and only 8 since the 9th so there isn't much change in this
    area - as one might expect.

    It should be pretty obvious and straightforward if it does come to fixing
    up: stuff in __KERNEL__ guards stays where it is and stuff outside moves
    to the same file in the include/uapi/linux/ directory.

    If a new file appears then things get a bit more complicated as the
    "headers +=" line has to move to include/uapi/linux/Kbuild. Only one new
    file has appeared since the 9th and I judge this type of event relatively
    unlikely.

    (4) A patch to disintegrate include/linux/byteorder/*.h as a unit.

    Signed-off-by: David Howells "

    * tag 'disintegrate-main-20121013' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate include/linux/byteorder
    UAPI: (Scripted) Disintegrate include/linux
    UAPI: Unexport linux/blk_types.h
    UAPI: Unexport part of linux/ppp-comp.h

    Linus Torvalds
     
  • Pull spi UAPI disintegration from David Howells:
    "This is to complete part of the Userspace API (UAPI) disintegration
    for which the preparatory patches were pulled recently. After these
    patches, userspace headers will be segregated into:

    include/uapi/linux/.../foo.h

    for the userspace interface stuff, and:

    include/linux/.../foo.h

    for the strictly kernel internal stuff.

    Signed-off-by: David Howells
    Acked-by: Grant Likely "

    * tag 'disintegrate-spi-20121009' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate include/linux/spi

    Linus Torvalds
     
  • Pull OpenRISC uapi disintegration from Jonas Bonn:
    "OpenRISC UAPI disintegration work from David Howells"

    * tag 'openrisc-uapi' of git://openrisc.net/jonas/linux:
    UAPI: (Scripted) Disintegrate arch/openrisc/include/asm

    Linus Torvalds
     
  • Pull user namespace compile fixes from Eric W Biederman:
    "This tree contains three trivial fixes. One compiler warning, one
    thinko fix, and one build fix"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    btrfs: Fix compilation with user namespace support enabled
    userns: Fix posix_acl_file_xattr_userns gid conversion
    userns: Properly print bluetooth socket uids

    Linus Torvalds
     
  • Pull md updates from NeilBrown:
    - "discard" support, some dm-raid improvements and other assorted bits
    and pieces.

    * tag 'md-3.7' of git://neil.brown.name/md: (29 commits)
    md: refine reporting of resync/reshape delays.
    md/raid5: be careful not to resize_stripes too big.
    md: make sure manual changes to recovery checkpoint are saved.
    md/raid10: use correct limit variable
    md: writing to sync_action should clear the read-auto state.
    Subject: [PATCH] md:change resync_mismatches to atomic64_t to avoid races
    md/raid5: make sure to_read and to_write never go negative.
    md: When RAID5 is dirty, force reconstruct-write instead of read-modify-write.
    md/raid5: protect debug message against NULL derefernce.
    md/raid5: add some missing locking in handle_failed_stripe.
    MD: raid5 avoid unnecessary zero page for trim
    MD: raid5 trim support
    md/bitmap:Don't use IS_ERR to judge alloc_page().
    md/raid1: Don't release reference to device while handling read error.
    raid: replace list_for_each_continue_rcu with new interface
    add further __init annotations to crypto/xor.c
    DM RAID: Fix for "sync" directive ineffectiveness
    DM RAID: Fix comparison of index and quantity for "rebuild" parameter
    DM RAID: Add rebuild capability for RAID10
    DM RAID: Move 'rebuild' checking code to its own function
    ...

    Linus Torvalds
     
  • Russell King
     
  • The large platform selection choice should be sorted by option string
    so it's easy to find the platform you're looking for. Fix the few
    options which are out of this order.

    Acked-by: Tony Lindgren
    Signed-off-by: Russell King

    Russell King
     
  • As suggested by Andrew Morton:

    This is a pet peeve of mine. Any time there's a long list of items
    (header file inclusions, kconfig entries, array initalisers, etc) and
    someone wants to add a new item, they *always* go and stick it at the
    end of the list.

    Guys, don't do this. Either put the new item into a randomly-chosen
    position or, probably better, alphanumerically sort the list.

    lets sort all our select statements alphanumerically. This commit was
    created by the following perl:

    while (<>) {
    while (/\\\s*$/) {
    $_ .= <>;
    }
    undef %selects if /^\s*config\s+/;
    if (/^\s+select\s+(\w+).*/) {
    if (defined($selects{$1})) {
    if ($selects{$1} eq $_) {
    print STDERR "Warning: removing duplicated $1 entry\n";
    } else {
    print STDERR "Error: $1 differently selected\n".
    "\tOld: $selects{$1}\n".
    "\tNew: $_\n";
    exit 1;
    }
    }
    $selects{$1} = $_;
    next;
    }
    if (%selects and (/^\s*$/ or /^\s+help/ or /^\s+---help---/ or
    /^endif/ or /^endchoice/)) {
    foreach $k (sort (keys %selects)) {
    print "$selects{$k}";
    }
    undef %selects;
    }
    print;
    }
    if (%selects) {
    foreach $k (sort (keys %selects)) {
    print "$selects{$k}";
    }
    }

    It found two duplicates:

    Warning: removing duplicated S5P_SETUP_MIPIPHY entry
    Warning: removing duplicated HARDIRQS_SW_RESEND entry

    and they are identical duplicates, hence the shrinkage in the diffstat
    of two lines.

    We have four testers reporting success of this change (Tony, Stephen,
    Linus and Sekhar.)

    Acked-by: Jason Cooper
    Acked-by: Tony Lindgren
    Acked-by: Stephen Warren
    Acked-by: Linus Walleij
    Acked-by: Sekhar Nori
    Signed-off-by: Russell King

    Russell King
     

13 Oct, 2012

17 commits

  • Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • It seems that was linux/blk_types.h incorrectly exported to fix up some missing
    bits required by the exported parts of linux/fs.h (READ, WRITE, READA, etc.).

    So unexport linux/blk_types.h and unexport the relevant bits of linux/fs.h.

    Signed-off-by: David Howells
    cc: Jens Axboe
    cc: Tejun Heo
    cc: Al Viro

    David Howells
     
  • Unexport part of linux/ppp-comp.h as userspace can't make use of that bit.

    Signed-off-by: David Howells
    cc: Paul Mackerras
    cc: David Miller

    David Howells
     
  • UAPI Disintegration 2012-10-09

    * tag 'disintegrate-openrisc-20121009' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate arch/openrisc/include/asm

    Jonas Bonn
     
  • Pull TPM bugfixes from James Morris.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    tpm: Propagate error from tpm_transmit to fix a timeout hang
    driver/char/tpm: fix regression causesd by ppi

    Linus Torvalds
     
  • Pull ACPI & Thermal updates from Len Brown:
    "The generic Linux thermal layer is gaining some new capabilities
    (generic cooling via cpufreq) and some new customers (ARM).

    Also, an ACPI EC bug fix plus a regression fix."

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (30 commits)
    tools/power/acpi/acpidump: remove duplicated include from acpidump.c
    ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug
    cpuidle / ACPI: fix potential NULL pointer dereference
    ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop
    ACPI: EC: Make the GPE storm threshold a module parameter
    thermal: Exynos: Fix NULL pointer dereference in exynos_unregister_thermal()
    Thermal: Fix bug on cpu_cooling, cooling device's id conflict problem.
    thermal: exynos: Use devm_* functions
    ARM: exynos: add thermal sensor driver platform data support
    thermal: exynos: register the tmu sensor with the kernel thermal layer
    thermal: exynos5: add exynos5250 thermal sensor driver support
    hwmon: exynos4: move thermal sensor driver to driver/thermal directory
    thermal: add generic cpufreq cooling implementation
    Fix a build error.
    thermal: Fix potential NULL pointer accesses
    thermal: add Renesas R-Car thermal sensor support
    thermal: fix potential out-of-bounds memory access
    Thermal: Introduce locking for cdev.thermal_instances list.
    Thermal: Unify the code for both active and passive cooling
    Thermal: Introduce simple arbitrator for setting device cooling state
    ...

    Linus Torvalds
     
  • Pull OpenRISC updates from Jonas Bonn:
    "Fixups for some corner cases, build issues, and some obvious bugs in
    IRQ handling. No major changes."

    * tag 'for-3.7' of git://openrisc.net/jonas/linux:
    openrisc: mask interrupts in irq_mask_ack function
    openrisc: fix typos in comments and warnings
    openrisc: PIC should act on domain-local irqs
    openrisc: Make cpu_relax() invoke barrier()
    audit: define AUDIT_ARCH_OPENRISC
    openrisc: delay: fix handling of counter overflow
    openrisc: delay: fix loops calculation for __const_udelay

    Linus Torvalds
     
  • …howells/linux-headers

    Pull UAPI disintegration for misc arches from David Howells:
    "UAPI disintegration for MN10300, FRV and AVR32 arches"

    * tag 'disintegrate-misc-arches-20121010' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate arch/mn10300/include/asm
    UAPI: (Scripted) Disintegrate arch/frv/include/asm
    UAPI: (Scripted) Disintegrate arch/avr32/include/asm

    Linus Torvalds
     
  • Pull powerpc uapi disintegration from Benjamin Herrenschmidt.

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    UAPI: (Scripted) Disintegrate arch/powerpc/include/asm

    Linus Torvalds
     
  • Pull arm64 uapi disintegration from Catalin Marinas:
    "UAPI headers for arm64 together with some clean-up to make it
    possible:
    - Do not export the COMPAT_* definitions to user
    - Simplify the compat unistd32.h definitions and remove the
    __SYSCALL_COMPAT guard
    - Disintegrate the arch/arm64/include/asm/* headers"

    * tag 'arm64-uapi' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    UAPI: (Scripted) Disintegrate arch/arm64/include/asm
    arm64: Do not export the compat-specific definitions to the user
    arm64: Do not include asm/unistd32.h in asm/unistd.h
    arm64: Remove unused definitions from asm/unistd32.h

    Linus Torvalds
     
  • Pull C6X UAPI disintegration from Mark Salter:

    - scripted UAPI disintegration by David Howells.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    UAPI: (Scripted) Disintegrate arch/c6x/include/asm

    Linus Torvalds
     
  • Pull KGDB/KDB fixes and cleanups from Jason Wessel:
    "Cleanups
    - Clean up compile warnings in kgdboc.c and x86/kernel/kgdb.c
    - Add module event hooks for simplified debugging with gdb
    Fixes
    - Fix kdb to stop paging with 'q' on bta and dmesg
    - Fix for data that scrolls off the vga console due to line wrapping
    when using the kdb pager
    New
    - The debug core registers for kernel module events which allows a
    kernel aware gdb to automatically load symbols and break on entry
    to a kernel module
    - Allow kgdboc=kdb to setup kdb on the vga console"

    * tag 'for_linus-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
    tty/console: fix warnings in drivers/tty/serial/kgdboc.c
    kdb,vt_console: Fix missed data due to pager overruns
    kdb: Fix dmesg/bta scroll to quit with 'q'
    kgdboc: Accept either kbd or kdb to activate the vga + keyboard kdb shell
    kgdb,x86: fix warning about unused variable
    mips,kgdb: fix recursive page fault with CONFIG_KPROBES
    kgdb: Add module event hooks

    Linus Torvalds
     
  • …kernel/git/konrad/xen

    Pull Xen UAPI disintegration from Konrad Rzeszutek Wilk:
    "This has the UAPI disintegration work done by David Howells"

    * tag 'stable/for-linus-3.7-uapi-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    UAPI: (Scripted) Disintegrate include/xen

    Linus Torvalds
     
  • Pull two more mmc changes from Chris Ball:

    - Disintegrate UAPI

    - fix a mismerge that caused a build error.

    * tag 'mmc-merge-for-3.7-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    UAPI: (Scripted) Disintegrate include/linux/mmc
    mmc: mxs-mmc: Fix merge issue causing build error

    Linus Torvalds
     
  • Pull device-mapper changes from Alasdair G Kergon:
    "Remove the power-of-2 block size constraint on discards in dm thin
    provisioning and factor the bio_prison code out into a separate module
    (for sharing with the forthcoming cache target).

    Use struct bio's front_pad to eliminate the use of one separate
    mempool by bio-based devices.

    A few other tiny clean-ups."

    * tag 'dm-3.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
    dm: store dm_target_io in bio front_pad
    dm thin: move bio_prison code to separate module
    dm thin: prepare to separate bio_prison code
    dm thin: support discard with non power of two block size
    dm persistent data: convert to use le32_add_cpu
    dm: use ACCESS_ONCE for sysfs values
    dm bufio: use list_move
    dm mpath: fix check for null mpio in end_io fn

    Linus Torvalds
     
  • Pull misc SCSI updates from James Bottomley:
    "This is an assorted set of stragglers into the merge window with
    driver updates for megaraid_sas, lpfc, bfi and mvumi. It also
    includes some fairly major fixes for virtio-scsi (scatterlist init),
    scsi_debug (off by one error), storvsc (use after free) and qla2xxx
    (potential deadlock).

    Signed-off-by: James Bottomley "

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (49 commits)
    [SCSI] storvsc: Account for in-transit packets in the RESET path
    [SCSI] qla2xxx: fix potential deadlock on ha->hardware_lock
    [SCSI] scsi_debug: Fix off-by-one bug when unmapping region
    [SCSI] Shorten the path length of scsi_cmd_to_driver()
    [SCSI] virtio-scsi: support online resizing of disks
    [SCSI] virtio-scsi: fix LUNs greater than 255
    [SCSI] virtio-scsi: initialize scatterlist structure
    [SCSI] megaraid_sas: Version, Changelog, Copyright update
    [SCSI] megaraid_sas: Remove duplicate code
    [SCSI] megaraid_sas: Add SystemPD FastPath support
    [SCSI] megaraid_sas: Add array boundary check for SystemPD
    [SCSI] megaraid_sas: Load io_request DataLength in bytes
    [SCSI] megaraid_sas: Add module param for configurable MSI-X vector count
    [SCSI] megaraid_sas: Remove un-needed completion_lock spinlock calls
    [SCSI] lpfc 8.3.35: Update lpfc version for 8.3.35 driver release
    [SCSI] lpfc 8.3.35: Fixed not reporting logical link speed to SCSI midlayer when QoS not on
    [SCSI] lpfc 8.3.35: Fix error with fabric service parameters causing performance issues
    [SCSI] lpfc 8.3.35: Fixed SCSI host create showing wrong link speed on SLI3 HBA ports
    [SCSI] lpfc 8.3.35: Fixed not checking solicition in progress bit when verifying FCF record for use
    [SCSI] lpfc 8.3.35: Fixed messages for misconfigured port errors
    ...

    Linus Torvalds