static struct io_device *create_io_device(struct modem_io_t *io_t, struct modem_ctl *modemctl, enum modem_network modem_net) { int ret = 0; struct io_device *iod = NULL; iod = kzalloc(sizeof(struct io_device), GFP_KERNEL); if (!iod) { pr_err("[MODEM_IF] io device memory alloc fail\n"); return NULL; } iod->name = io_t->name; iod->id = io_t->id; iod->format = io_t->format; iod->io_typ = io_t->io_type; iod->net_typ = modem_net; atomic_set(&iod->opened, 0); /* link between io device and modem control */ iod->mc = modemctl; if (iod->format == IPC_FMT) modemctl->iod = iod; /* register misc device or net device */ ret = init_io_device(iod); if (ret) { kfree(iod); return NULL; } pr_debug("[MODEM_IF] %s : create_io_device DONE\n", io_t->name); return iod; }
static struct io_device *create_io_device(struct modem_io_t *io_t, struct modem_ctl *modemctl, struct modem_data *pdata) { int ret = 0; struct io_device *iod = NULL; iod = kzalloc(sizeof(struct io_device), GFP_KERNEL); if (!iod) { pr_err("[MIF] <%s> iod alloc failed!!\n", __func__); return NULL; } iod->name = io_t->name; iod->id = io_t->id; iod->format = io_t->format; iod->io_typ = io_t->io_type; iod->net_typ = pdata->modem_net; iod->use_handover = pdata->use_handover; /* link between io device and modem control */ iod->mc = modemctl; if (iod->format == IPC_FMT) modemctl->iod = iod; /* register misc device or net device */ ret = init_io_device(iod); if (ret) { kfree(iod); return NULL; } pr_debug("[MIF] <%s> Create_io_device DONE [%s]\n", __func__, io_t->name); return iod; }