File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -293,14 +293,22 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
293
293
}
294
294
295
295
if (events -> eventw == events -> eventr ) {
296
- int ret ;
296
+ struct wait_queue_entry wait ;
297
+ int ret = 0 ;
297
298
298
299
if (flags & O_NONBLOCK )
299
300
return - EWOULDBLOCK ;
300
301
301
- ret = wait_event_interruptible (events -> wait_queue ,
302
- dvb_frontend_test_event (fepriv , events ));
303
-
302
+ init_waitqueue_entry (& wait , current );
303
+ add_wait_queue (& events -> wait_queue , & wait );
304
+ while (!dvb_frontend_test_event (fepriv , events )) {
305
+ wait_woken (& wait , TASK_INTERRUPTIBLE , 0 );
306
+ if (signal_pending (current )) {
307
+ ret = - ERESTARTSYS ;
308
+ break ;
309
+ }
310
+ }
311
+ remove_wait_queue (& events -> wait_queue , & wait );
304
312
if (ret < 0 )
305
313
return ret ;
306
314
}
You can’t perform that action at this time.
0 commit comments