Lines Matching refs:filter

69  * the CAN frames matching that filter.  If the filter list is empty,
71 * opening the socket, is to have one filter which receives all frames.
72 * The filter list is allocated dynamically with the exception of the
74 * storing the single filter in dfilter, to avoid using dynamic memory.
100 struct can_filter dfilter; /* default/single filter */
101 struct can_filter *filter; /* pointer to filter(s) */
151 /* filter CAN XL VCID content */
153 /* apply VCID filter if user enabled the filter */
158 /* no filter => do not forward VCID tagged frames */
164 /* eliminate multiple filter matches for the same skb */
213 struct sock *sk, struct can_filter *filter,
220 err = can_rx_register(net, dev, filter[i].can_id,
221 filter[i].can_mask,
226 can_rx_unregister(net, dev, filter[i].can_id,
227 filter[i].can_mask,
249 struct sock *sk, struct can_filter *filter,
255 can_rx_unregister(net, dev, filter[i].can_id,
256 filter[i].can_mask, raw_rcv, sk);
276 raw_disable_filters(net, dev, sk, ro->filter, ro->count);
286 err = raw_enable_filters(net, dev, sk, ro->filter, ro->count);
290 raw_disable_filters(net, dev, sk, ro->filter,
318 kfree(ro->filter);
370 /* set default filter to single entry dfilter */
373 ro->filter = &ro->dfilter;
429 kfree(ro->filter);
555 struct can_filter *filter = NULL; /* dyn. alloc'ed filters */
556 struct can_filter sfilter; /* single filter */
577 /* filter does not fit into dfilter => alloc space */
578 filter = memdup_sockptr(optval, optlen);
579 if (IS_ERR(filter))
580 return PTR_ERR(filter);
593 kfree(filter);
606 filter, count);
609 kfree(filter);
613 /* remove old filter registrations */
614 raw_disable_filters(sock_net(sk), dev, sk, ro->filter,
618 /* remove old filter space */
620 kfree(ro->filter);
624 /* copy filter data for single filter */
626 filter = &ro->dfilter;
628 ro->filter = filter;
775 /* user space buffer to small for filter list? */
784 if (copy_to_user(optval, ro->filter, len))