16 Dec, 2011

3 commits

  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    USB: option: Removing one bogus and adding some new Huawei combinations
    USB: cdc-acm: add IDs for Motorola H24 HSPA USB module.
    usb: option: Add Huawei E398 controlling interfaces
    usb: renesas_usbhs: add hcd->has_tt for low/full speed
    usb: renesas_usbhs: typofix: irq_dtch control DTCHE
    usb: gadget: storage: release superspeed descriptors.

    Linus Torvalds
     
  • …kernel/git/konrad/xen

    * 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/swiotlb: Use page alignment for early buffer allocation.
    xen: only limit memory map to maximum reservation for domain 0.

    Linus Torvalds
     
  • This fixes an odd bug found on a Dell PowerEdge 1850/0RC130
    (BIOS A05 01/09/2006) where all of the modules doing pci_set_dma_mask
    would fail with:

    ata_piix 0000:00:1f.1: enabling device (0005 -> 0007)
    ata_piix 0000:00:1f.1: can't derive routing for PCI INT A
    ata_piix 0000:00:1f.1: BMDMA: failed to set dma mask, falling back to PIO

    The issue was the Xen-SWIOTLB was allocated such as that the end of
    buffer was stradling a page (and also above 4GB). The fix was
    spotted by Kalev Leonid which was to piggyback on git commit
    e79f86b2ef9c0a8c47225217c1018b7d3d90101c "swiotlb: Use page alignment
    for early buffer allocation" which:

    We could call free_bootmem_late() if swiotlb is not used, and
    it will shrink to page alignment.

    So alloc them with page alignment at first, to avoid lose two pages

    And doing that fixes the outstanding issue.

    CC: stable@kernel.org
    Suggested-by: "Kalev, Leonid"
    Reported-and-Tested-by: "Taylor, Neal E"
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

14 Dec, 2011

2 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    ceph: add missing spin_unlock at ceph_mdsc_build_path()
    ceph: fix SEEK_CUR, SEEK_SET regression
    crush: fix mapping calculation when force argument doesn't exist
    ceph: use i_ceph_lock instead of i_lock
    rbd: remove buggy rollback functionality
    rbd: return an error when an invalid header is read
    ceph: fix rasize reporting by ceph_show_options

    Linus Torvalds
     
  • Huawei use the product code HUAWEI_PRODUCT_E353 (0x1506) for a
    number of different devices, which each can appear with a number
    of different descriptor sets. Different types of interfaces
    can be identified by looking at the subclass and protocol fields

    Subclass 1 protocol 8 is actually the data interface of a CDC
    ECM set, with subclass 1 protocol 9 as the control interface.
    Neither support serial data communcation, and cannot therefore
    be supported by this driver.

    At the same time, add a few other sets which appear if the
    device is configured in "Windows mode" using this modeswitch
    message:
    55534243000000000000000000000011060000000100000000000000000000

    Signed-off-by: Bjørn Mork
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Bjørn Mork
     

13 Dec, 2011

6 commits


12 Dec, 2011

3 commits


11 Dec, 2011

10 commits


10 Dec, 2011

3 commits


09 Dec, 2011

6 commits


08 Dec, 2011

