av7110_fe_lock_fix() modified in a way that it can be retried after
-ERESTARTSYS
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
        if (av7110->fe_synced == synced)
                return 0;
 
-       av7110->fe_synced = synced;
-
        if (av7110->playing)
                return 0;
 
        if (down_interruptible(&av7110->pid_mutex))
                return -ERESTARTSYS;
 
-       if (av7110->fe_synced) {
+       if (synced) {
                ret = SetPIDs(av7110, av7110->pids[DMX_PES_VIDEO],
                        av7110->pids[DMX_PES_AUDIO],
                        av7110->pids[DMX_PES_TELETEXT], 0,
                }
        }
 
+       if (!ret)
+               av7110->fe_synced = synced;
+
        up(&av7110->pid_mutex);
        return ret;
 }