caifd              94 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd              96 net/caif/caif_dev.c 	caifd = kzalloc(sizeof(*caifd), GFP_KERNEL);
caifd              97 net/caif/caif_dev.c 	if (!caifd)
caifd              99 net/caif/caif_dev.c 	caifd->pcpu_refcnt = alloc_percpu(int);
caifd             100 net/caif/caif_dev.c 	if (!caifd->pcpu_refcnt) {
caifd             101 net/caif/caif_dev.c 		kfree(caifd);
caifd             104 net/caif/caif_dev.c 	caifd->netdev = dev;
caifd             106 net/caif/caif_dev.c 	return caifd;
caifd             113 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd             115 net/caif/caif_dev.c 	list_for_each_entry_rcu(caifd, &caifdevs->list, list) {
caifd             116 net/caif/caif_dev.c 		if (caifd->netdev == dev)
caifd             117 net/caif/caif_dev.c 			return caifd;
caifd             124 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd             131 net/caif/caif_dev.c 	caifd = caif_get(skb->dev);
caifd             133 net/caif/caif_dev.c 	WARN_ON(caifd == NULL);
caifd             134 net/caif/caif_dev.c 	if (!caifd) {
caifd             139 net/caif/caif_dev.c 	caifd_hold(caifd);
caifd             142 net/caif/caif_dev.c 	spin_lock_bh(&caifd->flow_lock);
caifd             143 net/caif/caif_dev.c 	send_xoff = caifd->xoff;
caifd             144 net/caif/caif_dev.c 	caifd->xoff = 0;
caifd             145 net/caif/caif_dev.c 	dtor = caifd->xoff_skb_dtor;
caifd             147 net/caif/caif_dev.c 	if (WARN_ON(caifd->xoff_skb != skb))
caifd             150 net/caif/caif_dev.c 	caifd->xoff_skb = NULL;
caifd             151 net/caif/caif_dev.c 	caifd->xoff_skb_dtor = NULL;
caifd             153 net/caif/caif_dev.c 	spin_unlock_bh(&caifd->flow_lock);
caifd             159 net/caif/caif_dev.c 		caifd->layer.up->
caifd             160 net/caif/caif_dev.c 			ctrlcmd(caifd->layer.up,
caifd             162 net/caif/caif_dev.c 				caifd->layer.id);
caifd             163 net/caif/caif_dev.c 	caifd_put(caifd);
caifd             169 net/caif/caif_dev.c 	struct caif_device_entry *caifd =
caifd             177 net/caif/caif_dev.c 	skb->dev = caifd->netdev;
caifd             182 net/caif/caif_dev.c 	if (likely(caifd->netdev->priv_flags & IFF_NO_QUEUE))
caifd             185 net/caif/caif_dev.c 	if (unlikely(caifd->xoff))
caifd             188 net/caif/caif_dev.c 	if (likely(!netif_queue_stopped(caifd->netdev))) {
caifd             200 net/caif/caif_dev.c 		high = (caifd->netdev->tx_queue_len * q_high) / 100;
caifd             206 net/caif/caif_dev.c 	spin_lock_bh(&caifd->flow_lock);
caifd             207 net/caif/caif_dev.c 	if (caifd->xoff) {
caifd             208 net/caif/caif_dev.c 		spin_unlock_bh(&caifd->flow_lock);
caifd             220 net/caif/caif_dev.c 			netif_queue_stopped(caifd->netdev),
caifd             222 net/caif/caif_dev.c 	caifd->xoff = 1;
caifd             223 net/caif/caif_dev.c 	caifd->xoff_skb = skb;
caifd             224 net/caif/caif_dev.c 	caifd->xoff_skb_dtor = skb->destructor;
caifd             226 net/caif/caif_dev.c 	spin_unlock_bh(&caifd->flow_lock);
caifd             228 net/caif/caif_dev.c 	caifd->layer.up->ctrlcmd(caifd->layer.up,
caifd             230 net/caif/caif_dev.c 					caifd->layer.id);
caifd             249 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd             255 net/caif/caif_dev.c 	caifd = caif_get(dev);
caifd             257 net/caif/caif_dev.c 	if (!caifd || !caifd->layer.up || !caifd->layer.up->receive ||
caifd             258 net/caif/caif_dev.c 			!netif_oper_up(caifd->netdev)) {
caifd             265 net/caif/caif_dev.c 	caifd_hold(caifd);
caifd             268 net/caif/caif_dev.c 	err = caifd->layer.up->receive(caifd->layer.up, pkt);
caifd             275 net/caif/caif_dev.c 	caifd_put(caifd);
caifd             289 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd             293 net/caif/caif_dev.c 	caifd = caif_get(dev);
caifd             294 net/caif/caif_dev.c 	if (!caifd || !caifd->layer.up || !caifd->layer.up->ctrlcmd) {
caifd             299 net/caif/caif_dev.c 	caifd_hold(caifd);
caifd             302 net/caif/caif_dev.c 	caifd->layer.up->ctrlcmd(caifd->layer.up,
caifd             306 net/caif/caif_dev.c 				 caifd->layer.id);
caifd             307 net/caif/caif_dev.c 	caifd_put(caifd);
caifd             317 net/caif/caif_dev.c 	struct caif_device_entry *caifd;
caifd             323 net/caif/caif_dev.c 	caifd = caif_device_alloc(dev);
caifd             324 net/caif/caif_dev.c 	if (!caifd)
caifd             326 net/caif/caif_dev.c 	*layer = &caifd->layer;
caifd             327 net/caif/caif_dev.c 	spin_lock_init(&caifd->flow_lock);
caifd             341 net/caif/caif_dev.c 	list_add_rcu(&caifd->list, &caifdevs->list);
caifd             343 net/caif/caif_dev.c 	strlcpy(caifd->layer.name, dev->name,
caifd             344 net/caif/caif_dev.c 		sizeof(caifd->layer.name));
caifd             345 net/caif/caif_dev.c 	caifd->layer.transmit = transmit;
caifd             348 net/caif/caif_dev.c 				&caifd->layer,
caifd             364 net/caif/caif_dev.c 	struct caif_device_entry *caifd = NULL;
caifd             374 net/caif/caif_dev.c 	caifd = caif_get(dev);
caifd             375 net/caif/caif_dev.c 	if (caifd == NULL && dev->type != ARPHRD_CAIF)
caifd             380 net/caif/caif_dev.c 		if (caifd != NULL)
caifd             403 net/caif/caif_dev.c 		caifd = caif_get(dev);
caifd             404 net/caif/caif_dev.c 		if (caifd == NULL) {
caifd             409 net/caif/caif_dev.c 		caifd->xoff = 0;
caifd             410 net/caif/caif_dev.c 		cfcnfg_set_phy_state(cfg, &caifd->layer, true);
caifd             418 net/caif/caif_dev.c 		caifd = caif_get(dev);
caifd             419 net/caif/caif_dev.c 		if (!caifd || !caifd->layer.up || !caifd->layer.up->ctrlcmd) {
caifd             424 net/caif/caif_dev.c 		cfcnfg_set_phy_state(cfg, &caifd->layer, false);
caifd             425 net/caif/caif_dev.c 		caifd_hold(caifd);
caifd             428 net/caif/caif_dev.c 		caifd->layer.up->ctrlcmd(caifd->layer.up,
caifd             430 net/caif/caif_dev.c 					 caifd->layer.id);
caifd             432 net/caif/caif_dev.c 		spin_lock_bh(&caifd->flow_lock);
caifd             441 net/caif/caif_dev.c 		if (caifd->xoff_skb_dtor != NULL && caifd->xoff_skb != NULL)
caifd             442 net/caif/caif_dev.c 			caifd->xoff_skb->destructor = caifd->xoff_skb_dtor;
caifd             444 net/caif/caif_dev.c 		caifd->xoff = 0;
caifd             445 net/caif/caif_dev.c 		caifd->xoff_skb_dtor = NULL;
caifd             446 net/caif/caif_dev.c 		caifd->xoff_skb = NULL;
caifd             448 net/caif/caif_dev.c 		spin_unlock_bh(&caifd->flow_lock);
caifd             449 net/caif/caif_dev.c 		caifd_put(caifd);
caifd             455 net/caif/caif_dev.c 		caifd = caif_get(dev);
caifd             456 net/caif/caif_dev.c 		if (caifd == NULL) {
caifd             460 net/caif/caif_dev.c 		list_del_rcu(&caifd->list);
caifd             474 net/caif/caif_dev.c 		if (caifd_refcnt_read(caifd) != 0 ||
caifd             475 net/caif/caif_dev.c 			cfcnfg_del_phy_layer(cfg, &caifd->layer) != 0) {
caifd             479 net/caif/caif_dev.c 			list_add_rcu(&caifd->list, &caifdevs->list);
caifd             485 net/caif/caif_dev.c 		dev_put(caifd->netdev);
caifd             486 net/caif/caif_dev.c 		free_percpu(caifd->pcpu_refcnt);
caifd             487 net/caif/caif_dev.c 		kfree(caifd);
caifd             516 net/caif/caif_dev.c 	struct caif_device_entry *caifd, *tmp;
caifd             524 net/caif/caif_dev.c 	list_for_each_entry_safe(caifd, tmp, &caifdevs->list, list) {
caifd             526 net/caif/caif_dev.c 		list_del_rcu(&caifd->list);
caifd             527 net/caif/caif_dev.c 		cfcnfg_set_phy_state(cfg, &caifd->layer, false);
caifd             530 net/caif/caif_dev.c 			(caifd_refcnt_read(caifd) != 0 ||
caifd             531 net/caif/caif_dev.c 			cfcnfg_del_phy_layer(cfg, &caifd->layer) != 0)) {
caifd             538 net/caif/caif_dev.c 		dev_put(caifd->netdev);
caifd             539 net/caif/caif_dev.c 		free_percpu(caifd->pcpu_refcnt);
caifd             540 net/caif/caif_dev.c 		kfree(caifd);