Hands down, the Samsung Moment.. If you dare use Wifi, within a few minutes of leaving wifi range, the whole radio locked up.. No calls, no text, no data... No nothing till it rebooted... Which took around 4 to 5 minutes (no exaggeration). Sprint mysteriously had it dissappear from the stores and its site one day, following mass reports to the FCC that thing thing constantly failed resulting in lost ability to call 911. The supposed "FIX" to a problem Sprint said never existed is plain as day in their code... The fix didn't work at all. In fact I believe it made it worse. Not to mention horrid battery life, the fact that the CPU was only ever designed to run @ 667mhz but was clocked @ 800. I almost discounted Android as a whole because of this abomination of technology. The Epic was better, but still had its share of problems. If not for the community I would have gone iPhone. Finally with the Gnex I am satisfied with Android.
#ifdef __KILL_PPPD_ON_MOD_RESET static int check_pppd(void)
{
unsigned long flags;
// FIXME
// Temp code for instinctq bug in data reconnection after modem is reset
// When the modem is reset, pppd doesn't close ttyCDMA nor does it clear
// the exclusive flag. When this happens other apps can't reopen ttyCDMA
// device. And if even if it did, data connection can't be re-established..
// So for now, let's just kill pppd here for an easy fix...
local_irq_save(flags);
if(strcmp(current->comm, "pppd")==0) {
pppd_pid = get_pid(task_pid(current));
printk(__C "pppd pid=%d" C__, pid_vnr(task_pid(current))); //
} else {
if(pppd_pid && pppd_reset_needed) {
int err;
struct pid *p_pid = pppd_pid;
pppd_pid = NULL;
pppd_reset_needed = 0;
err = kill_pid(p_pid, SIGTERM, 1);
printk(__C "Killing PPPD(%d) err=%d" C__, pid_vnr(p_pid), err);
} }
local_irq_restore(flags);
} #endif