PCM OSS read/write loops keep taking the mutex lock for the wholeread/write, and this might take very long when the exceptionally highamount of data is given. Also, since it invokes with mutex_lock(),the concurrent read/write becomes unbreakable.

This patch tries to address these issues by replacing mutex_lock()with mutex_lock_interruptible(), and also splits / re-takes the lockat each read/write period chunk, so that it can switch the contextmore finely if requested.