Lines Matching refs:opts
833 struct f_rndis_opts *opts; in rndis_borrow_net() local
835 opts = container_of(f, struct f_rndis_opts, func_inst); in rndis_borrow_net()
836 if (opts->bound) in rndis_borrow_net()
837 gether_cleanup(netdev_priv(opts->net)); in rndis_borrow_net()
839 free_netdev(opts->net); in rndis_borrow_net()
840 opts->borrowed_net = opts->bound = true; in rndis_borrow_net()
841 opts->net = net; in rndis_borrow_net()
882 struct f_rndis_opts *opts; in rndis_free_inst() local
884 opts = container_of(f, struct f_rndis_opts, func_inst); in rndis_free_inst()
885 if (!opts->borrowed_net) { in rndis_free_inst()
886 if (opts->bound) in rndis_free_inst()
887 gether_cleanup(netdev_priv(opts->net)); in rndis_free_inst()
889 free_netdev(opts->net); in rndis_free_inst()
892 kfree(opts->rndis_os_desc.group.default_groups); /* single VLA chunk */ in rndis_free_inst()
893 kfree(opts); in rndis_free_inst()
898 struct f_rndis_opts *opts; in rndis_alloc_inst() local
902 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in rndis_alloc_inst()
903 if (!opts) in rndis_alloc_inst()
905 opts->rndis_os_desc.ext_compat_id = opts->rndis_ext_compat_id; in rndis_alloc_inst()
907 mutex_init(&opts->lock); in rndis_alloc_inst()
908 opts->func_inst.free_func_inst = rndis_free_inst; in rndis_alloc_inst()
909 opts->net = gether_setup_default(); in rndis_alloc_inst()
910 if (IS_ERR(opts->net)) { in rndis_alloc_inst()
911 struct net_device *net = opts->net; in rndis_alloc_inst()
912 kfree(opts); in rndis_alloc_inst()
915 INIT_LIST_HEAD(&opts->rndis_os_desc.ext_prop); in rndis_alloc_inst()
917 descs[0] = &opts->rndis_os_desc; in rndis_alloc_inst()
919 usb_os_desc_prepare_interf_dir(&opts->func_inst.group, 1, descs, in rndis_alloc_inst()
921 config_group_init_type_name(&opts->func_inst.group, "", in rndis_alloc_inst()
924 return &opts->func_inst; in rndis_alloc_inst()
930 struct f_rndis_opts *opts; in rndis_free() local
934 opts = container_of(f->fi, struct f_rndis_opts, func_inst); in rndis_free()
936 mutex_lock(&opts->lock); in rndis_free()
937 opts->refcnt--; in rndis_free()
938 mutex_unlock(&opts->lock); in rndis_free()
956 struct f_rndis_opts *opts; in rndis_alloc() local
964 opts = container_of(fi, struct f_rndis_opts, func_inst); in rndis_alloc()
965 mutex_lock(&opts->lock); in rndis_alloc()
966 opts->refcnt++; in rndis_alloc()
968 gether_get_host_addr_u8(opts->net, rndis->ethaddr); in rndis_alloc()
969 rndis->vendorID = opts->vendor_id; in rndis_alloc()
970 rndis->manufacturer = opts->manufacturer; in rndis_alloc()
972 rndis->port.ioport = netdev_priv(opts->net); in rndis_alloc()
973 mutex_unlock(&opts->lock); in rndis_alloc()