merge in jb-mr1-factory-release history after reset to jb-mr1-dev
diff --git a/alsa_sound/AudioStreamInALSA.cpp b/alsa_sound/AudioStreamInALSA.cpp
index 031d477..3b66c24 100644
--- a/alsa_sound/AudioStreamInALSA.cpp
+++ b/alsa_sound/AudioStreamInALSA.cpp
@@ -435,6 +435,13 @@
                 }
                 else
                     mHandle->module->open(mHandle);
+
+                if(mHandle->handle == NULL) {
+                   ALOGE("read:: PCM device re-open failed");
+                   mParent->mLock.unlock();
+                   return 0;
+                }
+
                 mParent->mLock.unlock();
                 continue;
             }
diff --git a/alsa_sound/AudioStreamOutALSA.cpp b/alsa_sound/AudioStreamOutALSA.cpp
index d047cd4..2adb5d8 100644
--- a/alsa_sound/AudioStreamOutALSA.cpp
+++ b/alsa_sound/AudioStreamOutALSA.cpp
@@ -260,8 +260,12 @@
                      mHandle->rxHandle = NULL;
                      mHandle->module->startVoipCall(mHandle);
                 }
-                else {
+                else
                     mHandle->module->open(mHandle);
+                if(mHandle->handle == NULL) {
+                   ALOGE("write:: device re-open failed");
+                   mParent->mLock.unlock();
+                   return bytes;
                 }
             }
             mParent->mLock.unlock();