13 Jan, 2021

2 commits

  • [ Upstream commit 5ae65383fc7633e0247c31b0c8bf0e6ea63b95a3 ]

    This is another step that prepares for the removal of RQF_PREEMPT.

    Link: https://lore.kernel.org/r/20201209052951.16136-5-bvanassche@acm.org
    Cc: David S. Miller
    Cc: Alan Stern
    Cc: Can Guo
    Cc: Stanley Chu
    Cc: Ming Lei
    Cc: Rafael J. Wysocki
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Jens Axboe
    Signed-off-by: Bart Van Assche
    Signed-off-by: Martin K. Petersen
    Signed-off-by: Sasha Levin

    Bart Van Assche
     
  • [ Upstream commit 96d86e6a80a3ab9aff81d12f9f1f2a0da2917d38 ]

    RQF_PREEMPT is used for two different purposes in the legacy IDE code:

    1. To mark power management requests.

    2. To mark requests that should preempt another request. An (old)
    explanation of that feature is as follows: "The IDE driver in the Linux
    kernel normally uses a series of busywait delays during its
    initialization. When the driver executes these busywaits, the kernel
    does nothing for the duration of the wait. The time spent in these
    waits could be used for other initialization activities, if they could
    be run concurrently with these waits.

    More specifically, busywait-style delays such as udelay() in module
    init functions inhibit kernel preemption because the Big Kernel Lock is
    held, while yielding APIs such as schedule_timeout() allow
    preemption. This is true because the kernel handles the BKL specially
    and releases and reacquires it across reschedules allowed by the
    current thread.

    This IDE-preempt specification requires that the driver eliminate these
    busywaits and replace them with a mechanism that allows other work to
    proceed while the IDE driver is initializing."

    Since I haven't found an implementation of (2), do not set the PREEMPT flag
    for sense requests. This patch causes sense requests to be postponed while
    a drive is suspended instead of being submitted to ide_queue_rq().

    If it would ever be necessary to restore the IDE PREEMPT functionality,
    that can be done by introducing a new flag in struct ide_request.

    Link: https://lore.kernel.org/r/20201209052951.16136-4-bvanassche@acm.org
    Cc: David S. Miller
    Cc: Alan Stern
    Cc: Can Guo
    Cc: Stanley Chu
    Cc: Ming Lei
    Cc: Rafael J. Wysocki
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Jens Axboe
    Signed-off-by: Bart Van Assche
    Signed-off-by: Martin K. Petersen
    Signed-off-by: Sasha Levin

    Bart Van Assche
     

14 Oct, 2020

1 commit

  • Pull block updates from Jens Axboe:

    - Series of merge handling cleanups (Baolin, Christoph)

    - Series of blk-throttle fixes and cleanups (Baolin)

    - Series cleaning up BDI, seperating the block device from the
    backing_dev_info (Christoph)

    - Removal of bdget() as a generic API (Christoph)

    - Removal of blkdev_get() as a generic API (Christoph)

    - Cleanup of is-partition checks (Christoph)

    - Series reworking disk revalidation (Christoph)

    - Series cleaning up bio flags (Christoph)

    - bio crypt fixes (Eric)

    - IO stats inflight tweak (Gabriel)

    - blk-mq tags fixes (Hannes)

    - Buffer invalidation fixes (Jan)

    - Allow soft limits for zone append (Johannes)

    - Shared tag set improvements (John, Kashyap)

    - Allow IOPRIO_CLASS_RT for CAP_SYS_NICE (Khazhismel)

    - DM no-wait support (Mike, Konstantin)

    - Request allocation improvements (Ming)

    - Allow md/dm/bcache to use IO stat helpers (Song)

    - Series improving blk-iocost (Tejun)

    - Various cleanups (Geert, Damien, Danny, Julia, Tetsuo, Tian, Wang,
    Xianting, Yang, Yufen, yangerkun)

    * tag 'block-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (191 commits)
    block: fix uapi blkzoned.h comments
    blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
    blk-mq: get rid of the dead flush handle code path
    block: get rid of unnecessary local variable
    block: fix comment and add lockdep assert
    blk-mq: use helper function to test hw stopped
    block: use helper function to test queue register
    block: remove redundant mq check
    block: invoke blk_mq_exit_sched no matter whether have .exit_sched
    percpu_ref: don't refer to ref->data if it isn't allocated
    block: ratelimit handle_bad_sector() message
    blk-throttle: Re-use the throtl_set_slice_end()
    blk-throttle: Open code __throtl_de/enqueue_tg()
    blk-throttle: Move service tree validation out of the throtl_rb_first()
    blk-throttle: Move the list operation after list validation
    blk-throttle: Fix IO hang for a corner case
    blk-throttle: Avoid tracking latency if low limit is invalid
    blk-throttle: Avoid getting the current time if tg->last_finish_time is 0
    blk-throttle: Remove a meaningless parameter for throtl_downgrade_state()
    block: Remove redundant 'return' statement
    ...

    Linus Torvalds
     

