09 Feb, 2012

15 commits

  • Linus Torvalds
     
  • One patch fixes an bug in the ARM/MSM IOMMU code which returned sucess
    in the unmap function even when an error occured and the other patch
    adds a workaround into the AMD IOMMU driver to better handle broken IVRS
    ACPI tables (this patch fixes the case when a device is not listed in
    the table but actually translated by the iommu).

    * 'iommu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/msm: Fix error handling in msm_iommu_unmap()
    iommu/amd: Work around broken IVRS tables

    Linus Torvalds
     
  • This series contains pending target bug-fixes and cleanups for v3.3-rc3
    that have been addressed the past weeks in lio-core.git.

    Some of the highlights include:

    - Fix handling for control CDBs with data greater than PAGE_SIZE (andy)
    - Use IP_FREEBIND for iscsi-target to address network portal creation
    issues with systemd (dax)
    - Allow PERSISTENT RESERVE IN for non-reservation holder (marco)
    - Fix iblock se_dev_attrib.unmap_granularity (marco)
    - Fix unsupported WRITE_SAME sense payload handling (martin)
    - Add workaround for zero-length control CDB handling (nab)
    - Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT (nab)
    - Fix target_submit_cmd() exception handling (nab)
    - Return correct ASC for unimplemented VPD pages (roland)
    - Don't zero pages used for data buffers (roland)
    - Fix return code of core_tpg_.*_lun (sebastian)

    * '3.3-rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)
    target: Fix unsupported WRITE_SAME sense payload
    iscsi: use IP_FREEBIND socket option
    iblock: fix handling of large requests
    target: handle empty string writes in sysfs
    iscsi_target: in_aton needs linux/inet.h
    target: Fix iblock se_dev_attrib.unmap_granularity
    target: Fix target_submit_cmd() exception handling
    target: Change target_submit_cmd() to return void
    target: accept REQUEST_SENSE with 18bytes
    target: Fail INQUIRY commands with EVPD==0 but PAGE CODE!=0
    target: Return correct ASC for unimplemented VPD pages
    iscsi-target: Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT
    target: Allow control CDBs with data > 1 page
    iscsi-target: Fix up a few assignments
    iscsi-target: make one-bit bitfields unsigned
    iscsi-target: Fix double list_add with iscsit_alloc_buffs reject
    iscsi-target: Fix reject release handling in iscsit_free_cmd()
    target: fix return code of core_tpg_.*_lun
    target: use save/restore lock primitive in core_dec_lacl_count()
    target: avoid multiple outputs in scsi_dump_inquiry()
    ...

    Linus Torvalds
     
  • Some simple md-related fixes.

    1/ two small fixes to ensure we handle an interrupted resync properly.
    2/ avoid loading the bitmap multiple times in dm-raid

    * tag 'md-3.3-fixes' of git://neil.brown.name/md:
    md: two small fixes to handling interrupt resync.
    Prevent DM RAID from loading bitmap twice.

    Linus Torvalds
     
  • SPI bug fixes for v3.3-rc2

    Minor SPI device driver changes. A rename of the pch_spi_pcidev symbol
    that merely eliminates a modpost warning, and a Kconfig change to allow
    the Samsung spi driver to build on EXYNOS.

    * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    spi-topcliff-pch: rename pch_spi_pcidev to pch_spi_pcidev_driver
    spi: Add spi-s3c64xx driver dependency on ARCH_EXYNOS4

    Linus Torvalds
     
  • Five fixes

    * branch 'akpm':
    pcmcia: fix socket refcount decrementing on each resume
    mm: fix UP THP spin_is_locked BUGs
    drivers/leds/leds-lm3530.c: fix setting pltfm->als_vmax
    mm: compaction: check for overlapping nodes during isolation for migration
    nilfs2: avoid overflowing segment numbers in nilfs_ioctl_clean_segments()

    Linus Torvalds
     
  • This fixes a memory-corrupting bug: not only does it cause the warning,
    but as a result of dropping the refcount to zero, it causes the
    pcmcia_socket0 device structure to be freed while it still has
    references, causing slab caches corruption. A fatal oops quickly
    follows this warning - often even just a 'dmesg' following the warning
    causes the kernel to oops.

    While testing suspend/resume on an ARM device with PCMCIA support, and a
    CF card inserted, I found that after five suspend and resumes, the
    kernel would complain, and shortly die after with slab corruption.

    WARNING: at include/linux/kref.h:41 kobject_get+0x28/0x50()

    As the message doesn't give a clue about which kobject, and the built-in
    debugging in drivers/base/power/main.c happens too late, this was added
    right before each get_device():

    printk("%s: %p [%s] %u\n", __func__, dev, kobject_name(&dev->kobj), atomic_read(&dev->kobj.kref.refcount));

    and on the 3rd s2ram cycle, the following behaviour observed:

    On the 3rd suspend/resume cycle:

    dpm_prepare: c1a0d998 [pcmcia_socket0] 3
    dpm_suspend: c1a0d998 [pcmcia_socket0] 3
    dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 3
    dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 3
    dpm_resume: c1a0d998 [pcmcia_socket0] 3
    dpm_complete: c1a0d998 [pcmcia_socket0] 2

    4th:

    dpm_prepare: c1a0d998 [pcmcia_socket0] 2
    dpm_suspend: c1a0d998 [pcmcia_socket0] 2
    dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 2
    dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 2
    dpm_resume: c1a0d998 [pcmcia_socket0] 2
    dpm_complete: c1a0d998 [pcmcia_socket0] 1

    5th:

    dpm_prepare: c1a0d998 [pcmcia_socket0] 1
    dpm_suspend: c1a0d998 [pcmcia_socket0] 1
    dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 1
    dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 1
    dpm_resume: c1a0d998 [pcmcia_socket0] 1
    dpm_complete: c1a0d998 [pcmcia_socket0] 0
    ------------[ cut here ]------------
    WARNING: at include/linux/kref.h:41 kobject_get+0x28/0x50()
    Modules linked in: ucb1x00_core
    Backtrace:
    [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
    [] (dump_stack+0x0/0x1c) from [] (warn_slowpath_common+0x50/0x68)
    [] (warn_slowpath_common+0x0/0x68) from [] (warn_slowpath_null+0x24/0x28)
    [] (warn_slowpath_null+0x0/0x28) from [] (kobject_get+0x28/0x50)
    [] (kobject_get+0x0/0x50) from [] (get_device+0x1c/0x24)
    [] (dpm_complete+0x0/0x1a0) from [] (dpm_resume_end+0x1c/0x20)
    ...

    Looking at commit 7b24e7988263 ("pcmcia: split up central event handler"),
    the following change was made to cs.c:

    return 0;
    }
    #endif
    -
    - send_event(skt, CS_EVENT_PM_RESUME, CS_EVENT_PRI_LOW);
    + if (!(skt->state & SOCKET_CARDBUS) && (skt->callback))
    + skt->callback->early_resume(skt);
    return 0;
    }

    And the corresponding change in ds.c is from:

    -static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
    -{
    - struct pcmcia_socket *s = pcmcia_get_socket(skt);
    ...
    - switch (event) {
    ...
    - case CS_EVENT_PM_RESUME:
    - if (verify_cis_cache(skt) != 0) {
    - dev_dbg(&skt->dev, "cis mismatch - different card\n");
    - /* first, remove the card */
    - ds_event(skt, CS_EVENT_CARD_REMOVAL, CS_EVENT_PRI_HIGH);
    - mutex_lock(&s->ops_mutex);
    - destroy_cis_cache(skt);
    - kfree(skt->fake_cis);
    - skt->fake_cis = NULL;
    - s->functions = 0;
    - mutex_unlock(&s->ops_mutex);
    - /* now, add the new card */
    - ds_event(skt, CS_EVENT_CARD_INSERTION,
    - CS_EVENT_PRI_LOW);
    - }
    - break;
    ...
    - }

    - pcmcia_put_socket(s);

    - return 0;
    -} /* ds_event */

    to:

    +static int pcmcia_bus_early_resume(struct pcmcia_socket *skt)
    +{
    + if (!verify_cis_cache(skt)) {
    + pcmcia_put_socket(skt);
    + return 0;
    + }

    + dev_dbg(&skt->dev, "cis mismatch - different card\n");

    + /* first, remove the card */
    + pcmcia_bus_remove(skt);
    + mutex_lock(&skt->ops_mutex);
    + destroy_cis_cache(skt);
    + kfree(skt->fake_cis);
    + skt->fake_cis = NULL;
    + skt->functions = 0;
    + mutex_unlock(&skt->ops_mutex);

    + /* now, add the new card */
    + pcmcia_bus_add(skt);
    + return 0;
    +}

    As can be seen, the original function called pcmcia_get_socket() and
    pcmcia_put_socket() around the guts, whereas the replacement code
    calls pcmcia_put_socket() only in one path. This creates an imbalance
    in the refcounting.

    Testing with pcmcia_put_socket() put removed shows that the bug is gone:

    dpm_suspend: c1a10998 [pcmcia_socket0] 5
    dpm_suspend_noirq: c1a10998 [pcmcia_socket0] 5
    dpm_resume_noirq: c1a10998 [pcmcia_socket0] 5
    dpm_resume: c1a10998 [pcmcia_socket0] 5
    dpm_complete: c1a10998 [pcmcia_socket0] 5

    Tested-by: Russell King
    Signed-off-by: Russell King
    Cc: Dominik Brodowski
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Russell King
     
  • Fix CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_SMP=n CONFIG_DEBUG_VM=y
    CONFIG_DEBUG_SPINLOCK=n kernel: spin_is_locked() is then always false,
    and so triggers some BUGs in Transparent HugePage codepaths.

    asm-generic/bug.h mentions this problem, and provides a WARN_ON_SMP(x);
    but being too lazy to add VM_BUG_ON_SMP, BUG_ON_SMP, WARN_ON_SMP_ONCE,
    VM_WARN_ON_SMP_ONCE, just test NR_CPUS != 1 in the existing VM_BUG_ONs.

    Signed-off-by: Hugh Dickins
    Cc: Andrea Arcangeli
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • In current code, pltfm->als_vmin is set to LM3530_ALS_WINDOW_mV and
    pltfm->als_vmax is 0. This does not make sense. I think what we want
    here is setting pltfm->als_vmax to LM3530_ALS_WINDOW_mV.

    Both als_vmin and als_vmax local variables will be set to
    pltfm->als_vmin and pltfm->als_vmax by a few lines latter. Thus also
    remove a redundant assignment for als_vmin and als_vmax in this patch.

    Signed-off-by: Axel Lin
    Cc: Shreshtha Kumar Sahu
    Acked-by: Milo(Woogyom) Kim
    Tested-by: Milo(Woogyom) Kim
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • When isolating pages for migration, migration starts at the start of a
    zone while the free scanner starts at the end of the zone. Migration
    avoids entering a new zone by never going beyond the free scanned.

    Unfortunately, in very rare cases nodes can overlap. When this happens,
    migration isolates pages without the LRU lock held, corrupting lists
    which will trigger errors in reclaim or during page free such as in the
    following oops

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [] free_pcppages_bulk+0xcc/0x450
    PGD 1dda554067 PUD 1e1cb58067 PMD 0
    Oops: 0000 [#1] SMP
    CPU 37
    Pid: 17088, comm: memcg_process_s Tainted: G X
    RIP: free_pcppages_bulk+0xcc/0x450
    Process memcg_process_s (pid: 17088, threadinfo ffff881c2926e000, task ffff881c2926c0c0)
    Call Trace:
    free_hot_cold_page+0x17e/0x1f0
    __pagevec_free+0x90/0xb0
    release_pages+0x22a/0x260
    pagevec_lru_move_fn+0xf3/0x110
    putback_lru_page+0x66/0xe0
    unmap_and_move+0x156/0x180
    migrate_pages+0x9e/0x1b0
    compact_zone+0x1f3/0x2f0
    compact_zone_order+0xa2/0xe0
    try_to_compact_pages+0xdf/0x110
    __alloc_pages_direct_compact+0xee/0x1c0
    __alloc_pages_slowpath+0x370/0x830
    __alloc_pages_nodemask+0x1b1/0x1c0
    alloc_pages_vma+0x9b/0x160
    do_huge_pmd_anonymous_page+0x160/0x270
    do_page_fault+0x207/0x4c0
    page_fault+0x25/0x30

    The "X" in the taint flag means that external modules were loaded but but
    is unrelated to the bug triggering. The real problem was because the PFN
    layout looks like this

    Zone PFN ranges:
    DMA 0x00000010 -> 0x00001000
    DMA32 0x00001000 -> 0x00100000
    Normal 0x00100000 -> 0x01e80000
    Movable zone start PFN for each node
    early_node_map[14] active PFN ranges
    0: 0x00000010 -> 0x0000009b
    0: 0x00000100 -> 0x0007a1ec
    0: 0x0007a354 -> 0x0007a379
    0: 0x0007f7ff -> 0x0007f800
    0: 0x00100000 -> 0x00680000
    1: 0x00680000 -> 0x00e80000
    0: 0x00e80000 -> 0x01080000
    1: 0x01080000 -> 0x01280000
    0: 0x01280000 -> 0x01480000
    1: 0x01480000 -> 0x01680000
    0: 0x01680000 -> 0x01880000
    1: 0x01880000 -> 0x01a80000
    0: 0x01a80000 -> 0x01c80000
    1: 0x01c80000 -> 0x01e80000

    The fix is straight-forward. isolate_migratepages() has to make a
    similar check to isolate_freepage to ensure that it never isolates pages
    from a zone it does not hold the LRU lock for.

    This was discovered in a 3.0-based kernel but it affects 3.1.x, 3.2.x
    and current mainline.

    Signed-off-by: Mel Gorman
    Acked-by: Michal Nazarewicz
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • nsegs is read from userspace. Limit its value and avoid overflowing nsegs
    * sizeof(__u64) in the subsequent call to memdup_user().

    This patch complements 481fe17e973fb9 ("nilfs2: potential integer overflow
    in nilfs_ioctl_clean_segments()").

    Signed-off-by: Xi Wang
    Cc: Haogang Chen
    Acked-by: Ryusuke Konishi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xi Wang
     
  • sound fixes #2 for 3.3-rc3

    A collection of small fixes, mostly for regressions.
    In addition, a few ASoC wm8994 updates are included, too.

    * tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ASoC: wm8994: Disable line output discharge prior to ramping VMID
    ASoC: wm8994: Fix typo in VMID ramp setting
    ALSA: oxygen, virtuoso: fix exchanged L/R volumes of aux and CD inputs
    ALSA: usb-audio: add Edirol UM-3G support
    ALSA: hda - add support for Uniwill ECS M31EI notebook
    ALSA: hda - Fix error handling in patch_ca0132.c
    ASoC: wm8994: Enabling VMID should take a runtime PM reference
    ALSA: hda/realtek - Fix a wrong condition
    ALSA: emu8000: Remove duplicate linux/moduleparam.h include from emu8000_patch.c
    ALSA: hda/realtek - Add missing Bass and CLFE as vmaster slaves
    ASoC: wm_hubs: Correct line input to line output 2 paths
    ASoC: cs42l73: Fix Output [X|A|V]SP_SCLK Sourcing Mode setting for master mode
    ASoC: wm8962: Fix word length configuration
    ASoC: core: Better support for idle_bias_off suspend ignores
    ASoC: wm8994: Remove ASoC level register cache sync
    ASoC: wm_hubs: Fix routing of input PGAs to line output mixer

    Linus Torvalds
     
  • A few small WM8994 updates to go on top of the previous lot of things
    that were sent. They collide with some -next work so I'd really like to
    get them into 3.3-rc3 if possible to merge back up into the -next code.
    All driver specific and unexciting in the grand scheme of things.

    Takashi Iwai
     
  • Signed-off-by: Mark Brown

    Mark Brown
     
  • The VMID ramp rate is supposed to be 0x3, not 11b. Fix that.

    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Mark Brown
     

08 Feb, 2012

10 commits

  • The driver accidentally exchanged the left/right fields for stereo AC'97
    mixer registers. This affected only the aux and CD inputs because the
    line input bypasses the AC'97 codec and the mic input is mono; cards
    without AC'97 (Xonar DS/DG/HDAV Slim, HG2PCI, HiFier) were not affected.

    Reported-and-tested-by: Abby Cedar
    Signed-off-by: Clemens Ladisch
    Cc: 2.6.31+
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • fbdev fixes for 3.3

    It includes:
    - compile fix for fsl-diu-fb
    - fix for a suspend/resume issue in atmel_lcdfb
    - fix for a suspend/resume issue in OMAP
    - workaround for a hardware bug to avoid physical damage in OMAP
    - really trivial dead code removal in intelfb

    * tag 'fbdev-fixes-for-3.3-1' of git://github.com/schandinat/linux-2.6:
    atmel_lcdfb: fix usage of CONTRAST_CTR in suspend/resume
    intelfb: remove some dead code
    drivers/video: compile fixes for fsl-diu-fb.c
    OMAPDSS: HDMI: PHY burnout fix
    OMAP: 4430SDP/Panda: add HDMI HPD gpio
    OMAP: 4430SDP/Panda: setup HDMI GPIO muxes
    OMAPDSS: remove wrong HDMI HPD muxing
    OMAP: 4430SDP/Panda: rename HPD GPIO to CT_CP_HPD
    OMAP: 4430SDP/Panda: use gpio_free_array to free HDMI gpios
    OMAPDSS: use sync versions of pm_runtime_put

    Linus Torvalds
     
  • Overly indented code should be refactored.

    Suggest refactoring excessive indentation of of
    if/else/for/do/while/switch statements.

    For example:

    $ cat t.c
    #include
    #include

    int main(int argc, char **argv)
    {

    if (1)
    if (2)
    if (3)
    if (4)
    if (5)
    if (6)
    if (7)
    if (8)
    ;
    return 0;
    }

    $ ./scripts/checkpatch.pl -f t.c
    WARNING: Too many leading tabs - consider code refactoring
    #12: FILE: t.c:12:
    + if (6)

    WARNING: Too many leading tabs - consider code refactoring
    #13: FILE: t.c:13:
    + if (7)

    WARNING: Too many leading tabs - consider code refactoring
    #14: FILE: t.c:14:
    + if (8)

    total: 0 errors, 3 warnings, 17 lines checked

    t.c has style problems, please review.

    If any of these errors are false positives, please report
    them to the maintainer, see CHECKPATCH in MAINTAINERS.

    Signed-off-by: Joe Perches
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Cleanups and error path fixes for the new SRP (SCSI RDMA protocol) target.

    * tag 'ib-srpt-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/srpt: Don't return freed pointer from srpt_alloc_ioctx_ring()
    IB/srpt: Fix ERR_PTR() vs. NULL checking confusion
    IB/srpt: Remove unneeded include
    IB/srpt: Use ARRAY_SIZE() instead of open-coding
    IB/srpt: Use DEFINE_SPINLOCK()/LIST_HEAD()

    Linus Torvalds
     
  • arch: fix ioport mapping on mips,sh

    Kevin Cernekee reported that recent cleanup that replaced pci_iomap with
    a generic function failed to take into account the differences in io
    port handling on mips and sh architectures.

    Rather than revert the changes reintroducing the code duplication, this
    patchset fixes this by adding ability for architectures to override
    ioport mapping for pci devices.

    Signed-off-by: Michael S. Tsirkin

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    sh: use the the PCI channels's io_map_base
    mips: use the the PCI controller's io_map_base
    lib: add NO_GENERIC_PCI_IOPORT_MAP

    Linus Torvalds
     
  • Those lines have two copies.

    Signed-off-by: Yinghai Lu
    Cc: Thomas Renninger
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • * git://git.samba.org/sfrench/cifs-2.6:
    cifs: Fix oops in session setup code for null user mounts
    [CIFS] Update cifs Kconfig title to match removal of experimental dependency
    cifs: fix printk format warnings
    cifs: check offset in decode_ntlmssp_challenge()
    cifs: NULL dereference on allocation failure

    Linus Torvalds
     
  • * 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: wiimote: fix invalid power_supply_powers call
    HID: wacom: Fix invalid power_supply_powers calls
    HID: hyperv: Properly disconnect the input device
    HID: usbhid: fix dead lock between open and disconect

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
    mfd: Avoid twl6040-codec PLL reconfiguration when not needed
    mfd: Store twl6040-codec mclk configuration

    Linus Torvalds
     

07 Feb, 2012

15 commits

  • This hardware requires same fixup for the node 0x0f like Asus A6Rp.
    More information: https://bugzilla.redhat.com/show_bug.cgi?id=785417

    Signed-off-by: Jaroslav Kysela
    Signed-off-by: Takashi Iwai

    Jaroslav Kysela
     
  • Analogically to d7cb3dbd1 ("HID: wacom: Fix invalid power_supply_powers
    calls"), fix also the same occurence in wiimote driver.

    Reported-by: przemo@firszt.eu
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • In patch_ca0132.c, the error returned from chipio_write() isn't checked
    always. Also, the power-up/down sequence isn't tracked properly in some
    error paths.

    Reported-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The only particularly remarkable change here is the one for handling of
    the Android suspend ignore code for idle_bias_off CODECs. That one is
    actually a regression fix as some of the new power savings that have
    been introduced confused the suspend ignore code, making devices that
    are active for non-audio reasons look like they are idle causing them to
    be suspended instead of being kept active.

    Takashi Iwai
     
  • This patch fixes a bug in target-core where unsupported WRITE_SAME ops
    from a target_check_write_same_discard() failure was incorrectly
    returning CHECK_CONDITION w/ TCM_INVALID_CDB_FIELD sense data.
    This was causing some clients to not properly fall back, so go ahead
    and use the correct TCM_UNSUPPORTED_SCSI_OPCODE sense for this case.

    Reported-by: Martin Svec
    Signed-off-by: Nicholas Bellinger

    Martin Svec
     
  • Use IP_FREEBIND socket option so that iscsi portal configuration with
    explicit IP addresses can happen during boot, before network interfaces
    have been assigned IPs.

    This is especially important on systemd based Linux boxes where system
    boot happens asynchronously and non-trivial configuration must be done
    to get targetcli.service to start synchronously after the network is
    configured.

    Reference:
    http://lists.fedoraproject.org/pipermail/devel/2011-October/158025.html

    Signed-off-by: Dax Kelson
    Cc: "Nicholas A. Bellinger"
    Cc: "Andy Grover"
    Cc: "Lennart Poettering"
    Signed-off-by: Nicholas Bellinger

    Dax Kelson
     
  • Requesting to many bvecs upsets bio_alloc_bioset, so limit the number we ask
    for to the amount it can handle.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Nicholas Bellinger

    Christoph Hellwig
     
  • These are root only and we're not likely to hit the problem in practise,
    but it makes the static checkers happy.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Nicholas Bellinger

    Dan Carpenter
     
  • Fixes this error after a recent nfs cleanup:

    drivers/target/iscsi/iscsi_target_configfs.c: In function 'lio_target_call_addnptotpg':
    drivers/target/iscsi/iscsi_target_configfs.c:214:3: error: implicit declaration of function 'in6_pton' [-Werror=implicit-function-declaration]
    drivers/target/iscsi/iscsi_target_configfs.c:239:3: error: implicit declaration of function 'in_aton' [-Werror=implicit-function-declaration]

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Nicholas Bellinger

    Stephen Rothwell
     
  • The block layer keeps q->limits.discard_granularity in bytes, but iblock
    (and the SCSI Block Limits VPD page) keep unmap_granularity in blocks.
    Report the correct value when exporting block devices by dividing to
    convert bytes to blocks.

    Signed-off-by: Roland Dreier
    Signed-off-by: Nicholas Bellinger

    Marco Sanvido
     
  • This patch fixes a bug in target_submit_cmd() where the failure path
    for transport_generic_allocate_tasks() made a direct call to
    transport_send_check_condition_and_sense() and not calling the
    final target_put_sess_cmd() release callback.

    For transport_generic_allocate_tasks() failures, use the proper call to
    transport_generic_request_failure() to handle kref_put() along
    with potential internal queue full response processing.

    It also makes transport_lookup_cmd_lun() failures in
    target_submit_cmd() use transport_send_check_condition_and_sense() and
    target_put_sess_cmd() directly to avoid se_cmd->se_dev reference in
    transport_generic_request_failure() handling.

    Finally it drops the out_check_cond: label and use direct reference for
    allocate task failures, and per-se_device queue_full handling is
    currently not supported for transport_lookup_cmd_lun() failure
    descriptors due to se_device dependency.

    Reported-by: Roland Dreier
    Cc: Roland Dreier
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • Retval not very useful, and may even be harmful. Once submitted, fabrics
    should expect a sense error if anything goes wrong. All fabrics checking
    of this retval are useless or broken:

    fc checks it just to emit more debug output.
    ib_srpt trickles retval up, then it is ignored.
    qla2xxx trickles it up, which then causes a bug because the abort goto
    in qla_target.c thinks cmd hasn't been sent to target.

    Just returning nothing is best.

    Signed-off-by: Andy Grover
    Signed-off-by: Nicholas Bellinger

    Andy Grover
     
  • WindowsXP+BOT issues a MODE_SENSE request with page 0x1c which is not
    suppoerted by target. Target rejects that command with
    TCM_INVALID_CDB_FIELD, so far so good. On BOT I can't send the SENSE
    response back, instead I can only reply that an error occured. The next
    thing happens is a REQUEST_SENSE request with 18 bytes length. Since the
    check here is more than 18 bytes I have to NACK that request as well.
    This is not really required: We check for some additional room, but we
    never use it. The additional length is set to 0xa so the total length is
    0xa + 8 = 18 which is fine with my 18 bytes.

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Nicholas Bellinger

    Sebastian Andrzej Siewior
     
  • 1/ If a resync is aborted we should record how far we got
    (recovery_cp) the last request that we know has completed
    (->curr_resync_completed) rather than the last request that was
    submitted (->curr_resync).

    2/ When a resync aborts we still want to update the metadata with
    any changes, so set MD_CHANGE_DEVS even if we 'skip'.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Update quilt tree location for Documentation/ patches.

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

    Randy Dunlap