02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

09 Jun, 2017

1 commit

  • Currently we use nornal Linux errno values in the block layer, and while
    we accept any error a few have overloaded magic meanings. This patch
    instead introduces a new blk_status_t value that holds block layer specific
    status codes and explicitly explains their meaning. Helpers to convert from
    and to the previous special meanings are provided for now, but I suspect
    we want to get rid of them in the long run - those drivers that have a
    errno input (e.g. networking) usually get errnos that don't know about
    the special block layer overloads, and similarly returning them to userspace
    will usually return somethings that strictly speaking isn't correct
    for file system operations, but that's left as an exercise for later.

    For now the set of errors is a very limited set that closely corresponds
    to the previous overloaded errno values, but there is some low hanging
    fruite to improve it.

    blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
    typechecking, so that we can easily catch places passing the wrong values.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

18 Feb, 2017

1 commit


01 Feb, 2017

2 commits


25 Jan, 2017

1 commit

  • gcc-7 produces a harmless false-postive warning about a possible NULL
    pointer access:

    drivers/memstick/core/memstick.c: In function 'h_memstick_read_dev_id':
    drivers/memstick/core/memstick.c:309:3: error: argument 2 null where non-null expected [-Werror=nonnull]
    memcpy(mrq->data, buf, mrq->data_len);

    This can't happen because the caller sets the command to 'MS_TPC_READ_REG',
    which causes the data direction to be 'READ' and the NULL pointer not
    accessed.

    As a simple workaround for the warning, we can pass a pointer to the
    data that we actually want to read into. This is not needed here, but
    also harmless, and lets the compiler know that the access is ok.

    Link: http://lkml.kernel.org/r/20170111144143.548867-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

14 Dec, 2016

1 commit

  • Pull block layer updates from Jens Axboe:
    "This is the main block pull request this series. Contrary to previous
    release, I've kept the core and driver changes in the same branch. We
    always ended up having dependencies between the two for obvious
    reasons, so makes more sense to keep them together. That said, I'll
    probably try and keep more topical branches going forward, especially
    for cycles that end up being as busy as this one.

    The major parts of this pull request is:

    - Improved support for O_DIRECT on block devices, with a small
    private implementation instead of using the pig that is
    fs/direct-io.c. From Christoph.

    - Request completion tracking in a scalable fashion. This is utilized
    by two components in this pull, the new hybrid polling and the
    writeback queue throttling code.

    - Improved support for polling with O_DIRECT, adding a hybrid mode
    that combines pure polling with an initial sleep. From me.

    - Support for automatic throttling of writeback queues on the block
    side. This uses feedback from the device completion latencies to
    scale the queue on the block side up or down. From me.

    - Support from SMR drives in the block layer and for SD. From Hannes
    and Shaun.

    - Multi-connection support for nbd. From Josef.

    - Cleanup of request and bio flags, so we have a clear split between
    which are bio (or rq) private, and which ones are shared. From
    Christoph.

    - A set of patches from Bart, that improve how we handle queue
    stopping and starting in blk-mq.

    - Support for WRITE_ZEROES from Chaitanya.

    - Lightnvm updates from Javier/Matias.

    - Supoort for FC for the nvme-over-fabrics code. From James Smart.

    - A bunch of fixes from a whole slew of people, too many to name
    here"

    * 'for-4.10/block' of git://git.kernel.dk/linux-block: (182 commits)
    blk-stat: fix a few cases of missing batch flushing
    blk-flush: run the queue when inserting blk-mq flush
    elevator: make the rqhash helpers exported
    blk-mq: abstract out blk_mq_dispatch_rq_list() helper
    blk-mq: add blk_mq_start_stopped_hw_queue()
    block: improve handling of the magic discard payload
    blk-wbt: don't throttle discard or write zeroes
    nbd: use dev_err_ratelimited in io path
    nbd: reset the setup task for NBD_CLEAR_SOCK
    nvme-fabrics: Add FC LLDD loopback driver to test FC-NVME
    nvme-fabrics: Add target support for FC transport
    nvme-fabrics: Add host support for FC transport
    nvme-fabrics: Add FC transport LLDD api definitions
    nvme-fabrics: Add FC transport FC-NVME definitions
    nvme-fabrics: Add FC transport error codes to nvme.h
    Add type 0x28 NVME type code to scsi fc headers
    nvme-fabrics: patch target code in prep for FC transport support
    nvme-fabrics: set sqe.command_id in core not transports
    parser: add u64 number parser
    nvme-rdma: align to generic ib_event logging helper
    ...

    Linus Torvalds
     

