Could you harvest any specific messages from the kernel log (dmesg)? I had reboot issues when my emmc came loose after dropping the phone on the floor. I could gain stability by turning off swap in that case.