Bug 638579

Summary: dasd: fix race between tasklet and dasd_sleep_on [rhel-5.5.z]
Product: Red Hat Enterprise Linux 5 Reporter: RHEL Program Management <pm-rhel>
Component: kernelAssignee: Jiri Pirko <jpirko>
Status: CLOSED ERRATA QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: high Docs Contact:
Priority: high    
Version: 5.5CC: brueckner, cww, dhoward, eguan, gbarros, jkachuck, jpirko, pm-eus, rkhan, tao, yugzhang
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Various dasd_sleep_on functions use a global wait queue when waiting for a CQR (Channel Queue Request). Previously, the wait condition checked the status and devlist fields of the CQR to determine if it is safe to continue. This evaluation may have returned true, although the tasklet did not finish processing the CQR and the callback function had not been called yet. When the callback was finally called, the data in the CQR could have already been invalid. With this update, the sleep_on wait condition has a safe way to determine if the tasklet has finished processing, thus, preventing the aforementioned behavior.
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-09 18:09:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 593756    
Bug Blocks:    

Description RHEL Program Management 2010-09-29 12:21:29 UTC
This bug has been copied from bug #593756 and has been proposed
to be backported to 5.5 z-stream (EUS).

Comment 2 Jiri Pirko 2010-09-29 16:52:29 UTC
in kernel 2.6.18-194.18.1.el5

linux-2.6-s390-dasd-fix-race-between-tasklet-and-dasd_sleep_on.patch

Comment 7 errata-xmlrpc 2010-11-09 18:09:23 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0839.html

Comment 8 Martin Prpič 2010-11-11 14:06:04 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Various dasd_sleep_on functions use a global wait queue when waiting for a CQR (Channel Queue Request). Previously, the wait condition checked the status and devlist fields of the CQR to determine if it is safe to continue. This evaluation may have returned true, although the tasklet did not finish processing the CQR and the callback function had not been called yet. When the callback was finally called, the data in the CQR could have already been invalid. With this update, the sleep_on wait condition has a safe way to determine if the tasklet has finished processing, thus, preventing the aforementioned behavior.