From 20864b84a4d249ad91852733f2e78dbb7332a3cb Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Thu, 4 Aug 2011 12:33:15 -0300 Subject: [PATCH] --- yaml --- r: 271703 b: refs/heads/master c: 77b1e2fbbdfa0ee5cdf6c928b711493a3738468e h: refs/heads/master i: 271701: 93c70533630c6ba478a413896677b2fd4eacd3a0 271699: 22494c87917041fc0d239c8f67f014f1fd4ae30d 271695: 3cfc7d3f349dd2676e5bd8b773d7fc10abaf8bdc v: v3 --- [refs] | 2 +- .../drivers/media/dvb/dvb-core/dvb_frontend.c | 24 ++++++------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 03f71ff891aa..62c6bc6c965a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20640bea87c31a823dba3756b1a5248197f0905f +refs/heads/master: 77b1e2fbbdfa0ee5cdf6c928b711493a3738468e diff --git a/trunk/drivers/media/dvb/dvb-core/dvb_frontend.c b/trunk/drivers/media/dvb/dvb-core/dvb_frontend.c index 410231112204..d02c32e754f4 100644 --- a/trunk/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/trunk/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -149,30 +149,25 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status) dprintk ("%s\n", __func__); - if (mutex_lock_interruptible (&events->mtx)) - return; + if ((status & FE_HAS_LOCK) && fe->ops.get_frontend) + fe->ops.get_frontend(fe, &fepriv->parameters_out); - wp = (events->eventw + 1) % MAX_EVENT; + mutex_lock(&events->mtx); + wp = (events->eventw + 1) % MAX_EVENT; if (wp == events->eventr) { events->overflow = 1; events->eventr = (events->eventr + 1) % MAX_EVENT; } e = &events->events[events->eventw]; - - if (status & FE_HAS_LOCK) - if (fe->ops.get_frontend) - fe->ops.get_frontend(fe, &fepriv->parameters_out); - + e->status = status; e->parameters = fepriv->parameters_out; events->eventw = wp; mutex_unlock(&events->mtx); - e->status = status; - wake_up_interruptible (&events->wait_queue); } @@ -207,14 +202,9 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe, return ret; } - if (mutex_lock_interruptible (&events->mtx)) - return -ERESTARTSYS; - - memcpy (event, &events->events[events->eventr], - sizeof(struct dvb_frontend_event)); - + mutex_lock(&events->mtx); + *event = events->events[events->eventr]; events->eventr = (events->eventr + 1) % MAX_EVENT; - mutex_unlock(&events->mtx); return 0;