Go to file
Jaegeuk Kim bbab483613 scsi: ufs: Fix clkgating on/off
[ Upstream commit 8eb456be75af7e5a7ac0cd223eaa198cf7ee2ac1 ]

The following call stack prevents clk_gating at every I/O completion.  We
can remove the condition, ufshcd_any_tag_in_use(), since clkgating_work
will check it again.

ufshcd_complete_requests(struct ufs_hba *hba)
  ufshcd_transfer_req_compl()
    __ufshcd_transfer_req_compl()
      __ufshcd_release(hba)
        if (ufshcd_any_tag_in_use() == 1)
           return;
  ufshcd_tmc_handler(hba);
    blk_mq_tagset_busy_iter();

Note that this still requires work to deal with a potential race condition
when user sets clkgating.delay_ms to very small value. That can cause
preventing clkgating by the check of ufshcd_any_tag_in_use() in gate_work.

Link: https://lore.kernel.org/r/20201117165839.1643377-7-jaegeuk@kernel.org
Fixes: 7252a36030 ("scsi: ufs: Avoid busy-waiting by eliminating tag conflicts")
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-30 11:53:17 +01:00
arch powerpc/powernv/sriov: fix unsigned int win compared to less than zero 2020-12-30 11:53:16 +01:00
block block-5.10-2020-12-05 2020-12-05 14:45:30 -08:00
certs
crypto crypto: Kconfig - CRYPTO_MANAGER_EXTRA_TESTS requires the manager 2020-12-30 11:53:09 +01:00
Documentation USB: UAS: introduce a quirk to set no_write_same 2020-12-21 13:30:08 +01:00
drivers scsi: ufs: Fix clkgating on/off 2020-12-30 11:53:17 +01:00
fs virtiofs fix leak in setup 2020-12-30 11:53:08 +01:00
include media: v4l2-fwnode: v4l2_fwnode_endpoint_parse caller must init vep argument 2020-12-30 11:53:11 +01:00
init initramfs: fix clang build failure 2020-12-11 14:02:14 -08:00
ipc
kernel sched: Reenable interrupts in do_sched_yield() 2020-12-30 11:52:59 +01:00
lib selftest/fpu: avoid clang warning 2020-12-11 14:02:14 -08:00
LICENSES
mm mm/hugetlb: clear compound_nr before freeing gigantic pages 2020-12-11 14:02:14 -08:00
net Bluetooth: Fix: LL PRivacy BLE device fails to connect 2020-12-30 11:53:05 +01:00
samples Tracing fixes for 5.10-rc6 2020-12-01 15:30:18 -08:00
scripts scripts: kernel-doc: Restore anonymous enum parsing 2020-12-30 11:53:10 +01:00
security selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling 2020-12-30 11:53:03 +01:00
sound ASoC: intel: SND_SOC_INTEL_KEEMBAY should depend on ARCH_KEEMBAY 2020-12-30 11:53:14 +01:00
tools selftests/bpf: Fix broken riscv build 2020-12-30 11:53:15 +01:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add two more addresses of Uwe Kleine-König 2020-12-06 10:19:07 -08:00
COPYING
CREDITS MAINTAINERS: Move Jason Cooper to CREDITS 2020-11-30 10:20:34 +01:00
Kbuild
Kconfig
MAINTAINERS Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-10 15:30:13 -08:00
Makefile Linux 5.10.3 2020-12-26 16:02:46 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.