• Home
  • Raw
  • Download

Lines Matching refs:opts

839 	struct f_rndis_opts *opts;  in rndis_borrow_net()  local
841 opts = container_of(f, struct f_rndis_opts, func_inst); in rndis_borrow_net()
842 if (opts->bound) in rndis_borrow_net()
843 gether_cleanup(netdev_priv(opts->net)); in rndis_borrow_net()
845 free_netdev(opts->net); in rndis_borrow_net()
846 opts->borrowed_net = opts->bound = true; in rndis_borrow_net()
847 opts->net = net; in rndis_borrow_net()
900 struct f_rndis_opts *opts; in rndis_free_inst() local
902 opts = container_of(f, struct f_rndis_opts, func_inst); in rndis_free_inst()
903 if (!opts->borrowed_net) { in rndis_free_inst()
904 if (opts->bound) in rndis_free_inst()
905 gether_cleanup(netdev_priv(opts->net)); in rndis_free_inst()
907 free_netdev(opts->net); in rndis_free_inst()
910 kfree(opts->rndis_interf_group); /* single VLA chunk */ in rndis_free_inst()
911 kfree(opts); in rndis_free_inst()
916 struct f_rndis_opts *opts; in rndis_alloc_inst() local
921 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in rndis_alloc_inst()
922 if (!opts) in rndis_alloc_inst()
924 opts->rndis_os_desc.ext_compat_id = opts->rndis_ext_compat_id; in rndis_alloc_inst()
926 mutex_init(&opts->lock); in rndis_alloc_inst()
927 opts->func_inst.free_func_inst = rndis_free_inst; in rndis_alloc_inst()
928 opts->net = gether_setup_default(); in rndis_alloc_inst()
929 if (IS_ERR(opts->net)) { in rndis_alloc_inst()
930 struct net_device *net = opts->net; in rndis_alloc_inst()
931 kfree(opts); in rndis_alloc_inst()
934 INIT_LIST_HEAD(&opts->rndis_os_desc.ext_prop); in rndis_alloc_inst()
936 opts->class = rndis_iad_descriptor.bFunctionClass; in rndis_alloc_inst()
937 opts->subclass = rndis_iad_descriptor.bFunctionSubClass; in rndis_alloc_inst()
938 opts->protocol = rndis_iad_descriptor.bFunctionProtocol; in rndis_alloc_inst()
940 descs[0] = &opts->rndis_os_desc; in rndis_alloc_inst()
942 config_group_init_type_name(&opts->func_inst.group, "", in rndis_alloc_inst()
945 usb_os_desc_prepare_interf_dir(&opts->func_inst.group, 1, descs, in rndis_alloc_inst()
948 rndis_free_inst(&opts->func_inst); in rndis_alloc_inst()
951 opts->rndis_interf_group = rndis_interf_group; in rndis_alloc_inst()
953 return &opts->func_inst; in rndis_alloc_inst()
959 struct f_rndis_opts *opts; in rndis_free() local
963 opts = container_of(f->fi, struct f_rndis_opts, func_inst); in rndis_free()
965 mutex_lock(&opts->lock); in rndis_free()
966 opts->refcnt--; in rndis_free()
967 mutex_unlock(&opts->lock); in rndis_free()
985 struct f_rndis_opts *opts; in rndis_alloc() local
993 opts = container_of(fi, struct f_rndis_opts, func_inst); in rndis_alloc()
994 mutex_lock(&opts->lock); in rndis_alloc()
995 opts->refcnt++; in rndis_alloc()
997 gether_get_host_addr_u8(opts->net, rndis->ethaddr); in rndis_alloc()
998 rndis->vendorID = opts->vendor_id; in rndis_alloc()
999 rndis->manufacturer = opts->manufacturer; in rndis_alloc()
1001 rndis->port.ioport = netdev_priv(opts->net); in rndis_alloc()
1002 mutex_unlock(&opts->lock); in rndis_alloc()