7 commits

  • Once a device is failed we really want to completely ignore it.
    It should go away soon anyway.

    In particular the presence of bad blocks on it should not cause us to
    block as we won't be trying to write there anyway.

    So as soon as we can check if a device is Faulty, do so and pretend
    that it is already gone if it is Faulty.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • When we mark blocks as bad we need them to be acknowledged by the
    metadata handler promptly.

    For an in-kernel metadata handler that was already being done. But
    for an external metadata handler we need to alert it of the change by
    sending a notification through the sysfs file. This adds that
    notification.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Once a device is marked Faulty the badblocks - whether acknowledged or
    not - become irrelevant. So they shouldn't cause the device to be
    marked as Blocked.

    Without this patch, a process might write "-blocked" to clear the
    Blocked status, but while that will correctly fail the device, it
    won't remove the apparent 'blocked' status.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • When we are accessing an mddev via sysfs we know that the
    mddev cannot disappear because it has an embedded kobj which
    is refcounted by sysfs.
    And we also take the mddev_lock.
    However this is not enough.

    The final mddev_put could have been called and the
    mddev_delayed_delete is waiting for sysfs to let go so it can destroy
    the kobj and mddev.
    In this state there are a lot of changes that should not be attempted.

    To to guard against this we:
    - initialise mddev->all_mddevs in on last put so the state can be
    easily detected.
    - in md_attr_show and md_attr_store, check ->all_mddevs under
    all_mddevs_lock and mddev_get the mddev if it still appears to
    be active.

    This means that if we get to sysfs as the mddev is being deleted we
    will get -EBUSY.

    rdev_attr_store and rdev_attr_show are similar but already have
    sufficient protection. They check that rdev->mddev still points to
    mddev after taking mddev_lock. As this is cleared before delayed
    removal which can only be requested under the mddev_lock, this
    ensure the rdev and mddev are still alive.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • We like md devices to disappear when they really are not needed.
    However it is not possible to tell from the current state whether it
    is needed or not. We can only tell from recent history of changes.

    In particular immediately after we create an md device it looks very
    similar to immediately after we have finished with it.

    So we always preserve a newly created md device until something
    significant happens. This state is stored in 'hold_active'.

    The normal case is to keep it until an ioctl happens, as that will
    normally either activate it, or explicitly de-activate it. If it
    doesn't then it was probably created by mistake and it is now time to
    get rid of it.

    We can also modify an array via sysfs (instead of via ioctl) and we
    currently treat any change via sysfs like an ioctl as a sign that if
    it now isn't more active, it should be destroyed.
    However this is not appropriate as changes made via sysfs are more
    gradual so we should look for a more definitive change.

    So this patch only clears 'hold_active' from UNTIL_IOCTL to clear when
    the array_state is changed via sysfs. Other changes via sysfs
    are ignored.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Reported by Russell King:
    mmcblk0: error -84 transferring data, sector 149201, nr 64,
    cmd response 0x900, card status 0xb00
    mmcblk0: retrying using single block read

    WARNING: at lib/dma-debug.c:811 check_unmap
    omap_hsmmc omap_hsmmc.0: DMA-API: device driver tries to free DMA memory
    it has not allocated [device address=0x0000000080933000] [size=20480 bytes]

    In case of an error dma_unmap() is issued in omap_hsmmc_dma_cleanup()
    and then again in omap_hsmmc_post_req(). Resolve this by clearing the
    host_cookie to indicate there is no DMA mapped memory to unmap.

    Signed-off-by: Per Forlin
    Tested-by: Balaji T K
    Tested-by: Russell King
    Signed-off-by: Chris Ball

    Per Forlin
     
  • * '3.2-rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (25 commits)
    iscsi-target: Fix hex2bin warn_unused compile message
    target: Don't return an error if disabling unsupported features
    target/rd: fix or rewrite the copy routine
    target/rd: simplify the page/offset computation
    target: remove the unused se_dev_list
    target/file: walk properly over sg list
    target: remove unused struct fields
    target: Fix page length in emulated INQUIRY VPD page 86h
    target: Handle 0 correctly in transport_get_sectors_6()
    target: Don't return an error status for 0-length READ and WRITE
    iscsi-target: Use kmemdup rather than duplicating its implementation
    iscsi-target: Add missing F_BIT for iscsi_tm_rsp
    iscsi-target: Fix residual count hanlding + remove iscsi_cmd->residual_count
    target: Reject SCSI data overflow for fabrics using transport_generic_map_mem_to_cmd
    target: remove the unused t_task_pt_sgl and t_task_pt_sgl_num se_cmd fields
    target: remove the t_tasks_bidi se_cmd field
    target: remove the t_tasks_fua se_cmd field
    target: remove the se_ordered_node se_cmd field
    target: remove the se_obj_ptr and se_orig_obj_ptr se_cmd fields
    target: Drop config_item_name usage in fabric TFO->free_wwn()
    ...

    Linus Torvalds