I updated to Cyanogenmod 11.0 M10 a few days ago. Everything seemed to work great until a colleague called me Friday while I was on my Bluetooth headset. I could answer the call with the headset, but I couldn’t hear the other caller nor could he hear me. After a few moments of confusion, he hung up and called back. Same result, but I switched to speaker in time to catch the call. I lived on my Bluetooth headset on M9 (and previous) with no problem, so this was a definite regression.
After some investigation, I found that this was an issue in the new Android/Linux 3.4.103 kernel upon which CM 11.0 M10 is based. The same problem occurs in other custom kernels based on 3.4.103.
I added my voice to the bug report on jira here. After asking for kernel builds to fix this, I received help on the jira thread and also on xda-developers. Two kernels were suggested: Quantumkernel 5/16 and the BMS 20140806 kernel.
Before flashing a new kernel, common wisdom is to make a nandroid backup of your stable system, just in case. After booting into your recovery (I use CWM), you must delete both the cache and dalvik cache. Then you are ready to flash the new kernel.
I tried both suggested kernels. Quantumkernel 5/16 is based on Android kernel 3.4.99, while DMS 20140806 is based on 3.4.101. Both fixed the Bluetooth issue, but DMS contained newer Cyanogenmod commits so I stuck with it. So far, so good.
I am now fully operational again, but hoping that the Cyanogenmod team releases an interim milestone build with a kernel that fixes the Bluetooth issues. Many thanks to the wonderful Android community for helping identify the cause and provide helpful interim fixes. Thanks also to the Android community developers who provide the excellent variety of choices for open source users.