13 Oct, 2020

1 commit

  • Pull m68k updates from Geert Uytterhoeven:

    - Conversion of the Mac IDE driver to a platform driver

    - Minor cleanups and fixes

    * tag 'm68k-for-v5.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    ide/macide: Convert Mac IDE driver to platform driver
    m68k: Replace HTTP links with HTTPS ones
    m68k: mm: Remove superfluous memblock_alloc*() casts
    m68k: mm: Use PAGE_ALIGNED() helper
    m68k: Sort selects in main Kconfig
    m68k: amiga: Clean up Amiga hardware configuration
    m68k: Revive _TIF_* masks
    m68k: Correct some typos in comments
    m68k: Use get_kernel_nofault() in show_registers()
    zorro: Fix address space collision message with RAM expansion boards
    m68k: amiga: Fix Denise detection on OCS

    Linus Torvalds
     

28 Sep, 2020

1 commit

  • Add platform devices for the Mac IDE controller variants. Convert the
    macide module into a platform driver to support two of those variants.
    For the third, use a generic "pata_platform" driver instead.
    This enables automatic loading of the appropriate module and begins
    the process of replacing the driver with libata alternatives.

    Signed-off-by: Finn Thain
    Tested-by: Stan Johnson
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Joshua Thompson
    References: commit 5ed0794cde593 ("m68k/atari: Convert Falcon IDE drivers to platform drivers")
    References: commit 7ad19a99ad431 ("ide: officially deprecated the legacy IDE driver")
    Link: https://lore.kernel.org/r/edd106dad1bbea32500601c6071f37a9f02a8004.1600901284.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

25 Sep, 2020

1 commit


24 Sep, 2020

1 commit


10 Sep, 2020

3 commits

  • ide-gd is only using the disk events mechanism to be able to force an
    invalidation and partition scan on opening removable media. Just open
    code the logic without invoving the block layer.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Just merge the trivial function into its only caller.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Switch to use bdev_check_media_changed instead of check_disk_change and
    call idecd_revalidate_disk manually. Given that idecd_revalidate_disk
    only re-reads the TOC, and we already do the same at probe time, the
    extra call into ->revalidate_disk from bdev_disk_changed is not required
    either, so stop wiring up the method.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

17 Jul, 2020

