ALSA: pcm: Abort properly at pending signal in OSS read/write loops
[pandora-kernel.git] / sound / core / oss / pcm_oss.c
index efae143..a02512b 100644 (file)
@@ -1422,6 +1422,10 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
                            tmp != runtime->oss.period_bytes)
                                break;
                }
+               if (signal_pending(current)) {
+                       tmp = -ERESTARTSYS;
+                       goto err;
+               }
        }
        mutex_unlock(&runtime->oss.params_lock);
        return xfer;
@@ -1507,6 +1511,10 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
                        bytes -= tmp;
                        xfer += tmp;
                }
+               if (signal_pending(current)) {
+                       tmp = -ERESTARTSYS;
+                       goto err;
+               }
        }
        mutex_unlock(&runtime->oss.params_lock);
        return xfer;