03 Aug, 2018

1 commit

  • [ Upstream commit 002fe996f67f4f46d8917b14cfb6e4313c20685a ]

    When we create an mdev device, we check for duplicates against the
    parent device and return -EEXIST if found, but the mdev device
    namespace is global since we'll link all devices from the bus. We do
    catch this later in sysfs_do_create_link_sd() to return -EEXIST, but
    with it comes a kernel warning and stack trace for trying to create
    duplicate sysfs links, which makes it an undesirable response.

    Therefore we should really be looking for duplicates across all mdev
    parent devices, or as implemented here, against our mdev device list.
    Using mdev_list to prevent duplicates means that we can remove
    mdev_parent.lock, but in order not to serialize mdev device creation
    and removal globally, we add mdev_device.active which allows UUIDs to
    be reserved such that we can drop the mdev_list_lock before the mdev
    device is fully in place.

    Two behavioral notes; first, mdev_parent.lock had the side-effect of
    serializing mdev create and remove ops per parent device. This was
    an implementation detail, not an intentional guarantee provided to
    the mdev vendor drivers. Vendor drivers can trivially provide this
    serialization internally if necessary. Second, review comments note
    the new -EAGAIN behavior when the device, and in particular the remove
    attribute, becomes visible in sysfs. If a remove is triggered prior
    to completion of mdev_device_create() the user will see a -EAGAIN
    error. While the errno is different, receiving an error during this
    period is not, the previous implementation returned -ENODEV for the
    same condition. Furthermore, the consistency to the user is improved
    in the case where mdev_device_remove_ops() returns error. Previously
    concurrent calls to mdev_device_remove() could see the device
    disappear with -ENODEV and return in the case of error. Now a user
    would see -EAGAIN while the device is in this transitory state.

    Reviewed-by: Kirti Wankhede
    Reviewed-by: Cornelia Huck
    Acked-by: Halil Pasic
    Acked-by: Zhenyu Wang
    Signed-off-by: Alex Williamson
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Alex Williamson
     

15 Jul, 2017

1 commit

  • Each text file under Documentation follows a different
    format. Some doesn't even have titles!

    In this specific document, the title, copyright and authorship
    are added as if it were a C file!

    Change its representation to follow the adopted standard,
    using ReST markups for it to be parseable by Sphinx:
    - convert document preambule to the proper format;
    - mark literal blocks;
    - adjust identation;
    - use numbered lists for references.

    Reviewed by: Kirti Wankhede
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

28 Apr, 2017

1 commit


18 Mar, 2017

1 commit


30 Dec, 2016

2 commits


18 Nov, 2016

1 commit


17 Nov, 2016

1 commit