2 commits

  • Using uninitialized_var() is dangerous as it papers over real bugs[1]
    (or can in the future), and suppresses unrelated compiler warnings
    (e.g. "unused variable"). If the compiler thinks it is uninitialized,
    either simply initialize the variable or make compiler changes.

    In preparation for removing[2] the[3] macro[4], remove all remaining
    needless uses with the following script:

    git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
    xargs perl -pi -e \
    's/\buninitialized_var\(([^\)]+)\)/\1/g;
    s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'

    drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
    pathological white-space.

    No outstanding warnings were found building allmodconfig with GCC 9.3.0
    for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
    alpha, and m68k.

    [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
    [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
    [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

    Reviewed-by: Leon Romanovsky # drivers/infiniband and mlx4/mlx5
    Acked-by: Jason Gunthorpe # IB
    Acked-by: Kalle Valo # wireless drivers
    Reviewed-by: Chao Yu # erofs
    Signed-off-by: Kees Cook

    Kees Cook
     
  • Using uninitialized_var() is dangerous as it papers over real bugs[1]
    (or can in the future), and suppresses unrelated compiler warnings (e.g.
    "unused variable"). If the compiler thinks it is uninitialized, either
    simply initialize the variable or make compiler changes. As a precursor
    to removing[2] this[3] macro[4], just remove this variable since it was
    actually unused:

    drivers/ide/ide-taskfile.c:232:34: warning: unused variable 'flags' [-Wunused-variable]
    unsigned long uninitialized_var(flags);
    ^

    [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
    [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
    [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

    Fixes: ce1e518190ea ("ide: don't disable interrupts during kmap_atomic()")
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Kees Cook

    Kees Cook
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

05 May, 2020

2 commits


23 Apr, 2020

1 commit


05 Apr, 2020

1 commit

  • drivers/ide/ide-scan-pci.c: In function 'ide_scan_pcibus':
    >> drivers/ide/ide-scan-pci.c:104:13: error: incompatible type for argument 1 of 'list_del'
    104 | list_del(d->node);
    | ~^~~~~~
    | |
    | struct list_head
    In file included from include/linux/module.h:12,
    from drivers/ide/ide-scan-pci.c:12:
    include/linux/list.h:144:47: note: expected 'struct list_head *' but argument is of type 'struct list_head'
    144 | static inline void list_del(struct list_head *entry)
    | ~~~~~~~~~~~~~~~~~~^~~~~

    Fixes: 6a0033457f23 ("drivers/ide: convert to list_for_each_entry_safe()")
    Reported-by: kbuild test robot
    Signed-off-by: David S. Miller

    David S. Miller
     

03 Apr, 2020

1 commit


30 Mar, 2020

1 commit


24 Mar, 2020

1 commit

  • Commit 54ff4a1d1732 ("MIPS: Alchemy: pata_platform for DB1200")
    from year 2014 converted the only user of au1xxx-ide IDE host
    driver (MIPS Alchemy DB1200 platform) to use pata_platform
    libata host driver instead. This patch removes dead au1xxx-ide
    driver code.

    Acked-by: David S. Miller
    Acked-by: Manuel Lauss
    Acked-by: Christoph Hellwig
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Thomas Bogendoerfer

    Bartlomiej Zolnierkiewicz
     

25 Feb, 2020

1 commit

  • Arnd Bergmann inadvertently typoed these in d320a9551e394 and 64cbfa96551a;
    they seem to be the cause of
    https://bugzilla.redhat.com/show_bug.cgi?id=1801353 , invalid SCSI commands
    when udev tries to query a DVD drive.

    [arnd] Found another instance of the same bug, also introduced in my
    compat_ioctl series.

    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1801353
    Link: https://lore.kernel.org/r/20200219165139.3467320-1-arnd@arndb.de
    Fixes: c103d6ee69f9 ("compat_ioctl: ide: floppy: add handler")
    Fixes: 64cbfa96551a ("compat_ioctl: move cdrom commands into cdrom.c")
    Fixes: d320a9551e39 ("compat_ioctl: scsi: move ioctl handling into drivers")
    Bisected-by: Chris Murphy
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Adam Williamson
    Signed-off-by: Martin K. Petersen

    Adam Williamson
     

04 Feb, 2020

1 commit

  • The most notable change is DEFINE_SHOW_ATTRIBUTE macro split in
    seq_file.h.

    Conversion rule is:

    llseek => proc_lseek
    unlocked_ioctl => proc_ioctl

    xxx => proc_xxx

    delete ".owner = THIS_MODULE" line

    [akpm@linux-foundation.org: fix drivers/isdn/capi/kcapi_proc.c]
    [sfr@canb.auug.org.au: fix kernel/sched/psi.c]
    Link: http://lkml.kernel.org/r/20200122180545.36222f50@canb.auug.org.au
    Link: http://lkml.kernel.org/r/20191225172546.GB13378@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

30 Jan, 2020

2 commits

  • Pull IDE updates from David Miller:

    1) Fix mem region name in tx4949ide driver, from Christophe JAILLET.

    2) Make drive->dn read only, it should not be changeable by users. From
    Dan Carpenter.

    3) Several cast fixups from Krzysztof Kozlowski.

    There is also going to be a removal of a now unused IDE driver, but that
    will come via the MIPS tree.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
    ide: make drive->dn read only
    ide: serverworks: potential overflow in svwks_set_pio_mode()
    cmd64x: potential buffer overflow in cmd64x_program_timings()
    ide: remove unneeded header include path to drivers/ide
    ide: qd65xx: Fix cast to pointer from integer of different size
    ide: ht6560b: Fix cast to pointer from integer of different size
    ide: remove set but not used variable 'hwif'
    ide: remove unnecessary touch_softlockup_watchdog
    ide: tx4939ide: Fix the name used in a 'devm_request_mem_region()' call
    ide: Use dev_get_drvdata where possible

    Linus Torvalds
     
  • The IDE core always sets ->dn correctly so changing it is never
    required.

    Setting it to a different value than assigned by IDE core is very likely
    to result in data corruption (due to wrong transfer timings being set on
    the controller etc.)

    Signed-off-by: Dan Carpenter
    Acked-by: Bartlomiej Zolnierkiewicz
    Tested-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: David S. Miller

    Dan Carpenter
     

20 Jan, 2020

8 commits


03 Jan, 2020

3 commits

  • Most of the HDIO ioctls are only used by the obsolete drivers/ide
    subsystem, these can be handled by changing ide_cmd_ioctl() to be aware
    of compat mode and doing the correct transformations in place and using
    it as both native and compat handlers for all drivers.

    The SCSI drivers implementing the same commands are already doing
    this in the drivers, so the compat_blkdev_driver_ioctl() function
    is no longer needed now.

    The BLKSECTSET and HDIO_GETGEO_BIG ioctls are not implemented
    in any driver any more and no longer need any conversion.

    Reviewed-by: Ben Hutchings
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • There is no need for the special cases for the cdrom ioctls any more now,
    so make sure that each cdrom driver has a .compat_ioctl() callback and
    calls cdrom_compat_ioctl() directly there.

    Reviewed-by: Ben Hutchings
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Rather than relying on fs/compat_ioctl.c, this adds support
    for a compat_ioctl() callback in the ide-floppy driver directly,
    which lets it translate the scsi commands.

    Reviewed-by: Ben Hutchings
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

02 Dec, 2019

1 commit

  • Pull removal of most of fs/compat_ioctl.c from Arnd Bergmann:
    "As part of the cleanup of some remaining y2038 issues, I came to
    fs/compat_ioctl.c, which still has a couple of commands that need
    support for time64_t.

    In completely unrelated work, I spent time on cleaning up parts of
    this file in the past, moving things out into drivers instead.

    After Al Viro reviewed an earlier version of this series and did a lot
    more of that cleanup, I decided to try to completely eliminate the
    rest of it and move it all into drivers.

    This series incorporates some of Al's work and many patches of my own,
    but in the end stops short of actually removing the last part, which
    is the scsi ioctl handlers. I have patches for those as well, but they
    need more testing or possibly a rewrite"

    * tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (42 commits)
    scsi: sd: enable compat ioctls for sed-opal
    pktcdvd: add compat_ioctl handler
    compat_ioctl: move SG_GET_REQUEST_TABLE handling
    compat_ioctl: ppp: move simple commands into ppp_generic.c
    compat_ioctl: handle PPPIOCGIDLE for 64-bit time_t
    compat_ioctl: move PPPIOCSCOMPRESS to ppp_generic
    compat_ioctl: unify copy-in of ppp filters
    tty: handle compat PPP ioctls
    compat_ioctl: move SIOCOUTQ out of compat_ioctl.c
    compat_ioctl: handle SIOCOUTQNSD
    af_unix: add compat_ioctl support
    compat_ioctl: reimplement SG_IO handling
    compat_ioctl: move WDIOC handling into wdt drivers
    fs: compat_ioctl: move FITRIM emulation into file systems
    gfs2: add compat_ioctl support
    compat_ioctl: remove unused convert_in_user macro
    compat_ioctl: remove last RAID handling code
    compat_ioctl: remove /dev/raw ioctl translation
    compat_ioctl: remove PCI ioctl translation
    compat_ioctl: remove joystick ioctl translation
    ...

    Linus Torvalds
     

26 Nov, 2019

1 commit

  • Pull printk updates from Petr Mladek:

    - Allow to print symbolic error names via new %pe modifier.

    - Use pr_warn() instead of the remaining pr_warning() calls. Fix
    formatting of the related lines.

    - Add VSPRINTF entry to MAINTAINERS.

    * tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
    checkpatch: don't warn about new vsprintf pointer extension '%pe'
    MAINTAINERS: Add VSPRINTF
    tools lib api: Renaming pr_warning to pr_warn
    ASoC: samsung: Use pr_warn instead of pr_warning
    lib: cpu_rmap: Use pr_warn instead of pr_warning
    trace: Use pr_warn instead of pr_warning
    dma-debug: Use pr_warn instead of pr_warning
    vgacon: Use pr_warn instead of pr_warning
    fs: afs: Use pr_warn instead of pr_warning
    sh/intc: Use pr_warn instead of pr_warning
    scsi: Use pr_warn instead of pr_warning
    platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
    platform/x86: asus-laptop: Use pr_warn instead of pr_warning
    platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
    oprofile: Use pr_warn instead of pr_warning
    of: Use pr_warn instead of pr_warning
    macintosh: Use pr_warn instead of pr_warning
    idsn: Use pr_warn instead of pr_warning
    ide: Use pr_warn instead of pr_warning
    crypto: n2: Use pr_warn instead of pr_warning
    ...

    Linus Torvalds
     

18 Nov, 2019

1 commit

  • Autoloading of Falcon IDE driver modules requires converting these
    drivers to platform drivers.

    Add platform device for Falcon IDE interface in Atari platform setup
    code. Use this in the pata_falcon driver in place of the simple
    platform device set up on the fly.

    Convert falconide driver to use the same platform device that is used
    by pata_falcon also. (With the introduction of a platform device for
    the Atari Falcon IDE interface, the old Falcon IDE driver no longer
    loads (resource already claimed by the platform device)).

    Tested (as built-in driver) on my Atari Falcon.

    Signed-off-by: Michael Schmitz
    Acked-by: Bartlomiej Zolnierkiewicz
    Link: https://lore.kernel.org/r/1573008449-8226-1-git-send-email-schmitzmic@gmail.com
    Signed-off-by: Geert Uytterhoeven

    Michael Schmitz
     

23 Oct, 2019

1 commit

  • MTIOCPOS and MTIOCGET are incompatible between 32-bit and 64-bit user
    space, and traditionally have been translated in fs/compat_ioctl.c.

    To get rid of that translation handler, move a corresponding
    implementation into each of the four drivers implementing those commands.

    The interesting part of that is now in a new linux/mtio.h header that
    wraps the existing uapi/linux/mtio.h header and provides an abstraction
    to let drivers handle both cases easily. Using an in_compat_syscall()
    check, the caller does not have to keep track of whether this was
    called through .unlocked_ioctl() or .compat_ioctl().

    Acked-by: Heiko Carstens
    Cc: "Kai Mäkisara"
    Cc: linux-scsi@vger.kernel.org
    Cc: "James E.J. Bottomley"
    Cc: "Martin K. Petersen"
    Cc: "David S. Miller"
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann