qcacld-3.0: Reject up-tree ops during transition

Currently, the Driver Synchronization Core (DSC) blocks transitions
up-tree and down-tree from a node currently undergoing a transition, but
only rejects operations down-tree from the current node. Instead, reject
new operations both up-tree and down-tree from the current node under
transition. This provides more forgiving safety guarantees to operation
implementations at the cost of a reduced amount of parallelism that can
be achieved.

Change-Id: I09e1c48f7030a2252380d172c1c00ee22eac39c5
CRs-Fixed: 2421786
This commit is contained in:
Dustin Brown
2019-03-22 13:18:27 -07:00
committed by nshrivas
parent 2a1755db02
commit 06878b3a80
5 changed files with 39 additions and 37 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -123,10 +123,7 @@ static bool __dsc_driver_trans_active_down_tree(struct dsc_driver *driver)
return false;
}
static bool __dsc_driver_can_op(struct dsc_driver *driver)
{
return !__dsc_trans_active_or_queued(&driver->trans);
}
#define __dsc_driver_can_op(driver) __dsc_driver_can_trans(driver)
static bool __dsc_driver_can_trans(struct dsc_driver *driver)
{