Avoid stack overflow when pending read misses list is blocked
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
parent
740bf06c4b
commit
a2b300d465
@ -120,7 +120,8 @@ int ocf_read_pt(struct ocf_request *req)
|
||||
/* Traverse request to check if there are mapped cache lines */
|
||||
ocf_engine_traverse(req);
|
||||
|
||||
if (req->seq_cutoff && ocf_engine_is_dirty_all(req)) {
|
||||
if (req->seq_cutoff && ocf_engine_is_dirty_all(req) &&
|
||||
!req->bf_blocked) {
|
||||
use_cache = true;
|
||||
} else {
|
||||
if (ocf_engine_mapped_count(req)) {
|
||||
|
@ -224,6 +224,7 @@ int ocf_read_generic(struct ocf_request *req)
|
||||
|
||||
if (env_atomic_read(&cache->pending_read_misses_list_blocked)) {
|
||||
/* There are conditions to bypass IO */
|
||||
req->bf_blocked = true;
|
||||
ocf_get_io_if(ocf_cache_mode_pt)->read(req);
|
||||
return 0;
|
||||
}
|
||||
|
@ -185,6 +185,9 @@ struct ocf_request {
|
||||
uint8_t seq_cutoff : 1;
|
||||
/*!< Sequential cut off set for this request */
|
||||
|
||||
uint8_t bf_blocked : 1;
|
||||
/*!< Backfill pending read misses list blocked */
|
||||
|
||||
uint8_t wi_second_pass : 1;
|
||||
/*!< Set after first pass of WI write is completed */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user