28 Oct, 2016

1 commit

  • A lot of the REQ_* flags are only used on struct requests, and only of
    use to the block layer and a few drivers that dig into struct request
    internals.

    This patch adds a new req_flags_t rq_flags field to struct request for
    them, and thus dramatically shrinks the number of common requests. It
    also removes the unfortunate situation where we have to fit the fields
    from the same enum into 32 bits for struct bio and 64 bits for
    struct request.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Shaun Tancheff
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

17 Oct, 2016

2 commits

  • Accesses to the rtsx usb device, which is the parent of the rtsx memstick
    device, must not be done unless it's runtime resumed. This is currently not
    the case and it could trigger various errors.

    Fix this by properly deal with runtime PM in this regards. This means
    making sure the device is runtime resumed, when serving requests via the
    ->request() callback or changing settings via the ->set_param() callbacks.

    Cc:
    Cc: Ritesh Raj Sarraf
    Cc: Alan Stern
    Signed-off-by: Ulf Hansson

    Ulf Hansson
     
  • Accesses to the rtsx usb device, which is the parent of the rtsx memstick
    device, must not be done unless it's runtime resumed.

    Therefore when the rtsx_usb_ms driver polls for inserted memstick cards,
    let's add pm_runtime_get|put*() to make sure accesses is done when the
    rtsx usb device is runtime resumed.

    Reported-by: Ritesh Raj Sarraf
    Tested-by: Ritesh Raj Sarraf
    Signed-off-by: Alan Stern
    Cc:
    Signed-off-by: Ulf Hansson

    Alan Stern
     

03 Aug, 2016

1 commit

  • When alloc_disk(0) is used the ->major number is completely ignored.
    All devices are allocated with a major of BLOCK_EXT_MAJOR.

    So remove registration and deregistration of 'major'.

    Link: http://lkml.kernel.org/r/20160602064318.4403.49955.stgit@noble
    Signed-off-by: NeilBrown
    Cc: Keith Busch
    Cc: Jens Axboe
    Cc: Maxim Levitsky
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     

21 Jul, 2016

1 commit


28 Jun, 2016

1 commit

  • For block drivers that specify a parent device, convert them to use
    device_add_disk().

    This conversion was done with the following semantic patch:

    @@
    struct gendisk *disk;
    expression E;
    @@

    - disk->driverfs_dev = E;
    ...
    - add_disk(disk);
    + device_add_disk(E, disk);

    @@
    struct gendisk *disk;
    expression E1, E2;
    @@

    - disk->driverfs_dev = E1;
    ...
    E2 = disk;
    ...
    - add_disk(E2);
    + device_add_disk(E1, E2);

    ...plus some manual fixups for a few missed conversions.

    Cc: Jens Axboe
    Cc: Keith Busch
    Cc: Michael S. Tsirkin
    Cc: David Woodhouse
    Cc: David S. Miller
    Cc: James Bottomley
    Cc: Ross Zwisler
    Cc: Konrad Rzeszutek Wilk
    Cc: Martin K. Petersen
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     

24 May, 2016

2 commits

  • Use kmemdup when some other buffer is immediately copied into allocated
    region. It replaces call to allocation followed by memcpy, by a single
    call to kmemdup.

    [akpm@linux-foundation.org: remove unneeded cast to void*]
    Link: http://lkml.kernel.org/r/1463665743-16269-1-git-send-email-falakreyaz@gmail.com
    Signed-off-by: Muhammad Falak R Wani
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Muhammad Falak R Wani
     
  • First version of this patch has already been posted to LKML by Ben
    Hutchings ~6 months ago, but no further action were performed.

    Ben's original message:

    : rtsx_usb_ms creates a task that mostly sleeps, but tasks in
    : uninterruptible sleep still contribute to the load average (for
    : bug-compatibility with Unix). A load average of ~1 on a system that
    : should be idle is somewhat alarming.
    :
    : Change the sleep to be interruptible, but still ignore signals.

    References: https://bugs.debian.org/765717
    Link: http://lkml.kernel.org/r/b49f95ae83057efa5d96f532803cba47@natalenko.name
    Signed-off-by: Oleksandr Natalenko
    Cc: Oleg Nesterov
    Cc: Ben Hutchings
    Cc: Lee Jones
    Cc: Wolfram Sang
    Cc: Roger Tseng
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleksandr Natalenko
     

