Skip to content
  1. Feb 04, 2021
  2. Feb 01, 2021
  3. Jan 31, 2021
    • Linus Walleij's avatar
      leds: rt8515: Add Richtek RT8515 LED driver · e1c6edcb
      Linus Walleij authored
      
      
      This adds a driver for the Richtek RT8515 dual channel
      torch/flash white LED driver.
      
      This LED driver is found in some mobile phones from
      Samsung such as the GT-S7710 and GT-I8190.
      
      A V4L interface is added.
      
      We do not have a proper datasheet for the RT8515 but
      it turns out that RT9387A has a public datasheet and
      is essentially the same chip. We designed the driver
      in accordance with this datasheet. The day someone
      needs to drive a RT9387A this driver can probably
      easily be augmented to handle that chip too.
      
      Sakari Ailus, Pavel Machek and Andy Shevchenko helped
      significantly in getting this driver right.
      
      Cc: Sakari Ailus <sakari.ailus@iki.fi>
      Cc: newbytee@protonmail.com
      Cc: Stephan Gerhold <stephan@gerhold.net>
      Cc: linux-media@vger.kernel.org
      Cc: phone-devel@vger.kernel.org
      Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      e1c6edcb
    • Linus Walleij's avatar
      dt-bindings: leds: Add DT binding for Richtek RT8515 · c8283eb7
      Linus Walleij authored
      
      
      Add a YAML devicetree binding for the Richtek RT8515
      dual channel flash/torch LED driver.
      
      Cc: Sakari Ailus <sakari.ailus@iki.fi>
      Cc: newbytee@protonmail.com
      Cc: Stephan Gerhold <stephan@gerhold.net>
      Cc: phone-devel@vger.kernel.org
      Cc: linux-media@vger.kernel.org
      Cc: devicetree@vger.kernel.org
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      c8283eb7
    • Andrea Righi's avatar
      leds: trigger: fix potential deadlock with libata · 27af8e2c
      Andrea Righi authored
      We have the following potential deadlock condition:
      
       ========================================================
       WARNING: possible irq lock inversion dependency detected
       5.10.0-rc2+ #25 Not tainted
       --------------------------------------------------------
       swapper/3/0 just changed the state of lock:
       ffff8880063bd618 (&host->lock){-...}-{2:2}, at: ata_bmdma_interrupt+0x27/0x200
       but this lock took another, HARDIRQ-READ-unsafe lock in the past:
        (&trig->leddev_list_lock){.+.?}-{2:2}
      
       and interrupts could create inverse lock ordering between them.
      
       other info that might help us debug this:
        Possible interrupt unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(&trig->leddev_list_lock);
                                      local_irq_disable();
                                      lock(&host->lock);
                                      lock(&trig->leddev_list_lock);
         <Interrupt>
           lock(&host->lock);
      
        *** DEADLOCK ***
      
       no locks held by swapper/3/0.
      
       the shortest dependencies between 2nd lock and 1st lock:
        -> (&trig->leddev_list_lock){.+.?}-{2:2} ops: 46 {
           HARDIRQ-ON-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             rfkill_global_led_trigger_worker+0x94/0xb0
                             process_one_work+0x240/0x560
                             worker_thread+0x58/0x3d0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           IN-SOFTIRQ-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             kbd_bh+0x9e/0xc0
                             tasklet_action_common.constprop.0+0xe9/0x100
                             tasklet_action+0x22/0x30
                             __do_softirq+0xcc/0x46d
                             run_ksoftirqd+0x3f/0x70
                             smpboot_thread_fn+0x116/0x1f0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           SOFTIRQ-ON-R at:
                             lock_acquire+0x15f/0x420
                             _raw_read_lock+0x42/0x90
                             led_trigger_event+0x2b/0x70
                             rfkill_global_led_trigger_worker+0x94/0xb0
                             process_one_work+0x240/0x560
                             worker_thread+0x58/0x3d0
                             kthread+0x151/0x170
                             ret_from_fork+0x1f/0x30
           INITIAL READ USE at:
                                 lock_acquire+0x15f/0x420
                                 _raw_read_lock+0x42/0x90
                                 led_trigger_event+0x2b/0x70
                                 rfkill_global_led_trigger_worker+0x94/0xb0
                                 process_one_work+0x240/0x560
                                 worker_thread+0x58/0x3d0
                                 kthread+0x151/0x170
                                 ret_from_fork+0x1f/0x30
         }
         ... key      at: [<ffffffff83da4c00>] __key.0+0x0/0x10
         ... acquired at:
          _raw_read_lock+0x42/0x90
          led_trigger_blink_oneshot+0x3b/0x90
          ledtrig_disk_activity+0x3c/0xa0
          ata_qc_complete+0x26/0x450
          ata_do_link_abort+0xa3/0xe0
          ata_port_freeze+0x2e/0x40
          ata_hsm_qc_complete+0x94/0xa0
          ata_sff_hsm_move+0x177/0x7a0
          ata_sff_pio_task+0xc7/0x1b0
          process_one_work+0x240/0x560
          worker_thread+0x58/0x3d0
          kthread+0x151/0x170
          ret_from_fork+0x1f/0x30
      
       -> (&host->lock){-...}-{2:2} ops: 69 {
          IN-HARDIRQ-W at:
                           lock_acquire+0x15f/0x420
                           _raw_spin_lock_irqsave+0x52/0xa0
                           ata_bmdma_interrupt+0x27/0x200
                           __handle_irq_event_percpu+0xd5/0x2b0
                           handle_irq_event+0x57/0xb0
                           handle_edge_irq+0x8c/0x230
                           asm_call_irq_on_stack+0xf/0x20
                           common_interrupt+0x100/0x1c0
                           asm_common_interrupt+0x1e/0x40
                           native_safe_halt+0xe/0x10
                           arch_cpu_idle+0x15/0x20
                           default_idle_call+0x59/0x1c0
                           do_idle+0x22c/0x2c0
                           cpu_startup_entry+0x20/0x30
                           start_secondary+0x11d/0x150
                           secondary_startup_64_no_verify+0xa6/0xab
          INITIAL USE at:
                          lock_acquire+0x15f/0x420
                          _raw_spin_lock_irqsave+0x52/0xa0
                          ata_dev_init+0x54/0xe0
                          ata_link_init+0x8b/0xd0
                          ata_port_alloc+0x1f1/0x210
                          ata_host_alloc+0xf1/0x130
                          ata_host_alloc_pinfo+0x14/0xb0
                          ata_pci_sff_prepare_host+0x41/0xa0
                          ata_pci_bmdma_prepare_host+0x14/0x30
                          piix_init_one+0x21f/0x600
                          local_pci_probe+0x48/0x80
                          pci_device_probe+0x105/0x1c0
                          really_probe+0x221/0x490
                          driver_probe_device+0xe9/0x160
                          device_driver_attach+0xb2/0xc0
                          __driver_attach+0x91/0x150
                          bus_for_each_dev+0x81/0xc0
                          driver_attach+0x1e/0x20
                          bus_add_driver+0x138/0x1f0
                          driver_register+0x91/0xf0
                          __pci_register_driver+0x73/0x80
                          piix_init+0x1e/0x2e
                          do_one_initcall+0x5f/0x2d0
                          kernel_init_freeable+0x26f/0x2cf
                          kernel_init+0xe/0x113
                          ret_from_fork+0x1f/0x30
        }
        ... key      at: [<ffffffff83d9fdc0>] __key.6+0x0/0x10
        ... acquired at:
          __lock_acquire+0x9da/0x2370
          lock_acquire+0x15f/0x420
          _raw_spin_lock_irqsave+0x52/0xa0
          ata_bmdma_interrupt+0x27/0x200
          __handle_irq_event_percpu+0xd5/0x2b0
          handle_irq_event+0x57/0xb0
          handle_edge_irq+0x8c/0x230
          asm_call_irq_on_stack+0xf/0x20
          common_interrupt+0x100/0x1c0
          asm_common_interrupt+0x1e/0x40
          native_safe_halt+0xe/0x10
          arch_cpu_idle+0x15/0x20
          default_idle_call+0x59/0x1c0
          do_idle+0x22c/0x2c0
          cpu_startup_entry+0x20/0x30
          start_secondary+0x11d/0x150
          secondary_startup_64_no_verify+0xa6/0xab
      
      This lockdep splat is reported after:
      commit e9181886 ("locking: More accurate annotations for read_lock()")
      
      To clarify:
       - read-locks are recursive only in interrupt context (when
         in_interrupt() returns true)
       - after acquiring host->lock in CPU1, another cpu (i.e. CPU2) may call
         write_lock(&trig->leddev_list_lock) that would be blocked by CPU0
         that holds trig->leddev_list_lock in read-mode
       - when CPU1 (ata_ac_complete()) tries to read-lock
         trig->leddev_list_lock, it would be blocked by the write-lock waiter
         on CPU2 (because we are not in interrupt context, so the read-lock is
         not recursive)
       - at this point if an interrupt happens on CPU0 and
         ata_bmdma_interrupt() is executed it will try to acquire host->lock,
         that is held by CPU1, that is currently blocked by CPU2, so:
      
         * CPU0 blocked by CPU1
         * CPU1 blocked by CPU2
         * CPU2 blocked by CPU0
      
           *** DEADLOCK ***
      
      The deadlock scenario is better represented by the following schema
      (thanks to Boqun Feng <boqun.feng@gmail.com> for the schema and the
      detailed explanation of the deadlock condition):
      
       CPU 0:                          CPU 1:                        CPU 2:
       -----                           -----                         -----
       led_trigger_event():
         read_lock(&trig->leddev_list_lock);
       				<workqueue>
       				ata_hsm_qc_complete():
       				  spin_lock_irqsave(&host->lock);
       								write_lock(&trig->leddev_list_lock);
       				  ata_port_freeze():
       				    ata_do_link_abort():
       				      ata_qc_complete():
       					ledtrig_disk_activity():
       					  led_trigger_blink_oneshot():
       					    read_lock(&trig->leddev_list_lock);
       					    // ^ not in in_interrupt() context, so could get blocked by CPU 2
       <interrupt>
         ata_bmdma_interrupt():
           spin_lock_irqsave(&host->lock);
      
      Fix by using read_lock_irqsave/irqrestore() in led_trigger_event(), so
      that no interrupt can happen in between, preventing the deadlock
      condition.
      
      Apply the same change to led_trigger_blink_setup() as well, since the
      same deadlock scenario can also happen in power_supply_update_bat_leds()
      -> led_trigger_blink() -> led_trigger_blink_setup() (workqueue context),
      and potentially prevent other similar usages.
      
      Link: https://lore.kernel.org/lkml/20201101092614.GB3989@xps-13-7390/
      Fixes: eb25cb99
      
       ("leds: convert IDE trigger to common disk trigger")
      Signed-off-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      27af8e2c
    • Zheng Yongjun's avatar
      leds: leds-ariel: convert comma to semicolon · 47854d2d
      Zheng Yongjun authored
      
      
      Replace a comma between expression statements by a semicolon.
      
      Signed-off-by: default avatarZheng Yongjun <zhengyongjun3@huawei.com>
      Reviewed-by: default avatarAlexander Dahl <ada@thorsis.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      47854d2d
    • Zheng Yongjun's avatar
      leds: leds-lm3533: convert comma to semicolon · 4e04b118
      Zheng Yongjun authored
      
      
      Replace a comma between expression statements by a semicolon.
      
      Signed-off-by: default avatarZheng Yongjun <zhengyongjun3@huawei.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      4e04b118
    • Linus Torvalds's avatar
      Merge tag '5.11-rc5-smb3' of git://git.samba.org/sfrench/cifs-2.6 · 6642d600
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Four cifs patches found in additional testing of the conversion to the
        new mount API: three small option processing ones, and one fixing domain
        based DFS referrals"
      
      * tag '5.11-rc5-smb3' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix dfs domain referrals
        cifs: returning mount parm processing errors correctly
        cifs: fix mounts to subdirectories of target
        cifs: ignore auto and noauto options if given
      6642d600
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ad8b3c1e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two minor fixes in drivers. Both changing strings (one in a comment,
        one in a module help text) with no code impact"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: qla2xxx: Fix description for parameter ql2xenforce_iocb_limit
        scsi: target: iscsi: Fix typo in comment
      ad8b3c1e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/openrisc/linux · 03e319e5
      Linus Torvalds authored
      Pull OpenRISC fix from Stafford Horne:
       "Fix config dependencies for Litex SOC driver causing issues on um"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        soc: litex: Properly depend on HAS_IOMEM
      03e319e5
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 8c947645
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Cleanups on properties with standard unit suffixes
      
       - Fix overwriting dma_range_map if there's no 'dma-ranges' property
      
       - Fix a bug when creating a /chosen node from ARM ATAGs
      
       - Add missing properties for TI j721e USB binding
      
       - Several doc reference updates due to DT schema conversions
      
      * tag 'devicetree-fixes-for-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: Cleanup standard unit properties
        of/device: Update dma_range_map only when dev has valid dma-ranges
        ARM: zImage: atags_to_fdt: Fix node names on added root nodes
        dt-bindings: usb: j721e: add ranges and dma-coherent props
        dt-bindings:iio:adc: update adc.yaml reference
        dt-bindings: memory: mediatek: update mediatek,smi-larb.yaml references
        dt-bindings: display: mediatek: update mediatek,dpi.yaml reference
        ASoC: audio-graph-card: update audio-graph-card.yaml reference
      8c947645
    • Linus Torvalds's avatar
      Merge tag 's390-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3bf25531
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Fix max number of VCPUs reported via ultravisor information sysfs
         interface.
      
       - Fix memory leaks during vfio-ap resources clean up on KVM pointer
         invalidation notification.
      
       - Fix potential specification exception by avoiding unnecessary
         interrupts disable after queue reset in vfio-ap.
      
      * tag 's390-5.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: uv: Fix sysfs max number of VCPUs reporting
        s390/vfio-ap: No need to disable IRQ after queue reset
        s390/vfio-ap: clean up vfio_ap resources when KVM pointer invalidated
      3bf25531
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · e37c0fba
      Linus Torvalds authored
      Pull RISC-V fix from Palmer Dabbelt:
       "A fix to avoid initializing max_mapnr to be too large, which may
        manifest on NUMA systems"
      
      * tag 'riscv-for-linus-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Fixup pfn_valid error with wrong max_mapnr
      e37c0fba
  4. Jan 30, 2021
    • Rob Herring's avatar
      dt-bindings: Cleanup standard unit properties · 32ada6b0
      Rob Herring authored
      
      
      Properties with standard unit suffixes already have a type and don't need
      type definitions. They also default to a single entry, so 'maxItems: 1'
      can be dropped.
      
      adi,ad5758 is an oddball which defined an enum of arrays. While a valid
      schema, it is simpler as a whole to only define scalar constraints.
      
      Cc: Jean Delvare <jdelvare@suse.com>
      Cc: Lars-Peter Clausen <lars@metafoo.de>
      Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Serge Semin <fancer.lancer@gmail.com>
      Cc: linux-hwmon@vger.kernel.org
      Cc: linux-i2c@vger.kernel.org
      Cc: linux-iio@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-input@vger.kernel.org
      Cc: linux-mmc@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: linux-pm@vger.kernel.org
      Cc: linux-rtc@vger.kernel.org
      Cc: linux-serial@vger.kernel.org
      Cc: alsa-devel@alsa-project.org
      Cc: linux-watchdog@vger.kernel.org
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: Wolfram Sang <wsa@kernel.org> # for I2C
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: Sebastian Reichel <sre@kernel.org> # for power-supply
      Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> #for-iio
      Acked-by: default avatarAlexandre TORGUE <alexandre.torgue@foss.st.com>
      Link: https://lore.kernel.org/r/20210128194515.743252-1-robh@kernel.org
      32ada6b0
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0e9bcda5
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix the virt_addr_valid() returning true for < PAGE_OFFSET addresses.
      
       - Do not blindly trust the DMA masks from ACPI/IORT.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ACPI/IORT: Do not blindly trust DMA masks from firmware
        arm64: Fix kernel address detection of __is_lm_address()
      0e9bcda5
    • Linus Torvalds's avatar
      Merge tag 'for-5.11-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · c05d51c7
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few more fixes for a late rc:
      
         - fix lockdep complaint on 32bit arches and also remove an unsafe
           memory use due to device vs filesystem lifetime
      
         - two fixes for free space tree:
      
            * race during log replay and cache rebuild, now more likely to
              happen due to changes in this dev cycle
      
            * possible free space tree corruption with online conversion
              during initial tree population"
      
      * tag 'for-5.11-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix log replay failure due to race with space cache rebuild
        btrfs: fix lockdep warning due to seqcount_mutex on 32bit arch
        btrfs: fix possible free space tree corruption with online conversion
      c05d51c7
    • Linus Torvalds's avatar
      Merge tag 'block-5.11-2021-01-29' of git://git.kernel.dk/linux-block · 2ba1c4d1
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "All over the place fixes for this release:
      
         - blk-cgroup iteration teardown resched fix (Baolin)
      
         - NVMe pull request from Christoph:
              - add another Write Zeroes quirk (Chaitanya Kulkarni)
              - handle a no path available corner case (Daniel Wagner)
              - use the proper RCU aware list_add helper (Chao Leng)
      
         - bcache regression fix (Coly)
      
         - bdev->bd_size_lock IRQ fix. This will be fixed in drivers for 5.12,
           but for now, we'll make it IRQ safe (Damien)
      
         - null_blk zoned init fix (Damien)
      
         - add_partition() error handling fix (Dinghao)
      
         - s390 dasd kobject fix (Jan)
      
         - nbd fix for freezing queue while adding connections (Josef)
      
         - tag queueing regression fix (Ming)
      
         - revert of a patch that inadvertently meant that we regressed write
           performance on raid (Maxim)"
      
      * tag 'block-5.11-2021-01-29' of git://git.kernel.dk/linux-block:
        null_blk: cleanup zoned mode initialization
        nvme-core: use list_add_tail_rcu instead of list_add_tail for nvme_init_ns_head
        nvme-multipath: Early exit if no path is available
        nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a SPCC device
        bcache: only check feature sets when sb->version >= BCACHE_SB_VERSION_CDEV_WITH_FEATURES
        block: fix bd_size_lock use
        blk-cgroup: Use cond_resched() when destroy blkgs
        Revert "block: simplify set_init_blocksize" to regain lost performance
        nbd: freeze the queue while we're adding connections
        s390/dasd: Fix inconsistent kobject removal
        block: Fix an error handling in add_partition
        blk-mq: test QUEUE_FLAG_HCTX_ACTIVE for sbitmap_shared in hctx_may_queue
      2ba1c4d1
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.11-2021-01-29' of git://git.kernel.dk/linux-block · c0ec4ffc
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "We got the cancelation story sorted now, so for all intents and
        purposes, this should be it for 5.11 outside of any potential little
        fixes that may come in. This contains:
      
         - task_work task state fixes (Hao, Pavel)
      
         - Cancelation fixes (me, Pavel)
      
         - Fix for an inflight req patch in this release (Pavel)
      
         - Fix for a lock deadlock issue (Pavel)"
      
      * tag 'io_uring-5.11-2021-01-29' of git://git.kernel.dk/linux-block:
        io_uring: reinforce cancel on flush during exit
        io_uring: fix sqo ownership false positive warning
        io_uring: fix list corruption for splice file_get
        io_uring: fix flush cqring overflow list while TASK_INTERRUPTIBLE
        io_uring: fix wqe->lock/completion_lock deadlock
        io_uring: fix cancellation taking mutex while TASK_UNINTERRUPTIBLE
        io_uring: fix __io_uring_files_cancel() with TASK_UNINTERRUPTIBLE
        io_uring: only call io_cqring_ev_posted() if events were posted
        io_uring: if we see flush on exit, cancel related tasks
      c0ec4ffc
    • David Gow's avatar
      soc: litex: Properly depend on HAS_IOMEM · 1bea2a93
      David Gow authored
      The LiteX SOC controller driver makes use of IOMEM functions like
      devm_platform_ioremap_resource(), which are only available if
      CONFIG_HAS_IOMEM is defined.
      
      This causes the driver to be enable under make ARCH=um allyesconfig,
      even though it won't build.
      
      By adding a dependency on HAS_IOMEM, the driver will not be enabled on
      architectures which don't support it.
      
      Fixes: 22447a99
      
       ("drivers/soc/litex: add LiteX SoC Controller driver")
      Signed-off-by: default avatarDavid Gow <davidgow@google.com>
      [shorne@gmail.com: Fix typo in commit message pointed out in review]
      Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
      1bea2a93
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 8ef24c20
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - AMD IOMMU fix to make sure features are detected before they are
         queried.
      
       - Intel IOMMU address alignment check fix for an IOLTB flushing
         command.
      
       - Performance fix for Intel IOMMU to make sure the code does not do
         full IOTLB flushes all the time. Those flushes are very expensive
         on emulated IOMMUs.
      
      * tag 'iommu-fixes-v5.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Do not use flush-queue when caching-mode is on
        iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid()
        iommu/amd: Use IVHD EFR for early initialization of IOMMU features
      8ef24c20
    • Linus Torvalds's avatar
      Merge tag 'pm-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 32b0c410
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix a deadlock in the 'kexec jump' code and address a possible
        hibernation image creation issue.
      
        Specifics:
      
         - Fix a deadlock caused by attempting to acquire the same mutex twice
           in a row in the "kexec jump" code (Baoquan He)
      
         - Modify the hibernation image saving code to flush the unwritten
           data to the swap storage later so as to avoid failing to write the
           image signature which is possible in some cases (Laurent Badel)"
      
      * tag 'pm-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: hibernate: flush swap writer after marking
        kernel: kexec: remove the lock operation of system_transition_mutex
      32b0c410
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 016decc0
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix the handling of notifications in the ACPI thermal driver and
        address a device enumeration issue leading to the presence of multiple
        'MODALIAS=' entries in one uevent file in sysfs in some cases.
      
        Specifics:
      
         - Modify the ACPI thermal driver to avoid evaluating _TMP directly in
           its Notify () handler callback and running too many thermal checks
           for one thermal zone at the same time so as to address a work item
           accumulation issue observed on some systems that fail to shut down
           as a result of it (Rafael Wysocki)
      
         - Modify the ACPI uevent file creation code to avoid putting multiple
           'MODALIAS=' entries in one uevent file in sysfs which breaks
           systemd-udevd (Kai-Heng Feng)"
      
      * tag 'acpi-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: thermal: Do not call acpi_thermal_check() directly
        ACPI: sysfs: Prefer "compatible" modalias
      016decc0
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-01-29' of git://anongit.freedesktop.org/drm/drm · 6305d15e
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes for graphics, nothing too major, nouveau has a few
        regression fixes for various fallout from header changes previously,
        vc4 has two fixes, two amdgpu, and a smattering of i915 fixes.
      
        All seems on course for a quieter rc7, fingers crossed.
      
        nouveau:
         - fix svm init conditions
         - fix nv50 modesetting regression
         - fix cursor plane modifiers
         - fix > 64x64 cursor regression
      
        vc4:
         - Fix LBM size calculation
         - Fix high resolutions for hvs5
      
        i915:
         - Fix ICL MG PHY vswing
         - Fix subplatform handling
         - Fix selftest memleak
         - Clear CACHE_MODE prior to clearing residuals
         - Always flush the active worker before returning from the wait
         - Always try to reserve GGTT address 0x0
      
        amdgpu:
         - Fix a fan control regression on some boards
         - Fix clang warning"
      
      * tag 'drm-fixes-2021-01-29' of git://anongit.freedesktop.org/drm/drm:
        drm/nouveau/kms/gk104-gp1xx: Fix > 64x64 cursors
        drm/nouveau/kms/nv50-: Report max cursor size to userspace
        drivers/nouveau/kms/nv50-: Reject format modifiers for cursor planes
        drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices
        drm/nouveau/dispnv50: Restore pushing of all data.
        amdgpu: fix clang build warning
        Revert "drm/amdgpu/swsmu: drop set_fan_speed_percent (v2)"
        drm/i915/gt: Always try to reserve GGTT address 0x0
        drm/i915: Always flush the active worker before returning from the wait
        drm/i915/selftest: Fix potential memory leak
        drm/i915: Check for all subplatform bits
        drm/i915: Fix ICL MG PHY vswing handling
        drm/i915/gt: Clear CACHE_MODE prior to clearing residuals
        drm/vc4: Correct POS1_SCL for hvs5
        drm/vc4: Correct lbm size and calculation
        drm/nouveau/nvif: fix method count when pushing an array
      6305d15e
    • Linus Torvalds's avatar
      tty: avoid using vfs_iocb_iter_write() for redirected console writes · a9cbbb80
      Linus Torvalds authored
      It turns out that the vfs_iocb_iter_{read,write}() functions are
      entirely broken, and don't actually use the passed-in file pointer for
      IO - only for the preparatory work (permission checking and for the
      write_iter function lookup).
      
      That worked fine for overlayfs, which always builds the new iocb with
      the same file pointer that it passes in, but in the general case it ends
      up doing nonsensical things (and could cause an iterator call that
      doesn't even match the passed-in file pointer).
      
      This subtly broke the tty conversion to write_iter in commit
      9bb48c82 ("tty: implement write_iter"), because the console
      redirection didn't actually end up redirecting anything, since the
      passed-in file pointer was basically ignored, and the actual write was
      done with the original non-redirected console tty after all.
      
      The main visible effect of this is that the console messages were no
      longer logged to /var/log/boot.log during graphical boot.
      
      Fix the issue by simply not using the vfs write "helper" function at
      all, and just redirecting the write entirely internally to the tty
      layer.  Do the target writability permission checks when actually
      registering the target tty with TIOCCONS instead of at write time.
      
      Fixes: 9bb48c82
      
       ("tty: implement write_iter")
      Reported-and-tested-by: default avatarHans de Goede <hdegoede@redhat.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9cbbb80
  5. Jan 29, 2021