hso_net
struct hso_net *hso_net = dev2net(hso_dev);
if (!hso_net)
usb_fill_bulk_urb(hso_net->mux_bulk_rx_urb_pool[i],
hso_net->in_endp->
hso_net->mux_bulk_rx_buf_pool[i],
hso_net);
result = usb_submit_urb(hso_net->mux_bulk_rx_urb_pool[i],
struct hso_net *hso_net = dev2net(hso_dev);
if (!hso_net)
if (hso_net->mux_bulk_rx_urb_pool[i])
usb_kill_urb(hso_net->mux_bulk_rx_urb_pool[i]);
if (hso_net->mux_bulk_tx_urb)
usb_kill_urb(hso_net->mux_bulk_tx_urb);
struct hso_net *hso_net = dev2net(hso_dev);
if (!hso_net)
remove_net_device(hso_net->parent);
if (hso_net->net)
unregister_netdev(hso_net->net);
usb_free_urb(hso_net->mux_bulk_rx_urb_pool[i]);
kfree(hso_net->mux_bulk_rx_buf_pool[i]);
hso_net->mux_bulk_rx_buf_pool[i] = NULL;
usb_free_urb(hso_net->mux_bulk_tx_urb);
kfree(hso_net->mux_bulk_tx_buf);
hso_net->mux_bulk_tx_buf = NULL;
if (hso_net->net)
free_netdev(hso_net->net);
struct hso_net *hso_net = netdev_priv(net);
hso_dbg(0x1, "sizeof hso_net is %zu\n", sizeof(*hso_net));
spin_lock_init(&hso_net->net_lock);
struct hso_net *dev_net;
struct hso_net *hso_net = dev2net(hso_dev);
struct device *dev = &hso_net->net->dev;
snprintf(hso_net->name, sizeof(hso_net->name), "hso-%d",
hso_net->rfkill = rfkill_alloc(hso_net->name,
if (!hso_net->rfkill)
if (rfkill_register(hso_net->rfkill) < 0) {
rfkill_destroy(hso_net->rfkill);
hso_net->rfkill = NULL;
struct hso_net *hso_net;
net = alloc_netdev(sizeof(struct hso_net), "hso%d", NET_NAME_UNKNOWN,
hso_net = netdev_priv(net);
hso_dev->port_data.dev_net = hso_net;
hso_net->net = net;
hso_net->parent = hso_dev;
hso_net->in_endp = hso_get_ep(interface, USB_ENDPOINT_XFER_BULK,
if (!hso_net->in_endp) {
hso_net->out_endp = hso_get_ep(interface, USB_ENDPOINT_XFER_BULK,
if (!hso_net->out_endp) {
hso_net->mux_bulk_rx_urb_pool[i] = usb_alloc_urb(0, GFP_KERNEL);
if (!hso_net->mux_bulk_rx_urb_pool[i])
hso_net->mux_bulk_rx_buf_pool[i] = kzalloc(MUX_BULK_RX_BUF_SIZE,
if (!hso_net->mux_bulk_rx_buf_pool[i])
hso_net->mux_bulk_tx_urb = usb_alloc_urb(0, GFP_KERNEL);
if (!hso_net->mux_bulk_tx_urb)
hso_net->mux_bulk_tx_buf = kzalloc(MUX_BULK_TX_BUF_SIZE, GFP_KERNEL);
if (!hso_net->mux_bulk_tx_buf)
kfree(hso_net->mux_bulk_tx_buf);
usb_free_urb(hso_net->mux_bulk_tx_urb);
usb_free_urb(hso_net->mux_bulk_rx_urb_pool[i]);
kfree(hso_net->mux_bulk_rx_buf_pool[i]);
struct hso_net *hso_net;
hso_net = dev2net(network_table[i]);
if (hso_net->flags & IFF_UP) {
if (hso_net->skb_tx_buf) {
hso_net_start_xmit(hso_net->skb_tx_buf,
hso_net->net);
hso_net->skb_tx_buf = NULL;
static inline struct hso_net *dev2net(struct hso_device *hso_dev)
struct hso_net *odev = netdev_priv(net);
struct hso_net *odev = netdev_priv(net);
struct hso_net *odev = urb->context;
struct hso_net *odev = netdev_priv(net);
struct hso_net *odev = netdev_priv(net);
static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt,
struct hso_net *odev = urb->context;