driver core fixes: device_add() cleanup on error