No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nitin Rawat 90c8ff461a scsi: ufs: fix deadlock between resume and eh_work
A deadlock condition can occur as per below sequence of events:

1. SSU command timed out in context of ufshcd_resume.

2. ufshcd_abort invoked after ssu command timeout on device WLUN and
   scheduled eh_work and waiting for flush on eh_work.

3. pm_runtime_get_sync invoked from ufshcd_err_handling_prepare in
   eh_work remained pending as runtime_status is RPM_RESUMING due
   to ufshcd_resume(step1).

Fix this by :
1. skipping the pm_runtime_get_sync call for WLUN(ssu command) in
   ufshcd_err_handling_prepare invoked as part of eh_work and continue
   with the err_handler.

2.  Later check the device state and link state after ssu returned
    failure in ufshcd_resume as per below conditions.

	a. If current dev and link state is active, dont return error as
	   dev and link state is in correct state and hence proceed with the
	   resume.

	b. If current dev and link state is not active but err_handler is in
	   progress, wait on err handler to get finished and then proceed
	   with the resume.

	c. If current dev and link state is not active and err_handler is
	   not in progress as well, then let resume process abort.

Thread1(ufshcd_resume):
 wait_for_completion_io()
 blk_execute_rq()
 __scsi_execute()
 ufshcd_set_dev_pwr_mode()
 ufshcd_resume()
 ufshcd_runtime_resume

Thread2(ufshcd_abort):
 flush_work() >> eh_work
 ufshcd_eh_host_reset_handler()
 ufshcd_abort()
 scsi_try_to_abort_cmd(inline)
 scmd_eh_abort_handler()

Thread3(err_handler):
 rpm_resume()
 __pm_runtime_resume()
 ufshcd_err_handling_prepare()
 ufshcd_err_handler().

Change-Id: I04a3cddecad4beda957d4d4f2fa3d7096f111c6d
Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
2022-05-03 14:21:40 +05:30
android Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
arch Merge "UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"" 2022-04-25 06:58:49 -07:00
block Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
certs certs: Trigger creation of RSA module signing key if it's not an RSA key 2021-09-15 09:47:29 +02:00
crypto This is the 5.4.160 stable release 2021-11-17 10:19:21 +01:00
Documentation Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
drivers scsi: ufs: fix deadlock between resume and eh_work 2022-05-03 14:21:40 +05:30
fs Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
include Merge "UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"" 2022-04-25 06:58:49 -07:00
init Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
ipc shm: extend forced shm destroy to support objects from several IPC nses 2021-12-01 09:23:35 +01:00
kernel Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
lib Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
LICENSES
mm Merge "UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"" 2022-04-25 06:58:49 -07:00
net UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0" 2022-04-20 22:51:09 -07:00
samples This is the 5.4.160 stable release 2021-11-17 10:19:21 +01:00
scripts Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
security Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
sound Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
techpack
tools Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
usr camera: add camera headers into exclude list 2021-06-21 00:19:36 -07:00
virt UPSTREAM: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated 2022-03-17 18:06:43 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
Android.bp
build.config.aarch64 Merge android11-5.4.147+ (dc8c919) into msm-5.4 2021-11-05 17:27:33 +05:30
build.config.allmodconfig ANDROID: Different fix for KABI breakage in 5.4.151 in struct sock 2021-10-12 18:21:21 +02:00
build.config.allmodconfig.aarch64
build.config.allmodconfig.arm
build.config.allmodconfig.x86_64
build.config.arm
build.config.common Merge android11-5.4.86+ (ccdcd30) into msm-5.4 2021-05-03 00:23:07 +05:30
build.config.db845c
build.config.gki
build.config.gki-debug.aarch64
build.config.gki-debug.x86_64
build.config.gki.aarch64 ANDROID: GKI: Add FCNT KMI symbol list 2021-08-10 15:36:50 +00:00
build.config.gki.x86_64
build.config.gki_kasan
build.config.gki_kasan.aarch64
build.config.gki_kasan.x86_64
build.config.gki_kprobes
build.config.gki_kprobes.aarch64
build.config.gki_kprobes.x86_64
build.config.hikey960
build.config.msm.common
build.config.msm.gki
build.config.msm.lahaina
build.config.x86_64 ANDROID: distribute Module.symvers 2021-10-14 13:14:46 +08:00
build.targets
COPYING
CREDITS
gen_headers_arm.bp uapi: Add UAPI headers for slatecom_interface driver 2021-09-07 23:57:54 -07:00
gen_headers_arm64.bp uapi: Add UAPI headers for slatecom_interface driver 2021-09-07 23:57:54 -07:00
gen_headers_arm64_auto.bp ais: corrected auto camera headers path 2021-05-02 20:57:53 -07:00
gen_headers_arm_auto.bp ais: corrected auto camera headers path 2021-05-02 20:57:53 -07:00
Kbuild
Kconfig
kernel_headers.py
LICENSE
MAINTAINERS
Makefile Merge android11-5.4.180+ (598165f) into msm-5.4 2022-04-21 10:51:21 +05:30
modules.list.msm.lahaina
OWNERS
README
README.md

How do I submit patches to Android Common Kernels

  1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.

  2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.

Common Kernel patch requirements

  • All patches must conform to the Linux kernel coding standards and pass script/checkpatch.pl
  • Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures (see https://source.android.com/setup/build/building-kernels)
  • If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: UPSTREAM:, BACKPORT:, FROMGIT:, FROMLIST:, or ANDROID:.
  • All patches must have a Change-Id: tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
  • If an Android bug has been assigned, there must be a Bug: tag.
  • All patches must have a Signed-off-by: tag by the author and the submitter

Additional requirements are listed below based on patch type

Requirements for backports from mainline Linux: UPSTREAM:, BACKPORT:

  • If the patch is a cherry-pick from Linux mainline with no changes at all
    • tag the patch subject with UPSTREAM:.
    • add upstream commit information with a (cherry-picked from ...) line
    • Example:
      • if the upstream commit message is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
    - then Joe Smith would upload the patch for the common kernel as
        UPSTREAM: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry-picked from c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch requires any changes from the upstream version, tag the patch with BACKPORT: instead of UPSTREAM:.
    • use the same tags as UPSTREAM:
    • add comments about the changes under the (cherry-picked from ...) line
    • Example:
        BACKPORT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry-picked from c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        [ Resolved minor conflict in drivers/foo/bar.c ]
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for other backports: FROMGIT:, FROMLIST:,

  • If the patch has been merged into an upstream maintainer tree, but has not yet been merged into Linux mainline
    • tag the patch subject with FROMGIT:
    • add info on where the patch came from as (cherry picked from commit <sha1> <repo> <branch>). This must be a stable maintainer branch (not rebased, so don't use linux-next for example).
    • if changes were required, use BACKPORT: FROMGIT:
    • Example:
      • if the commit message in the maintainer tree is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
    - then Joe Smith would upload the patch for the common kernel as
        FROMGIT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch has been submitted to LKML, but not accepted into any maintainer tree
    • tag the patch subject with FROMLIST:
    • add a Link: tag with a link to the submittal on lore.kernel.org
    • if changes were required, use BACKPORT: FROMLIST:
    • Example:
        FROMLIST: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for Android-specific patches: ANDROID:

  • If the patch is fixing a bug to Android-specific code
    • tag the patch subject with ANDROID:
    • add a Fixes: tag that cites the patch with the bug
    • Example:
        ANDROID: fix android-specific bug in foobar.c

        This is the detailed description of the important fix

        Fixes: 1234abcd2468 ("foobar: add cool feature")
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch is a new feature
    • tag the patch subject with ANDROID:
    • add a Bug: tag with the Android bug (required for android-specific features)

Vibrator driver for HHG device

How to merge the driver into kernel source tree

  1. Copy ${this_project}/drivers/hid/hid-aksys.c into ${your_kernel_root}/drivers/hid/

  2. Compare and merge ${this_project}/drivers/hid/hid-ids.h into ${your_kernel_root}/drivers/hid/hid-ids.h : Add the following code before the last line of this file

    	#define USB_VENDER_ID_QUALCOMM  0x0a12
    	#define USB_VENDER_ID_TEMP_HHG_AKSY 0x1234
    	#define USB_PRODUCT_ID_AKSYS_HHG  0x1000
    
  3. Merge ${this_project}/drivers/hid/Kconfig into ${your_kernel_root}/drivers/hid/Kconfig : Add the following code before the last line of this file

    config HID_AKSYS_QRD
    	tristate "AKSys gamepad USB adapter support"
    	depends on HID
    	---help---
    	Support for AKSys gamepad USB adapter
    
    config AKSYS_QRD_FF
    	bool "AKSys gamepad USB adapter force feedback support"
    	depends on HID_AKSYS_QRD
    	select INPUT_FF_MEMLESS
    	---help---
    	Say Y here if you have a AKSys gamepad USB adapter and want to
    	enable force feedback support for it.
    
  4. Merge ${this_project}/drivers/hid/Makefile into ${your_kernel_root}/drivers/hid/Makefile : Add the following code at the end of this file

    obj-$(CONFIG_HID_AKSYS_QRD)	+= hid-aksys.o
    
  5. Modify your kernel's default build configuration file. Add the following two lines:

    CONFIG_HID_AKSYS_QRD=m
    CONFIG_AKSYS_QRD_FF=y