28 Apr, 2016

1 commit


26 Mar, 2016

1 commit

  • The r592 driver relies on behavior of the DMA mapping API that is
    normally observed but not guaranteed by the API. Instead it uses a
    runtime check to fail transfers if the API ever behaves

    When CONFIG_NEED_SG_DMA_LENGTH is not set, one of the checks turns into a
    comparison of a variable with itself, which gcc-6.0 now warns about:

    drivers/memstick/host/r592.c: In function 'r592_transfer_fifo_dma':
    drivers/memstick/host/r592.c:302:31: error: self-comparison always evaluates to false [-Werror=tautological-compare]
    (sg_dma_len(&dev->req->sg) < dev->req->sg.length)) {
    ^

    The check itself is not a problem, so this patch just rephrases the
    condition in a way that gcc does not consider an indication of a mistake.
    We already know that dev->req->sg.length was initially R592_LFIFO_SIZE, so
    we can compare it to that constant again.

    Signed-off-by: Arnd Bergmann
    Cc: Maxim Levitsky
    Cc: Quentin Lambert
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

21 Jan, 2016

1 commit

  • do_div is the wrong way to divide a sector_t, as it is less efficient
    when sector_t is 32-bit wide. With the upcoming do_div optimizations,
    the kernel starts warning about this:

    drivers/memstick/core/ms_block.c: In function 'msb_io_work':
    include/asm-generic/div64.h:207:28: warning: comparison of distinct pointer types lacks a cast

    This changes the code to use sector_div instead, which always produces
    optimal code.

    Signed-off-by: Arnd Bergmann
    Cc: Maxim Levitsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

01 Jul, 2015

1 commit

  • Replace occurences of the pci api by appropriate call to the dma api.

    A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr)

    @deprecated@
    idexpression id;
    position p;
    @@

    (
    pci_dma_supported@p ( id, ...)
    |
    pci_alloc_consistent@p ( id, ...)
    )

    @bad1@
    idexpression id;
    position deprecated.p;
    @@
    ...when != &id->dev
    when != pci_get_drvdata ( id )
    when != pci_enable_device ( id )
    (
    pci_dma_supported@p ( id, ...)
    |
    pci_alloc_consistent@p ( id, ...)
    )

    @depends on !bad1@
    idexpression id;
    expression direction;
    position deprecated.p;
    @@

    (
    - pci_dma_supported@p ( id,
    + dma_supported ( &id->dev,
    ...
    + , GFP_ATOMIC
    )
    |
    - pci_alloc_consistent@p ( id,
    + dma_alloc_coherent ( &id->dev,
    ...
    + , GFP_ATOMIC
    )
    )

    Signed-off-by: Quentin Lambert
    Cc: Maxim Levitsky
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Quentin Lambert
     

17 Apr, 2015

1 commit

  • Using the indenting we can see the curly braces were obviously intended.
    This is a static checker fix, but my guess is that we don't read enough
    bytes, because we don't calculate "t_len" correctly.

    Fixes: f1d82698029b ('memstick: use fully asynchronous request processing')
    Signed-off-by: Dan Carpenter
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     

20 Oct, 2014

1 commit


14 Oct, 2014

1 commit


24 Jun, 2014

1 commit


28 Apr, 2014

1 commit


24 Jan, 2014

1 commit

  • This patch is used to add support for ms card. The main difference
    between ms card and mspro card is long data transfer mode. mspro card
    can use auto mode DMA for long data transfer, but ms can not use this
    mode, it should use normal mode DMA.

    The memstick core added support for ms card, but the original driver will
    make ms card fail at initialization, because it uses auto mode DMA. This
    patch makes the ms card work properly.

    Signed-off-by: Micky Ching
    Cc: Maxim Levitsky
    Cc: Samuel Ortiz
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Micky Ching
     

15 Nov, 2013

2 commits


13 Nov, 2013

2 commits

  • In h_msb_read_page() in ms_block.c, flow never reaches case
    MSB_RP_RECIVE_STATUS_REG. This causes error when MEMSTICK_INT_ERR is
    encountered and status error bits are going to be examined, but the status
    will never be copied back.

    Fix it by transitioning to MSB_RP_RECIVE_STATUS_REG right after
    MSB_RP_SEND_READ_STATUS_REG.

    Signed-off-by: Roger Tseng
    Acked-by: Maxim Levitsky
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roger Tseng
     
  • attrs field of attribute_group structure is a pointer to a pointer (as in
    an array of pointers) rather than pointer to attribute struct (as in an
    array of structures), so when allocating size of the pointer sholud be
    used instead of the structure it is pointing to.

    While at it, also change the call to use kcalloc rather than kzalloc.

    Signed-off-by: Michal Nazarewicz
    Cc: Tejun Heo
    Cc: Al Viro
    Cc: Alex Dubov
    Cc: Maxim Levitsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Nazarewicz
     

17 Oct, 2013

1 commit


12 Sep, 2013

2 commits

  • Based partially on MS standard spec quotes from Alex Dubov.

    As any code that works with user data this driver isn't recommended to use
    to write cards that contain valuable data.

    It tries its best though to avoid data corruption and possible damage to
    the card.

    Tested on MS DUO 64 MB card on Ricoh R592 card reader.

    Signed-off-by: Maxim Levitsky
    Cc: Valdis Kletnieks
    Cc: Jens Axboe
    Cc: Alex Dubov
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maxim Levitsky
     
  • The driver core clears the driver data to NULL after device_release or on
    probe failure. Thus, it is not needed to manually clear the device driver
    data to NULL.

    Signed-off-by: Jingoo Han
    Cc: Maxim Levitsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jingoo Han
     

30 Aug, 2013

1 commit


04 Jul, 2013

2 commits


07 May, 2013

1 commit


01 May, 2013

1 commit


28 Feb, 2013

2 commits


25 Feb, 2013

1 commit

  • Pull MFS updates from Samuel Ortiz:
    "This is the MFD pull request for the 3.9 merge window.

    No new drivers this time, but a bunch of fairly big cleanups:

    - Roger Quadros worked on a OMAP USBHS and TLL platform data
    consolidation, OMAP5 support and clock management code cleanup.

    - The first step of a major sync for the ab8500 driver from Lee
    Jones. In particular, the debugfs and the sysct interfaces got
    extended and improved.

    - Peter Ujfalusi sent a nice patchset for cleaning and fixing the
    twl-core driver, with a much needed module id lookup code
    improvement.

    - The regular wm5102 and arizona cleanups and fixes from Mark Brown.

    - Laxman Dewangan extended the palmas APIs in order to implement the
    palmas GPIO and rt drivers.

    - Laxman also added DT support for the tps65090 driver.

    - The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
    and Darren Hart.

    - Linus Walleij patchset for the ab8500 driver allowed ab8500 and
    ab9540 based devices to switch to the new abx500 pin-ctrl driver.

    - The max8925 now has device tree and irqdomain support thanks to
    Qing Xu.

    - The recently added rtsx driver got a few cleanups and fixes for a
    better card detection code path and now also supports the RTS5227
    chipset, thanks to Wei Wang and Roger Tseng."

    * tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
    mfd: lpc_ich: Use devres API to allocate private data
    mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
    mfd: lpc_sch: Accomodate partial population of the MFD devices
    mfd: da9052-i2c: Staticize da9052_i2c_fix()
    mfd: syscon: Fix sparse warning
    mfd: twl-core: Fix kernel panic on boot
    mfd: rtsx: Fix issue that booting OS with SD card inserted
    mfd: ab8500: Fix compile error
    mfd: Add missing GENERIC_HARDIRQS dependecies
    Documentation: Add docs for max8925 dt
    mfd: max8925: Add dts
    mfd: max8925: Support dt for backlight
    mfd: max8925: Fix onkey driver irq base
    mfd: max8925: Fix mfd device register failure
    mfd: max8925: Add irqdomain for dt
    mfd: vexpress: Allow vexpress-sysreg to self-initialise
    mfd: rtsx: Support RTS5227
    mfd: rtsx: Implement driving adjustment to device-dependent callbacks
    mfd: vexpress: Add pseudo-GPIO based LEDs
    mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
    ...

    Linus Torvalds