It's totally unclear how various data are protected in the driver.
Currently the MISR work is exectuted without holding the gPVRSRVLock
mutex, which is held across bridge ioctls. To play things safe,
take the same lock in MISR work.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
}
}
+extern struct mutex gPVRSRVLock;
+
IMG_VOID IMG_CALLCONV PVRSRVMISR(IMG_VOID *pvSysData)
{
SYS_DATA *psSysData = pvSysData;
return;
}
+ mutex_lock(&gPVRSRVLock);
List_PVRSRV_DEVICE_NODE_ForEach(psSysData->psDeviceNodeList,
&PVRSRVMISR_ForEachCb);
}
}
+ mutex_unlock(&gPVRSRVLock);
+
PVRSRVCheckPendingSyncs();
}