flow               83 arch/arc/include/asm/disasm.h 	enum flow flow;
flow               78 arch/arc/kernel/disasm.c 		state->flow = direct_jump;
flow               89 arch/arc/kernel/disasm.c 			state->flow = direct_call;
flow               93 arch/arc/kernel/disasm.c 			state->flow = direct_jump;
flow              184 arch/arc/kernel/disasm.c 				state->flow = is_linked ?
flow              188 arch/arc/kernel/disasm.c 				state->flow = is_linked ?
flow              202 arch/arc/kernel/disasm.c 				state->flow = direct_jump;
flow              307 arch/arc/kernel/disasm.c 			state->flow = (subopcode >= 2) ?
flow              317 arch/arc/kernel/disasm.c 				state->flow = indirect_jump;
flow              403 arch/arc/kernel/disasm.c 		state->flow = direct_jump;
flow              412 arch/arc/kernel/disasm.c 		state->flow = direct_jump;
flow              418 arch/arc/kernel/disasm.c 		state->flow = direct_call;
flow              192 arch/mips/ar7/prom.c 	char parity = '\0', bits = '\0', flow = '\0';
flow              213 arch/mips/ar7/prom.c 			flow = 'r';
flow              223 arch/mips/ar7/prom.c 	if (flow == 'r')
flow              225 arch/mips/ar7/prom.c 			parity, bits, flow);
flow               46 arch/mips/mti-malta/malta-init.c 	char parity = '\0', bits = '\0', flow = '\0';
flow               64 arch/mips/mti-malta/malta-init.c 			flow = 'r';
flow               72 arch/mips/mti-malta/malta-init.c 	if (flow == '\0')
flow               73 arch/mips/mti-malta/malta-init.c 		flow = 'r';
flow               83 arch/mips/mti-malta/malta-init.c 			parity, bits, flow);
flow              885 drivers/crypto/s5p-sss.c 	u32 flow;
flow              889 drivers/crypto/s5p-sss.c 	flow = SSS_READ(dev, FCFIFOCTRL);
flow              890 drivers/crypto/s5p-sss.c 	flow &= ~SSS_HASHIN_MASK;
flow              891 drivers/crypto/s5p-sss.c 	flow |= hashflow;
flow              892 drivers/crypto/s5p-sss.c 	SSS_WRITE(dev, FCFIFOCTRL, flow);
flow               45 drivers/gpu/ipu-v3/ipu-dp.c 	u32 flow;
flow               63 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow flow[IPUV3_NUM_FLOWS];
flow               81 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow *flow = to_flow(dp);
flow               82 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_dp_priv *priv = flow->priv;
flow               87 drivers/gpu/ipu-v3/ipu-dp.c 	reg = readl(flow->base + DP_COM_CONF);
flow               92 drivers/gpu/ipu-v3/ipu-dp.c 	writel(reg, flow->base + DP_COM_CONF);
flow               95 drivers/gpu/ipu-v3/ipu-dp.c 		reg = readl(flow->base + DP_GRAPH_WIND_CTRL) & 0x00FFFFFFL;
flow               97 drivers/gpu/ipu-v3/ipu-dp.c 			     flow->base + DP_GRAPH_WIND_CTRL);
flow               99 drivers/gpu/ipu-v3/ipu-dp.c 		reg = readl(flow->base + DP_COM_CONF);
flow              100 drivers/gpu/ipu-v3/ipu-dp.c 		writel(reg | DP_COM_CONF_GWAM, flow->base + DP_COM_CONF);
flow              102 drivers/gpu/ipu-v3/ipu-dp.c 		reg = readl(flow->base + DP_COM_CONF);
flow              103 drivers/gpu/ipu-v3/ipu-dp.c 		writel(reg & ~DP_COM_CONF_GWAM, flow->base + DP_COM_CONF);
flow              116 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow *flow = to_flow(dp);
flow              117 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_dp_priv *priv = flow->priv;
flow              119 drivers/gpu/ipu-v3/ipu-dp.c 	writel((x_pos << 16) | y_pos, flow->base + DP_FG_POS);
flow              127 drivers/gpu/ipu-v3/ipu-dp.c static void ipu_dp_csc_init(struct ipu_flow *flow,
flow              134 drivers/gpu/ipu-v3/ipu-dp.c 	reg = readl(flow->base + DP_COM_CONF);
flow              138 drivers/gpu/ipu-v3/ipu-dp.c 		writel(reg, flow->base + DP_COM_CONF);
flow              143 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x099 | (0x12d << 16), flow->base + DP_CSC_A_0);
flow              144 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x03a | (0x3a9 << 16), flow->base + DP_CSC_A_1);
flow              145 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x356 | (0x100 << 16), flow->base + DP_CSC_A_2);
flow              146 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x100 | (0x329 << 16), flow->base + DP_CSC_A_3);
flow              148 drivers/gpu/ipu-v3/ipu-dp.c 				flow->base + DP_CSC_0);
flow              150 drivers/gpu/ipu-v3/ipu-dp.c 				flow->base + DP_CSC_1);
flow              152 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x095 | (0x000 << 16), flow->base + DP_CSC_A_0);
flow              153 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x0cc | (0x095 << 16), flow->base + DP_CSC_A_1);
flow              154 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x3ce | (0x398 << 16), flow->base + DP_CSC_A_2);
flow              155 drivers/gpu/ipu-v3/ipu-dp.c 		writel(0x095 | (0x0ff << 16), flow->base + DP_CSC_A_3);
flow              157 drivers/gpu/ipu-v3/ipu-dp.c 				flow->base + DP_CSC_0);
flow              159 drivers/gpu/ipu-v3/ipu-dp.c 				flow->base + DP_CSC_1);
flow              164 drivers/gpu/ipu-v3/ipu-dp.c 	writel(reg, flow->base + DP_COM_CONF);
flow              171 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow *flow = to_flow(dp);
flow              172 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_dp_priv *priv = flow->priv;
flow              179 drivers/gpu/ipu-v3/ipu-dp.c 		flow->out_cs = out;
flow              181 drivers/gpu/ipu-v3/ipu-dp.c 	if (flow->foreground.in_cs == flow->background.in_cs) {
flow              186 drivers/gpu/ipu-v3/ipu-dp.c 		ipu_dp_csc_init(flow, flow->foreground.in_cs, flow->out_cs,
flow              189 drivers/gpu/ipu-v3/ipu-dp.c 		if (flow->foreground.in_cs == IPUV3_COLORSPACE_UNKNOWN ||
flow              190 drivers/gpu/ipu-v3/ipu-dp.c 		    flow->foreground.in_cs == flow->out_cs)
flow              195 drivers/gpu/ipu-v3/ipu-dp.c 			ipu_dp_csc_init(flow, flow->background.in_cs,
flow              196 drivers/gpu/ipu-v3/ipu-dp.c 					flow->out_cs, DP_COM_CONF_CSC_DEF_BG);
flow              198 drivers/gpu/ipu-v3/ipu-dp.c 			ipu_dp_csc_init(flow, flow->foreground.in_cs,
flow              199 drivers/gpu/ipu-v3/ipu-dp.c 					flow->out_cs, DP_COM_CONF_CSC_DEF_FG);
flow              229 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow *flow = to_flow(dp);
flow              230 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_dp_priv *priv = flow->priv;
flow              238 drivers/gpu/ipu-v3/ipu-dp.c 	reg = readl(flow->base + DP_COM_CONF);
flow              240 drivers/gpu/ipu-v3/ipu-dp.c 	writel(reg, flow->base + DP_COM_CONF);
flow              252 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_flow *flow = to_flow(dp);
flow              253 drivers/gpu/ipu-v3/ipu-dp.c 	struct ipu_dp_priv *priv = flow->priv;
flow              263 drivers/gpu/ipu-v3/ipu-dp.c 	reg = readl(flow->base + DP_COM_CONF);
flow              270 drivers/gpu/ipu-v3/ipu-dp.c 	writel(reg, flow->base + DP_COM_CONF);
flow              272 drivers/gpu/ipu-v3/ipu-dp.c 	writel(0, flow->base + DP_FG_POS);
flow              297 drivers/gpu/ipu-v3/ipu-dp.c struct ipu_dp *ipu_dp_get(struct ipu_soc *ipu, unsigned int flow)
flow              302 drivers/gpu/ipu-v3/ipu-dp.c 	if ((flow >> 1) >= IPUV3_NUM_FLOWS)
flow              305 drivers/gpu/ipu-v3/ipu-dp.c 	if (flow & 1)
flow              306 drivers/gpu/ipu-v3/ipu-dp.c 		dp = &priv->flow[flow >> 1].foreground;
flow              308 drivers/gpu/ipu-v3/ipu-dp.c 		dp = &priv->flow[flow >> 1].background;
flow              345 drivers/gpu/ipu-v3/ipu-dp.c 		priv->flow[i].background.in_cs = IPUV3_COLORSPACE_UNKNOWN;
flow              346 drivers/gpu/ipu-v3/ipu-dp.c 		priv->flow[i].foreground.in_cs = IPUV3_COLORSPACE_UNKNOWN;
flow              347 drivers/gpu/ipu-v3/ipu-dp.c 		priv->flow[i].foreground.foreground = true;
flow              348 drivers/gpu/ipu-v3/ipu-dp.c 		priv->flow[i].base = priv->base + ipu_dp_flow_base[i];
flow              349 drivers/gpu/ipu-v3/ipu-dp.c 		priv->flow[i].priv = priv;
flow              353 drivers/hsi/clients/hsi_char.c 	if ((rxc->flow != HSI_FLOW_SYNC) && (rxc->flow != HSI_FLOW_PIPE))
flow              358 drivers/hsi/clients/hsi_char.c 	cl->rx_cfg.flow = rxc->flow;
flow              374 drivers/hsi/clients/hsi_char.c 	rxc->flow = cl->rx_cfg.flow;
flow              159 drivers/hsi/hsi_core.c 	const char *flow;
flow              162 drivers/hsi/hsi_core.c 	err = of_property_read_string(client, name, &flow);
flow              166 drivers/hsi/hsi_core.c 	if (strcmp(flow, "synchronized") == 0)
flow              168 drivers/hsi/hsi_core.c 	else if (strcmp(flow, "pipeline") == 0)
flow              238 drivers/hsi/hsi_core.c 					 &cl->rx_cfg.flow);
flow               55 drivers/infiniband/core/uverbs_std_types.c 	struct ib_flow *flow = (struct ib_flow *)uobject->object;
flow               58 drivers/infiniband/core/uverbs_std_types.c 	struct ib_qp *qp = flow->qp;
flow               61 drivers/infiniband/core/uverbs_std_types.c 	ret = flow->device->ops.destroy_flow(flow);
flow              447 drivers/infiniband/hw/hfi1/rc.c 	struct tid_rdma_flow *flow = NULL;
flow              823 drivers/infiniband/hw/hfi1/rc.c 				struct tid_rdma_flow *flow =
flow              832 drivers/infiniband/hw/hfi1/rc.c 				if (!flow->npagesets) {
flow             1114 drivers/infiniband/hw/hfi1/rc.c 		flow = &req->flows[req->flow_idx];
flow             1115 drivers/infiniband/hw/hfi1/rc.c 		len -= flow->sent;
flow             1116 drivers/infiniband/hw/hfi1/rc.c 		req->s_next_psn = flow->flow_state.ib_lpsn + 1;
flow              134 drivers/infiniband/hw/hfi1/tid_rdma.c 				   struct tid_rdma_flow *flow,
flow              875 drivers/infiniband/hw/hfi1/tid_rdma.c static u32 tid_rdma_find_phys_blocks_4k(struct tid_rdma_flow *flow,
flow              892 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_page(flow->req->qp, flow, 0, 0, 0, vaddr);
flow              895 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 0, 0,
flow              929 drivers/infiniband/hw/hfi1/tid_rdma.c 				trace_hfi1_tid_pageset(flow->req->qp, setcount,
flow             1013 drivers/infiniband/hw/hfi1/tid_rdma.c static u32 tid_rdma_find_phys_blocks_8k(struct tid_rdma_flow *flow,
flow             1027 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 0, v0);
flow             1030 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_page(flow->req->qp, flow, i, 1, 1, v1);
flow             1080 drivers/infiniband/hw/hfi1/tid_rdma.c static u32 kern_find_pages(struct tid_rdma_flow *flow,
flow             1084 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_request *req = flow->req;
flow             1086 drivers/infiniband/hw/hfi1/tid_rdma.c 	u32 length = flow->req->seg_len;
flow             1110 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->length = flow->req->seg_len - length;
flow             1115 drivers/infiniband/hw/hfi1/tid_rdma.c static void dma_unmap_flow(struct tid_rdma_flow *flow)
flow             1121 drivers/infiniband/hw/hfi1/tid_rdma.c 	dd = flow->req->rcd->dd;
flow             1122 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0, pset = &flow->pagesets[0]; i < flow->npagesets;
flow             1134 drivers/infiniband/hw/hfi1/tid_rdma.c static int dma_map_flow(struct tid_rdma_flow *flow, struct page **pages)
flow             1137 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct hfi1_devdata *dd = flow->req->rcd->dd;
flow             1140 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0, pset = &flow->pagesets[0]; i < flow->npagesets;
flow             1150 drivers/infiniband/hw/hfi1/tid_rdma.c 				dma_unmap_flow(flow);
flow             1159 drivers/infiniband/hw/hfi1/tid_rdma.c static inline bool dma_mapped(struct tid_rdma_flow *flow)
flow             1161 drivers/infiniband/hw/hfi1/tid_rdma.c 	return !!flow->pagesets[0].mapped;
flow             1168 drivers/infiniband/hw/hfi1/tid_rdma.c static int kern_get_phys_blocks(struct tid_rdma_flow *flow,
flow             1175 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (flow->npagesets) {
flow             1176 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_alloc(flow->req->qp, flow->req->setup_head,
flow             1177 drivers/infiniband/hw/hfi1/tid_rdma.c 					  flow);
flow             1178 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (!dma_mapped(flow))
flow             1179 drivers/infiniband/hw/hfi1/tid_rdma.c 			return dma_map_flow(flow, pages);
flow             1183 drivers/infiniband/hw/hfi1/tid_rdma.c 	npages = kern_find_pages(flow, pages, ss, last);
flow             1185 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (flow->req->qp->pmtu == enum_to_mtu(OPA_MTU_4096))
flow             1186 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->npagesets =
flow             1187 drivers/infiniband/hw/hfi1/tid_rdma.c 			tid_rdma_find_phys_blocks_4k(flow, pages, npages,
flow             1188 drivers/infiniband/hw/hfi1/tid_rdma.c 						     flow->pagesets);
flow             1190 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->npagesets =
flow             1191 drivers/infiniband/hw/hfi1/tid_rdma.c 			tid_rdma_find_phys_blocks_8k(flow, pages, npages,
flow             1192 drivers/infiniband/hw/hfi1/tid_rdma.c 						     flow->pagesets);
flow             1194 drivers/infiniband/hw/hfi1/tid_rdma.c 	return dma_map_flow(flow, pages);
flow             1197 drivers/infiniband/hw/hfi1/tid_rdma.c static inline void kern_add_tid_node(struct tid_rdma_flow *flow,
flow             1201 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct kern_tid_node *node = &flow->tnode[flow->tnode_cnt++];
flow             1203 drivers/infiniband/hw/hfi1/tid_rdma.c 	WARN_ON_ONCE(flow->tnode_cnt >=
flow             1213 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_node_add(flow->req->qp, s, flow->tnode_cnt - 1,
flow             1230 drivers/infiniband/hw/hfi1/tid_rdma.c static int kern_alloc_tids(struct tid_rdma_flow *flow)
flow             1232 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct hfi1_ctxtdata *rcd = flow->req->rcd;
flow             1238 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tnode_cnt = 0;
flow             1239 drivers/infiniband/hw/hfi1/tid_rdma.c 	ngroups = flow->npagesets / dd->rcv_entries.group_size;
flow             1245 drivers/infiniband/hw/hfi1/tid_rdma.c 		kern_add_tid_node(flow, rcd, "complete groups", group,
flow             1253 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (pageidx >= flow->npagesets)
flow             1259 drivers/infiniband/hw/hfi1/tid_rdma.c 		use = min_t(u32, flow->npagesets - pageidx,
flow             1261 drivers/infiniband/hw/hfi1/tid_rdma.c 		kern_add_tid_node(flow, rcd, "used groups", used, use);
flow             1264 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (pageidx >= flow->npagesets)
flow             1280 drivers/infiniband/hw/hfi1/tid_rdma.c 	use = min_t(u32, flow->npagesets - pageidx, group->size);
flow             1281 drivers/infiniband/hw/hfi1/tid_rdma.c 	kern_add_tid_node(flow, rcd, "complete continue", group, use);
flow             1283 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (pageidx >= flow->npagesets)
flow             1286 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_msg_alloc_tids(flow->req->qp, " insufficient tids: needed ",
flow             1287 drivers/infiniband/hw/hfi1/tid_rdma.c 				  (u64)flow->npagesets);
flow             1293 drivers/infiniband/hw/hfi1/tid_rdma.c static void kern_program_rcv_group(struct tid_rdma_flow *flow, int grp_num,
flow             1296 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct hfi1_ctxtdata *rcd = flow->req->rcd;
flow             1298 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct kern_tid_node *node = &flow->tnode[grp_num];
flow             1301 drivers/infiniband/hw/hfi1/tid_rdma.c 	u32 pmtu_pg = flow->req->qp->pmtu >> PAGE_SHIFT;
flow             1312 drivers/infiniband/hw/hfi1/tid_rdma.c 		pset = &flow->pagesets[(*pset_idx)++];
flow             1335 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->tid_entry[flow->tidcnt++] =
flow             1340 drivers/infiniband/hw/hfi1/tid_rdma.c 			   flow->req->qp, flow->tidcnt - 1,
flow             1341 drivers/infiniband/hw/hfi1/tid_rdma.c 			   flow->tid_entry[flow->tidcnt - 1]);
flow             1344 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->npkts += (npages + pmtu_pg - 1) >> ilog2(pmtu_pg);
flow             1361 drivers/infiniband/hw/hfi1/tid_rdma.c static void kern_unprogram_rcv_group(struct tid_rdma_flow *flow, int grp_num)
flow             1363 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct hfi1_ctxtdata *rcd = flow->req->rcd;
flow             1365 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct kern_tid_node *node = &flow->tnode[grp_num];
flow             1392 drivers/infiniband/hw/hfi1/tid_rdma.c 		struct hfi1_ctxtdata *rcd = flow->req->rcd;
flow             1400 drivers/infiniband/hw/hfi1/tid_rdma.c static void kern_program_rcvarray(struct tid_rdma_flow *flow)
flow             1405 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->npkts = 0;
flow             1406 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tidcnt = 0;
flow             1407 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0; i < flow->tnode_cnt; i++)
flow             1408 drivers/infiniband/hw/hfi1/tid_rdma.c 		kern_program_rcv_group(flow, i, &pset_idx);
flow             1409 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_alloc(flow->req->qp, flow->req->setup_head, flow);
flow             1458 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[req->setup_head];
flow             1482 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (kern_get_phys_blocks(flow, qpriv->pages, ss, last)) {
flow             1483 drivers/infiniband/hw/hfi1/tid_rdma.c 		hfi1_wait_kmem(flow->req->qp);
flow             1488 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (kernel_tid_waiters(rcd, &rcd->rarr_queue, flow->req->qp))
flow             1496 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (kern_alloc_tids(flow))
flow             1502 drivers/infiniband/hw/hfi1/tid_rdma.c 	kern_program_rcvarray(flow);
flow             1512 drivers/infiniband/hw/hfi1/tid_rdma.c 	memset(&flow->flow_state, 0x0, sizeof(flow->flow_state));
flow             1513 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->idx = qpriv->flow_state.index;
flow             1514 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.generation = qpriv->flow_state.generation;
flow             1515 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.spsn = qpriv->flow_state.psn;
flow             1516 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.lpsn = flow->flow_state.spsn + flow->npkts - 1;
flow             1517 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.r_next_psn =
flow             1518 drivers/infiniband/hw/hfi1/tid_rdma.c 		full_flow_psn(flow, flow->flow_state.spsn);
flow             1519 drivers/infiniband/hw/hfi1/tid_rdma.c 	qpriv->flow_state.psn += flow->npkts;
flow             1521 drivers/infiniband/hw/hfi1/tid_rdma.c 	dequeue_tid_waiter(rcd, &rcd->rarr_queue, flow->req->qp);
flow             1530 drivers/infiniband/hw/hfi1/tid_rdma.c 	queue_qp_for_tid_wait(rcd, &rcd->rarr_queue, flow->req->qp);
flow             1535 drivers/infiniband/hw/hfi1/tid_rdma.c static void hfi1_tid_rdma_reset_flow(struct tid_rdma_flow *flow)
flow             1537 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->npagesets = 0;
flow             1549 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[req->clear_tail];
flow             1562 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0; i < flow->tnode_cnt; i++)
flow             1563 drivers/infiniband/hw/hfi1/tid_rdma.c 		kern_unprogram_rcv_group(flow, i);
flow             1565 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tnode_cnt = 0;
flow             1570 drivers/infiniband/hw/hfi1/tid_rdma.c 	dma_unmap_flow(flow);
flow             1572 drivers/infiniband/hw/hfi1/tid_rdma.c 	hfi1_tid_rdma_reset_flow(flow);
flow             1678 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             1684 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = &req->flows[tail];
flow             1685 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (cmp_psn(psn, flow->flow_state.ib_spsn) >= 0 &&
flow             1686 drivers/infiniband/hw/hfi1/tid_rdma.c 		    cmp_psn(psn, flow->flow_state.ib_lpsn) <= 0) {
flow             1689 drivers/infiniband/hw/hfi1/tid_rdma.c 			return flow;
flow             1701 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[req->flow_idx];
flow             1711 drivers/infiniband/hw/hfi1/tid_rdma.c 	*bth2 = mask_psn(flow->flow_state.ib_spsn + flow->pkt);
flow             1712 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_build_read_pkt(qp, req->flow_idx, flow);
flow             1715 drivers/infiniband/hw/hfi1/tid_rdma.c 	req_addr = &flow->tid_entry[flow->tid_idx];
flow             1716 drivers/infiniband/hw/hfi1/tid_rdma.c 	req_len = sizeof(*flow->tid_entry) *
flow             1717 drivers/infiniband/hw/hfi1/tid_rdma.c 			(flow->tidcnt - flow->tid_idx);
flow             1742 drivers/infiniband/hw/hfi1/tid_rdma.c 			   req->cur_seg * req->seg_len + flow->sent);
flow             1746 drivers/infiniband/hw/hfi1/tid_rdma.c 		cpu_to_be32((flow->flow_state.generation <<
flow             1748 drivers/infiniband/hw/hfi1/tid_rdma.c 			    ((flow->flow_state.spsn + flow->pkt) &
flow             1752 drivers/infiniband/hw/hfi1/tid_rdma.c 			    ((flow->idx & TID_RDMA_DESTQP_FLOW_MASK) <<
flow             1762 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent += *len;
flow             1787 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = NULL;
flow             1857 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->flow_idx];
flow             1858 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->pkt = 0;
flow             1859 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_idx = 0;
flow             1860 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent = 0;
flow             1863 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->flow_state.ib_spsn = req->s_next_psn;
flow             1864 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->flow_state.ib_lpsn =
flow             1865 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->flow_state.ib_spsn + flow->npkts - 1;
flow             1869 drivers/infiniband/hw/hfi1/tid_rdma.c 	req->s_next_psn += flow->npkts;
flow             1890 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             1896 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->setup_head];
flow             1900 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (pktlen > sizeof(flow->tid_entry))
flow             1902 drivers/infiniband/hw/hfi1/tid_rdma.c 	memcpy(flow->tid_entry, packet->ebuf, pktlen);
flow             1903 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tidcnt = pktlen / sizeof(*flow->tid_entry);
flow             1909 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->npkts = rvt_div_round_up_mtu(qp, len);
flow             1910 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0; i < flow->tidcnt; i++) {
flow             1912 drivers/infiniband/hw/hfi1/tid_rdma.c 						  flow->tid_entry[i]);
flow             1913 drivers/infiniband/hw/hfi1/tid_rdma.c 		tlen = EXP_TID_GET(flow->tid_entry[i], LEN);
flow             1930 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->pkt = 0;
flow             1931 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_idx = 0;
flow             1932 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_offset = 0;
flow             1933 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent = 0;
flow             1934 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_qpn = be32_to_cpu(ohdr->u.tid_rdma.r_req.tid_flow_qp);
flow             1935 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->idx = (flow->tid_qpn >> TID_RDMA_DESTQP_FLOW_SHIFT) &
flow             1938 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.generation = flow_psn >> HFI1_KDETH_BTH_SEQ_SHIFT;
flow             1939 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.spsn = flow_psn & HFI1_KDETH_BTH_SEQ_MASK;
flow             1940 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->length = len;
flow             1942 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.lpsn = flow->flow_state.spsn +
flow             1943 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->npkts - 1;
flow             1944 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.ib_spsn = psn;
flow             1945 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.ib_lpsn = flow->flow_state.ib_spsn + flow->npkts - 1;
flow             1947 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_rcv_read_req(qp, req->setup_head, flow);
flow             1959 drivers/infiniband/hw/hfi1/tid_rdma.c 	e->lpsn = psn + flow->npkts - 1;
flow             2344 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[req->clear_tail];
flow             2345 drivers/infiniband/hw/hfi1/tid_rdma.c 	u32 tidentry = flow->tid_entry[flow->tid_idx];
flow             2353 drivers/infiniband/hw/hfi1/tid_rdma.c 	*len = min_t(u32, qp->pmtu, tidlen - flow->tid_offset);
flow             2354 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent += *len;
flow             2355 drivers/infiniband/hw/hfi1/tid_rdma.c 	next_offset = flow->tid_offset + *len;
flow             2356 drivers/infiniband/hw/hfi1/tid_rdma.c 	last_pkt = (flow->sent >= flow->length);
flow             2358 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_entry_build_read_resp(qp, flow->tid_idx, tidentry);
flow             2359 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_build_read_resp(qp, req->clear_tail, flow);
flow             2373 drivers/infiniband/hw/hfi1/tid_rdma.c 	KDETH_SET(resp->kdeth0, OFFSET, flow->tid_offset / om);
flow             2379 drivers/infiniband/hw/hfi1/tid_rdma.c 	resp->verbs_psn = cpu_to_be32(mask_psn(flow->flow_state.ib_spsn +
flow             2380 drivers/infiniband/hw/hfi1/tid_rdma.c 					       flow->pkt));
flow             2383 drivers/infiniband/hw/hfi1/tid_rdma.c 	*bth1 = flow->tid_qpn;
flow             2384 drivers/infiniband/hw/hfi1/tid_rdma.c 	*bth2 = mask_psn(((flow->flow_state.spsn + flow->pkt++) &
flow             2386 drivers/infiniband/hw/hfi1/tid_rdma.c 			 (flow->flow_state.generation <<
flow             2395 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_offset = 0;
flow             2396 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_idx++;
flow             2398 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_offset = next_offset;
flow             2449 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             2467 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->clear_tail];
flow             2469 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (cmp_psn(ipsn, flow->flow_state.ib_lpsn)) {
flow             2470 drivers/infiniband/hw/hfi1/tid_rdma.c 		update_r_next_psn_fecn(packet, priv, rcd, flow, fecn);
flow             2472 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (cmp_psn(kpsn, flow->flow_state.r_next_psn))
flow             2474 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->flow_state.r_next_psn = mask_psn(kpsn + 1);
flow             2505 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.r_next_psn = mask_psn(kpsn + 1);
flow             2524 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_rcv_read_resp(qp, req->clear_tail, flow);
flow             2626 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             2631 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->clear_tail];
flow             2632 drivers/infiniband/hw/hfi1/tid_rdma.c 	hfi1_restart_rc(qp, flow->flow_state.ib_spsn, 0);
flow             2658 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             2749 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow = &req->flows[req->clear_tail];
flow             2752 drivers/infiniband/hw/hfi1/tid_rdma.c 							      flow);
flow             2755 drivers/infiniband/hw/hfi1/tid_rdma.c 					       flow->flow_state.r_next_psn);
flow             2778 drivers/infiniband/hw/hfi1/tid_rdma.c 				fpsn = full_flow_psn(flow,
flow             2779 drivers/infiniband/hw/hfi1/tid_rdma.c 						     flow->flow_state.lpsn);
flow             2786 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.r_next_psn =
flow             2792 drivers/infiniband/hw/hfi1/tid_rdma.c 							   flow->idx);
flow             2793 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.r_next_psn = last_psn;
flow             2858 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             2937 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->clear_tail];
flow             2943 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_handle_kdeth_eflags(qp, req->clear_tail, flow);
flow             2951 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.r_next_psn =
flow             2953 drivers/infiniband/hw/hfi1/tid_rdma.c 							flow->idx);
flow             2955 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.r_next_psn;
flow             2967 drivers/infiniband/hw/hfi1/tid_rdma.c 					       flow->flow_state.r_next_psn);
flow             2979 drivers/infiniband/hw/hfi1/tid_rdma.c 				if (psn == full_flow_psn(flow,
flow             2980 drivers/infiniband/hw/hfi1/tid_rdma.c 							 flow->flow_state.lpsn))
flow             2982 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.r_next_psn =
flow             2985 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.r_next_psn;
flow             3025 drivers/infiniband/hw/hfi1/tid_rdma.c 		qpriv->s_nak_psn = mask_psn(flow->flow_state.r_next_psn);
flow             3041 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             3049 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = find_flow_ib(req, *bth2, &fidx);
flow             3050 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (!flow) {
flow             3061 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = &req->flows[fidx];
flow             3066 drivers/infiniband/hw/hfi1/tid_rdma.c 		delta_pkts = delta_psn(*bth2, flow->flow_state.ib_spsn);
flow             3069 drivers/infiniband/hw/hfi1/tid_rdma.c 				       full_flow_psn(flow,
flow             3070 drivers/infiniband/hw/hfi1/tid_rdma.c 						     flow->flow_state.spsn));
flow             3072 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_restart_req(qp, fidx, flow);
flow             3073 drivers/infiniband/hw/hfi1/tid_rdma.c 	diff = delta_pkts + flow->resync_npkts;
flow             3075 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent = 0;
flow             3076 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->pkt = 0;
flow             3077 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_idx = 0;
flow             3078 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_offset = 0;
flow             3080 drivers/infiniband/hw/hfi1/tid_rdma.c 		for (tididx = 0; tididx < flow->tidcnt; tididx++) {
flow             3081 drivers/infiniband/hw/hfi1/tid_rdma.c 			u32 tidentry = flow->tid_entry[tididx], tidlen,
flow             3084 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->tid_offset = 0;
flow             3088 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->pkt += npkts;
flow             3089 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->sent += (npkts == tidnpkts ? tidlen :
flow             3091 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->tid_offset += npkts * qp->pmtu;
flow             3099 drivers/infiniband/hw/hfi1/tid_rdma.c 			     flow->sent, 0);
flow             3107 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->pkt -= flow->resync_npkts;
flow             3110 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (flow->tid_offset ==
flow             3111 drivers/infiniband/hw/hfi1/tid_rdma.c 	    EXP_TID_GET(flow->tid_entry[tididx], LEN) * PAGE_SIZE) {
flow             3113 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_offset = 0;
flow             3115 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_idx = tididx;
flow             3122 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_restart_req(qp, fidx, flow);
flow             3830 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = NULL;
flow             3839 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->flow_idx];
flow             3860 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_build_write_resp(qp, req->flow_idx, flow);
flow             3867 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_build_write_resp(qp, req->flow_idx, flow);
flow             3875 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.resp_ib_psn = bth2;
flow             3876 drivers/infiniband/hw/hfi1/tid_rdma.c 	resp_addr = (void *)flow->tid_entry;
flow             3877 drivers/infiniband/hw/hfi1/tid_rdma.c 	resp_len = sizeof(*flow->tid_entry) * flow->tidcnt;
flow             3907 drivers/infiniband/hw/hfi1/tid_rdma.c 		cpu_to_be32((flow->flow_state.generation <<
flow             3909 drivers/infiniband/hw/hfi1/tid_rdma.c 			    (flow->flow_state.spsn &
flow             3913 drivers/infiniband/hw/hfi1/tid_rdma.c 			    ((flow->idx & TID_RDMA_DESTQP_FLOW_MASK) <<
flow             4033 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             4093 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->setup_head];
flow             4094 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->pkt = 0;
flow             4095 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_idx = 0;
flow             4096 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_offset = 0;
flow             4097 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent = 0;
flow             4098 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->resync_npkts = 0;
flow             4099 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tid_qpn = be32_to_cpu(ohdr->u.tid_rdma.w_rsp.tid_flow_qp);
flow             4100 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->idx = (flow->tid_qpn >> TID_RDMA_DESTQP_FLOW_SHIFT) &
flow             4103 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.generation = flow_psn >> HFI1_KDETH_BTH_SEQ_SHIFT;
flow             4104 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.spsn = flow_psn & HFI1_KDETH_BTH_SEQ_MASK;
flow             4105 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.resp_ib_psn = psn;
flow             4106 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->length = min_t(u32, req->seg_len,
flow             4109 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->npkts = rvt_div_round_up_mtu(qp, flow->length);
flow             4110 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.lpsn = flow->flow_state.spsn +
flow             4111 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->npkts - 1;
flow             4114 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (pktlen > sizeof(flow->tid_entry)) {
flow             4118 drivers/infiniband/hw/hfi1/tid_rdma.c 	memcpy(flow->tid_entry, packet->ebuf, pktlen);
flow             4119 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->tidcnt = pktlen / sizeof(*flow->tid_entry);
flow             4120 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_rcv_write_resp(qp, req->setup_head, flow);
flow             4128 drivers/infiniband/hw/hfi1/tid_rdma.c 	for (i = 0; i < flow->tidcnt; i++) {
flow             4130 drivers/infiniband/hw/hfi1/tid_rdma.c 			qp, i, flow->tid_entry[i]);
flow             4131 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (!EXP_TID_GET(flow->tid_entry[i], LEN)) {
flow             4135 drivers/infiniband/hw/hfi1/tid_rdma.c 		tidlen += EXP_TID_GET(flow->tid_entry[i], LEN);
flow             4137 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (tidlen * PAGE_SIZE < flow->length) {
flow             4197 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[req->clear_tail];
flow             4201 drivers/infiniband/hw/hfi1/tid_rdma.c 	u32 tidentry = flow->tid_entry[flow->tid_idx];
flow             4212 drivers/infiniband/hw/hfi1/tid_rdma.c 	*len = min_t(u32, qp->pmtu, tidlen - flow->tid_offset);
flow             4213 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->sent += *len;
flow             4214 drivers/infiniband/hw/hfi1/tid_rdma.c 	next_offset = flow->tid_offset + *len;
flow             4215 drivers/infiniband/hw/hfi1/tid_rdma.c 	last_pkt = (flow->tid_idx == (flow->tidcnt - 1) &&
flow             4216 drivers/infiniband/hw/hfi1/tid_rdma.c 		    next_offset >= tidlen) || (flow->sent >= flow->length);
flow             4217 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_entry_build_write_data(qp, flow->tid_idx, tidentry);
flow             4218 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_build_write_data(qp, req->clear_tail, flow);
flow             4228 drivers/infiniband/hw/hfi1/tid_rdma.c 	KDETH_SET(wd->kdeth0, OFFSET, flow->tid_offset / om);
flow             4233 drivers/infiniband/hw/hfi1/tid_rdma.c 	*bth1 = flow->tid_qpn;
flow             4234 drivers/infiniband/hw/hfi1/tid_rdma.c 	*bth2 = mask_psn(((flow->flow_state.spsn + flow->pkt++) &
flow             4236 drivers/infiniband/hw/hfi1/tid_rdma.c 			 (flow->flow_state.generation <<
flow             4240 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (flow->flow_state.lpsn + 1 +
flow             4248 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_offset = 0;
flow             4249 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_idx++;
flow             4251 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->tid_offset = next_offset;
flow             4264 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             4282 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->clear_tail];
flow             4283 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (cmp_psn(psn, full_flow_psn(flow, flow->flow_state.lpsn))) {
flow             4284 drivers/infiniband/hw/hfi1/tid_rdma.c 		update_r_next_psn_fecn(packet, priv, rcd, flow, fecn);
flow             4286 drivers/infiniband/hw/hfi1/tid_rdma.c 		if (cmp_psn(psn, flow->flow_state.r_next_psn))
flow             4289 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->flow_state.r_next_psn = mask_psn(psn + 1);
flow             4311 drivers/infiniband/hw/hfi1/tid_rdma.c 				full_flow_psn(flow, flow->flow_state.spsn)) *
flow             4333 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow->flow_state.r_next_psn = mask_psn(psn + 1);
flow             4336 drivers/infiniband/hw/hfi1/tid_rdma.c 	rcd->flows[flow->idx].psn = psn & HFI1_KDETH_BTH_SEQ_MASK;
flow             4392 drivers/infiniband/hw/hfi1/tid_rdma.c 	priv->r_next_psn_kdeth = flow->flow_state.r_next_psn;
flow             4401 drivers/infiniband/hw/hfi1/tid_rdma.c 		priv->s_nak_psn = flow->flow_state.r_next_psn;
flow             4420 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[iflow];
flow             4441 drivers/infiniband/hw/hfi1/tid_rdma.c 		*bth2 = full_flow_psn(flow, flow->flow_state.lpsn);
flow             4447 drivers/infiniband/hw/hfi1/tid_rdma.c 			    ((flow->idx & TID_RDMA_DESTQP_FLOW_MASK) <<
flow             4453 drivers/infiniband/hw/hfi1/tid_rdma.c 		cpu_to_be32(flow->flow_state.resp_ib_psn);
flow             4491 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             4532 drivers/infiniband/hw/hfi1/tid_rdma.c 	flow = &req->flows[req->acked_tail];
flow             4533 drivers/infiniband/hw/hfi1/tid_rdma.c 	trace_hfi1_tid_flow_rcv_tid_ack(qp, req->acked_tail, flow);
flow             4536 drivers/infiniband/hw/hfi1/tid_rdma.c 	if (cmp_psn(psn, full_flow_psn(flow, flow->flow_state.spsn)) < 0 ||
flow             4537 drivers/infiniband/hw/hfi1/tid_rdma.c 	    cmp_psn(req_psn, flow->flow_state.resp_ib_psn) < 0)
flow             4541 drivers/infiniband/hw/hfi1/tid_rdma.c 		       full_flow_psn(flow, flow->flow_state.lpsn)) >= 0 &&
flow             4546 drivers/infiniband/hw/hfi1/tid_rdma.c 		req->r_last_acked = flow->flow_state.resp_ib_psn;
flow             4562 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = &req->flows[req->acked_tail];
flow             4563 drivers/infiniband/hw/hfi1/tid_rdma.c 		trace_hfi1_tid_flow_rcv_tid_ack(qp, req->acked_tail, flow);
flow             4624 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow = &req->flows[req->acked_tail];
flow             4634 drivers/infiniband/hw/hfi1/tid_rdma.c 			fpsn = full_flow_psn(flow, flow->flow_state.spsn);
flow             4642 drivers/infiniband/hw/hfi1/tid_rdma.c 			if (flow->flow_state.generation !=
flow             4645 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow->resync_npkts +=
flow             4662 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow = &rptr->flows[fidx];
flow             4663 drivers/infiniband/hw/hfi1/tid_rdma.c 					gen = flow->flow_state.generation;
flow             4665 drivers/infiniband/hw/hfi1/tid_rdma.c 						    flow->flow_state.spsn !=
flow             4668 drivers/infiniband/hw/hfi1/tid_rdma.c 					lpsn = flow->flow_state.lpsn;
flow             4669 drivers/infiniband/hw/hfi1/tid_rdma.c 					lpsn = full_flow_psn(flow, lpsn);
flow             4670 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->npkts =
flow             4674 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.generation =
flow             4676 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.spsn = spsn;
flow             4677 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.lpsn =
flow             4678 drivers/infiniband/hw/hfi1/tid_rdma.c 						flow->flow_state.spsn +
flow             4679 drivers/infiniband/hw/hfi1/tid_rdma.c 						flow->npkts - 1;
flow             4680 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->pkt = 0;
flow             4681 drivers/infiniband/hw/hfi1/tid_rdma.c 					spsn += flow->npkts;
flow             4682 drivers/infiniband/hw/hfi1/tid_rdma.c 					resync_psn += flow->npkts;
flow             4685 drivers/infiniband/hw/hfi1/tid_rdma.c 									flow);
flow             4710 drivers/infiniband/hw/hfi1/tid_rdma.c 			flow = &req->flows[req->acked_tail];
flow             4711 drivers/infiniband/hw/hfi1/tid_rdma.c 			flpsn = full_flow_psn(flow, flow->flow_state.lpsn);
flow             4715 drivers/infiniband/hw/hfi1/tid_rdma.c 							flow);
flow             4837 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow = &req->flows[fidx];
flow             4847 drivers/infiniband/hw/hfi1/tid_rdma.c 	generation = kern_flow_generation_next(flow->flow_state.generation);
flow             4865 drivers/infiniband/hw/hfi1/tid_rdma.c 	struct tid_rdma_flow *flow;
flow             4934 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow = &req->flows[flow_idx];
flow             4935 drivers/infiniband/hw/hfi1/tid_rdma.c 				lpsn = full_flow_psn(flow,
flow             4936 drivers/infiniband/hw/hfi1/tid_rdma.c 						     flow->flow_state.lpsn);
flow             4937 drivers/infiniband/hw/hfi1/tid_rdma.c 				next = flow->flow_state.r_next_psn;
flow             4938 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->npkts = delta_psn(lpsn, next - 1);
flow             4939 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.generation = fs->generation;
flow             4940 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.spsn = fs->psn;
flow             4941 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.lpsn =
flow             4942 drivers/infiniband/hw/hfi1/tid_rdma.c 					flow->flow_state.spsn + flow->npkts - 1;
flow             4943 drivers/infiniband/hw/hfi1/tid_rdma.c 				flow->flow_state.r_next_psn =
flow             4944 drivers/infiniband/hw/hfi1/tid_rdma.c 					full_flow_psn(flow,
flow             4945 drivers/infiniband/hw/hfi1/tid_rdma.c 						      flow->flow_state.spsn);
flow             4946 drivers/infiniband/hw/hfi1/tid_rdma.c 				fs->psn += flow->npkts;
flow             4948 drivers/infiniband/hw/hfi1/tid_rdma.c 							       flow);
flow             5184 drivers/infiniband/hw/hfi1/tid_rdma.c 	u16 flow;
flow             5248 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = CIRC_PREV(req->acked_tail, MAX_FLOWS);
flow             5276 drivers/infiniband/hw/hfi1/tid_rdma.c 		      full_flow_psn(&req->flows[flow],
flow             5277 drivers/infiniband/hw/hfi1/tid_rdma.c 				    req->flows[flow].flow_state.lpsn)) > 0))) {
flow             5287 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow = req->acked_tail;
flow             5295 drivers/infiniband/hw/hfi1/tid_rdma.c 	hwords += hfi1_build_tid_rdma_write_ack(qp, e, ohdr, flow, &bth1,
flow             5502 drivers/infiniband/hw/hfi1/tid_rdma.c 				   struct tid_rdma_flow *flow,
flow             5513 drivers/infiniband/hw/hfi1/tid_rdma.c 		flow->flow_state.r_next_psn =
flow             5514 drivers/infiniband/hw/hfi1/tid_rdma.c 			read_r_next_psn(dd, rcd->ctxt, flow->idx);
flow              416 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
flow              418 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, flow, index, mtu8k, v1, vaddr),
flow              450 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
flow              452 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, flow, index, mtu8k, v1, vaddr)
flow              491 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              492 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow),
flow              517 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->idx = flow->idx;
flow              518 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->resp_ib_psn = flow->flow_state.resp_ib_psn;
flow              519 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->generation = flow->flow_state.generation;
flow              520 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->fspsn = full_flow_psn(flow,
flow              521 drivers/infiniband/hw/hfi1/trace_tid.h 					       flow->flow_state.spsn);
flow              522 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->flpsn = full_flow_psn(flow,
flow              523 drivers/infiniband/hw/hfi1/trace_tid.h 					       flow->flow_state.lpsn);
flow              524 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->r_next_psn = flow->flow_state.r_next_psn;
flow              525 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->ib_spsn = flow->flow_state.ib_spsn;
flow              526 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->ib_lpsn = flow->flow_state.ib_lpsn;
flow              527 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->npagesets = flow->npagesets;
flow              528 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->tnode_cnt = flow->tnode_cnt;
flow              529 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->tidcnt = flow->tidcnt;
flow              530 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->tid_idx = flow->tid_idx;
flow              531 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->tid_offset =  flow->tid_offset;
flow              532 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->length = flow->length;
flow              533 drivers/infiniband/hw/hfi1/trace_tid.h 		__entry->sent = flow->sent;
flow              560 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              561 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              566 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              567 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              572 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              573 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              578 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              579 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              584 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              585 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              590 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              591 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              596 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              597 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              602 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              603 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              608 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              609 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              614 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              615 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              620 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              621 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              626 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              627 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              632 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
flow              633 drivers/infiniband/hw/hfi1/trace_tid.h 	TP_ARGS(qp, index, flow)
flow              396 drivers/infiniband/hw/hfi1/verbs.h static inline u32 full_flow_psn(struct tid_rdma_flow *flow, u32 psn)
flow              398 drivers/infiniband/hw/hfi1/verbs.h 	return __full_flow_psn(&flow->flow_state, psn);
flow             2984 drivers/infiniband/hw/mlx4/main.c 	struct ib_flow_attr *flow = NULL;
flow             2990 drivers/infiniband/hw/mlx4/main.c 		flow = kzalloc(flow_size, GFP_KERNEL);
flow             2991 drivers/infiniband/hw/mlx4/main.c 		if (!flow)
flow             2993 drivers/infiniband/hw/mlx4/main.c 		flow->port = mqp->port;
flow             2994 drivers/infiniband/hw/mlx4/main.c 		flow->num_of_specs = 1;
flow             2995 drivers/infiniband/hw/mlx4/main.c 		flow->size = flow_size;
flow             2996 drivers/infiniband/hw/mlx4/main.c 		ib_spec = (struct ib_flow_spec_ib *)(flow + 1);
flow             3002 drivers/infiniband/hw/mlx4/main.c 		err = __mlx4_ib_create_flow(&mqp->ibqp, flow,
flow             3009 drivers/infiniband/hw/mlx4/main.c 	kfree(flow);
flow              721 drivers/infiniband/hw/qib/qib_common.h 		__u32 flow:5;
flow             6352 drivers/infiniband/hw/qib/qib_iba7322.c 		int flow;
flow             6354 drivers/infiniband/hw/qib/qib_iba7322.c 		for (flow = 0; flow < NUM_TIDFLOWS_CTXT; flow++)
flow             6355 drivers/infiniband/hw/qib/qib_iba7322.c 			qib_write_ureg(dd, ur_rcvflowtable+flow, val, i);
flow              132 drivers/infiniband/hw/usnic/usnic_debugfs.c 			"%u", qp_flow->flow->flow_id);
flow              203 drivers/infiniband/hw/usnic/usnic_fwd.c 	struct usnic_fwd_flow *flow;
flow              213 drivers/infiniband/hw/usnic/usnic_fwd.c 	flow = kzalloc(sizeof(*flow), GFP_ATOMIC);
flow              214 drivers/infiniband/hw/usnic/usnic_fwd.c 	if (!flow)
flow              255 drivers/infiniband/hw/usnic/usnic_fwd.c 	flow->flow_id = (uint32_t) a0;
flow              256 drivers/infiniband/hw/usnic/usnic_fwd.c 	flow->vnic_idx = uaction->vnic_idx;
flow              257 drivers/infiniband/hw/usnic/usnic_fwd.c 	flow->ufdev = ufdev;
flow              263 drivers/infiniband/hw/usnic/usnic_fwd.c 		return flow;
flow              265 drivers/infiniband/hw/usnic/usnic_fwd.c 	kfree(flow);
flow              269 drivers/infiniband/hw/usnic/usnic_fwd.c int usnic_fwd_dealloc_flow(struct usnic_fwd_flow *flow)
flow              274 drivers/infiniband/hw/usnic/usnic_fwd.c 	a0 = flow->flow_id;
flow              276 drivers/infiniband/hw/usnic/usnic_fwd.c 	status = usnic_fwd_devcmd(flow->ufdev, flow->vnic_idx,
flow              281 drivers/infiniband/hw/usnic/usnic_fwd.c 					flow->flow_id, flow->vnic_idx,
flow              282 drivers/infiniband/hw/usnic/usnic_fwd.c 					flow->ufdev->name, status);
flow              285 drivers/infiniband/hw/usnic/usnic_fwd.c 					flow->ufdev->name, flow->vnic_idx,
flow              286 drivers/infiniband/hw/usnic/usnic_fwd.c 					flow->flow_id, status);
flow              296 drivers/infiniband/hw/usnic/usnic_fwd.c 				flow->ufdev->name, flow->vnic_idx,
flow              297 drivers/infiniband/hw/usnic/usnic_fwd.c 				flow->flow_id);
flow              300 drivers/infiniband/hw/usnic/usnic_fwd.c 	kfree(flow);
flow               93 drivers/infiniband/hw/usnic/usnic_fwd.h int usnic_fwd_dealloc_flow(struct usnic_fwd_flow *flow);
flow               90 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 					default_flow->flow->flow_id);
flow              212 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	struct usnic_fwd_flow *flow;
flow              229 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	flow = usnic_fwd_alloc_flow(qp_grp->ufdev, &filter, &uaction);
flow              230 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	if (IS_ERR_OR_NULL(flow)) {
flow              231 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 		err = flow ? PTR_ERR(flow) : -EFAULT;
flow              241 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	qp_flow->flow = flow;
flow              248 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	usnic_fwd_dealloc_flow(flow);
flow              256 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	usnic_fwd_dealloc_flow(qp_flow->flow);
flow              272 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	struct usnic_fwd_flow *flow;
flow              302 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	flow = usnic_fwd_alloc_flow(qp_grp->ufdev, &filter, &uaction);
flow              303 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	if (IS_ERR_OR_NULL(flow)) {
flow              304 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 		err = flow ? PTR_ERR(flow) : -EFAULT;
flow              314 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	qp_flow->flow = flow;
flow              321 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	usnic_fwd_dealloc_flow(flow);
flow              329 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c 	usnic_fwd_dealloc_flow(qp_flow->flow);
flow               69 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h 	struct usnic_fwd_flow		*flow;
flow             3299 drivers/net/bonding/bond_main.c 	struct flow_keys flow;
flow             3307 drivers/net/bonding/bond_main.c 	    !bond_flow_dissect(bond, skb, &flow))
flow             3314 drivers/net/bonding/bond_main.c 		hash = (__force u32)flow.ports.ports;
flow             3315 drivers/net/bonding/bond_main.c 	hash ^= (__force u32)flow_get_u32_dst(&flow) ^
flow             3316 drivers/net/bonding/bond_main.c 		(__force u32)flow_get_u32_src(&flow);
flow              341 drivers/net/dsa/bcm_sf2_cfp.c 	struct ethtool_rx_flow_rule *flow;
flow              374 drivers/net/dsa/bcm_sf2_cfp.c 	flow = ethtool_rx_flow_rule_create(&input);
flow              375 drivers/net/dsa/bcm_sf2_cfp.c 	if (IS_ERR(flow))
flow              376 drivers/net/dsa/bcm_sf2_cfp.c 		return PTR_ERR(flow);
flow              378 drivers/net/dsa/bcm_sf2_cfp.c 	flow_rule_match_ipv4_addrs(flow->rule, &ipv4);
flow              379 drivers/net/dsa/bcm_sf2_cfp.c 	flow_rule_match_ports(flow->rule, &ports);
flow              380 drivers/net/dsa/bcm_sf2_cfp.c 	flow_rule_match_ip(flow->rule, &ip);
flow              465 drivers/net/dsa/bcm_sf2_cfp.c 	ethtool_rx_flow_rule_destroy(flow);
flow              605 drivers/net/dsa/bcm_sf2_cfp.c 	struct ethtool_rx_flow_rule *flow;
flow              666 drivers/net/dsa/bcm_sf2_cfp.c 	flow = ethtool_rx_flow_rule_create(&input);
flow              667 drivers/net/dsa/bcm_sf2_cfp.c 	if (IS_ERR(flow)) {
flow              668 drivers/net/dsa/bcm_sf2_cfp.c 		ret = PTR_ERR(flow);
flow              671 drivers/net/dsa/bcm_sf2_cfp.c 	flow_rule_match_ipv6_addrs(flow->rule, &ipv6);
flow              672 drivers/net/dsa/bcm_sf2_cfp.c 	flow_rule_match_ports(flow->rule, &ports);
flow              814 drivers/net/dsa/bcm_sf2_cfp.c 	ethtool_rx_flow_rule_destroy(flow);
flow              995 drivers/net/dsa/bcm_sf2_cfp.c static void bcm_sf2_invert_masks(struct ethtool_rx_flow_spec *flow)
flow              999 drivers/net/dsa/bcm_sf2_cfp.c 	for (i = 0; i < sizeof(flow->m_u); i++)
flow             1000 drivers/net/dsa/bcm_sf2_cfp.c 		flow->m_u.hdata[i] ^= 0xff;
flow             1002 drivers/net/dsa/bcm_sf2_cfp.c 	flow->m_ext.vlan_etype ^= cpu_to_be16(~0);
flow             1003 drivers/net/dsa/bcm_sf2_cfp.c 	flow->m_ext.vlan_tci ^= cpu_to_be16(~0);
flow             1004 drivers/net/dsa/bcm_sf2_cfp.c 	flow->m_ext.data[0] ^= cpu_to_be32(~0);
flow             1005 drivers/net/dsa/bcm_sf2_cfp.c 	flow->m_ext.data[1] ^= cpu_to_be32(~0);
flow              478 drivers/net/ethernet/agere/et131x.c 	u8 flow;		/* flow control validated by the far-end */
flow              893 drivers/net/ethernet/agere/et131x.c 	if (adapter->flow == FLOW_RXONLY || adapter->flow == FLOW_BOTH)
flow             1149 drivers/net/ethernet/agere/et131x.c 	if (adapter->flow == FLOW_NONE)
flow             1318 drivers/net/ethernet/agere/et131x.c 		adapter->flow = FLOW_NONE;
flow             1326 drivers/net/ethernet/agere/et131x.c 			adapter->flow = adapter->wanted_flow;
flow             1329 drivers/net/ethernet/agere/et131x.c 				adapter->flow = FLOW_BOTH;
flow             1331 drivers/net/ethernet/agere/et131x.c 				adapter->flow = FLOW_NONE;
flow             1333 drivers/net/ethernet/agere/et131x.c 			adapter->flow = FLOW_NONE;
flow             1336 drivers/net/ethernet/agere/et131x.c 				adapter->flow = FLOW_RXONLY;
flow             1338 drivers/net/ethernet/agere/et131x.c 				adapter->flow = FLOW_NONE;
flow             1708 drivers/net/ethernet/agere/et131x.c 	if (adapter->flow == FLOW_TXONLY || adapter->flow == FLOW_BOTH)
flow             3383 drivers/net/ethernet/agere/et131x.c 	if (adapter->flow == FLOW_TXONLY || adapter->flow == FLOW_BOTH)
flow             3446 drivers/net/ethernet/agere/et131x.c 		if (adapter->flow == FLOW_TXONLY || adapter->flow == FLOW_BOTH) {
flow             1304 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 		const char *flow;
flow             1323 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 					flow = "ON - receive & transmit";
flow             1325 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 					flow = "ON - receive";
flow             1327 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 				flow = "ON - transmit";
flow             1330 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 			flow = "none";
flow             1333 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 			    cur_data.line_speed, duplex, flow);
flow              174 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			      struct bnxt_tc_flow *flow)
flow              191 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_key.ether_type = match.key->n_proto;
flow              192 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_mask.ether_type = match.mask->n_proto;
flow              196 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			flow->l4_key.ip_proto = match.key->ip_proto;
flow              197 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			flow->l4_mask.ip_proto = match.mask->ip_proto;
flow              205 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_ETH_ADDRS;
flow              206 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		ether_addr_copy(flow->l2_key.dmac, match.key->dst);
flow              207 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		ether_addr_copy(flow->l2_mask.dmac, match.mask->dst);
flow              208 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		ether_addr_copy(flow->l2_key.smac, match.key->src);
flow              209 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		ether_addr_copy(flow->l2_mask.smac, match.mask->src);
flow              216 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_key.inner_vlan_tci =
flow              219 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_mask.inner_vlan_tci =
flow              222 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_key.inner_vlan_tpid = htons(ETH_P_8021Q);
flow              223 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_mask.inner_vlan_tpid = htons(0xffff);
flow              224 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l2_key.num_vlans = 1;
flow              231 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_IPV4_ADDRS;
flow              232 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_key.ipv4.daddr.s_addr = match.key->dst;
flow              233 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_mask.ipv4.daddr.s_addr = match.mask->dst;
flow              234 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_key.ipv4.saddr.s_addr = match.key->src;
flow              235 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_mask.ipv4.saddr.s_addr = match.mask->src;
flow              240 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_IPV6_ADDRS;
flow              241 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_key.ipv6.daddr = match.key->dst;
flow              242 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_mask.ipv6.daddr = match.mask->dst;
flow              243 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_key.ipv6.saddr = match.key->src;
flow              244 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l3_mask.ipv6.saddr = match.mask->src;
flow              251 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_PORTS;
flow              252 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_key.ports.dport = match.key->dst;
flow              253 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_mask.ports.dport = match.mask->dst;
flow              254 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_key.ports.sport = match.key->src;
flow              255 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_mask.ports.sport = match.mask->src;
flow              262 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_ICMP;
flow              263 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_key.icmp.type = match.key->type;
flow              264 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_key.icmp.code = match.key->code;
flow              265 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_mask.icmp.type = match.mask->type;
flow              266 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->l4_mask.icmp.code = match.mask->code;
flow              273 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_TUNL_IPV4_ADDRS;
flow              274 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_key.u.ipv4.dst = match.key->dst;
flow              275 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_mask.u.ipv4.dst = match.mask->dst;
flow              276 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_key.u.ipv4.src = match.key->src;
flow              277 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_mask.u.ipv4.src = match.mask->src;
flow              287 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_TUNL_ID;
flow              288 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_key.tun_id = key32_to_tunnel_id(match.key->keyid);
flow              289 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_mask.tun_id = key32_to_tunnel_id(match.mask->keyid);
flow              296 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->flags |= BNXT_TC_FLOW_FLAGS_TUNL_PORTS;
flow              297 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_key.tp_dst = match.key->dst;
flow              298 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_mask.tp_dst = match.mask->dst;
flow              299 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_key.tp_src = match.key->src;
flow              300 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->tun_mask.tp_src = match.mask->src;
flow              303 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	return bnxt_tc_parse_actions(bp, &flow->actions, &rule->action);
flow              386 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static int bnxt_hwrm_cfa_flow_alloc(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow              391 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct bnxt_tc_actions *actions = &flow->actions;
flow              392 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct bnxt_tc_l3_key *l3_mask = &flow->l3_mask;
flow              393 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct bnxt_tc_l3_key *l3_key = &flow->l3_key;
flow              401 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	req.src_fid = cpu_to_le16(flow->src_fid);
flow              411 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	req.ethertype = flow->l2_key.ether_type;
flow              412 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	req.ip_proto = flow->l4_key.ip_proto;
flow              414 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_ETH_ADDRS) {
flow              415 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		memcpy(req.dmac, flow->l2_key.dmac, ETH_ALEN);
flow              416 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		memcpy(req.smac, flow->l2_key.smac, ETH_ALEN);
flow              419 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->l2_key.num_vlans > 0) {
flow              425 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.outer_vlan_tci = flow->l2_key.inner_vlan_tci;
flow              430 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    is_wildcard(&flow->l4_mask, sizeof(flow->l4_mask))) {
flow              433 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow_flags |= flow->l2_key.ether_type == htons(ETH_P_IP) ?
flow              437 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		if (flow->flags & BNXT_TC_FLOW_FLAGS_IPV4_ADDRS) {
flow              444 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		} else if (flow->flags & BNXT_TC_FLOW_FLAGS_IPV6_ADDRS) {
flow              456 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_PORTS) {
flow              457 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_src_port = flow->l4_key.ports.sport;
flow              458 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_src_port_mask = flow->l4_mask.ports.sport;
flow              459 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_dst_port = flow->l4_key.ports.dport;
flow              460 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_dst_port_mask = flow->l4_mask.ports.dport;
flow              461 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	} else if (flow->flags & BNXT_TC_FLOW_FLAGS_ICMP) {
flow              463 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_src_port = htons(flow->l4_key.icmp.type);
flow              464 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_src_port_mask = htons(flow->l4_mask.icmp.type);
flow              465 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_dst_port = htons(flow->l4_key.icmp.code);
flow              466 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		req.l4_dst_port_mask = htons(flow->l4_mask.icmp.code);
flow              520 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 				       struct bnxt_tc_flow *flow,
flow              527 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct ip_tunnel_key *tun_key = &flow->tun_key;
flow              539 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_TUNL_ID) {
flow              545 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_TUNL_ETH_ADDRS) {
flow              557 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_TUNL_IPV4_ADDRS) {
flow              566 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->flags & BNXT_TC_FLOW_FLAGS_TUNL_PORTS) {
flow              727 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c bnxt_tc_get_ref_flow_handle(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow              737 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 				      &flow->l2_key);
flow              767 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static bool bnxt_tc_can_offload(struct bnxt *bp, struct bnxt_tc_flow *flow)
flow              770 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if ((flow->flags & BNXT_TC_FLOW_FLAGS_PORTS) &&
flow              771 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    (flow->l4_key.ip_proto != IPPROTO_TCP &&
flow              772 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	     flow->l4_key.ip_proto != IPPROTO_UDP)) {
flow              774 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			    flow->l4_key.ip_proto);
flow              779 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (bits_set(&flow->l2_key.smac, sizeof(flow->l2_key.smac)) &&
flow              780 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    !is_exactmatch(flow->l2_mask.smac, sizeof(flow->l2_mask.smac))) {
flow              784 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (bits_set(&flow->l2_key.dmac, sizeof(flow->l2_key.dmac)) &&
flow              785 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    !is_exactmatch(&flow->l2_mask.dmac, sizeof(flow->l2_mask.dmac))) {
flow              791 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (bits_set(&flow->l2_key.inner_vlan_tci,
flow              792 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		     sizeof(flow->l2_key.inner_vlan_tci)) &&
flow              793 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    !is_vlan_tci_allowed(flow->l2_mask.inner_vlan_tci,
flow              794 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 				 flow->l2_key.inner_vlan_tci)) {
flow              798 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (bits_set(&flow->l2_key.inner_vlan_tpid,
flow              799 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		     sizeof(flow->l2_key.inner_vlan_tpid)) &&
flow              800 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	    !is_exactmatch(&flow->l2_mask.inner_vlan_tpid,
flow              801 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			   sizeof(flow->l2_mask.inner_vlan_tpid))) {
flow              807 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (!is_exactmatch(&flow->l2_mask.ether_type,
flow              808 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			   sizeof(flow->l2_mask.ether_type))) {
flow              876 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 					struct bnxt_tc_flow *flow,
flow              957 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct flowi4 flow = { {0} };
flow              963 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow.flowi4_proto = IPPROTO_UDP;
flow              964 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow.fl4_dport = tun_key->tp_dst;
flow              965 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow.daddr = tun_key->u.ipv4.dst;
flow              967 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rt = ip_route_output_key(dev_net(real_dst_dev), &flow);
flow              969 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		netdev_info(bp->dev, "no route to %pI4b", &flow.daddr);
flow              996 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			    netdev_name(dst_dev), &flow.daddr,
flow             1002 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	nbr = dst_neigh_lookup(&rt->dst, &flow.daddr);
flow             1005 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			    &flow.daddr);
flow             1010 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	tun_key->u.ipv4.src = flow.saddr;
flow             1026 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static int bnxt_tc_get_decap_handle(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow             1030 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct ip_tunnel_key *decap_key = &flow->tun_key;
flow             1060 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	tun_key.u.ipv4.dst = flow->tun_key.u.ipv4.src;
flow             1061 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	tun_key.tp_dst = flow->tun_key.tp_dst;
flow             1074 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow->flags |= BNXT_TC_FLOW_FLAGS_TUNL_ETH_ADDRS;
flow             1081 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = bnxt_tc_get_ref_decap_handle(bp, flow, decap_l2_info, flow_node,
flow             1087 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = hwrm_cfa_decap_filter_alloc(bp, flow, decap_l2_info,
flow             1124 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static int bnxt_tc_get_encap_handle(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow             1128 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct ip_tunnel_key *encap_key = &flow->actions.tun_encap_key;
flow             1169 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 				      struct bnxt_tc_flow *flow,
flow             1172 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)
flow             1174 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	else if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP)
flow             1179 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 				     struct bnxt_tc_flow *flow,
flow             1183 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)
flow             1184 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		return bnxt_tc_get_decap_handle(bp, flow, flow_node,
flow             1186 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	else if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_ENCAP)
flow             1187 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		return bnxt_tc_get_encap_handle(bp, flow, flow_node,
flow             1204 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	bnxt_tc_put_tunnel_handle(bp, &flow_node->flow, flow_node);
flow             1221 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static void bnxt_tc_set_flow_dir(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow             1224 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow->l2_key.dir = (bp->pf.fw_fid == src_fid) ? BNXT_DIR_RX : BNXT_DIR_TX;
flow             1227 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c static void bnxt_tc_set_src_fid(struct bnxt *bp, struct bnxt_tc_flow *flow,
flow             1230 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (flow->actions.flags & BNXT_TC_ACTION_FLAG_TUNNEL_DECAP)
flow             1231 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->src_fid = bp->pf.fw_fid;
flow             1233 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		flow->src_fid = src_fid;
flow             1254 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct bnxt_tc_flow *flow;
flow             1266 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow = &new_node->flow;
flow             1268 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = bnxt_tc_parse_flow(bp, tc_flow_cmd, flow);
flow             1272 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	bnxt_tc_set_src_fid(bp, flow, src_fid);
flow             1273 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	bnxt_tc_set_flow_dir(bp, flow, flow->src_fid);
flow             1275 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	if (!bnxt_tc_can_offload(bp, flow)) {
flow             1291 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = bnxt_tc_get_ref_flow_handle(bp, flow, new_node, &ref_flow_handle);
flow             1296 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = bnxt_tc_get_tunnel_handle(bp, flow, new_node, &tunnel_handle);
flow             1301 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	rc = bnxt_hwrm_cfa_flow_alloc(bp, flow, ref_flow_handle,
flow             1306 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow->lastused = jiffies;
flow             1307 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	spin_lock_init(&flow->stats_lock);
flow             1320 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	bnxt_tc_put_tunnel_handle(bp, flow, new_node);
flow             1354 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	struct bnxt_tc_flow *flow;
flow             1363 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	flow = &flow_node->flow;
flow             1364 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	curr_stats = &flow->stats;
flow             1365 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	prev_stats = &flow->prev_stats;
flow             1367 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	spin_lock(&flow->stats_lock);
flow             1371 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	lastused = flow->lastused;
flow             1372 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 	spin_unlock(&flow->stats_lock);
flow             1393 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		if (flow_node->flow.l2_key.dir == BNXT_DIR_RX)
flow             1488 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		struct bnxt_tc_flow *flow = &flow_node->flow;
flow             1490 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		spin_lock(&flow->stats_lock);
flow             1491 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		bnxt_flow_stats_accum(tc_info, &flow->stats,
flow             1493 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		if (flow->stats.packets != flow->prev_stats.packets)
flow             1494 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 			flow->lastused = jiffies;
flow             1495 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c 		spin_unlock(&flow->stats_lock);
flow              174 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h 	struct bnxt_tc_flow		flow;
flow              647 drivers/net/ethernet/calxeda/xgmac.c 	unsigned int flow = 0;
flow              654 drivers/net/ethernet/calxeda/xgmac.c 			flow |= XGMAC_FLOW_CTRL_RFE;
flow              656 drivers/net/ethernet/calxeda/xgmac.c 			flow |= XGMAC_FLOW_CTRL_TFE;
flow              658 drivers/net/ethernet/calxeda/xgmac.c 		flow |= XGMAC_FLOW_CTRL_PLT | XGMAC_FLOW_CTRL_UP;
flow              659 drivers/net/ethernet/calxeda/xgmac.c 		flow |= (PAUSE_TIME << XGMAC_FLOW_CTRL_PT_SHIFT);
flow              661 drivers/net/ethernet/calxeda/xgmac.c 		writel(flow, priv->base + XGMAC_FLOW_CTRL);
flow             1226 drivers/net/ethernet/freescale/gianfar_ethtool.c static int gfar_check_capability(struct ethtool_rx_flow_spec *flow,
flow             1230 drivers/net/ethernet/freescale/gianfar_ethtool.c 	if (flow->flow_type & FLOW_EXT)	{
flow             1231 drivers/net/ethernet/freescale/gianfar_ethtool.c 		if (~flow->m_ext.data[0] || ~flow->m_ext.data[1])
flow             1234 drivers/net/ethernet/freescale/gianfar_ethtool.c 		if (~flow->m_ext.vlan_etype)
flow             1238 drivers/net/ethernet/freescale/gianfar_ethtool.c 	if (flow->flow_type == IP_USER_FLOW)
flow             1239 drivers/net/ethernet/freescale/gianfar_ethtool.c 		if (flow->h_u.usr_ip4_spec.ip_ver != ETH_RX_NFC_IP4)
flow             1286 drivers/net/ethernet/freescale/gianfar_ethtool.c static void gfar_invert_masks(struct ethtool_rx_flow_spec *flow)
flow             1290 drivers/net/ethernet/freescale/gianfar_ethtool.c 	for (i = 0; i < sizeof(flow->m_u); i++)
flow             1291 drivers/net/ethernet/freescale/gianfar_ethtool.c 		flow->m_u.hdata[i] ^= 0xFF;
flow             1293 drivers/net/ethernet/freescale/gianfar_ethtool.c 	flow->m_ext.vlan_etype ^= cpu_to_be16(0xFFFF);
flow             1294 drivers/net/ethernet/freescale/gianfar_ethtool.c 	flow->m_ext.vlan_tci ^= cpu_to_be16(0xFFFF);
flow             1295 drivers/net/ethernet/freescale/gianfar_ethtool.c 	flow->m_ext.data[0] ^= cpu_to_be32(~0);
flow             1296 drivers/net/ethernet/freescale/gianfar_ethtool.c 	flow->m_ext.data[1] ^= cpu_to_be32(~0);
flow             1300 drivers/net/ethernet/freescale/gianfar_ethtool.c 			struct ethtool_rx_flow_spec *flow)
flow             1308 drivers/net/ethernet/freescale/gianfar_ethtool.c 	memcpy(&temp->fs, flow, sizeof(temp->fs));
flow             1323 drivers/net/ethernet/freescale/gianfar_ethtool.c 			if (comp->fs.location > flow->location) {
flow             1327 drivers/net/ethernet/freescale/gianfar_ethtool.c 			if (comp->fs.location == flow->location) {
flow             1330 drivers/net/ethernet/freescale/gianfar_ethtool.c 					   flow->location);
flow               91 drivers/net/ethernet/marvell/mvpp2/mvpp2.h #define     MVPP2_CLS_LKP_FLOW_PTR(flow)	((flow) << 16)
flow              876 drivers/net/ethernet/marvell/mvpp2/mvpp2.h 	struct flow_rule *flow;
flow              466 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 				    const struct mvpp2_cls_flow *flow)
flow              468 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	mvpp2_prs_add_flow(priv, flow->flow_id, flow->prs_ri.ri,
flow              469 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 			   flow->prs_ri.ri_mask);
flow              474 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 				    const struct mvpp2_cls_flow *flow)
flow              479 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	le.lkpid = flow->flow_id;
flow              487 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	le.data |= MVPP2_CLS_LKP_FLOW_PTR(MVPP2_CLS_FLT_FIRST(flow->flow_id));
flow              577 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 				const struct mvpp2_cls_flow *flow)
flow              583 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	for (i = MVPP2_CLS_FLT_FIRST(flow->flow_id);
flow              584 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	     i <= MVPP2_CLS_FLT_LAST(flow->flow_id); i++) {
flow              589 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (i == MVPP2_CLS_FLT_LAST(flow->flow_id))
flow              596 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	mvpp2_cls_flow_read(priv, MVPP2_CLS_FLT_C2_RSS_ENTRY(flow->flow_id),
flow              612 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 				    MVPP2_CLS_FLT_HASH_ENTRY(i, flow->flow_id),
flow              715 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c const struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow)
flow              717 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	if (flow >= MVPP2_N_PRS_FLOWS)
flow              720 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	return &cls_flows[flow];
flow              737 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	const struct mvpp2_cls_flow *flow;
flow              743 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow = mvpp2_cls_flow_get(i);
flow              744 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (!flow)
flow              747 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow_index = MVPP2_CLS_FLT_HASH_ENTRY(port->id, flow->flow_id);
flow              751 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		hash_opts = flow->supported_hash_opts & requested_opts;
flow              825 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	const struct mvpp2_cls_flow *flow;
flow              831 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow = mvpp2_cls_flow_get(i);
flow              832 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (!flow)
flow              835 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow_index = MVPP2_CLS_FLT_HASH_ENTRY(port->id, flow->flow_id);
flow              847 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	const struct mvpp2_cls_flow *flow;
flow              851 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow = mvpp2_cls_flow_get(i);
flow              852 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (!flow)
flow              855 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		mvpp2_cls_flow_prs_init(priv, flow);
flow              856 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		mvpp2_cls_flow_lkp_init(priv, flow);
flow              857 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		mvpp2_cls_flow_init(priv, flow);
flow             1092 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	act = &rule->flow->action.entries[0];
flow             1174 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	const struct mvpp2_cls_flow *flow;
flow             1179 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow = mvpp2_cls_flow_get(i);
flow             1180 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (!flow)
flow             1183 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		index = MVPP2_CLS_FLT_C2_RFS(port->id, flow->flow_id, rule->loc);
flow             1199 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	const struct mvpp2_cls_flow *flow;
flow             1212 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow = mvpp2_cls_flow_get(i);
flow             1213 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if (!flow)
flow             1216 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		if ((rule->hek_fields & flow->supported_hash_opts) != rule->hek_fields)
flow             1219 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		index = MVPP2_CLS_FLT_C2_RFS(port->id, flow->flow_id, rule->loc);
flow             1236 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	struct flow_rule *flow = rule->flow;
flow             1242 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	if (flow_rule_match_key(flow, FLOW_DISSECTOR_KEY_VLAN)) {
flow             1245 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow_rule_match_vlan(flow, &match);
flow             1276 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	if (flow_rule_match_key(flow, FLOW_DISSECTOR_KEY_PORTS)) {
flow             1279 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 		flow_rule_match_ports(flow, &match);
flow             1305 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	struct flow_rule *flow = rule->flow;
flow             1308 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	act = &flow->action.entries[0];
flow             1376 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	efs->rule.flow = ethtool_rule->rule;
flow             1404 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c 	efs->rule.flow = NULL;
flow              288 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.h const struct mvpp2_cls_flow *mvpp2_cls_flow_get(int flow);
flow               27 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	int flow;
flow               75 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	u32 hits = mvpp2_cls_lookup_hits(entry->priv, entry->flow);
flow               90 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	f = mvpp2_cls_flow_get(entry->flow);
flow              129 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	f = mvpp2_cls_flow_get(entry->flow);
flow              149 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	f = mvpp2_cls_flow_get(entry->dbg_fe->flow);
flow              174 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	f = mvpp2_cls_flow_get(entry->dbg_fe->flow);
flow              471 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 				       struct mvpp2 *priv, int flow)
flow              478 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	sprintf(flow_entry_name, "%02d", flow);
flow              482 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	entry = &priv->dbgfs_entries->flow_entries[flow];
flow              484 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c 	entry->flow = flow;
flow              364 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c static int mvpp2_prs_flow_find(struct mvpp2 *priv, int flow)
flow              381 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c 		if ((bits & MVPP2_PRS_FLOW_ID_MASK) == flow)
flow             2411 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c int mvpp2_prs_add_flow(struct mvpp2 *priv, int flow, u32 ri, u32 ri_mask)
flow             2430 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c 	mvpp2_prs_sram_ai_update(&pe, flow, MVPP2_PRS_FLOW_ID_MASK);
flow              310 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h int mvpp2_prs_add_flow(struct mvpp2 *priv, int flow, u32 ri, u32 ri_mask);
flow             1878 drivers/net/ethernet/mellanox/mlx4/en_netdev.c 	struct ethtool_flow_id *flow, *tmp_flow;
flow             1959 drivers/net/ethernet/mellanox/mlx4/en_netdev.c 		list_for_each_entry_safe(flow, tmp_flow,
flow             1961 drivers/net/ethernet/mellanox/mlx4/en_netdev.c 			mlx4_flow_detach(mdev->dev, flow->id);
flow             1962 drivers/net/ethernet/mellanox/mlx4/en_netdev.c 			list_del(&flow->list);
flow               43 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c int mlx5_accel_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow               48 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c 	return mlx5_fpga_tls_add_flow(mdev, flow, crypto_info,
flow              106 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h int mlx5_accel_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow              122 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h mlx5_accel_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow               39 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c static void mlx5e_tls_set_ipv4_flow(void *flow, struct sock *sk)
flow               43 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	MLX5_SET(tls_flow, flow, ipv6, 0);
flow               44 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, dst_ipv4_dst_ipv6.ipv4_layout.ipv4),
flow               46 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, src_ipv4_src_ipv6.ipv4_layout.ipv4),
flow               51 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c static void mlx5e_tls_set_ipv6_flow(void *flow, struct sock *sk)
flow               55 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	MLX5_SET(tls_flow, flow, ipv6, 1);
flow               56 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, dst_ipv4_dst_ipv6.ipv6_layout.ipv6),
flow               58 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, src_ipv4_src_ipv6.ipv6_layout.ipv6),
flow               63 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c static void mlx5e_tls_set_flow_tcp_ports(void *flow, struct sock *sk)
flow               67 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, src_port), &inet->inet_sport,
flow               69 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	memcpy(MLX5_ADDR_OF(tls_flow, flow, dst_port), &inet->inet_dport,
flow               73 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c static int mlx5e_tls_set_flow(void *flow, struct sock *sk, u32 caps)
flow               77 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 		mlx5e_tls_set_ipv4_flow(flow, sk);
flow               83 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 			mlx5e_tls_set_ipv4_flow(flow, sk);
flow               89 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 		mlx5e_tls_set_ipv6_flow(flow, sk);
flow               96 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	mlx5e_tls_set_flow_tcp_ports(flow, sk);
flow              112 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	void *flow;
flow              115 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	flow = kzalloc(MLX5_ST_SZ_BYTES(tls_flow), GFP_KERNEL);
flow              116 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	if (!flow)
flow              119 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	ret = mlx5e_tls_set_flow(flow, sk, caps);
flow              123 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	ret = mlx5_accel_tls_add_flow(mdev, flow, crypto_info,
flow              144 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c 	kfree(flow);
flow              214 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			      struct mlx5e_tc_flow *flow);
flow              216 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static struct mlx5e_tc_flow *mlx5e_flow_get(struct mlx5e_tc_flow *flow)
flow              218 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!flow || !refcount_inc_not_zero(&flow->refcnt))
flow              220 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return flow;
flow              224 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			   struct mlx5e_tc_flow *flow)
flow              226 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (refcount_dec_and_test(&flow->refcnt)) {
flow              227 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_del_flow(priv, flow);
flow              228 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		kfree_rcu(flow, rcu_head);
flow              232 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void __flow_flag_set(struct mlx5e_tc_flow *flow, unsigned long flag)
flow              236 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	set_bit(flag, &flow->flags);
flow              239 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c #define flow_flag_set(flow, flag) __flow_flag_set(flow, MLX5E_TC_FLOW_FLAG_##flag)
flow              241 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool __flow_flag_test_and_set(struct mlx5e_tc_flow *flow,
flow              245 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return test_and_set_bit(flag, &flow->flags);
flow              248 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c #define flow_flag_test_and_set(flow, flag)			\
flow              249 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	__flow_flag_test_and_set(flow,				\
flow              252 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void __flow_flag_clear(struct mlx5e_tc_flow *flow, unsigned long flag)
flow              256 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	clear_bit(flag, &flow->flags);
flow              259 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c #define flow_flag_clear(flow, flag) __flow_flag_clear(flow, \
flow              262 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool __flow_flag_test(struct mlx5e_tc_flow *flow, unsigned long flag)
flow              264 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	bool ret = test_bit(flag, &flow->flags);
flow              271 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c #define flow_flag_test(flow, flag) __flow_flag_test(flow, \
flow              274 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool mlx5e_is_eswitch_flow(struct mlx5e_tc_flow *flow)
flow              276 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return flow_flag_test(flow, ESWITCH);
flow              279 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool mlx5e_is_offloaded_flow(struct mlx5e_tc_flow *flow)
flow              281 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return flow_flag_test(flow, OFFLOADED);
flow              342 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static int get_flow_name_space(struct mlx5e_tc_flow *flow)
flow              344 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return mlx5e_is_eswitch_flow(flow) ?
flow              348 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				struct mlx5e_tc_flow *flow,
flow              365 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	namespace = get_flow_name_space(flow);
flow              410 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->mh = mh;
flow              412 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_add(&flow->mod_hdr, &mh->flows);
flow              414 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_eswitch_flow(flow))
flow              415 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->esw_attr->modify_hdr = mh->modify_hdr;
flow              417 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->nic_attr->modify_hdr = mh->modify_hdr;
flow              429 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				 struct mlx5e_tc_flow *flow)
flow              432 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!flow->mh)
flow              435 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	spin_lock(&flow->mh->flows_lock);
flow              436 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_del(&flow->mod_hdr);
flow              437 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	spin_unlock(&flow->mh->flows_lock);
flow              439 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_mod_hdr_put(priv, flow->mh, get_flow_name_space(flow));
flow              440 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->mh = NULL;
flow              772 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				  struct mlx5e_tc_flow *flow,
flow              864 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_set(flow, HAIRPIN_RSS);
flow              865 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->nic_attr->hairpin_ft = hpe->hp->ttc.ft.t;
flow              867 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->nic_attr->hairpin_tirn = hpe->hp->tirn;
flow              870 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->hpe = hpe;
flow              872 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_add(&flow->hairpin, &hpe->flows);
flow              883 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				   struct mlx5e_tc_flow *flow)
flow              886 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!flow->hpe)
flow              889 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	spin_lock(&flow->hpe->flows_lock);
flow              890 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_del(&flow->hairpin);
flow              891 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	spin_unlock(&flow->hpe->flows_lock);
flow              893 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_hairpin_put(priv, flow->hpe);
flow              894 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->hpe = NULL;
flow              900 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		      struct mlx5e_tc_flow *flow,
flow              904 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_nic_flow_attr *attr = flow->nic_attr;
flow              917 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test(flow, HAIRPIN)) {
flow              918 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		err = mlx5e_hairpin_flow_add(priv, flow, parse_attr, extack);
flow              922 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (flow_flag_test(flow, HAIRPIN_RSS)) {
flow              948 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		err = mlx5e_attach_mod_hdr(priv, flow, parse_attr);
flow              987 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->rule[0] = mlx5_add_flow_rules(priv->fs.tc.t, &parse_attr->spec,
flow              991 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return PTR_ERR_OR_ZERO(flow->rule[0]);
flow              995 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				  struct mlx5e_tc_flow *flow)
flow              997 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_nic_flow_attr *attr = flow->nic_attr;
flow             1001 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!IS_ERR_OR_NULL(flow->rule[0]))
flow             1002 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5_del_flow_rules(flow->rule[0]);
flow             1013 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_detach_mod_hdr(priv, flow);
flow             1015 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test(flow, HAIRPIN))
flow             1016 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_hairpin_flow_del(priv, flow);
flow             1020 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			       struct mlx5e_tc_flow *flow, int out_index);
flow             1023 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			      struct mlx5e_tc_flow *flow,
flow             1032 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			   struct mlx5e_tc_flow *flow,
flow             1043 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->rule[1] = mlx5_eswitch_add_fwd_rule(esw, spec, attr);
flow             1044 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (IS_ERR(flow->rule[1])) {
flow             1046 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			return flow->rule[1];
flow             1055 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			     struct mlx5e_tc_flow *flow,
flow             1058 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_clear(flow, OFFLOADED);
flow             1061 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5_eswitch_del_fwd_rule(esw, flow->rule[1], attr);
flow             1063 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5_eswitch_del_offloaded_rule(esw, flow->rule[0], attr);
flow             1068 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			      struct mlx5e_tc_flow *flow,
flow             1074 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
flow             1079 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, slow_attr);
flow             1081 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_set(flow, SLOW);
flow             1088 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				  struct mlx5e_tc_flow *flow,
flow             1091 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
flow             1095 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_tc_unoffload_fdb_rules(esw, flow, slow_attr);
flow             1096 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_clear(flow, SLOW);
flow             1102 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void unready_flow_add(struct mlx5e_tc_flow *flow,
flow             1105 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_set(flow, NOT_READY);
flow             1106 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_add_tail(&flow->unready, unready_flows);
flow             1112 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void unready_flow_del(struct mlx5e_tc_flow *flow)
flow             1114 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_del(&flow->unready);
flow             1115 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_clear(flow, NOT_READY);
flow             1118 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void add_unready_flow(struct mlx5e_tc_flow *flow)
flow             1124 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	esw = flow->priv->mdev->priv.eswitch;
flow             1129 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	unready_flow_add(flow, &uplink_priv->unready_flows);
flow             1133 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void remove_unready_flow(struct mlx5e_tc_flow *flow)
flow             1139 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	esw = flow->priv->mdev->priv.eswitch;
flow             1144 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	unready_flow_del(flow);
flow             1150 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		      struct mlx5e_tc_flow *flow,
flow             1155 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_esw_flow_attr *attr = flow->esw_attr;
flow             1190 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		err = mlx5e_attach_encap(priv, flow, out_dev, out_index,
flow             1206 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		err = mlx5e_attach_mod_hdr(priv, flow, parse_attr);
flow             1228 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->rule[0] = mlx5e_tc_offload_to_slow_path(esw, flow, &parse_attr->spec, &slow_attr);
flow             1230 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->rule[0] = mlx5e_tc_offload_fdb_rules(esw, flow, &parse_attr->spec, attr);
flow             1233 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (IS_ERR(flow->rule[0]))
flow             1234 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		return PTR_ERR(flow->rule[0]);
flow             1236 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_set(flow, OFFLOADED);
flow             1241 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool mlx5_flow_has_geneve_opt(struct mlx5e_tc_flow *flow)
flow             1243 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_flow_spec *spec = &flow->esw_attr->parse_attr->spec;
flow             1255 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				  struct mlx5e_tc_flow *flow)
flow             1258 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_esw_flow_attr *attr = flow->esw_attr;
flow             1262 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test(flow, NOT_READY)) {
flow             1263 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		remove_unready_flow(flow);
flow             1268 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_offloaded_flow(flow)) {
flow             1269 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (flow_flag_test(flow, SLOW))
flow             1270 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			mlx5e_tc_unoffload_from_slow_path(esw, flow, &slow_attr);
flow             1272 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			mlx5e_tc_unoffload_fdb_rules(esw, flow, attr);
flow             1275 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5_flow_has_geneve_opt(flow))
flow             1282 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			mlx5e_detach_encap(priv, flow, out_index);
flow             1288 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_detach_mod_hdr(priv, flow);
flow             1302 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             1317 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_for_each_entry(flow, flow_list, tmp_list) {
flow             1321 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (!mlx5e_is_offloaded_flow(flow))
flow             1323 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		esw_attr = flow->esw_attr;
flow             1326 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		esw_attr->dests[flow->tmp_efi_index].pkt_reformat = e->pkt_reformat;
flow             1327 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		esw_attr->dests[flow->tmp_efi_index].flags |= MLX5_ESW_DEST_ENCAP_VALID;
flow             1344 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, esw_attr);
flow             1352 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_unoffload_from_slow_path(esw, flow, &slow_attr);
flow             1353 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->rule[0] = rule;
flow             1355 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_set(flow, OFFLOADED);
flow             1367 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             1370 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_for_each_entry(flow, flow_list, tmp_list) {
flow             1371 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (!mlx5e_is_offloaded_flow(flow))
flow             1373 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		spec = &flow->esw_attr->parse_attr->spec;
flow             1376 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		rule = mlx5e_tc_offload_to_slow_path(esw, flow, spec, &slow_attr);
flow             1378 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->esw_attr->dests[flow->tmp_efi_index].flags &= ~MLX5_ESW_DEST_ENCAP_VALID;
flow             1387 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_unoffload_fdb_rules(esw, flow, flow->esw_attr);
flow             1388 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->rule[0] = rule;
flow             1390 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_set(flow, OFFLOADED);
flow             1398 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static struct mlx5_fc *mlx5e_tc_get_counter(struct mlx5e_tc_flow *flow)
flow             1400 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_eswitch_flow(flow))
flow             1401 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		return flow->esw_attr->counter;
flow             1403 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		return flow->nic_attr->counter;
flow             1412 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             1415 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow = container_of(efi, struct mlx5e_tc_flow, encaps[efi->index]);
flow             1416 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (IS_ERR(mlx5e_flow_get(flow)))
flow             1418 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		wait_for_completion(&flow->init_done);
flow             1420 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->tmp_efi_index = efi->index;
flow             1421 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		list_add(&flow->tmp_list, flow_list);
flow             1428 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow, *tmp;
flow             1430 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_for_each_entry_safe(flow, tmp, flow_list, tmp_list)
flow             1431 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_flow_put(priv, flow);
flow             1483 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             1511 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			flow = container_of(efi, struct mlx5e_tc_flow,
flow             1513 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			if (IS_ERR(mlx5e_flow_get(flow)))
flow             1515 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			list_add(&flow->tmp_list, &flow_list);
flow             1517 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			if (mlx5e_is_offloaded_flow(flow)) {
flow             1518 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				counter = mlx5e_tc_get_counter(flow);
flow             1582 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			       struct mlx5e_tc_flow *flow, int out_index)
flow             1584 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_encap_entry *e = flow->encaps[out_index].e;
flow             1592 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_del(&flow->encaps[out_index].list);
flow             1593 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->encaps[out_index].e = NULL;
flow             1604 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void __mlx5e_tc_del_fdb_peer_flow(struct mlx5e_tc_flow *flow)
flow             1606 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_eswitch *esw = flow->priv->mdev->priv.eswitch;
flow             1608 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!flow_flag_test(flow, ESWITCH) ||
flow             1609 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	    !flow_flag_test(flow, DUP))
flow             1613 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_del(&flow->peer);
flow             1616 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_clear(flow, DUP);
flow             1618 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (refcount_dec_and_test(&flow->peer_flow->refcnt)) {
flow             1619 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_del_fdb_flow(flow->peer_flow->priv, flow->peer_flow);
flow             1620 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		kfree(flow->peer_flow);
flow             1623 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->peer_flow = NULL;
flow             1626 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static void mlx5e_tc_del_fdb_peer_flow(struct mlx5e_tc_flow *flow)
flow             1628 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_core_dev *dev = flow->priv->mdev;
flow             1636 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	__mlx5e_tc_del_fdb_peer_flow(flow);
flow             1641 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			      struct mlx5e_tc_flow *flow)
flow             1643 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_eswitch_flow(flow)) {
flow             1644 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_del_fdb_peer_flow(flow);
flow             1645 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_del_fdb_flow(priv, flow);
flow             1647 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		mlx5e_tc_del_nic_flow(priv, flow);
flow             2153 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			    struct mlx5e_tc_flow *flow,
flow             2175 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	is_eswitch_flow = mlx5e_is_eswitch_flow(flow);
flow             2191 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->esw_attr->inner_match_level = inner_match_level;
flow             2192 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->esw_attr->outer_match_level = outer_match_level;
flow             2194 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow->nic_attr->match_level = non_tunnel_match_level;
flow             2706 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				    struct mlx5e_tc_flow *flow,
flow             2711 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_eswitch_flow(flow))
flow             2712 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		actions = flow->esw_attr->action;
flow             2714 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		actions = flow->nic_attr->action;
flow             2716 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test(flow, EGRESS) &&
flow             2815 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				struct mlx5e_tc_flow *flow,
flow             2818 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_nic_flow_attr *attr = flow->nic_attr;
flow             2869 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				flow_flag_set(flow, HAIRPIN);
flow             2916 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!actions_match_supported(priv, flow_action, parse_attr, flow, extack))
flow             2989 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			      struct mlx5e_tc_flow *flow,
flow             2997 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_esw_flow_attr *attr = flow->esw_attr;
flow             3073 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->encaps[out_index].e = e;
flow             3074 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_add(&flow->encaps[out_index].list, &e->flows);
flow             3075 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->encaps[out_index].index = out_index;
flow             3212 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				struct mlx5e_tc_flow *flow,
flow             3217 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_esw_flow_attr *attr = flow->esw_attr;
flow             3439 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!actions_match_supported(priv, flow_action, parse_attr, flow, extack))
flow             3503 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool is_peer_flow_needed(struct mlx5e_tc_flow *flow)
flow             3505 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5_esw_flow_attr *attr = flow->esw_attr;
flow             3507 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_test(flow, INGRESS);
flow             3531 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3534 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow = kzalloc(sizeof(*flow) + attr_size, GFP_KERNEL);
flow             3536 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!parse_attr || !flow) {
flow             3541 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->cookie = f->cookie;
flow             3542 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->flags = flow_flags;
flow             3543 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->priv = priv;
flow             3545 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		INIT_LIST_HEAD(&flow->encaps[out_index].list);
flow             3546 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	INIT_LIST_HEAD(&flow->mod_hdr);
flow             3547 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	INIT_LIST_HEAD(&flow->hairpin);
flow             3548 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	refcount_set(&flow->refcnt, 1);
flow             3549 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	init_completion(&flow->init_done);
flow             3551 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	*__flow = flow;
flow             3557 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	kfree(flow);
flow             3597 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3603 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			       &parse_attr, &flow);
flow             3608 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_esw_attr_init(flow->esw_attr,
flow             3612 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = parse_cls_flower(flow->priv, flow, &parse_attr->spec,
flow             3617 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = parse_tc_fdb_actions(priv, &rule->action, flow, extack);
flow             3621 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = mlx5e_tc_add_fdb_flow(priv, flow, extack);
flow             3622 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	complete_all(&flow->init_done);
flow             3627 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		add_unready_flow(flow);
flow             3630 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return flow;
flow             3633 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_put(priv, flow);
flow             3639 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 				      struct mlx5e_tc_flow *flow,
flow             3642 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_priv *priv = flow->priv, *peer_priv;
flow             3663 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow->esw_attr->in_rep->vport == MLX5_VPORT_UPLINK)
flow             3668 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	parse_attr = flow->esw_attr->parse_attr;
flow             3671 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 					 flow->esw_attr->in_rep, in_mdev);
flow             3677 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow->peer_flow = peer_flow;
flow             3678 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_set(flow, DUP);
flow             3680 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_add_tail(&flow->peer, &esw->offloads.peer_flows);
flow             3698 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3701 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow = __mlx5e_add_fdb_flow(priv, f, flow_flags, filter_dev, in_rep,
flow             3703 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (IS_ERR(flow))
flow             3704 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		return PTR_ERR(flow);
flow             3706 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (is_peer_flow_needed(flow)) {
flow             3707 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		err = mlx5e_tc_add_fdb_peer_flow(f, flow, flow_flags);
flow             3709 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			mlx5e_tc_del_fdb_flow(priv, flow);
flow             3714 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	*__flow = flow;
flow             3732 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3742 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			       &parse_attr, &flow);
flow             3747 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = parse_cls_flower(flow->priv, flow, &parse_attr->spec,
flow             3752 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = parse_tc_nic_actions(priv, &rule->action, parse_attr, flow, extack);
flow             3756 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = mlx5e_tc_add_nic_flow(priv, parse_attr, flow, extack);
flow             3760 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow_flag_set(flow, OFFLOADED);
flow             3762 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	*__flow = flow;
flow             3767 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_put(priv, flow);
flow             3778 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		  struct mlx5e_tc_flow **flow)
flow             3791 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 					 filter_dev, flow);
flow             3794 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 					 filter_dev, flow);
flow             3804 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3808 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow = rhashtable_lookup(tc_ht, &f->cookie, tc_ht_params);
flow             3810 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow) {
flow             3821 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = mlx5e_tc_add_flow(priv, f, flags, dev, &flow);
flow             3825 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	err = rhashtable_lookup_insert_fast(tc_ht, &flow->node, tc_ht_params);
flow             3832 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_put(priv, flow);
flow             3837 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c static bool same_flow_direction(struct mlx5e_tc_flow *flow, int flags)
flow             3842 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	return flow_flag_test(flow, INGRESS) == dir_ingress &&
flow             3843 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		flow_flag_test(flow, EGRESS) == dir_egress;
flow             3850 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3854 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow = rhashtable_lookup_fast(tc_ht, &f->cookie, tc_ht_params);
flow             3855 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!flow || !same_flow_direction(flow, flags)) {
flow             3863 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test_and_set(flow, DELETED)) {
flow             3867 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	rhashtable_remove_fast(tc_ht, &flow->node, tc_ht_params);
flow             3871 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_put(priv, flow);
flow             3886 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow;
flow             3894 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	flow = mlx5e_flow_get(rhashtable_lookup(tc_ht, &f->cookie,
flow             3897 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (IS_ERR(flow))
flow             3898 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		return PTR_ERR(flow);
flow             3900 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (!same_flow_direction(flow, flags)) {
flow             3905 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (mlx5e_is_offloaded_flow(flow)) {
flow             3906 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		counter = mlx5e_tc_get_counter(flow);
flow             3920 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	if (flow_flag_test(flow, DUP) &&
flow             3921 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	    flow_flag_test(flow->peer_flow, OFFLOADED)) {
flow             3926 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		counter = mlx5e_tc_get_counter(flow->peer_flow);
flow             3942 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_flow_put(priv, flow);
flow             4132 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow = ptr;
flow             4133 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_priv *priv = flow->priv;
flow             4135 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	mlx5e_tc_del_flow(priv, flow);
flow             4136 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	kfree(flow);
flow             4177 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow, *tmp;
flow             4179 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_for_each_entry_safe(flow, tmp, &esw->offloads.peer_flows, peer)
flow             4180 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		__mlx5e_tc_del_fdb_peer_flow(flow);
flow             4188 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	struct mlx5e_tc_flow *flow, *tmp;
flow             4191 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 	list_for_each_entry_safe(flow, tmp, &rpriv->unready_flows, unready) {
flow             4192 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 		if (!mlx5e_tc_add_fdb_flow(flow->priv, flow, NULL))
flow             4193 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c 			unready_flow_del(flow);
flow              686 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 	struct mlx5_flow_handle *flow;
flow              713 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flow = mlx5_add_flow_rules(esw->fdb_table.offloads.slow_fdb,
flow              715 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		if (IS_ERR(flow)) {
flow              716 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 			err = PTR_ERR(flow);
flow              719 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flows[MLX5_VPORT_PF] = flow;
flow              724 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flow = mlx5_add_flow_rules(esw->fdb_table.offloads.slow_fdb,
flow              726 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		if (IS_ERR(flow)) {
flow              727 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 			err = PTR_ERR(flow);
flow              730 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flows[mlx5_eswitch_ecpf_idx(esw)] = flow;
flow              738 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flow = mlx5_add_flow_rules(esw->fdb_table.offloads.slow_fdb,
flow              740 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		if (IS_ERR(flow)) {
flow              741 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 			err = PTR_ERR(flow);
flow              744 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 		flows[i] = flow;
flow              187 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c static void mlx5_fpga_tls_flow_to_cmd(void *flow, void *cmd)
flow              189 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	memcpy(MLX5_ADDR_OF(tls_cmd, cmd, src_port), flow,
flow              192 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	MLX5_SET(tls_cmd, cmd, ipv6, MLX5_GET(tls_flow, flow, ipv6));
flow              194 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 		 MLX5_GET(tls_flow, flow, direction_sx));
flow              202 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	void *flow;
flow              213 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	flow = idr_find(&mdev->fpga->tls->rx_idr, ntohl(handle));
flow              214 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	if (unlikely(!flow)) {
flow              220 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	mlx5_fpga_tls_flow_to_cmd(flow, cmd);
flow              240 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 					    void *flow, u32 swid, gfp_t flags)
flow              255 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	mlx5_fpga_tls_flow_to_cmd(flow, cmd);
flow              256 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	kfree(flow);
flow              269 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	void *flow;
flow              272 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 		flow = mlx5_fpga_tls_release_swid(&tls->tx_idr,
flow              276 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 		flow = mlx5_fpga_tls_release_swid(&tls->rx_idr,
flow              280 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	if (!flow) {
flow              287 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	mlx5_fpga_tls_send_teardown_cmd(mdev, flow, swid, flags);
flow              551 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c static int _mlx5_fpga_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow              571 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	mlx5_fpga_tls_flow_to_cmd(flow, cmd);
flow              584 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c int mlx5_fpga_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow              595 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 					       &tls->tx_idr_spinlock, flow);
flow              598 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 					       &tls->rx_idr_spinlock, flow);
flow              604 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	MLX5_SET(tls_flow, flow, direction_sx, direction_sx ? 1 : 0);
flow              606 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c 	ret = _mlx5_fpga_tls_add_flow(mdev, flow, crypto_info, swid,
flow               54 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h int mlx5_fpga_tls_add_flow(struct mlx5_core_dev *mdev, void *flow,
flow              264 drivers/net/ethernet/netronome/nfp/flower/action.c nfp_flower_tun_is_gre(struct flow_cls_offload *flow, int start_idx)
flow              266 drivers/net/ethernet/netronome/nfp/flower/action.c 	struct flow_action_entry *act = flow->rule->action.entries;
flow              267 drivers/net/ethernet/netronome/nfp/flower/action.c 	int num_act = flow->rule->action.num_entries;
flow              281 drivers/net/ethernet/netronome/nfp/flower/action.c 			struct flow_cls_offload *flow,
flow              290 drivers/net/ethernet/netronome/nfp/flower/action.c 	if (nfp_flower_tun_is_gre(flow, act_idx))
flow              435 drivers/net/ethernet/netronome/nfp/flower/action.c 		struct flowi4 flow = {};
flow              443 drivers/net/ethernet/netronome/nfp/flower/action.c 		flow.daddr = ip_tun->key.u.ipv4.dst;
flow              444 drivers/net/ethernet/netronome/nfp/flower/action.c 		flow.flowi4_proto = IPPROTO_UDP;
flow              445 drivers/net/ethernet/netronome/nfp/flower/action.c 		rt = ip_route_output_key(net, &flow);
flow              762 drivers/net/ethernet/netronome/nfp/flower/action.c nfp_fl_commit_mangle(struct flow_cls_offload *flow, char *nfp_action,
flow              766 drivers/net/ethernet/netronome/nfp/flower/action.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              864 drivers/net/ethernet/netronome/nfp/flower/action.c 	     struct flow_cls_offload *flow, char *nfp_action, int *a_len,
flow              951 drivers/net/ethernet/netronome/nfp/flower/action.c 		       struct flow_cls_offload *flow,
flow             1019 drivers/net/ethernet/netronome/nfp/flower/action.c 		*tun_type = nfp_fl_get_tun_from_act(app, flow, act, act_idx);
flow             1060 drivers/net/ethernet/netronome/nfp/flower/action.c 		if (nfp_fl_pedit(act, flow, &nfp_fl->action_data[*a_len],
flow             1169 drivers/net/ethernet/netronome/nfp/flower/action.c 			      struct flow_cls_offload *flow,
flow             1189 drivers/net/ethernet/netronome/nfp/flower/action.c 	flow_action_for_each(i, act, &flow->rule->action) {
flow             1190 drivers/net/ethernet/netronome/nfp/flower/action.c 		if (nfp_fl_check_mangle_start(&flow->rule->action, i))
flow             1192 drivers/net/ethernet/netronome/nfp/flower/action.c 		err = nfp_flower_loop_action(app, act, flow, nfp_flow, &act_len,
flow             1199 drivers/net/ethernet/netronome/nfp/flower/action.c 		if (nfp_fl_check_mangle_end(&flow->rule->action, i))
flow             1200 drivers/net/ethernet/netronome/nfp/flower/action.c 			nfp_fl_commit_mangle(flow,
flow              219 drivers/net/ethernet/netronome/nfp/flower/cmsg.c 	if (msg_len < struct_size(msg, flow, flow_cnt)) {
flow              221 drivers/net/ethernet/netronome/nfp/flower/cmsg.c 				     msg_len, struct_size(msg, flow, flow_cnt));
flow              233 drivers/net/ethernet/netronome/nfp/flower/cmsg.c 		u32 ctx = be32_to_cpu(msg->flow[i].host_ctx);
flow              532 drivers/net/ethernet/netronome/nfp/flower/cmsg.h 	} __packed flow[0];
flow              308 drivers/net/ethernet/netronome/nfp/flower/main.h 		struct nfp_fl_payload *flow;
flow              361 drivers/net/ethernet/netronome/nfp/flower/main.h 				  struct flow_cls_offload *flow,
flow              368 drivers/net/ethernet/netronome/nfp/flower/main.h 			      struct flow_cls_offload *flow,
flow              373 drivers/net/ethernet/netronome/nfp/flower/main.h 			      struct flow_cls_offload *flow,
flow              417 drivers/net/ethernet/netronome/nfp/flower/main.h 				 struct tc_cls_matchall_offload *flow);
flow              434 drivers/net/ethernet/netronome/nfp/flower/main.h 				 struct nfp_fl_payload *flow);
flow              436 drivers/net/ethernet/netronome/nfp/flower/main.h 				     struct nfp_fl_payload *flow);
flow               13 drivers/net/ethernet/netronome/nfp/flower/match.c 			    struct flow_cls_offload *flow, u8 key_type)
flow               15 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow               81 drivers/net/ethernet/netronome/nfp/flower/match.c 		       struct flow_cls_offload *flow)
flow               83 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              133 drivers/net/ethernet/netronome/nfp/flower/match.c 			 struct flow_cls_offload *flow)
flow              135 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              154 drivers/net/ethernet/netronome/nfp/flower/match.c 			  struct flow_cls_offload *flow)
flow              156 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              228 drivers/net/ethernet/netronome/nfp/flower/match.c 			struct flow_cls_offload *flow)
flow              230 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              244 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_ip_ext(&ext->ip_ext, &msk->ip_ext, flow);
flow              250 drivers/net/ethernet/netronome/nfp/flower/match.c 			struct flow_cls_offload *flow)
flow              252 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              267 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_ip_ext(&ext->ip_ext, &msk->ip_ext, flow);
flow              272 drivers/net/ethernet/netronome/nfp/flower/match.c 			      struct flow_cls_offload *flow)
flow              276 drivers/net/ethernet/netronome/nfp/flower/match.c 	flow_rule_match_enc_opts(flow->rule, &match);
flow              286 drivers/net/ethernet/netronome/nfp/flower/match.c 				  struct flow_cls_offload *flow)
flow              288 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              304 drivers/net/ethernet/netronome/nfp/flower/match.c 			      struct flow_cls_offload *flow)
flow              306 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              322 drivers/net/ethernet/netronome/nfp/flower/match.c 				struct flow_cls_offload *flow)
flow              324 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              344 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_tun_ipv4_addrs(&ext->ipv4, &msk->ipv4, flow);
flow              345 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_tun_ip_ext(&ext->ip_ext, &msk->ip_ext, flow);
flow              351 drivers/net/ethernet/netronome/nfp/flower/match.c 				struct flow_cls_offload *flow)
flow              353 drivers/net/ethernet/netronome/nfp/flower/match.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              369 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_tun_ipv4_addrs(&ext->ipv4, &msk->ipv4, flow);
flow              370 drivers/net/ethernet/netronome/nfp/flower/match.c 	nfp_flower_compile_tun_ip_ext(&ext->ip_ext, &msk->ip_ext, flow);
flow              374 drivers/net/ethernet/netronome/nfp/flower/match.c 				  struct flow_cls_offload *flow,
flow              396 drivers/net/ethernet/netronome/nfp/flower/match.c 				    flow, key_ls->key_layer);
flow              428 drivers/net/ethernet/netronome/nfp/flower/match.c 				       flow);
flow              436 drivers/net/ethernet/netronome/nfp/flower/match.c 					 flow);
flow              444 drivers/net/ethernet/netronome/nfp/flower/match.c 					flow);
flow              452 drivers/net/ethernet/netronome/nfp/flower/match.c 					flow);
flow              460 drivers/net/ethernet/netronome/nfp/flower/match.c 		nfp_flower_compile_ipv4_gre_tun((void *)ext, (void *)msk, flow);
flow              476 drivers/net/ethernet/netronome/nfp/flower/match.c 		nfp_flower_compile_ipv4_udp_tun((void *)ext, (void *)msk, flow);
flow              488 drivers/net/ethernet/netronome/nfp/flower/match.c 			err = nfp_flower_compile_geneve_opt(ext, msk, flow);
flow               30 drivers/net/ethernet/netronome/nfp/flower/metadata.c 	struct nfp_fl_payload *flow;
flow              293 drivers/net/ethernet/netronome/nfp/flower/metadata.c 			      struct flow_cls_offload *flow,
flow              312 drivers/net/ethernet/netronome/nfp/flower/metadata.c 	nfp_flow->meta.host_cookie = cpu_to_be64(flow->cookie);
flow              322 drivers/net/ethernet/netronome/nfp/flower/metadata.c 	ctx_entry->flow = nfp_flow;
flow              353 drivers/net/ethernet/netronome/nfp/flower/metadata.c 	check_entry = nfp_flower_search_fl_table(app, flow->cookie, netdev);
flow              443 drivers/net/ethernet/netronome/nfp/flower/metadata.c 	return ctx_entry->flow;
flow              220 drivers/net/ethernet/netronome/nfp/flower/offload.c 				struct flow_cls_offload *flow,
flow              224 drivers/net/ethernet/netronome/nfp/flower/offload.c 	struct flow_rule *rule = flow_cls_offload_flow_rule(flow);
flow              379 drivers/net/ethernet/netronome/nfp/flower/offload.c 	} else if (nfp_flower_check_higher_than_mac(flow)) {
flow              398 drivers/net/ethernet/netronome/nfp/flower/offload.c 	    nfp_flower_check_higher_than_l3(flow)) {
flow              511 drivers/net/ethernet/netronome/nfp/flower/offload.c nfp_flower_update_merge_with_actions(struct nfp_fl_payload *flow,
flow              528 drivers/net/ethernet/netronome/nfp/flower/offload.c 	while (act_off < flow->meta.act_len) {
flow              529 drivers/net/ethernet/netronome/nfp/flower/offload.c 		a = (struct nfp_fl_act_head *)&flow->action_data[act_off];
flow              617 drivers/net/ethernet/netronome/nfp/flower/offload.c nfp_flower_populate_merge_match(struct nfp_fl_payload *flow,
flow              622 drivers/net/ethernet/netronome/nfp/flower/offload.c 	u8 *mask = flow->mask_data;
flow              883 drivers/net/ethernet/netronome/nfp/flower/offload.c 		if (link->sub_flow.flow == sub_flow) {
flow              898 drivers/net/ethernet/netronome/nfp/flower/offload.c 	link->merge_flow.flow = merge_flow;
flow              900 drivers/net/ethernet/netronome/nfp/flower/offload.c 	link->sub_flow.flow = sub_flow;
flow             1017 drivers/net/ethernet/netronome/nfp/flower/offload.c 				 struct nfp_fl_payload *flow,
flow             1023 drivers/net/ethernet/netronome/nfp/flower/offload.c 	u8 *mask = flow->mask_data;
flow             1028 drivers/net/ethernet/netronome/nfp/flower/offload.c 	meta_tci = (struct nfp_flower_meta_tci *)flow->unmasked_data;
flow             1033 drivers/net/ethernet/netronome/nfp/flower/offload.c 		flow->pre_tun_rule.vlan_tci = cpu_to_be16(vlan_tci);
flow             1036 drivers/net/ethernet/netronome/nfp/flower/offload.c 		flow->pre_tun_rule.vlan_tci = cpu_to_be16(0xffff);
flow             1078 drivers/net/ethernet/netronome/nfp/flower/offload.c 	act = (struct nfp_fl_act_head *)&flow->action_data[act_offset];
flow             1086 drivers/net/ethernet/netronome/nfp/flower/offload.c 		act = (struct nfp_fl_act_head *)&flow->action_data[act_offset];
flow             1097 drivers/net/ethernet/netronome/nfp/flower/offload.c 	if (act_offset != flow->meta.act_len) {
flow             1117 drivers/net/ethernet/netronome/nfp/flower/offload.c 		       struct flow_cls_offload *flow)
flow             1127 drivers/net/ethernet/netronome/nfp/flower/offload.c 	extack = flow->common.extack;
flow             1135 drivers/net/ethernet/netronome/nfp/flower/offload.c 	err = nfp_flower_calculate_key_layers(app, netdev, key_layer, flow,
flow             1146 drivers/net/ethernet/netronome/nfp/flower/offload.c 	err = nfp_flower_compile_flow_match(app, flow, key_layer, netdev,
flow             1151 drivers/net/ethernet/netronome/nfp/flower/offload.c 	err = nfp_flower_compile_action(app, flow, netdev, flow_pay, extack);
flow             1161 drivers/net/ethernet/netronome/nfp/flower/offload.c 	err = nfp_compile_flow_metadata(app, flow, flow_pay, netdev, extack);
flow             1165 drivers/net/ethernet/netronome/nfp/flower/offload.c 	flow_pay->tc_flower_cookie = flow->cookie;
flow             1220 drivers/net/ethernet/netronome/nfp/flower/offload.c 	origin = link->sub_flow.flow;
flow             1273 drivers/net/ethernet/netronome/nfp/flower/offload.c 					     link->merge_flow.flow);
flow             1289 drivers/net/ethernet/netronome/nfp/flower/offload.c 		       struct flow_cls_offload *flow)
flow             1297 drivers/net/ethernet/netronome/nfp/flower/offload.c 	extack = flow->common.extack;
flow             1301 drivers/net/ethernet/netronome/nfp/flower/offload.c 	nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev);
flow             1367 drivers/net/ethernet/netronome/nfp/flower/offload.c 		sub_flow = link->sub_flow.flow;
flow             1384 drivers/net/ethernet/netronome/nfp/flower/offload.c 		__nfp_flower_update_merge_stats(app, link->merge_flow.flow);
flow             1400 drivers/net/ethernet/netronome/nfp/flower/offload.c 		     struct flow_cls_offload *flow)
flow             1407 drivers/net/ethernet/netronome/nfp/flower/offload.c 	extack = flow->common.extack;
flow             1408 drivers/net/ethernet/netronome/nfp/flower/offload.c 	nfp_flow = nfp_flower_search_fl_table(app, flow->cookie, netdev);
flow             1421 drivers/net/ethernet/netronome/nfp/flower/offload.c 	flow_stats_update(&flow->stats, priv->stats[ctx_id].bytes,
flow               62 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 				struct tc_cls_matchall_offload *flow,
flow               65 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	struct flow_action_entry *action = &flow->rule->action.entries[0];
flow               91 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	if (!flow_offload_has_one_action(&flow->rule->action)) {
flow               96 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	if (flow->common.prio != 1) {
flow              138 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 			       struct tc_cls_matchall_offload *flow,
flow              291 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 			      struct tc_cls_matchall_offload *flow,
flow              322 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	flow_stats_update(&flow->stats, diff_bytes, diff_pkts,
flow              343 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 				 struct tc_cls_matchall_offload *flow)
flow              345 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	struct netlink_ext_ack *extack = flow->common.extack;
flow              353 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 	switch (flow->command) {
flow              355 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 		return nfp_flower_install_rate_limiter(app, netdev, flow,
flow              358 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 		return nfp_flower_remove_rate_limiter(app, netdev, flow,
flow              361 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c 		return nfp_flower_stats_rate_limiter(app, netdev, flow,
flow              291 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 		    struct flowi4 *flow, struct neighbour *neigh, gfp_t flag)
flow              301 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.dst_ipv4 = flow->daddr;
flow              312 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.src_ipv4 = flow->saddr;
flow              331 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	struct flowi4 flow = {};
flow              349 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow.daddr = *(__be32 *)n->primary_key;
flow              359 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	if (!nfp_tun_has_route(app, flow.daddr))
flow              364 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	rt = ip_route_output_key(dev_net(n->dev), &flow);
flow              374 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow.flowi4_proto = IPPROTO_UDP;
flow              375 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	nfp_tun_write_neigh(n->dev, app, &flow, n, GFP_ATOMIC);
flow              384 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	struct flowi4 flow = {};
flow              396 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow.daddr = payload->ipv4_addr;
flow              397 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow.flowi4_proto = IPPROTO_UDP;
flow              401 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	rt = ip_route_output_key(dev_net(netdev), &flow);
flow              410 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	n = dst_neigh_lookup(&rt->dst, &flow.daddr);
flow              414 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	nfp_tun_write_neigh(n->dev, app, &flow, n, GFP_ATOMIC);
flow              934 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 				 struct nfp_fl_payload *flow)
flow              947 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	internal_dev = flow->pre_tun_rule.dev;
flow              948 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.vlan_tci = flow->pre_tun_rule.vlan_tci;
flow              949 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.host_ctx_id = flow->meta.host_ctx_id;
flow              963 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow->pre_tun_rule.vlan_tci = payload.vlan_tci;
flow              964 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	flow->pre_tun_rule.port_idx = payload.port_idx;
flow              978 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 				     struct nfp_fl_payload *flow)
flow              989 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.vlan_tci = flow->pre_tun_rule.vlan_tci;
flow              990 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c 	payload.port_idx = flow->pre_tun_rule.port_idx;
flow             2052 drivers/net/ethernet/qlogic/qede/qede_filter.c 	struct ethtool_rx_flow_rule *flow;
flow             2075 drivers/net/ethernet/qlogic/qede/qede_filter.c 	flow = ethtool_rx_flow_rule_create(&input);
flow             2076 drivers/net/ethernet/qlogic/qede/qede_filter.c 	if (IS_ERR(flow))
flow             2077 drivers/net/ethernet/qlogic/qede/qede_filter.c 		return PTR_ERR(flow);
flow             2079 drivers/net/ethernet/qlogic/qede/qede_filter.c 	if (qede_parse_flow_attr(edev, proto, flow->rule, t)) {
flow             2085 drivers/net/ethernet/qlogic/qede/qede_filter.c 	err = qede_flow_spec_validate(edev, &flow->rule->action, t,
flow             2088 drivers/net/ethernet/qlogic/qede/qede_filter.c 	ethtool_rx_flow_rule_destroy(flow);
flow              911 drivers/net/ethernet/smsc/smsc911x.c 	u32 flow;
flow              920 drivers/net/ethernet/smsc/smsc911x.c 			flow = 0xFFFF0002;
flow              922 drivers/net/ethernet/smsc/smsc911x.c 			flow = 0;
flow              934 drivers/net/ethernet/smsc/smsc911x.c 		flow = 0;
flow              939 drivers/net/ethernet/smsc/smsc911x.c 	smsc911x_mac_write(pdata, FLOW, flow);
flow             1048 drivers/net/ethernet/smsc/smsc9420.c 	u32 flow;
flow             1056 drivers/net/ethernet/smsc/smsc9420.c 			flow = 0xFFFF0002;
flow             1058 drivers/net/ethernet/smsc/smsc9420.c 			flow = 0;
flow             1065 drivers/net/ethernet/smsc/smsc9420.c 		flow = 0;
flow             1068 drivers/net/ethernet/smsc/smsc9420.c 	smsc9420_reg_write(pd, FLOW, flow);
flow              235 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c 	unsigned int flow = GMAC_FLOW_CTRL_UP;
flow              240 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c 		flow |= GMAC_FLOW_CTRL_RFE;
flow              244 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c 		flow |= GMAC_FLOW_CTRL_TFE;
flow              249 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c 		flow |= (pause_time << GMAC_FLOW_CTRL_PT_SHIFT);
flow              252 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c 	writel(flow, ioaddr + GMAC_FLOW_CTRL);
flow              140 drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c 	unsigned int flow = MAC_FLOW_CTRL_ENABLE;
flow              143 drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c 		flow |= (pause_time << MAC_FLOW_CTRL_PT_SHIFT);
flow              144 drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c 	writel(flow, ioaddr + MAC_FLOW_CTRL);
flow              480 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 	unsigned int flow = 0;
flow              486 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 		flow |= GMAC_RX_FLOW_CTRL_RFE;
flow              488 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 	writel(flow, ioaddr + GMAC_RX_FLOW_CTRL);
flow              497 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 			flow = GMAC_TX_FLOW_CTRL_TFE;
flow              500 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 				flow |=
flow              503 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c 			writel(flow, ioaddr + GMAC_QX_TX_FLOW_CTRL(queue));
flow              163 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		u32 flow = readl(ioaddr + XGMAC_MTL_RXQ_FLOW_CONTROL(channel));
flow              199 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		flow &= ~XGMAC_RFD;
flow              200 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		flow |= rfd << XGMAC_RFD_SHIFT;
flow              202 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		flow &= ~XGMAC_RFA;
flow              203 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		flow |= rfa << XGMAC_RFA_SHIFT;
flow              205 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		writel(flow, ioaddr + XGMAC_MTL_RXQ_FLOW_CONTROL(channel));
flow              473 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 	u32 flow = readl(ioaddr + XGMAC_RX_FLOW_CTRL);
flow              481 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c 		writel(flow & (~XGMAC_RFE), ioaddr + XGMAC_RX_FLOW_CTRL);
flow             2161 drivers/net/ethernet/sun/cassini.c 	struct sk_buff_head *flow = &cp->rx_flows[flowid];
flow             2167 drivers/net/ethernet/sun/cassini.c 	__skb_queue_tail(flow, skb);
flow             2169 drivers/net/ethernet/sun/cassini.c 		while ((skb = __skb_dequeue(flow))) {
flow               43 drivers/net/gtp.c 			u16	flow;
flow              415 drivers/net/gtp.c 	gtp0->flow	= htons(pctx->u.v0.flow);
flow              923 drivers/net/gtp.c 		pctx->u.v0.flow = nla_get_u16(info->attrs[GTPA_FLOW]);
flow             1192 drivers/net/gtp.c 		    nla_put_u16(skb, GTPA_FLOW, pctx->u.v0.flow))
flow              253 drivers/net/hyperv/netvsc_drv.c 	struct flow_keys flow;
flow              259 drivers/net/hyperv/netvsc_drv.c 	if (!skb_flow_dissect_flow_keys(skb, &flow, 0))
flow              262 drivers/net/hyperv/netvsc_drv.c 	switch (flow.basic.ip_proto) {
flow              264 drivers/net/hyperv/netvsc_drv.c 		if (flow.basic.n_proto == htons(ETH_P_IP))
flow              266 drivers/net/hyperv/netvsc_drv.c 		else if (flow.basic.n_proto == htons(ETH_P_IPV6))
flow              272 drivers/net/hyperv/netvsc_drv.c 		if (flow.basic.n_proto == htons(ETH_P_IP))
flow              274 drivers/net/hyperv/netvsc_drv.c 		else if (flow.basic.n_proto == htons(ETH_P_IPV6))
flow              283 drivers/net/hyperv/netvsc_drv.c 		if (flow.basic.n_proto == htons(ETH_P_IP))
flow              284 drivers/net/hyperv/netvsc_drv.c 			hash = jhash2((u32 *)&flow.addrs.v4addrs, 2, hashrnd);
flow              285 drivers/net/hyperv/netvsc_drv.c 		else if (flow.basic.n_proto == htons(ETH_P_IPV6))
flow              286 drivers/net/hyperv/netvsc_drv.c 			hash = jhash2((u32 *)&flow.addrs.v6addrs, 8, hashrnd);
flow             1130 drivers/net/usb/lan78xx.c 	u32 flow = 0, fct_flow = 0;
flow             1140 drivers/net/usb/lan78xx.c 		flow |= (FLOW_CR_TX_FCEN_ | 0xFFFF);
flow             1143 drivers/net/usb/lan78xx.c 		flow |= FLOW_CR_RX_FCEN_;
flow             1157 drivers/net/usb/lan78xx.c 	ret = lan78xx_write_reg(dev, FLOW, flow);
flow              589 drivers/net/usb/smsc75xx.c 	u32 flow = 0, fct_flow = 0;
flow              596 drivers/net/usb/smsc75xx.c 			flow = (FLOW_TX_FCEN | 0xFFFF);
flow              602 drivers/net/usb/smsc75xx.c 			flow |= FLOW_RX_FCEN;
flow              611 drivers/net/usb/smsc75xx.c 	ret = smsc75xx_write_reg(dev, FLOW, flow);
flow              517 drivers/net/usb/smsc95xx.c 	u32 flow = 0, afc_cfg;
flow              527 drivers/net/usb/smsc95xx.c 			flow = 0xFFFF0002;
flow              531 drivers/net/usb/smsc95xx.c 			flow |= 0xFFFF0000;
flow              544 drivers/net/usb/smsc95xx.c 	ret = smsc95xx_write_reg(dev, FLOW, flow);
flow               43 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c brcmf_flowring_is_tdls_mac(struct brcmf_flowring *flow, u8 mac[ETH_ALEN])
flow               47 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	search = flow->tdls_entry;
flow               59 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
flow               71 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT);
flow               77 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	if ((sta) && (flow->tdls_active) &&
flow               78 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	    (brcmf_flowring_is_tdls_mac(flow, da))) {
flow               85 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	hash = flow->hash;
flow              103 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
flow              116 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT);
flow              122 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	if ((sta) && (flow->tdls_active) &&
flow              123 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	    (brcmf_flowring_is_tdls_mac(flow, da))) {
flow              130 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	hash = flow->hash;
flow              141 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		for (i = 0; i < flow->nrofrings; i++) {
flow              142 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			if (flow->rings[i] == NULL)
flow              145 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		if (i == flow->nrofrings)
flow              160 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->rings[i] = ring;
flow              168 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u8 brcmf_flowring_tid(struct brcmf_flowring *flow, u16 flowid)
flow              172 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              174 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	return flow->hash[ring->hash_id].fifo;
flow              178 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c static void brcmf_flowring_block(struct brcmf_flowring *flow, u16 flowid,
flow              190 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	spin_lock_irqsave(&flow->block_lock, flags);
flow              192 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              194 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		spin_unlock_irqrestore(&flow->block_lock, flags);
flow              197 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ifidx = brcmf_flowring_ifidx_get(flow, flowid);
flow              200 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	for (i = 0; i < flow->nrofrings; i++) {
flow              201 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		if ((flow->rings[i]) && (i != flowid)) {
flow              202 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			ring = flow->rings[i];
flow              204 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			    (brcmf_flowring_ifidx_get(flow, i) == ifidx)) {
flow              212 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	flow->rings[flowid]->blocked = blocked;
flow              214 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		spin_unlock_irqrestore(&flow->block_lock, flags);
flow              218 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	bus_if = dev_get_drvdata(flow->dev);
flow              223 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	spin_unlock_irqrestore(&flow->block_lock, flags);
flow              227 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_delete(struct brcmf_flowring *flow, u16 flowid)
flow              229 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	struct brcmf_bus *bus_if = dev_get_drvdata(flow->dev);
flow              236 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              240 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ifidx = brcmf_flowring_ifidx_get(flow, flowid);
flow              243 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	brcmf_flowring_block(flow, flowid, false);
flow              245 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	flow->hash[hash_idx].ifidx = BRCMF_FLOWRING_INVALID_IFIDX;
flow              246 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	eth_zero_addr(flow->hash[hash_idx].mac);
flow              247 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	flow->rings[flowid] = NULL;
flow              259 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u32 brcmf_flowring_enqueue(struct brcmf_flowring *flow, u16 flowid,
flow              264 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              270 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		brcmf_flowring_block(flow, flowid, true);
flow              279 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			brcmf_flowring_block(flow, flowid, false);
flow              285 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c struct sk_buff *brcmf_flowring_dequeue(struct brcmf_flowring *flow, u16 flowid)
flow              290 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              298 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		brcmf_flowring_block(flow, flowid, false);
flow              306 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_reinsert(struct brcmf_flowring *flow, u16 flowid,
flow              311 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              317 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u32 brcmf_flowring_qlen(struct brcmf_flowring *flow, u16 flowid)
flow              321 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              332 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_open(struct brcmf_flowring *flow, u16 flowid)
flow              336 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              346 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c u8 brcmf_flowring_ifidx_get(struct brcmf_flowring *flow, u16 flowid)
flow              351 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	ring = flow->rings[flowid];
flow              354 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	return flow->hash[hash_idx].ifidx;
flow              360 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	struct brcmf_flowring *flow;
flow              363 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	flow = kzalloc(sizeof(*flow), GFP_KERNEL);
flow              364 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	if (flow) {
flow              365 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->dev = dev;
flow              366 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->nrofrings = nrofrings;
flow              367 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		spin_lock_init(&flow->block_lock);
flow              368 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		for (i = 0; i < ARRAY_SIZE(flow->addr_mode); i++)
flow              369 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flow->addr_mode[i] = ADDR_INDIRECT;
flow              370 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		for (i = 0; i < ARRAY_SIZE(flow->hash); i++)
flow              371 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flow->hash[i].ifidx = BRCMF_FLOWRING_INVALID_IFIDX;
flow              372 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->rings = kcalloc(nrofrings, sizeof(*flow->rings),
flow              374 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		if (!flow->rings) {
flow              375 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			kfree(flow);
flow              376 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flow = NULL;
flow              380 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	return flow;
flow              384 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_detach(struct brcmf_flowring *flow)
flow              386 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	struct brcmf_bus *bus_if = dev_get_drvdata(flow->dev);
flow              392 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	for (flowid = 0; flowid < flow->nrofrings; flowid++) {
flow              393 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		if (flow->rings[flowid])
flow              397 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	search = flow->tdls_entry;
flow              403 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	kfree(flow->rings);
flow              404 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	kfree(flow);
flow              408 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_configure_addr_mode(struct brcmf_flowring *flow, int ifidx,
flow              411 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	struct brcmf_bus *bus_if = dev_get_drvdata(flow->dev);
flow              416 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	if (flow->addr_mode[ifidx] != addr_mode) {
flow              417 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		for (i = 0; i < ARRAY_SIZE(flow->hash); i++) {
flow              418 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			if (flow->hash[i].ifidx == ifidx) {
flow              419 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 				flowid = flow->hash[i].flowid;
flow              420 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 				if (flow->rings[flowid]->status != RING_OPEN)
flow              422 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 				flow->rings[flowid]->status = RING_CLOSING;
flow              426 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->addr_mode[ifidx] = addr_mode;
flow              431 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_delete_peer(struct brcmf_flowring *flow, int ifidx,
flow              434 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	struct brcmf_bus *bus_if = dev_get_drvdata(flow->dev);
flow              443 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	sta = (flow->addr_mode[ifidx] == ADDR_INDIRECT);
flow              445 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	search = flow->tdls_entry;
flow              456 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	hash = flow->hash;
flow              460 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flowid = flow->hash[i].flowid;
flow              461 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			if (flow->rings[flowid]->status == RING_OPEN) {
flow              462 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 				flow->rings[flowid]->status = RING_CLOSING;
flow              472 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flow->tdls_entry = search->next;
flow              474 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		if (flow->tdls_entry == NULL)
flow              475 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 			flow->tdls_active = false;
flow              480 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c void brcmf_flowring_add_tdls_peer(struct brcmf_flowring *flow, int ifidx,
flow              492 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	if (flow->tdls_entry == NULL) {
flow              493 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		flow->tdls_entry = tdls_entry;
flow              495 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 		search = flow->tdls_entry;
flow              506 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c 	flow->tdls_active = true;
flow               50 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u32 brcmf_flowring_lookup(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
flow               52 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN],
flow               54 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_delete(struct brcmf_flowring *flow, u16 flowid);
flow               55 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_open(struct brcmf_flowring *flow, u16 flowid);
flow               56 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u8 brcmf_flowring_tid(struct brcmf_flowring *flow, u16 flowid);
flow               57 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u32 brcmf_flowring_enqueue(struct brcmf_flowring *flow, u16 flowid,
flow               59 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h struct sk_buff *brcmf_flowring_dequeue(struct brcmf_flowring *flow, u16 flowid);
flow               60 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_reinsert(struct brcmf_flowring *flow, u16 flowid,
flow               62 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u32 brcmf_flowring_qlen(struct brcmf_flowring *flow, u16 flowid);
flow               63 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h u8 brcmf_flowring_ifidx_get(struct brcmf_flowring *flow, u16 flowid);
flow               65 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_detach(struct brcmf_flowring *flow);
flow               66 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_configure_addr_mode(struct brcmf_flowring *flow, int ifidx,
flow               68 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_delete_peer(struct brcmf_flowring *flow, int ifidx,
flow               70 drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.h void brcmf_flowring_add_tdls_peer(struct brcmf_flowring *flow, int ifidx,
flow              264 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	struct brcmf_flowring *flow;
flow              555 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	brcmf_flowring_delete(msgbuf->flow, flowid);
flow              598 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		brcmf_flowring_delete(msgbuf->flow, flowid);
flow              620 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	create->tid = brcmf_flowring_tid(msgbuf->flow, flowid);
flow              672 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	flowid = brcmf_flowring_create(msgbuf->flow, eh->h_dest,
flow              695 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	struct brcmf_flowring *flow = msgbuf->flow;
flow              713 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	while (brcmf_flowring_qlen(flow, flowid)) {
flow              714 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		skb = brcmf_flowring_dequeue(flow, flowid);
flow              717 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 				 brcmf_flowring_qlen(flow, flowid));
flow              724 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 			brcmf_flowring_reinsert(flow, flowid, skb);
flow              732 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 			brcmf_flowring_reinsert(flow, flowid, skb);
flow              741 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		tx_msghdr->msg.ifidx = brcmf_flowring_ifidx_get(flow, flowid);
flow              799 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	struct brcmf_flowring *flow = msgbuf->flow;
flow              805 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	flowid = brcmf_flowring_lookup(flow, eh->h_dest, skb->priority, ifidx);
flow              811 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	queue_count = brcmf_flowring_enqueue(flow, flowid, skb);
flow              825 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	brcmf_flowring_configure_addr_mode(msgbuf->flow, ifidx, addr_mode);
flow              834 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	brcmf_flowring_delete_peer(msgbuf->flow, ifidx, peer);
flow              843 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	brcmf_flowring_add_tdls_peer(msgbuf->flow, ifidx, peer);
flow             1246 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	brcmf_flowring_open(msgbuf->flow, flowid);
flow             1269 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		brcmf_flowring_delete(msgbuf->flow, flowid);
flow             1381 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		qlen = brcmf_flowring_qlen(msgbuf->flow, flowid);
flow             1420 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	ifidx = brcmf_flowring_ifidx_get(msgbuf->flow, flowid);
flow             1471 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	for (i = 0; i < msgbuf->flow->nrofrings; i++) {
flow             1472 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		if (!msgbuf->flow->rings[i])
flow             1474 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		ring = msgbuf->flow->rings[i];
flow             1478 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		hash = &msgbuf->flow->hash[ring->hash_id];
flow             1584 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	msgbuf->flow = brcmf_flowring_attach(drvr->bus_if->dev,
flow             1586 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 	if (!msgbuf->flow)
flow             1649 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 		brcmf_flowring_detach(msgbuf->flow);
flow              151 drivers/net/xen-netback/hash.c 	struct flow_keys flow;
flow              180 drivers/net/xen-netback/hash.c 	memset(&flow, 0, sizeof(flow));
flow              181 drivers/net/xen-netback/hash.c 	if (!skb_flow_dissect_flow_keys(skb, &flow, 0))
flow              184 drivers/net/xen-netback/hash.c 	has_tcp_hdr = (flow.basic.ip_proto == IPPROTO_TCP) &&
flow              185 drivers/net/xen-netback/hash.c 		      !(flow.control.flags & FLOW_DIS_IS_FRAGMENT);
flow              193 drivers/net/xen-netback/hash.c 			memcpy(&data[0], &flow.addrs.v4addrs.src, 4);
flow              194 drivers/net/xen-netback/hash.c 			memcpy(&data[4], &flow.addrs.v4addrs.dst, 4);
flow              195 drivers/net/xen-netback/hash.c 			memcpy(&data[8], &flow.ports.src, 2);
flow              196 drivers/net/xen-netback/hash.c 			memcpy(&data[10], &flow.ports.dst, 2);
flow              203 drivers/net/xen-netback/hash.c 			memcpy(&data[0], &flow.addrs.v4addrs.src, 4);
flow              204 drivers/net/xen-netback/hash.c 			memcpy(&data[4], &flow.addrs.v4addrs.dst, 4);
flow              217 drivers/net/xen-netback/hash.c 			memcpy(&data[0], &flow.addrs.v6addrs.src, 16);
flow              218 drivers/net/xen-netback/hash.c 			memcpy(&data[16], &flow.addrs.v6addrs.dst, 16);
flow              219 drivers/net/xen-netback/hash.c 			memcpy(&data[32], &flow.ports.src, 2);
flow              220 drivers/net/xen-netback/hash.c 			memcpy(&data[34], &flow.ports.dst, 2);
flow              227 drivers/net/xen-netback/hash.c 			memcpy(&data[0], &flow.addrs.v6addrs.src, 16);
flow              228 drivers/net/xen-netback/hash.c 			memcpy(&data[16], &flow.addrs.v6addrs.dst, 16);
flow              126 drivers/soc/ti/knav_dma.c 	unsigned			channel, flow;
flow              133 drivers/soc/ti/knav_dma.c 			ch->channel : ch->flow)
flow              477 drivers/soc/ti/knav_dma.c 			if (chan->flow == chan_num) {
flow              532 drivers/soc/ti/knav_dma.c 			chan->channel, chan->flow, chan->dma->name);
flow              562 drivers/soc/ti/knav_dma.c static int pktdma_init_rx_chan(struct knav_dma_chan *chan, u32 flow)
flow              566 drivers/soc/ti/knav_dma.c 	chan->flow = flow;
flow              567 drivers/soc/ti/knav_dma.c 	chan->reg_rx_flow = dma->reg_rx_flow + flow;
flow              569 drivers/soc/ti/knav_dma.c 	dev_dbg(kdev->dev, "rx flow(%d) (%p)\n", chan->flow, chan->reg_rx_flow);
flow              581 drivers/soc/ti/knav_dma.c 	chan->flow = DMA_INVALID_ID;
flow             1700 drivers/tty/n_tty.c 			 char *fp, int count, int flow)
flow             1732 drivers/tty/n_tty.c 			ldata->no_room = flow && !room;
flow              427 drivers/tty/serial/21285.c 	int flow = 'n';
flow              438 drivers/tty/serial/21285.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              442 drivers/tty/serial/21285.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              101 drivers/tty/serial/8250/8250_ingenic.c 		unsigned int parity, bits, flow; /* unused for now */
flow              103 drivers/tty/serial/8250/8250_ingenic.c 		uart_parse_options(opt, &baud, &parity, &bits, &flow);
flow             3222 drivers/tty/serial/8250/8250_port.c 	int flow = 'n';
flow             3228 drivers/tty/serial/8250/8250_port.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             3232 drivers/tty/serial/8250/8250_port.c 	return uart_set_options(port, port->cons, baud, parity, bits, flow);
flow              466 drivers/tty/serial/altera_uart.c 	int flow = 'n';
flow              475 drivers/tty/serial/altera_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              477 drivers/tty/serial/altera_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              643 drivers/tty/serial/amba-pl010.c 	int flow = 'n';
flow              664 drivers/tty/serial/amba-pl010.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              668 drivers/tty/serial/amba-pl010.c 	return uart_set_options(&uap->port, co, baud, parity, bits, flow);
flow             2296 drivers/tty/serial/amba-pl011.c 	int flow = 'n';
flow             2332 drivers/tty/serial/amba-pl011.c 					   &baud, &parity, &bits, &flow);
flow             2337 drivers/tty/serial/amba-pl011.c 	return uart_set_options(&uap->port, co, baud, parity, bits, flow);
flow              483 drivers/tty/serial/apbuart.c 	int flow = 'n';
flow              501 drivers/tty/serial/apbuart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              505 drivers/tty/serial/apbuart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              587 drivers/tty/serial/ar933x_uart.c 	int flow = 'n';
flow              597 drivers/tty/serial/ar933x_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              599 drivers/tty/serial/ar933x_uart.c 	return uart_set_options(&up->port, co, baud, parity, bits, flow);
flow              494 drivers/tty/serial/arc_uart.c 	int flow = 'n';
flow              508 drivers/tty/serial/arc_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              514 drivers/tty/serial/arc_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             2640 drivers/tty/serial/atmel_serial.c 	int flow = 'n';
flow             2657 drivers/tty/serial/atmel_serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2661 drivers/tty/serial/atmel_serial.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              740 drivers/tty/serial/bcm63xx_uart.c 	int flow = 'n';
flow              748 drivers/tty/serial/bcm63xx_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              750 drivers/tty/serial/bcm63xx_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              385 drivers/tty/serial/clps711x.c 	int baud = 38400, bits = 8, parity = 'n', flow = 'n';
flow              422 drivers/tty/serial/clps711x.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              424 drivers/tty/serial/clps711x.c 	ret = uart_set_options(port, co, baud, parity, bits, flow);
flow             1293 drivers/tty/serial/cpm_uart/cpm_uart_core.c 	int flow = 'n';
flow             1332 drivers/tty/serial/cpm_uart/cpm_uart_core.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1362 drivers/tty/serial/cpm_uart/cpm_uart_core.c 	uart_set_options(port, co, baud, parity, bits, flow);
flow              418 drivers/tty/serial/digicolor-usart.c 	int baud = 115200, bits = 8, parity = 'n', flow = 'n';
flow              429 drivers/tty/serial/digicolor-usart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              431 drivers/tty/serial/digicolor-usart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              871 drivers/tty/serial/dz.c 	int flow = 'n';
flow              884 drivers/tty/serial/dz.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              886 drivers/tty/serial/dz.c 	return uart_set_options(&dport->port, co, baud, parity, bits, flow);
flow              601 drivers/tty/serial/efm32-uart.c 	int flow = 'n';
flow              632 drivers/tty/serial/efm32-uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              637 drivers/tty/serial/efm32-uart.c 	return uart_set_options(&efm_port->port, co, baud, parity, bits, flow);
flow              719 drivers/tty/serial/fsl_linflexuart.c 	int flow = 'n';
flow              736 drivers/tty/serial/fsl_linflexuart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              756 drivers/tty/serial/fsl_linflexuart.c 	ret = uart_set_options(sport, co, baud, parity, bits, flow);
flow             2252 drivers/tty/serial/fsl_lpuart.c 	int flow = 'n';
flow             2267 drivers/tty/serial/fsl_lpuart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2279 drivers/tty/serial/fsl_lpuart.c 	return uart_set_options(&sport->port, co, baud, parity, bits, flow);
flow             2059 drivers/tty/serial/imx.c 	int flow = 'n';
flow             2079 drivers/tty/serial/imx.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2085 drivers/tty/serial/imx.c 	retval = uart_set_options(&sport->port, co, baud, parity, bits, flow);
flow             1037 drivers/tty/serial/ip22zilog.c 	int flow = 'n';
flow             1052 drivers/tty/serial/ip22zilog.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1053 drivers/tty/serial/ip22zilog.c 	return uart_set_options(&up->port, con, baud, parity, bits, flow);
flow              648 drivers/tty/serial/lantiq.c 	int flow = 'n';
flow              665 drivers/tty/serial/lantiq.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              666 drivers/tty/serial/lantiq.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              163 drivers/tty/serial/lpc32xx_hs.c 	int flow = 'n';
flow              173 drivers/tty/serial/lpc32xx_hs.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              177 drivers/tty/serial/lpc32xx_hs.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              901 drivers/tty/serial/max310x.c 	unsigned int lcr = 0, flow = 0;
flow              973 drivers/tty/serial/max310x.c 		flow |= MAX310X_FLOWCTRL_AUTOCTS_BIT |
flow              977 drivers/tty/serial/max310x.c 		flow |= MAX310X_FLOWCTRL_SWFLOW3_BIT |
flow              981 drivers/tty/serial/max310x.c 		flow |= MAX310X_FLOWCTRL_SWFLOW1_BIT |
flow              984 drivers/tty/serial/max310x.c 	max310x_port_write(port, MAX310X_FLOWCTRL_REG, flow);
flow              551 drivers/tty/serial/mcf.c 	int flow = 'n';
flow              560 drivers/tty/serial/mcf.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              562 drivers/tty/serial/mcf.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              514 drivers/tty/serial/meson_uart.c 	int flow = 'n';
flow              526 drivers/tty/serial/meson_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              528 drivers/tty/serial/meson_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              428 drivers/tty/serial/milbeaut_usio.c 	int flow = 'n';
flow              440 drivers/tty/serial/milbeaut_usio.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              443 drivers/tty/serial/milbeaut_usio.c 		flow = 'r';
flow              445 drivers/tty/serial/milbeaut_usio.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             1539 drivers/tty/serial/mpc52xx_uart.c 			    int *baud, int *parity, int *bits, int *flow)
flow             1619 drivers/tty/serial/mpc52xx_uart.c 	int flow = 'n';
flow             1668 drivers/tty/serial/mpc52xx_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1670 drivers/tty/serial/mpc52xx_uart.c 		mpc52xx_console_get_options(port, &baud, &parity, &bits, &flow);
flow             1673 drivers/tty/serial/mpc52xx_uart.c 		 baud, bits, parity, flow);
flow             1675 drivers/tty/serial/mpc52xx_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              457 drivers/tty/serial/mps2-uart.c 	int flow = 'n';
flow              468 drivers/tty/serial/mps2-uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              470 drivers/tty/serial/mps2-uart.c 	return uart_set_options(&mps_port->port, co, baud, parity, bits, flow);
flow             1663 drivers/tty/serial/msm_serial.c 	int flow = 'n';
flow             1676 drivers/tty/serial/msm_serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1680 drivers/tty/serial/msm_serial.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              698 drivers/tty/serial/mvebu-uart.c 	int flow = 'n';
flow              711 drivers/tty/serial/mvebu-uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              713 drivers/tty/serial/mvebu-uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             1442 drivers/tty/serial/mxs-auart.c 	int flow = 'n';
flow             1461 drivers/tty/serial/mxs-auart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1465 drivers/tty/serial/mxs-auart.c 	ret = uart_set_options(&s->port, co, baud, parity, bits, flow);
flow             1356 drivers/tty/serial/omap-serial.c 	int flow = 'n';
flow             1363 drivers/tty/serial/omap-serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1365 drivers/tty/serial/omap-serial.c 	return uart_set_options(&up->port, co, baud, parity, bits, flow);
flow              555 drivers/tty/serial/owl-uart.c 	int flow = 'n';
flow              565 drivers/tty/serial/owl-uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              567 drivers/tty/serial/owl-uart.c 	return uart_set_options(&owl_port->port, co, baud, parity, bits, flow);
flow             1685 drivers/tty/serial/pch_uart.c 	int flow = 'n';
flow             1702 drivers/tty/serial/pch_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1704 drivers/tty/serial/pch_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              731 drivers/tty/serial/pic32_uart.c 	int flow = 'n';
flow              747 drivers/tty/serial/pic32_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              749 drivers/tty/serial/pic32_uart.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow               27 drivers/tty/serial/pic32_uart.h 	int flow;
flow             1986 drivers/tty/serial/pmac_zilog.c 	int flow = 'n';
flow             2032 drivers/tty/serial/pmac_zilog.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2034 drivers/tty/serial/pmac_zilog.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              725 drivers/tty/serial/pnx8xxx_uart.c 	int flow = 'n';
flow              737 drivers/tty/serial/pnx8xxx_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              739 drivers/tty/serial/pnx8xxx_uart.c 	return uart_set_options(&sport->port, co, baud, parity, bits, flow);
flow              732 drivers/tty/serial/pxa.c 	int flow = 'n';
flow              741 drivers/tty/serial/pxa.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              743 drivers/tty/serial/pxa.c 	return uart_set_options(&up->port, co, baud, parity, bits, flow);
flow             1073 drivers/tty/serial/qcom_geni_serial.c 	int flow = 'n';
flow             1097 drivers/tty/serial/qcom_geni_serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1099 drivers/tty/serial/qcom_geni_serial.c 	return uart_set_options(uport, co, baud, parity, bits, flow);
flow              642 drivers/tty/serial/rda-uart.c 	int flow = 'n';
flow              652 drivers/tty/serial/rda-uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              654 drivers/tty/serial/rda-uart.c 	return uart_set_options(&rda_port->port, co, baud, parity, bits, flow);
flow              787 drivers/tty/serial/sa1100.c 	int flow = 'n';
flow              799 drivers/tty/serial/sa1100.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              803 drivers/tty/serial/sa1100.c 	return uart_set_options(&sport->port, co, baud, parity, bits, flow);
flow             2205 drivers/tty/serial/samsung.c 	int flow = 'n';
flow             2232 drivers/tty/serial/samsung.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2238 drivers/tty/serial/samsung.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              873 drivers/tty/serial/sb1250-duart.c 	int flow = 'n';
flow              886 drivers/tty/serial/sb1250-duart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              887 drivers/tty/serial/sb1250-duart.c 	return uart_set_options(uport, co, baud, parity, bits, flow);
flow              871 drivers/tty/serial/sc16is7xx.c 	unsigned int lcr, flow = 0;
flow              935 drivers/tty/serial/sc16is7xx.c 		flow |= SC16IS7XX_EFR_AUTOCTS_BIT |
flow              938 drivers/tty/serial/sc16is7xx.c 		flow |= SC16IS7XX_EFR_SWFLOW3_BIT;
flow              940 drivers/tty/serial/sc16is7xx.c 		flow |= SC16IS7XX_EFR_SWFLOW1_BIT;
flow              942 drivers/tty/serial/sc16is7xx.c 	sc16is7xx_port_write(port, SC16IS7XX_EFR_REG, flow);
flow              863 drivers/tty/serial/sccnxp.c 	int baud = 9600, bits = 8, parity = 'n', flow = 'n';
flow              866 drivers/tty/serial/sccnxp.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              868 drivers/tty/serial/sccnxp.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             2031 drivers/tty/serial/serial_core.c 		   int *bits, int *flow)
flow             2043 drivers/tty/serial/serial_core.c 		*flow = *s;
flow             2058 drivers/tty/serial/serial_core.c 		 int baud, int parity, int bits, int flow)
flow             2093 drivers/tty/serial/serial_core.c 	if (flow == 'r')
flow             2400 drivers/tty/serial/serial_core.c 	int flow = 'n';
flow             2422 drivers/tty/serial/serial_core.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             2423 drivers/tty/serial/serial_core.c 		ret = uart_set_options(port, NULL, baud, parity, bits, flow);
flow              936 drivers/tty/serial/serial_txx9.c 	int flow = 'n';
flow              953 drivers/tty/serial/serial_txx9.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              955 drivers/tty/serial/serial_txx9.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             3062 drivers/tty/serial/sh-sci.c 	int flow = 'n';
flow             3085 drivers/tty/serial/sh-sci.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             3087 drivers/tty/serial/sh-sci.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              806 drivers/tty/serial/sifive.c 	int flow = 'n';
flow              816 drivers/tty/serial/sifive.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              818 drivers/tty/serial/sifive.c 	return uart_set_options(&ssp->port, co, baud, parity, bits, flow);
flow             1089 drivers/tty/serial/sirfsoc_uart.c 	unsigned int flow = 'n';
flow             1106 drivers/tty/serial/sirfsoc_uart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1112 drivers/tty/serial/sirfsoc_uart.c 	return uart_set_options(&sirfport->port, co, baud, parity, bits, flow);
flow              993 drivers/tty/serial/sprd_serial.c 	int flow = 'n';
flow             1005 drivers/tty/serial/sprd_serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1008 drivers/tty/serial/sprd_serial.c 				parity, bits, flow);
flow              918 drivers/tty/serial/st-asc.c 	int flow = 'n';
flow              935 drivers/tty/serial/st-asc.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              937 drivers/tty/serial/st-asc.c 	return uart_set_options(&ascport->port, co, baud, parity, bits, flow);
flow             1298 drivers/tty/serial/stm32-usart.c 	int flow = 'n';
flow             1315 drivers/tty/serial/stm32-usart.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1317 drivers/tty/serial/stm32-usart.c 	return uart_set_options(&stm32port->port, co, baud, parity, bits, flow);
flow              515 drivers/tty/serial/uartlite.c 	int flow = 'n';
flow              533 drivers/tty/serial/uartlite.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              535 drivers/tty/serial/uartlite.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow              778 drivers/tty/serial/vr41xx_siu.c 	int flow = 'n';
flow              794 drivers/tty/serial/vr41xx_siu.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              796 drivers/tty/serial/vr41xx_siu.c 	return uart_set_options(port, con, baud, parity, bits, flow);
flow              527 drivers/tty/serial/vt8500_serial.c 	int flow = 'n';
flow              538 drivers/tty/serial/vt8500_serial.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow              541 drivers/tty/serial/vt8500_serial.c 				 co, baud, parity, bits, flow);
flow             1250 drivers/tty/serial/xilinx_uartps.c 	int flow = 'n';
flow             1259 drivers/tty/serial/xilinx_uartps.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1261 drivers/tty/serial/xilinx_uartps.c 	return uart_set_options(port, co, baud, parity, bits, flow);
flow             1207 drivers/tty/serial/zs.c 	int flow = 'n';
flow             1218 drivers/tty/serial/zs.c 		uart_parse_options(options, &baud, &parity, &bits, &flow);
flow             1219 drivers/tty/serial/zs.c 	return uart_set_options(uport, co, baud, parity, bits, flow);
flow              228 drivers/usb/serial/whiteheat.h 	__u8	flow;		/* flow control state, see WHITEHEAT_FLOW_*
flow              376 fs/reiserfs/fix_node.c 		       int to, int to_bytes, short *snum012, int flow)
flow              495 fs/reiserfs/fix_node.c 			flow = 1;
flow              499 fs/reiserfs/fix_node.c 		if (!flow) {
flow               84 include/linux/hsi/hsi.h 		unsigned int	flow;		/* RX only */
flow              399 include/linux/serial_core.h 			int *flow);
flow              401 include/linux/serial_core.h 		     int parity, int bits, int flow);
flow             1300 include/linux/skbuff.h 					      struct flow_keys *flow,
flow             1303 include/linux/skbuff.h 	memset(flow, 0, sizeof(*flow));
flow             1305 include/linux/skbuff.h 				  flow, NULL, 0, 0, 0, flags);
flow             1311 include/linux/skbuff.h 				 struct flow_keys_basic *flow, void *data,
flow             1315 include/linux/skbuff.h 	memset(flow, 0, sizeof(*flow));
flow             1316 include/linux/skbuff.h 	return __skb_flow_dissect(net, skb, &flow_keys_basic_dissector, flow,
flow              294 include/net/flow_dissector.h __be32 flow_get_u32_src(const struct flow_keys *flow);
flow              295 include/net/flow_dissector.h __be32 flow_get_u32_dst(const struct flow_keys *flow);
flow              313 include/net/flow_dissector.h 			   const struct flow_keys *flow);
flow               15 include/net/fq_impl.h 			      struct fq_flow *flow,
flow               18 include/net/fq_impl.h 	struct fq_tin *tin = flow->tin;
flow               22 include/net/fq_impl.h 	flow->backlog -= skb->len;
flow               27 include/net/fq_impl.h static void fq_rejigger_backlog(struct fq *fq, struct fq_flow *flow)
flow               31 include/net/fq_impl.h 	if (flow->backlog == 0) {
flow               32 include/net/fq_impl.h 		list_del_init(&flow->backlogchain);
flow               34 include/net/fq_impl.h 		i = flow;
flow               37 include/net/fq_impl.h 			if (i->backlog < flow->backlog)
flow               40 include/net/fq_impl.h 		list_move_tail(&flow->backlogchain,
flow               46 include/net/fq_impl.h 				       struct fq_flow *flow)
flow               52 include/net/fq_impl.h 	skb = __skb_dequeue(&flow->queue);
flow               56 include/net/fq_impl.h 	fq_adjust_removal(fq, flow, skb);
flow               57 include/net/fq_impl.h 	fq_rejigger_backlog(fq, flow);
flow               66 include/net/fq_impl.h 	struct fq_flow *flow;
flow               80 include/net/fq_impl.h 	flow = list_first_entry(head, struct fq_flow, flowchain);
flow               82 include/net/fq_impl.h 	if (flow->deficit <= 0) {
flow               83 include/net/fq_impl.h 		flow->deficit += fq->quantum;
flow               84 include/net/fq_impl.h 		list_move_tail(&flow->flowchain,
flow               89 include/net/fq_impl.h 	skb = dequeue_func(fq, tin, flow);
flow               94 include/net/fq_impl.h 			list_move_tail(&flow->flowchain, &tin->old_flows);
flow               96 include/net/fq_impl.h 			list_del_init(&flow->flowchain);
flow               97 include/net/fq_impl.h 			flow->tin = NULL;
flow              102 include/net/fq_impl.h 	flow->deficit -= skb->len;
flow              121 include/net/fq_impl.h 	struct fq_flow *flow;
flow              125 include/net/fq_impl.h 	flow = &fq->flows[idx];
flow              126 include/net/fq_impl.h 	if (flow->tin && flow->tin != tin) {
flow              127 include/net/fq_impl.h 		flow = get_default_func(fq, tin, idx, skb);
flow              132 include/net/fq_impl.h 	if (!flow->tin)
flow              135 include/net/fq_impl.h 	return flow;
flow              140 include/net/fq_impl.h 			      struct fq_flow *flow)
flow              144 include/net/fq_impl.h 	if (list_empty(&flow->backlogchain))
flow              145 include/net/fq_impl.h 		list_add_tail(&flow->backlogchain, &fq->backlogs);
flow              147 include/net/fq_impl.h 	i = flow;
flow              150 include/net/fq_impl.h 		if (i->backlog > flow->backlog)
flow              153 include/net/fq_impl.h 	list_move(&flow->backlogchain, &i->backlogchain);
flow              162 include/net/fq_impl.h 	struct fq_flow *flow;
flow              167 include/net/fq_impl.h 	flow = fq_flow_classify(fq, tin, idx, skb, get_default_func);
flow              169 include/net/fq_impl.h 	flow->tin = tin;
flow              170 include/net/fq_impl.h 	flow->backlog += skb->len;
flow              176 include/net/fq_impl.h 	fq_recalc_backlog(fq, tin, flow);
flow              178 include/net/fq_impl.h 	if (list_empty(&flow->flowchain)) {
flow              179 include/net/fq_impl.h 		flow->deficit = fq->quantum;
flow              180 include/net/fq_impl.h 		list_add_tail(&flow->flowchain,
flow              184 include/net/fq_impl.h 	__skb_queue_tail(&flow->queue, skb);
flow              187 include/net/fq_impl.h 		flow = list_first_entry_or_null(&fq->backlogs,
flow              190 include/net/fq_impl.h 		if (!flow)
flow              193 include/net/fq_impl.h 		skb = fq_flow_dequeue(fq, flow);
flow              197 include/net/fq_impl.h 		free_func(fq, flow->tin, flow, skb);
flow              199 include/net/fq_impl.h 		flow->tin->overlimit++;
flow              209 include/net/fq_impl.h 			   struct fq_flow *flow,
flow              214 include/net/fq_impl.h 	struct fq_tin *tin = flow->tin;
flow              219 include/net/fq_impl.h 	skb_queue_walk_safe(&flow->queue, skb, tmp) {
flow              220 include/net/fq_impl.h 		if (!filter_func(fq, tin, flow, skb, filter_data))
flow              223 include/net/fq_impl.h 		__skb_unlink(skb, &flow->queue);
flow              224 include/net/fq_impl.h 		fq_adjust_removal(fq, flow, skb);
flow              225 include/net/fq_impl.h 		free_func(fq, tin, flow, skb);
flow              228 include/net/fq_impl.h 	fq_rejigger_backlog(fq, flow);
flow              237 include/net/fq_impl.h 	struct fq_flow *flow;
flow              241 include/net/fq_impl.h 	list_for_each_entry(flow, &tin->new_flows, flowchain)
flow              242 include/net/fq_impl.h 		fq_flow_filter(fq, flow, filter_func, filter_data, free_func);
flow              243 include/net/fq_impl.h 	list_for_each_entry(flow, &tin->old_flows, flowchain)
flow              244 include/net/fq_impl.h 		fq_flow_filter(fq, flow, filter_func, filter_data, free_func);
flow              248 include/net/fq_impl.h 			  struct fq_flow *flow,
flow              253 include/net/fq_impl.h 	while ((skb = fq_flow_dequeue(fq, flow)))
flow              254 include/net/fq_impl.h 		free_func(fq, flow->tin, flow, skb);
flow              256 include/net/fq_impl.h 	if (!list_empty(&flow->flowchain))
flow              257 include/net/fq_impl.h 		list_del_init(&flow->flowchain);
flow              259 include/net/fq_impl.h 	if (!list_empty(&flow->backlogchain))
flow              260 include/net/fq_impl.h 		list_del_init(&flow->backlogchain);
flow              262 include/net/fq_impl.h 	flow->tin = NULL;
flow              264 include/net/fq_impl.h 	WARN_ON_ONCE(flow->backlog);
flow              272 include/net/fq_impl.h 	struct fq_flow *flow;
flow              282 include/net/fq_impl.h 		flow = list_first_entry(head, struct fq_flow, flowchain);
flow              283 include/net/fq_impl.h 		fq_flow_reset(fq, flow, free_func);
flow              290 include/net/fq_impl.h static void fq_flow_init(struct fq_flow *flow)
flow              292 include/net/fq_impl.h 	INIT_LIST_HEAD(&flow->flowchain);
flow              293 include/net/fq_impl.h 	INIT_LIST_HEAD(&flow->backlogchain);
flow              294 include/net/fq_impl.h 	__skb_queue_head_init(&flow->queue);
flow               17 include/net/gtp.h 	__be16	flow;
flow              535 include/net/ip.h static inline void iph_to_flow_copy_v4addrs(struct flow_keys *flow,
flow              538 include/net/ip.h 	BUILD_BUG_ON(offsetof(typeof(flow->addrs), v4addrs.dst) !=
flow              539 include/net/ip.h 		     offsetof(typeof(flow->addrs), v4addrs.src) +
flow              540 include/net/ip.h 			      sizeof(flow->addrs.v4addrs.src));
flow              541 include/net/ip.h 	memcpy(&flow->addrs.v4addrs, &iph->saddr, sizeof(flow->addrs.v4addrs));
flow              542 include/net/ip.h 	flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS;
flow              831 include/net/ipv6.h static inline void iph_to_flow_copy_v6addrs(struct flow_keys *flow,
flow              834 include/net/ipv6.h 	BUILD_BUG_ON(offsetof(typeof(flow->addrs), v6addrs.dst) !=
flow              835 include/net/ipv6.h 		     offsetof(typeof(flow->addrs), v6addrs.src) +
flow              836 include/net/ipv6.h 		     sizeof(flow->addrs.v6addrs.src));
flow              837 include/net/ipv6.h 	memcpy(&flow->addrs.v6addrs, &iph->saddr, sizeof(flow->addrs.v6addrs));
flow              838 include/net/ipv6.h 	flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
flow               14 include/net/netfilter/nf_dup_netdev.h 			       struct nft_flow_rule *flow,
flow               91 include/net/netfilter/nf_flow_table.h void flow_offload_free(struct flow_offload *flow);
flow               93 include/net/netfilter/nf_flow_table.h int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow);
flow              101 include/net/netfilter/nf_flow_table.h void flow_offload_teardown(struct flow_offload *flow);
flow              102 include/net/netfilter/nf_flow_table.h static inline void flow_offload_dead(struct flow_offload *flow)
flow              104 include/net/netfilter/nf_flow_table.h 	flow->flags |= FLOW_OFFLOAD_DYING;
flow              107 include/net/netfilter/nf_flow_table.h int nf_flow_snat_port(const struct flow_offload *flow,
flow              110 include/net/netfilter/nf_flow_table.h int nf_flow_dnat_port(const struct flow_offload *flow,
flow              804 include/net/netfilter/nf_tables.h 						   struct nft_flow_rule *flow,
flow             1369 include/net/netfilter/nf_tables.h 	struct nft_flow_rule		*flow;
flow             1376 include/net/netfilter/nf_tables.h 	(((struct nft_trans_rule *)trans->data)->flow)
flow               66 include/net/netfilter/nf_tables_offload.h void nft_flow_rule_destroy(struct nft_flow_rule *flow);
flow              213 include/pcmcia/cistpl.h     u_char	flow;
flow               54 include/uapi/linux/hsi/hsi_char.h 	__u32 flow;
flow              326 include/video/imx-ipu-v3.h struct ipu_dp *ipu_dp_get(struct ipu_soc *ipu, unsigned int flow);
flow              195 net/caif/caif_socket.c 			 enum caif_ctrlcmd flow,
flow              199 net/caif/caif_socket.c 	switch (flow) {
flow              250 net/caif/caif_socket.c 		pr_debug("Unexpected flow command %d\n", flow);
flow              166 net/caif/chnl_net.c static void chnl_flowctrl_cb(struct cflayer *layr, enum caif_ctrlcmd flow,
flow              171 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_FLOW_ON_IND ? "ON" :
flow              172 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_INIT_RSP ? "INIT" :
flow              173 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_FLOW_OFF_IND ? "OFF" :
flow              174 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_DEINIT_RSP ? "CLOSE/DEINIT" :
flow              175 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_INIT_FAIL_RSP ? "OPEN_FAIL" :
flow              176 net/caif/chnl_net.c 		flow == CAIF_CTRLCMD_REMOTE_SHUTDOWN_IND ?
flow              181 net/caif/chnl_net.c 	switch (flow) {
flow             2871 net/core/ethtool.c 	struct ethtool_rx_flow_rule *flow;
flow             2874 net/core/ethtool.c 	flow = kzalloc(sizeof(struct ethtool_rx_flow_rule) +
flow             2876 net/core/ethtool.c 	if (!flow)
flow             2880 net/core/ethtool.c 	flow->rule = flow_rule_alloc(1);
flow             2881 net/core/ethtool.c 	if (!flow->rule) {
flow             2882 net/core/ethtool.c 		kfree(flow);
flow             2886 net/core/ethtool.c 	match = (struct ethtool_rx_flow_match *)flow->priv;
flow             2887 net/core/ethtool.c 	flow->rule->match.dissector	= &match->dissector;
flow             2888 net/core/ethtool.c 	flow->rule->match.mask		= &match->mask;
flow             2889 net/core/ethtool.c 	flow->rule->match.key		= &match->key;
flow             3020 net/core/ethtool.c 		ethtool_rx_flow_rule_destroy(flow);
flow             3089 net/core/ethtool.c 	act = &flow->rule->action.entries[0];
flow             3107 net/core/ethtool.c 	return flow;
flow             3111 net/core/ethtool.c void ethtool_rx_flow_rule_destroy(struct ethtool_rx_flow_rule *flow)
flow             3113 net/core/ethtool.c 	kfree(flow->rule);
flow             3114 net/core/ethtool.c 	kfree(flow);
flow             1402 net/core/flow_dissector.c static const void *flow_keys_hash_start(const struct flow_keys *flow)
flow             1405 net/core/flow_dissector.c 	return &flow->FLOW_KEYS_HASH_START_FIELD;
flow             1408 net/core/flow_dissector.c static inline size_t flow_keys_hash_length(const struct flow_keys *flow)
flow             1410 net/core/flow_dissector.c 	size_t diff = FLOW_KEYS_HASH_OFFSET + sizeof(flow->addrs);
flow             1411 net/core/flow_dissector.c 	BUILD_BUG_ON(offsetof(typeof(*flow), addrs) !=
flow             1412 net/core/flow_dissector.c 		     sizeof(*flow) - sizeof(flow->addrs));
flow             1414 net/core/flow_dissector.c 	switch (flow->control.addr_type) {
flow             1416 net/core/flow_dissector.c 		diff -= sizeof(flow->addrs.v4addrs);
flow             1419 net/core/flow_dissector.c 		diff -= sizeof(flow->addrs.v6addrs);
flow             1422 net/core/flow_dissector.c 		diff -= sizeof(flow->addrs.tipckey);
flow             1425 net/core/flow_dissector.c 	return sizeof(*flow) - diff;
flow             1428 net/core/flow_dissector.c __be32 flow_get_u32_src(const struct flow_keys *flow)
flow             1430 net/core/flow_dissector.c 	switch (flow->control.addr_type) {
flow             1432 net/core/flow_dissector.c 		return flow->addrs.v4addrs.src;
flow             1435 net/core/flow_dissector.c 			&flow->addrs.v6addrs.src);
flow             1437 net/core/flow_dissector.c 		return flow->addrs.tipckey.key;
flow             1444 net/core/flow_dissector.c __be32 flow_get_u32_dst(const struct flow_keys *flow)
flow             1446 net/core/flow_dissector.c 	switch (flow->control.addr_type) {
flow             1448 net/core/flow_dissector.c 		return flow->addrs.v4addrs.dst;
flow             1451 net/core/flow_dissector.c 			&flow->addrs.v6addrs.dst);
flow             1533 net/core/flow_dissector.c 			   const struct flow_keys *flow)
flow             1542 net/core/flow_dissector.c 	data->n_proto = flow->basic.n_proto;
flow             1543 net/core/flow_dissector.c 	data->ip_proto = flow->basic.ip_proto;
flow             1544 net/core/flow_dissector.c 	data->ports = flow->ports.ports;
flow             1545 net/core/flow_dissector.c 	data->src = flow->addrs.v4addrs.src;
flow             1546 net/core/flow_dissector.c 	data->dst = flow->addrs.v4addrs.dst;
flow             2200 net/core/pktgen.c static inline int f_seen(const struct pktgen_dev *pkt_dev, int flow)
flow             2202 net/core/pktgen.c 	return !!(pkt_dev->flows[flow].flags & F_INIT);
flow             2207 net/core/pktgen.c 	int flow = pkt_dev->curfl;
flow             2210 net/core/pktgen.c 		if (pkt_dev->flows[flow].count >= pkt_dev->lflow) {
flow             2212 net/core/pktgen.c 			pkt_dev->flows[flow].count = 0;
flow             2213 net/core/pktgen.c 			pkt_dev->flows[flow].flags = 0;
flow             2219 net/core/pktgen.c 		flow = prandom_u32() % pkt_dev->cflows;
flow             2220 net/core/pktgen.c 		pkt_dev->curfl = flow;
flow             2222 net/core/pktgen.c 		if (pkt_dev->flows[flow].count > pkt_dev->lflow) {
flow             2223 net/core/pktgen.c 			pkt_dev->flows[flow].count = 0;
flow             2224 net/core/pktgen.c 			pkt_dev->flows[flow].flags = 0;
flow             2237 net/core/pktgen.c static void get_ipsec_sa(struct pktgen_dev *pkt_dev, int flow)
flow             2239 net/core/pktgen.c 	struct xfrm_state *x = pkt_dev->flows[flow].x;
flow             2258 net/core/pktgen.c 			pkt_dev->flows[flow].x = x;
flow             2296 net/core/pktgen.c 	int flow = 0;
flow             2299 net/core/pktgen.c 		flow = f_pick(pkt_dev);
flow             2415 net/core/pktgen.c 		if (pkt_dev->cflows && f_seen(pkt_dev, flow)) {
flow             2416 net/core/pktgen.c 			pkt_dev->cur_daddr = pkt_dev->flows[flow].cur_daddr;
flow             2445 net/core/pktgen.c 				pkt_dev->flows[flow].flags |= F_INIT;
flow             2446 net/core/pktgen.c 				pkt_dev->flows[flow].cur_daddr =
flow             2450 net/core/pktgen.c 					get_ipsec_sa(pkt_dev, flow);
flow             2487 net/core/pktgen.c 	pkt_dev->flows[flow].count++;
flow               58 net/ipv4/netfilter/ipt_rpfilter.c 	struct flowi4 flow;
flow               74 net/ipv4/netfilter/ipt_rpfilter.c 	memset(&flow, 0, sizeof(flow));
flow               75 net/ipv4/netfilter/ipt_rpfilter.c 	flow.flowi4_iif = LOOPBACK_IFINDEX;
flow               76 net/ipv4/netfilter/ipt_rpfilter.c 	flow.daddr = iph->saddr;
flow               77 net/ipv4/netfilter/ipt_rpfilter.c 	flow.saddr = rpfilter_get_saddr(iph->daddr);
flow               78 net/ipv4/netfilter/ipt_rpfilter.c 	flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0;
flow               79 net/ipv4/netfilter/ipt_rpfilter.c 	flow.flowi4_tos = RT_TOS(iph->tos);
flow               80 net/ipv4/netfilter/ipt_rpfilter.c 	flow.flowi4_scope = RT_SCOPE_UNIVERSE;
flow               81 net/ipv4/netfilter/ipt_rpfilter.c 	flow.flowi4_oif = l3mdev_master_ifindex_rcu(xt_in(par));
flow               83 net/ipv4/netfilter/ipt_rpfilter.c 	return rpfilter_lookup_reverse(xt_net(par), &flow, xt_in(par), info->flags) ^ invert;
flow             1311 net/mac80211/tx.c 	struct fq_flow *flow;
flow             1318 net/mac80211/tx.c 		flow = &txqi->def_flow;
flow             1320 net/mac80211/tx.c 		flow = &fq->flows[cvars - local->cvars];
flow             1322 net/mac80211/tx.c 	return fq_flow_dequeue(fq, flow);
flow             1341 net/mac80211/tx.c 					   struct fq_flow *flow)
flow             1361 net/mac80211/tx.c 	if (flow == &txqi->def_flow)
flow             1364 net/mac80211/tx.c 		cvars = &local->cvars[flow - fq->flows];
flow             1367 net/mac80211/tx.c 			     &flow->backlog,
flow             1379 net/mac80211/tx.c 			     struct fq_flow *flow,
flow             1417 net/mac80211/tx.c 				struct fq_flow *flow, struct sk_buff *skb,
flow             3234 net/mac80211/tx.c 	struct fq_flow *flow;
flow             3282 net/mac80211/tx.c 	flow = fq_flow_classify(fq, tin, flow_idx, skb,
flow             3284 net/mac80211/tx.c 	head = skb_peek_tail(&flow->queue);
flow             3348 net/mac80211/tx.c 		flow->backlog += head->len - orig_len;
flow             3351 net/mac80211/tx.c 		fq_recalc_backlog(fq, tin, flow);
flow               55 net/netfilter/nf_dup_netdev.c 			       struct nft_flow_rule *flow,
flow               66 net/netfilter/nf_dup_netdev.c 	entry = &flow->rule->action.entries[ctx->num_actions++];
flow               18 net/netfilter/nf_flow_table_core.c 	struct flow_offload	flow;
flow               27 net/netfilter/nf_flow_table_core.c flow_offload_fill_dir(struct flow_offload *flow, struct nf_conn *ct,
flow               31 net/netfilter/nf_flow_table_core.c 	struct flow_offload_tuple *ft = &flow->tuplehash[dir].tuple;
flow               64 net/netfilter/nf_flow_table_core.c 	struct flow_offload *flow;
flow               74 net/netfilter/nf_flow_table_core.c 	flow = &entry->flow;
flow               84 net/netfilter/nf_flow_table_core.c 	flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_ORIGINAL);
flow               85 net/netfilter/nf_flow_table_core.c 	flow_offload_fill_dir(flow, ct, route, FLOW_OFFLOAD_DIR_REPLY);
flow               88 net/netfilter/nf_flow_table_core.c 		flow->flags |= FLOW_OFFLOAD_SNAT;
flow               90 net/netfilter/nf_flow_table_core.c 		flow->flags |= FLOW_OFFLOAD_DNAT;
flow               92 net/netfilter/nf_flow_table_core.c 	return flow;
flow              153 net/netfilter/nf_flow_table_core.c void flow_offload_free(struct flow_offload *flow)
flow              157 net/netfilter/nf_flow_table_core.c 	dst_release(flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_cache);
flow              158 net/netfilter/nf_flow_table_core.c 	dst_release(flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_cache);
flow              159 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              160 net/netfilter/nf_flow_table_core.c 	if (flow->flags & FLOW_OFFLOAD_DYING)
flow              201 net/netfilter/nf_flow_table_core.c int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
flow              205 net/netfilter/nf_flow_table_core.c 	flow->timeout = (u32)jiffies + NF_FLOW_TIMEOUT;
flow              208 net/netfilter/nf_flow_table_core.c 				     &flow->tuplehash[0].node,
flow              214 net/netfilter/nf_flow_table_core.c 				     &flow->tuplehash[1].node,
flow              218 net/netfilter/nf_flow_table_core.c 				       &flow->tuplehash[0].node,
flow              227 net/netfilter/nf_flow_table_core.c static inline bool nf_flow_has_expired(const struct flow_offload *flow)
flow              229 net/netfilter/nf_flow_table_core.c 	return nf_flow_timeout_delta(flow->timeout) <= 0;
flow              233 net/netfilter/nf_flow_table_core.c 			     struct flow_offload *flow)
flow              238 net/netfilter/nf_flow_table_core.c 			       &flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].node,
flow              241 net/netfilter/nf_flow_table_core.c 			       &flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].node,
flow              244 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              247 net/netfilter/nf_flow_table_core.c 	if (nf_flow_has_expired(flow))
flow              249 net/netfilter/nf_flow_table_core.c 	else if (flow->flags & FLOW_OFFLOAD_TEARDOWN)
flow              252 net/netfilter/nf_flow_table_core.c 	flow_offload_free(flow);
flow              255 net/netfilter/nf_flow_table_core.c void flow_offload_teardown(struct flow_offload *flow)
flow              259 net/netfilter/nf_flow_table_core.c 	flow->flags |= FLOW_OFFLOAD_TEARDOWN;
flow              261 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              271 net/netfilter/nf_flow_table_core.c 	struct flow_offload *flow;
flow              281 net/netfilter/nf_flow_table_core.c 	flow = container_of(tuplehash, struct flow_offload, tuplehash[dir]);
flow              282 net/netfilter/nf_flow_table_core.c 	if (flow->flags & (FLOW_OFFLOAD_DYING | FLOW_OFFLOAD_TEARDOWN))
flow              285 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              295 net/netfilter/nf_flow_table_core.c 		      void (*iter)(struct flow_offload *flow, void *data),
flow              300 net/netfilter/nf_flow_table_core.c 	struct flow_offload *flow;
flow              317 net/netfilter/nf_flow_table_core.c 		flow = container_of(tuplehash, struct flow_offload, tuplehash[0]);
flow              319 net/netfilter/nf_flow_table_core.c 		iter(flow, data);
flow              327 net/netfilter/nf_flow_table_core.c static void nf_flow_offload_gc_step(struct flow_offload *flow, void *data)
flow              332 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              333 net/netfilter/nf_flow_table_core.c 	if (nf_flow_has_expired(flow) || nf_ct_is_dying(e->ct) ||
flow              334 net/netfilter/nf_flow_table_core.c 	    (flow->flags & (FLOW_OFFLOAD_DYING | FLOW_OFFLOAD_TEARDOWN)))
flow              335 net/netfilter/nf_flow_table_core.c 		flow_offload_del(flow_table, flow);
flow              399 net/netfilter/nf_flow_table_core.c int nf_flow_snat_port(const struct flow_offload *flow,
flow              415 net/netfilter/nf_flow_table_core.c 		new_port = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_port;
flow              420 net/netfilter/nf_flow_table_core.c 		new_port = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_port;
flow              431 net/netfilter/nf_flow_table_core.c int nf_flow_dnat_port(const struct flow_offload *flow,
flow              447 net/netfilter/nf_flow_table_core.c 		new_port = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_port;
flow              452 net/netfilter/nf_flow_table_core.c 		new_port = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_port;
flow              485 net/netfilter/nf_flow_table_core.c static void nf_flow_table_do_cleanup(struct flow_offload *flow, void *data)
flow              490 net/netfilter/nf_flow_table_core.c 	e = container_of(flow, struct flow_offload_entry, flow);
flow              493 net/netfilter/nf_flow_table_core.c 		flow_offload_teardown(flow);
flow              497 net/netfilter/nf_flow_table_core.c 	    (flow->tuplehash[0].tuple.iifidx == dev->ifindex ||
flow              498 net/netfilter/nf_flow_table_core.c 	     flow->tuplehash[1].tuple.iifidx == dev->ifindex))
flow              499 net/netfilter/nf_flow_table_core.c 		flow_offload_dead(flow);
flow               19 net/netfilter/nf_flow_table_ip.c static int nf_flow_state_check(struct flow_offload *flow, int proto,
flow               32 net/netfilter/nf_flow_table_ip.c 		flow_offload_teardown(flow);
flow               92 net/netfilter/nf_flow_table_ip.c static int nf_flow_snat_ip(const struct flow_offload *flow, struct sk_buff *skb,
flow              101 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v4.s_addr;
flow              106 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v4.s_addr;
flow              117 net/netfilter/nf_flow_table_ip.c static int nf_flow_dnat_ip(const struct flow_offload *flow, struct sk_buff *skb,
flow              126 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v4.s_addr;
flow              131 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v4.s_addr;
flow              142 net/netfilter/nf_flow_table_ip.c static int nf_flow_nat_ip(const struct flow_offload *flow, struct sk_buff *skb,
flow              147 net/netfilter/nf_flow_table_ip.c 	if (flow->flags & FLOW_OFFLOAD_SNAT &&
flow              148 net/netfilter/nf_flow_table_ip.c 	    (nf_flow_snat_port(flow, skb, thoff, iph->protocol, dir) < 0 ||
flow              149 net/netfilter/nf_flow_table_ip.c 	     nf_flow_snat_ip(flow, skb, iph, thoff, dir) < 0))
flow              151 net/netfilter/nf_flow_table_ip.c 	if (flow->flags & FLOW_OFFLOAD_DNAT &&
flow              152 net/netfilter/nf_flow_table_ip.c 	    (nf_flow_dnat_port(flow, skb, thoff, iph->protocol, dir) < 0 ||
flow              153 net/netfilter/nf_flow_table_ip.c 	     nf_flow_dnat_ip(flow, skb, iph, thoff, dir) < 0))
flow              244 net/netfilter/nf_flow_table_ip.c 	struct flow_offload *flow;
flow              262 net/netfilter/nf_flow_table_ip.c 	flow = container_of(tuplehash, struct flow_offload, tuplehash[dir]);
flow              263 net/netfilter/nf_flow_table_ip.c 	rt = (struct rtable *)flow->tuplehash[dir].tuple.dst_cache;
flow              266 net/netfilter/nf_flow_table_ip.c 	if (unlikely(nf_flow_exceeds_mtu(skb, flow->tuplehash[dir].tuple.mtu)))
flow              273 net/netfilter/nf_flow_table_ip.c 	if (nf_flow_state_check(flow, ip_hdr(skb)->protocol, skb, thoff))
flow              277 net/netfilter/nf_flow_table_ip.c 		flow_offload_teardown(flow);
flow              281 net/netfilter/nf_flow_table_ip.c 	if (nf_flow_nat_ip(flow, skb, thoff, dir) < 0)
flow              284 net/netfilter/nf_flow_table_ip.c 	flow->timeout = (u32)jiffies + NF_FLOW_TIMEOUT;
flow              297 net/netfilter/nf_flow_table_ip.c 	nexthop = rt_nexthop(rt, flow->tuplehash[!dir].tuple.src_v4.s_addr);
flow              361 net/netfilter/nf_flow_table_ip.c static int nf_flow_snat_ipv6(const struct flow_offload *flow,
flow              371 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.dst_v6;
flow              376 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.src_v6;
flow              386 net/netfilter/nf_flow_table_ip.c static int nf_flow_dnat_ipv6(const struct flow_offload *flow,
flow              396 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].tuple.src_v6;
flow              401 net/netfilter/nf_flow_table_ip.c 		new_addr = flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].tuple.dst_v6;
flow              411 net/netfilter/nf_flow_table_ip.c static int nf_flow_nat_ipv6(const struct flow_offload *flow,
flow              418 net/netfilter/nf_flow_table_ip.c 	if (flow->flags & FLOW_OFFLOAD_SNAT &&
flow              419 net/netfilter/nf_flow_table_ip.c 	    (nf_flow_snat_port(flow, skb, thoff, ip6h->nexthdr, dir) < 0 ||
flow              420 net/netfilter/nf_flow_table_ip.c 	     nf_flow_snat_ipv6(flow, skb, ip6h, thoff, dir) < 0))
flow              422 net/netfilter/nf_flow_table_ip.c 	if (flow->flags & FLOW_OFFLOAD_DNAT &&
flow              423 net/netfilter/nf_flow_table_ip.c 	    (nf_flow_dnat_port(flow, skb, thoff, ip6h->nexthdr, dir) < 0 ||
flow              424 net/netfilter/nf_flow_table_ip.c 	     nf_flow_dnat_ipv6(flow, skb, ip6h, thoff, dir) < 0))
flow              476 net/netfilter/nf_flow_table_ip.c 	struct flow_offload *flow;
flow              492 net/netfilter/nf_flow_table_ip.c 	flow = container_of(tuplehash, struct flow_offload, tuplehash[dir]);
flow              493 net/netfilter/nf_flow_table_ip.c 	rt = (struct rt6_info *)flow->tuplehash[dir].tuple.dst_cache;
flow              496 net/netfilter/nf_flow_table_ip.c 	if (unlikely(nf_flow_exceeds_mtu(skb, flow->tuplehash[dir].tuple.mtu)))
flow              499 net/netfilter/nf_flow_table_ip.c 	if (nf_flow_state_check(flow, ipv6_hdr(skb)->nexthdr, skb,
flow              504 net/netfilter/nf_flow_table_ip.c 		flow_offload_teardown(flow);
flow              511 net/netfilter/nf_flow_table_ip.c 	if (nf_flow_nat_ipv6(flow, skb, dir) < 0)
flow              514 net/netfilter/nf_flow_table_ip.c 	flow->timeout = (u32)jiffies + NF_FLOW_TIMEOUT;
flow              527 net/netfilter/nf_flow_table_ip.c 	nexthop = rt6_nexthop(rt, &flow->tuplehash[!dir].tuple.src_v6);
flow             2723 net/netfilter/nf_tables_api.c 	struct nft_flow_rule *flow;
flow             2895 net/netfilter/nf_tables_api.c 		flow = nft_flow_rule_create(net, rule);
flow             2896 net/netfilter/nf_tables_api.c 		if (IS_ERR(flow))
flow             2897 net/netfilter/nf_tables_api.c 			return PTR_ERR(flow);
flow             2899 net/netfilter/nf_tables_api.c 		nft_trans_flow_rule(trans) = flow;
flow               12 net/netfilter/nf_tables_offload.c 	struct nft_flow_rule *flow;
flow               14 net/netfilter/nf_tables_offload.c 	flow = kzalloc(sizeof(struct nft_flow_rule), GFP_KERNEL);
flow               15 net/netfilter/nf_tables_offload.c 	if (!flow)
flow               18 net/netfilter/nf_tables_offload.c 	flow->rule = flow_rule_alloc(num_actions);
flow               19 net/netfilter/nf_tables_offload.c 	if (!flow->rule) {
flow               20 net/netfilter/nf_tables_offload.c 		kfree(flow);
flow               24 net/netfilter/nf_tables_offload.c 	flow->rule->match.dissector	= &flow->match.dissector;
flow               25 net/netfilter/nf_tables_offload.c 	flow->rule->match.mask		= &flow->match.mask;
flow               26 net/netfilter/nf_tables_offload.c 	flow->rule->match.key		= &flow->match.key;
flow               28 net/netfilter/nf_tables_offload.c 	return flow;
flow               35 net/netfilter/nf_tables_offload.c 	struct nft_flow_rule *flow;
flow               50 net/netfilter/nf_tables_offload.c 	flow = nft_flow_rule_alloc(num_actions);
flow               51 net/netfilter/nf_tables_offload.c 	if (!flow)
flow               69 net/netfilter/nf_tables_offload.c 		err = expr->ops->offload(ctx, flow, expr);
flow               75 net/netfilter/nf_tables_offload.c 	flow->proto = ctx->dep.l3num;
flow               78 net/netfilter/nf_tables_offload.c 	return flow;
flow               81 net/netfilter/nf_tables_offload.c 	nft_flow_rule_destroy(flow);
flow               86 net/netfilter/nf_tables_offload.c void nft_flow_rule_destroy(struct nft_flow_rule *flow)
flow               91 net/netfilter/nf_tables_offload.c 	flow_action_for_each(i, entry, &flow->rule->action) {
flow              101 net/netfilter/nf_tables_offload.c 	kfree(flow->rule);
flow              102 net/netfilter/nf_tables_offload.c 	kfree(flow);
flow              163 net/netfilter/nf_tables_offload.c 				 struct nft_flow_rule *flow,
flow              176 net/netfilter/nf_tables_offload.c 	if (flow)
flow              177 net/netfilter/nf_tables_offload.c 		proto = flow->proto;
flow              183 net/netfilter/nf_tables_offload.c 	if (flow)
flow              184 net/netfilter/nf_tables_offload.c 		cls_flow.rule = flow->rule;
flow              133 net/netfilter/nft_bitwise.c                                struct nft_flow_rule *flow,
flow              118 net/netfilter/nft_cmp.c 			     struct nft_flow_rule *flow,
flow              122 net/netfilter/nft_cmp.c 	u8 *mask = (u8 *)&flow->match.mask;
flow              123 net/netfilter/nft_cmp.c 	u8 *key = (u8 *)&flow->match.key;
flow              131 net/netfilter/nft_cmp.c 	flow->match.dissector.used_keys |= BIT(reg->key);
flow              132 net/netfilter/nft_cmp.c 	flow->match.dissector.offset[reg->key] = reg->base_offset;
flow              140 net/netfilter/nft_cmp.c 			   struct nft_flow_rule *flow,
flow              145 net/netfilter/nft_cmp.c 	return __nft_cmp_offload(ctx, flow, priv);
flow              186 net/netfilter/nft_cmp.c 				struct nft_flow_rule *flow,
flow              201 net/netfilter/nft_cmp.c 	return __nft_cmp_offload(ctx, flow, &cmp);
flow               61 net/netfilter/nft_dup_netdev.c 				  struct nft_flow_rule *flow,
flow               67 net/netfilter/nft_dup_netdev.c 	return nft_fwd_dup_netdev_offload(ctx, flow, FLOW_ACTION_MIRRED, oif);
flow               79 net/netfilter/nft_flow_offload.c 	struct flow_offload *flow;
flow              118 net/netfilter/nft_flow_offload.c 	flow = flow_offload_alloc(ct, &route);
flow              119 net/netfilter/nft_flow_offload.c 	if (!flow)
flow              127 net/netfilter/nft_flow_offload.c 	ret = flow_offload_add(flowtable, flow);
flow              135 net/netfilter/nft_flow_offload.c 	flow_offload_free(flow);
flow               71 net/netfilter/nft_fwd_netdev.c 				  struct nft_flow_rule *flow,
flow               77 net/netfilter/nft_fwd_netdev.c 	return nft_fwd_dup_netdev_offload(ctx, flow, FLOW_ACTION_REDIRECT, oif);
flow              129 net/netfilter/nft_immediate.c 					 struct nft_flow_rule *flow,
flow              135 net/netfilter/nft_immediate.c 	entry = &flow->rule->action.entries[ctx->num_actions++];
flow              153 net/netfilter/nft_immediate.c 				 struct nft_flow_rule *flow,
flow              159 net/netfilter/nft_immediate.c 		return nft_immediate_offload_verdict(ctx, flow, priv);
flow              533 net/netfilter/nft_meta.c 				struct nft_flow_rule *flow,
flow              158 net/netfilter/nft_payload.c 				  struct nft_flow_rule *flow,
flow              186 net/netfilter/nft_payload.c 				  struct nft_flow_rule *flow,
flow              222 net/netfilter/nft_payload.c 				  struct nft_flow_rule *flow,
flow              258 net/netfilter/nft_payload.c 				  struct nft_flow_rule *flow,
flow              265 net/netfilter/nft_payload.c 		err = nft_payload_offload_ip(ctx, flow, priv);
flow              268 net/netfilter/nft_payload.c 		err = nft_payload_offload_ip6(ctx, flow, priv);
flow              278 net/netfilter/nft_payload.c 				   struct nft_flow_rule *flow,
flow              306 net/netfilter/nft_payload.c 				   struct nft_flow_rule *flow,
flow              334 net/netfilter/nft_payload.c 				  struct nft_flow_rule *flow,
flow              341 net/netfilter/nft_payload.c 		err = nft_payload_offload_tcp(ctx, flow, priv);
flow              344 net/netfilter/nft_payload.c 		err = nft_payload_offload_udp(ctx, flow, priv);
flow              354 net/netfilter/nft_payload.c 			       struct nft_flow_rule *flow,
flow              362 net/netfilter/nft_payload.c 		err = nft_payload_offload_ll(ctx, flow, priv);
flow              365 net/netfilter/nft_payload.c 		err = nft_payload_offload_nh(ctx, flow, priv);
flow              368 net/netfilter/nft_payload.c 		err = nft_payload_offload_th(ctx, flow, priv);
flow               36 net/netfilter/xt_addrtype.c 	struct flowi6 flow;
flow               41 net/netfilter/xt_addrtype.c 	memset(&flow, 0, sizeof(flow));
flow               42 net/netfilter/xt_addrtype.c 	flow.daddr = *addr;
flow               44 net/netfilter/xt_addrtype.c 		flow.flowi6_oif = dev->ifindex;
flow               52 net/netfilter/xt_addrtype.c 				 flowi6_to_flowi(&flow), false);
flow              220 net/openvswitch/datapath.c 	struct sw_flow *flow;
flow              230 net/openvswitch/datapath.c 	flow = ovs_flow_tbl_lookup_stats(&dp->table, key, &n_mask_hit);
flow              231 net/openvswitch/datapath.c 	if (unlikely(!flow)) {
flow              247 net/openvswitch/datapath.c 	ovs_flow_stats_update(flow, key->tp.flags, skb);
flow              248 net/openvswitch/datapath.c 	sf_acts = rcu_dereference(flow->sf_acts);
flow              540 net/openvswitch/datapath.c 	struct sw_flow *flow;
flow              571 net/openvswitch/datapath.c 	flow = ovs_flow_alloc();
flow              572 net/openvswitch/datapath.c 	err = PTR_ERR(flow);
flow              573 net/openvswitch/datapath.c 	if (IS_ERR(flow))
flow              577 net/openvswitch/datapath.c 					     packet, &flow->key, log);
flow              582 net/openvswitch/datapath.c 				   &flow->key, &acts, log);
flow              586 net/openvswitch/datapath.c 	rcu_assign_pointer(flow->sf_acts, acts);
flow              587 net/openvswitch/datapath.c 	packet->priority = flow->key.phy.priority;
flow              588 net/openvswitch/datapath.c 	packet->mark = flow->key.phy.skb_mark;
flow              596 net/openvswitch/datapath.c 	input_vport = ovs_vport_rcu(dp, flow->key.phy.in_port);
flow              605 net/openvswitch/datapath.c 	sf_acts = rcu_dereference(flow->sf_acts);
flow              608 net/openvswitch/datapath.c 	err = ovs_execute_actions(dp, packet, sf_acts, &flow->key);
flow              612 net/openvswitch/datapath.c 	ovs_flow_free(flow, false);
flow              618 net/openvswitch/datapath.c 	ovs_flow_free(flow, false);
flow              734 net/openvswitch/datapath.c static int ovs_flow_cmd_fill_stats(const struct sw_flow *flow,
flow              741 net/openvswitch/datapath.c 	ovs_flow_stats_get(flow, &stats, &used, &tcp_flags);
flow              762 net/openvswitch/datapath.c static int ovs_flow_cmd_fill_actions(const struct sw_flow *flow,
flow              782 net/openvswitch/datapath.c 		sf_acts = rcu_dereference_ovsl(flow->sf_acts);
flow              802 net/openvswitch/datapath.c static int ovs_flow_cmd_fill_info(const struct sw_flow *flow, int dp_ifindex,
flow              817 net/openvswitch/datapath.c 	err = ovs_nla_put_identifier(flow, skb);
flow              821 net/openvswitch/datapath.c 	if (should_fill_key(&flow->id, ufid_flags)) {
flow              822 net/openvswitch/datapath.c 		err = ovs_nla_put_masked_key(flow, skb);
flow              828 net/openvswitch/datapath.c 		err = ovs_nla_put_mask(flow, skb);
flow              833 net/openvswitch/datapath.c 	err = ovs_flow_cmd_fill_stats(flow, skb);
flow              838 net/openvswitch/datapath.c 		err = ovs_flow_cmd_fill_actions(flow, skb, skb_orig_len);
flow              873 net/openvswitch/datapath.c static struct sk_buff *ovs_flow_cmd_build_info(const struct sw_flow *flow,
flow              881 net/openvswitch/datapath.c 	skb = ovs_flow_cmd_alloc_info(ovsl_dereference(flow->sf_acts),
flow              882 net/openvswitch/datapath.c 				      &flow->id, info, always, ufid_flags);
flow              886 net/openvswitch/datapath.c 	retval = ovs_flow_cmd_fill_info(flow, dp_ifindex, skb,
flow              901 net/openvswitch/datapath.c 	struct sw_flow *flow = NULL, *new_flow;
flow              974 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_ufid(&dp->table, &new_flow->id);
flow              975 net/openvswitch/datapath.c 	if (!flow)
flow              976 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup(&dp->table, &new_flow->key);
flow              977 net/openvswitch/datapath.c 	if (likely(!flow)) {
flow             1014 net/openvswitch/datapath.c 		if (unlikely(!ovs_flow_cmp(flow, &match))) {
flow             1015 net/openvswitch/datapath.c 			if (ovs_identifier_is_key(&flow->id))
flow             1016 net/openvswitch/datapath.c 				flow = ovs_flow_tbl_lookup_exact(&dp->table,
flow             1019 net/openvswitch/datapath.c 				flow = NULL;
flow             1020 net/openvswitch/datapath.c 			if (!flow) {
flow             1026 net/openvswitch/datapath.c 		old_acts = ovsl_dereference(flow->sf_acts);
flow             1027 net/openvswitch/datapath.c 		rcu_assign_pointer(flow->sf_acts, acts);
flow             1030 net/openvswitch/datapath.c 			error = ovs_flow_cmd_fill_info(flow,
flow             1141 net/openvswitch/datapath.c 	struct sw_flow *flow;
flow             1182 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_ufid(&dp->table, &sfid);
flow             1184 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_exact(&dp->table, &match);
flow             1185 net/openvswitch/datapath.c 	if (unlikely(!flow)) {
flow             1192 net/openvswitch/datapath.c 		old_acts = ovsl_dereference(flow->sf_acts);
flow             1193 net/openvswitch/datapath.c 		rcu_assign_pointer(flow->sf_acts, acts);
flow             1196 net/openvswitch/datapath.c 			error = ovs_flow_cmd_fill_info(flow,
flow             1206 net/openvswitch/datapath.c 		reply = ovs_flow_cmd_build_info(flow, ovs_header->dp_ifindex,
flow             1218 net/openvswitch/datapath.c 		ovs_flow_stats_clear(flow);
flow             1244 net/openvswitch/datapath.c 	struct sw_flow *flow;
flow             1274 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_ufid(&dp->table, &ufid);
flow             1276 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_exact(&dp->table, &match);
flow             1277 net/openvswitch/datapath.c 	if (!flow) {
flow             1282 net/openvswitch/datapath.c 	reply = ovs_flow_cmd_build_info(flow, ovs_header->dp_ifindex, info,
flow             1303 net/openvswitch/datapath.c 	struct sw_flow *flow = NULL;
flow             1334 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_ufid(&dp->table, &ufid);
flow             1336 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_lookup_exact(&dp->table, &match);
flow             1337 net/openvswitch/datapath.c 	if (unlikely(!flow)) {
flow             1342 net/openvswitch/datapath.c 	ovs_flow_tbl_remove(&dp->table, flow);
flow             1345 net/openvswitch/datapath.c 	reply = ovs_flow_cmd_alloc_info((const struct sw_flow_actions __force *) flow->sf_acts,
flow             1346 net/openvswitch/datapath.c 					&flow->id, info, false, ufid_flags);
flow             1350 net/openvswitch/datapath.c 			err = ovs_flow_cmd_fill_info(flow, ovs_header->dp_ifindex,
flow             1368 net/openvswitch/datapath.c 	ovs_flow_free(flow, true);
flow             1399 net/openvswitch/datapath.c 		struct sw_flow *flow;
flow             1404 net/openvswitch/datapath.c 		flow = ovs_flow_tbl_dump_next(ti, &bucket, &obj);
flow             1405 net/openvswitch/datapath.c 		if (!flow)
flow             1408 net/openvswitch/datapath.c 		if (ovs_flow_cmd_fill_info(flow, ovs_header->dp_ifindex, skb,
flow               59 net/openvswitch/flow.c void ovs_flow_stats_update(struct sw_flow *flow, __be16 tcp_flags,
flow               66 net/openvswitch/flow.c 	stats = rcu_dereference(flow->stats[cpu]);
flow               72 net/openvswitch/flow.c 		if (cpu == 0 && unlikely(flow->stats_last_writer != cpu))
flow               73 net/openvswitch/flow.c 			flow->stats_last_writer = cpu;
flow               75 net/openvswitch/flow.c 		stats = rcu_dereference(flow->stats[0]); /* Pre-allocated. */
flow               81 net/openvswitch/flow.c 		if (unlikely(flow->stats_last_writer != cpu)) {
flow               87 net/openvswitch/flow.c 			if (likely(flow->stats_last_writer != -1) &&
flow               88 net/openvswitch/flow.c 			    likely(!rcu_access_pointer(flow->stats[cpu]))) {
flow              106 net/openvswitch/flow.c 					rcu_assign_pointer(flow->stats[cpu],
flow              108 net/openvswitch/flow.c 					cpumask_set_cpu(cpu, &flow->cpu_used_mask);
flow              112 net/openvswitch/flow.c 			flow->stats_last_writer = cpu;
flow              125 net/openvswitch/flow.c void ovs_flow_stats_get(const struct sw_flow *flow,
flow              136 net/openvswitch/flow.c 	for (cpu = 0; cpu < nr_cpu_ids; cpu = cpumask_next(cpu, &flow->cpu_used_mask)) {
flow              137 net/openvswitch/flow.c 		struct sw_flow_stats *stats = rcu_dereference_ovsl(flow->stats[cpu]);
flow              155 net/openvswitch/flow.c void ovs_flow_stats_clear(struct sw_flow *flow)
flow              160 net/openvswitch/flow.c 	for (cpu = 0; cpu < nr_cpu_ids; cpu = cpumask_next(cpu, &flow->cpu_used_mask)) {
flow              161 net/openvswitch/flow.c 		struct sw_flow_stats *stats = ovsl_dereference(flow->stats[cpu]);
flow             2229 net/openvswitch/flow_netlink.c int ovs_nla_put_identifier(const struct sw_flow *flow, struct sk_buff *skb)
flow             2231 net/openvswitch/flow_netlink.c 	if (ovs_identifier_is_ufid(&flow->id))
flow             2232 net/openvswitch/flow_netlink.c 		return nla_put(skb, OVS_FLOW_ATTR_UFID, flow->id.ufid_len,
flow             2233 net/openvswitch/flow_netlink.c 			       flow->id.ufid);
flow             2235 net/openvswitch/flow_netlink.c 	return ovs_nla_put_key(flow->id.unmasked_key, flow->id.unmasked_key,
flow             2240 net/openvswitch/flow_netlink.c int ovs_nla_put_masked_key(const struct sw_flow *flow, struct sk_buff *skb)
flow             2242 net/openvswitch/flow_netlink.c 	return ovs_nla_put_key(&flow->key, &flow->key,
flow             2247 net/openvswitch/flow_netlink.c int ovs_nla_put_mask(const struct sw_flow *flow, struct sk_buff *skb)
flow             2249 net/openvswitch/flow_netlink.c 	return ovs_nla_put_key(&flow->key, &flow->mask->key,
flow               41 net/openvswitch/flow_netlink.h int ovs_nla_put_identifier(const struct sw_flow *flow, struct sk_buff *skb);
flow               42 net/openvswitch/flow_netlink.h int ovs_nla_put_masked_key(const struct sw_flow *flow, struct sk_buff *skb);
flow               43 net/openvswitch/flow_netlink.h int ovs_nla_put_mask(const struct sw_flow *flow, struct sk_buff *skb);
flow               68 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow               71 net/openvswitch/flow_table.c 	flow = kmem_cache_zalloc(flow_cache, GFP_KERNEL);
flow               72 net/openvswitch/flow_table.c 	if (!flow)
flow               75 net/openvswitch/flow_table.c 	flow->stats_last_writer = -1;
flow               86 net/openvswitch/flow_table.c 	RCU_INIT_POINTER(flow->stats[0], stats);
flow               88 net/openvswitch/flow_table.c 	cpumask_set_cpu(0, &flow->cpu_used_mask);
flow               90 net/openvswitch/flow_table.c 	return flow;
flow               92 net/openvswitch/flow_table.c 	kmem_cache_free(flow_cache, flow);
flow              101 net/openvswitch/flow_table.c static void flow_free(struct sw_flow *flow)
flow              105 net/openvswitch/flow_table.c 	if (ovs_identifier_is_key(&flow->id))
flow              106 net/openvswitch/flow_table.c 		kfree(flow->id.unmasked_key);
flow              107 net/openvswitch/flow_table.c 	if (flow->sf_acts)
flow              108 net/openvswitch/flow_table.c 		ovs_nla_free_flow_actions((struct sw_flow_actions __force *)flow->sf_acts);
flow              110 net/openvswitch/flow_table.c 	for (cpu = 0; cpu < nr_cpu_ids; cpu = cpumask_next(cpu, &flow->cpu_used_mask))
flow              111 net/openvswitch/flow_table.c 		if (flow->stats[cpu])
flow              113 net/openvswitch/flow_table.c 					(struct sw_flow_stats __force *)flow->stats[cpu]);
flow              114 net/openvswitch/flow_table.c 	kmem_cache_free(flow_cache, flow);
flow              119 net/openvswitch/flow_table.c 	struct sw_flow *flow = container_of(rcu, struct sw_flow, rcu);
flow              121 net/openvswitch/flow_table.c 	flow_free(flow);
flow              124 net/openvswitch/flow_table.c void ovs_flow_free(struct sw_flow *flow, bool deferred)
flow              126 net/openvswitch/flow_table.c 	if (!flow)
flow              130 net/openvswitch/flow_table.c 		call_rcu(&flow->rcu, rcu_free_flow_callback);
flow              132 net/openvswitch/flow_table.c 		flow_free(flow);
flow              214 net/openvswitch/flow_table.c 		struct sw_flow *flow;
flow              220 net/openvswitch/flow_table.c 		hlist_for_each_entry_safe(flow, n, head, flow_table.node[ver]) {
flow              221 net/openvswitch/flow_table.c 			hlist_del_rcu(&flow->flow_table.node[ver]);
flow              222 net/openvswitch/flow_table.c 			if (ovs_identifier_is_ufid(&flow->id))
flow              223 net/openvswitch/flow_table.c 				hlist_del_rcu(&flow->ufid_table.node[ufid_ver]);
flow              224 net/openvswitch/flow_table.c 			ovs_flow_free(flow, deferred);
flow              252 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow              261 net/openvswitch/flow_table.c 		hlist_for_each_entry_rcu(flow, head, flow_table.node[ver]) {
flow              267 net/openvswitch/flow_table.c 			return flow;
flow              283 net/openvswitch/flow_table.c 				  struct sw_flow *flow)
flow              287 net/openvswitch/flow_table.c 	head = find_bucket(ti, flow->flow_table.hash);
flow              288 net/openvswitch/flow_table.c 	hlist_add_head_rcu(&flow->flow_table.node[ti->node_ver], head);
flow              292 net/openvswitch/flow_table.c 				       struct sw_flow *flow)
flow              296 net/openvswitch/flow_table.c 	head = find_bucket(ti, flow->ufid_table.hash);
flow              297 net/openvswitch/flow_table.c 	hlist_add_head_rcu(&flow->ufid_table.node[ti->node_ver], head);
flow              311 net/openvswitch/flow_table.c 		struct sw_flow *flow;
flow              315 net/openvswitch/flow_table.c 			hlist_for_each_entry(flow, head,
flow              317 net/openvswitch/flow_table.c 				ufid_table_instance_insert(new, flow);
flow              319 net/openvswitch/flow_table.c 			hlist_for_each_entry(flow, head,
flow              321 net/openvswitch/flow_table.c 				table_instance_insert(new, flow);
flow              408 net/openvswitch/flow_table.c static bool flow_cmp_masked_key(const struct sw_flow *flow,
flow              412 net/openvswitch/flow_table.c 	return cmp_key(&flow->key, key, range->start, range->end);
flow              415 net/openvswitch/flow_table.c static bool ovs_flow_cmp_unmasked_key(const struct sw_flow *flow,
flow              422 net/openvswitch/flow_table.c 	BUG_ON(ovs_identifier_is_ufid(&flow->id));
flow              423 net/openvswitch/flow_table.c 	return cmp_key(flow->id.unmasked_key, key, key_start, key_end);
flow              430 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow              438 net/openvswitch/flow_table.c 	hlist_for_each_entry_rcu(flow, head, flow_table.node[ti->node_ver]) {
flow              439 net/openvswitch/flow_table.c 		if (flow->mask == mask && flow->flow_table.hash == hash &&
flow              440 net/openvswitch/flow_table.c 		    flow_cmp_masked_key(flow, &masked_key, &mask->range))
flow              441 net/openvswitch/flow_table.c 			return flow;
flow              452 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow              457 net/openvswitch/flow_table.c 		flow = masked_flow_lookup(ti, key, mask);
flow              458 net/openvswitch/flow_table.c 		if (flow)  /* Found */
flow              459 net/openvswitch/flow_table.c 			return flow;
flow              477 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow              481 net/openvswitch/flow_table.c 		flow = masked_flow_lookup(ti, match->key, mask);
flow              482 net/openvswitch/flow_table.c 		if (flow && ovs_identifier_is_key(&flow->id) &&
flow              483 net/openvswitch/flow_table.c 		    ovs_flow_cmp_unmasked_key(flow, match))
flow              484 net/openvswitch/flow_table.c 			return flow;
flow              494 net/openvswitch/flow_table.c static bool ovs_flow_cmp_ufid(const struct sw_flow *flow,
flow              497 net/openvswitch/flow_table.c 	if (flow->id.ufid_len != sfid->ufid_len)
flow              500 net/openvswitch/flow_table.c 	return !memcmp(flow->id.ufid, sfid->ufid, sfid->ufid_len);
flow              503 net/openvswitch/flow_table.c bool ovs_flow_cmp(const struct sw_flow *flow, const struct sw_flow_match *match)
flow              505 net/openvswitch/flow_table.c 	if (ovs_identifier_is_ufid(&flow->id))
flow              506 net/openvswitch/flow_table.c 		return flow_cmp_masked_key(flow, match->key, &match->range);
flow              508 net/openvswitch/flow_table.c 	return ovs_flow_cmp_unmasked_key(flow, match);
flow              515 net/openvswitch/flow_table.c 	struct sw_flow *flow;
flow              521 net/openvswitch/flow_table.c 	hlist_for_each_entry_rcu(flow, head, ufid_table.node[ti->node_ver]) {
flow              522 net/openvswitch/flow_table.c 		if (flow->ufid_table.hash == hash &&
flow              523 net/openvswitch/flow_table.c 		    ovs_flow_cmp_ufid(flow, ufid))
flow              524 net/openvswitch/flow_table.c 			return flow;
flow              565 net/openvswitch/flow_table.c void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow)
flow              571 net/openvswitch/flow_table.c 	hlist_del_rcu(&flow->flow_table.node[ti->node_ver]);
flow              573 net/openvswitch/flow_table.c 	if (ovs_identifier_is_ufid(&flow->id)) {
flow              574 net/openvswitch/flow_table.c 		hlist_del_rcu(&flow->ufid_table.node[ufid_ti->node_ver]);
flow              581 net/openvswitch/flow_table.c 	flow_mask_remove(table, flow->mask);
flow              622 net/openvswitch/flow_table.c static int flow_mask_insert(struct flow_table *tbl, struct sw_flow *flow,
flow              640 net/openvswitch/flow_table.c 	flow->mask = mask;
flow              645 net/openvswitch/flow_table.c static void flow_key_insert(struct flow_table *table, struct sw_flow *flow)
flow              650 net/openvswitch/flow_table.c 	flow->flow_table.hash = flow_hash(&flow->key, &flow->mask->range);
flow              652 net/openvswitch/flow_table.c 	table_instance_insert(ti, flow);
flow              669 net/openvswitch/flow_table.c static void flow_ufid_insert(struct flow_table *table, struct sw_flow *flow)
flow              673 net/openvswitch/flow_table.c 	flow->ufid_table.hash = ufid_hash(&flow->id);
flow              675 net/openvswitch/flow_table.c 	ufid_table_instance_insert(ti, flow);
flow              691 net/openvswitch/flow_table.c int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
flow              696 net/openvswitch/flow_table.c 	err = flow_mask_insert(table, flow, mask);
flow              699 net/openvswitch/flow_table.c 	flow_key_insert(table, flow);
flow              700 net/openvswitch/flow_table.c 	if (ovs_identifier_is_ufid(&flow->id))
flow              701 net/openvswitch/flow_table.c 		flow_ufid_insert(table, flow);
flow               56 net/openvswitch/flow_table.h int ovs_flow_tbl_insert(struct flow_table *table, struct sw_flow *flow,
flow               58 net/openvswitch/flow_table.h void ovs_flow_tbl_remove(struct flow_table *table, struct sw_flow *flow);
flow               66 net/sched/cls_flow.c static u32 flow_get_src(const struct sk_buff *skb, const struct flow_keys *flow)
flow               68 net/sched/cls_flow.c 	__be32 src = flow_get_u32_src(flow);
flow               76 net/sched/cls_flow.c static u32 flow_get_dst(const struct sk_buff *skb, const struct flow_keys *flow)
flow               78 net/sched/cls_flow.c 	__be32 dst = flow_get_u32_dst(flow);
flow               87 net/sched/cls_flow.c 			  const struct flow_keys *flow)
flow               89 net/sched/cls_flow.c 	return flow->basic.ip_proto;
flow               93 net/sched/cls_flow.c 			      const struct flow_keys *flow)
flow               95 net/sched/cls_flow.c 	if (flow->ports.ports)
flow               96 net/sched/cls_flow.c 		return ntohs(flow->ports.src);
flow              102 net/sched/cls_flow.c 			      const struct flow_keys *flow)
flow              104 net/sched/cls_flow.c 	if (flow->ports.ports)
flow              105 net/sched/cls_flow.c 		return ntohs(flow->ports.dst);
flow              152 net/sched/cls_flow.c 			     const struct flow_keys *flow)
flow              161 net/sched/cls_flow.c 	return flow_get_src(skb, flow);
flow              165 net/sched/cls_flow.c 			     const struct flow_keys *flow)
flow              174 net/sched/cls_flow.c 	return flow_get_dst(skb, flow);
flow              178 net/sched/cls_flow.c 				   const struct flow_keys *flow)
flow              182 net/sched/cls_flow.c 	return flow_get_proto_src(skb, flow);
flow              186 net/sched/cls_flow.c 				   const struct flow_keys *flow)
flow              190 net/sched/cls_flow.c 	return flow_get_proto_dst(skb, flow);
flow              240 net/sched/cls_flow.c static u32 flow_key_get(struct sk_buff *skb, int key, struct flow_keys *flow)
flow              244 net/sched/cls_flow.c 		return flow_get_src(skb, flow);
flow              246 net/sched/cls_flow.c 		return flow_get_dst(skb, flow);
flow              248 net/sched/cls_flow.c 		return flow_get_proto(skb, flow);
flow              250 net/sched/cls_flow.c 		return flow_get_proto_src(skb, flow);
flow              252 net/sched/cls_flow.c 		return flow_get_proto_dst(skb, flow);
flow              262 net/sched/cls_flow.c 		return flow_get_nfct_src(skb, flow);
flow              264 net/sched/cls_flow.c 		return flow_get_nfct_dst(skb, flow);
flow              266 net/sched/cls_flow.c 		return flow_get_nfct_proto_src(skb, flow);
flow              268 net/sched/cls_flow.c 		return flow_get_nfct_proto_dst(skb, flow);
flow               76 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow               78 net/sched/sch_atm.c 	list_for_each_entry(flow, &p->flows, list) {
flow               79 net/sched/sch_atm.c 		if (flow->common.classid == classid)
flow               80 net/sched/sch_atm.c 			return flow;
flow               90 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)arg;
flow               93 net/sched/sch_atm.c 		sch, p, flow, new, old);
flow               94 net/sched/sch_atm.c 	if (list_empty(&flow->list))
flow               98 net/sched/sch_atm.c 	*old = flow->q;
flow               99 net/sched/sch_atm.c 	flow->q = new;
flow              107 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)cl;
flow              109 net/sched/sch_atm.c 	pr_debug("atm_tc_leaf(sch %p,flow %p)\n", sch, flow);
flow              110 net/sched/sch_atm.c 	return flow ? flow->q : NULL;
flow              116 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              119 net/sched/sch_atm.c 	flow = lookup_flow(sch, classid);
flow              120 net/sched/sch_atm.c 	pr_debug("%s: flow %p\n", __func__, flow);
flow              121 net/sched/sch_atm.c 	return (unsigned long)flow;
flow              128 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              131 net/sched/sch_atm.c 	flow = lookup_flow(sch, classid);
flow              132 net/sched/sch_atm.c 	if (flow)
flow              133 net/sched/sch_atm.c 		flow->ref++;
flow              134 net/sched/sch_atm.c 	pr_debug("%s: flow %p\n", __func__, flow);
flow              135 net/sched/sch_atm.c 	return (unsigned long)flow;
flow              146 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)cl;
flow              148 net/sched/sch_atm.c 	pr_debug("atm_tc_put(sch %p,[qdisc %p],flow %p)\n", sch, p, flow);
flow              149 net/sched/sch_atm.c 	if (--flow->ref)
flow              152 net/sched/sch_atm.c 	list_del_init(&flow->list);
flow              153 net/sched/sch_atm.c 	pr_debug("atm_tc_put: qdisc %p\n", flow->q);
flow              154 net/sched/sch_atm.c 	qdisc_put(flow->q);
flow              155 net/sched/sch_atm.c 	tcf_block_put(flow->block);
flow              156 net/sched/sch_atm.c 	if (flow->sock) {
flow              158 net/sched/sch_atm.c 			file_count(flow->sock->file));
flow              159 net/sched/sch_atm.c 		flow->vcc->pop = flow->old_pop;
flow              160 net/sched/sch_atm.c 		sockfd_put(flow->sock);
flow              162 net/sched/sch_atm.c 	if (flow->excess)
flow              163 net/sched/sch_atm.c 		atm_tc_put(sch, (unsigned long)flow->excess);
flow              164 net/sched/sch_atm.c 	if (flow != &p->link)
flow              165 net/sched/sch_atm.c 		kfree(flow);
flow              200 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)*arg;
flow              209 net/sched/sch_atm.c 		"flow %p,opt %p)\n", sch, p, classid, parent, flow, opt);
flow              222 net/sched/sch_atm.c 	if (flow)
flow              281 net/sched/sch_atm.c 	flow = kzalloc(sizeof(struct atm_flow_data) + hdr_len, GFP_KERNEL);
flow              282 net/sched/sch_atm.c 	pr_debug("atm_tc_change: flow %p\n", flow);
flow              283 net/sched/sch_atm.c 	if (!flow) {
flow              288 net/sched/sch_atm.c 	error = tcf_block_get(&flow->block, &flow->filter_list, sch,
flow              291 net/sched/sch_atm.c 		kfree(flow);
flow              295 net/sched/sch_atm.c 	flow->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid,
flow              297 net/sched/sch_atm.c 	if (!flow->q)
flow              298 net/sched/sch_atm.c 		flow->q = &noop_qdisc;
flow              299 net/sched/sch_atm.c 	pr_debug("atm_tc_change: qdisc %p\n", flow->q);
flow              300 net/sched/sch_atm.c 	flow->sock = sock;
flow              301 net/sched/sch_atm.c 	flow->vcc = ATM_SD(sock);	/* speedup */
flow              302 net/sched/sch_atm.c 	flow->vcc->user_back = flow;
flow              303 net/sched/sch_atm.c 	pr_debug("atm_tc_change: vcc %p\n", flow->vcc);
flow              304 net/sched/sch_atm.c 	flow->old_pop = flow->vcc->pop;
flow              305 net/sched/sch_atm.c 	flow->parent = p;
flow              306 net/sched/sch_atm.c 	flow->vcc->pop = sch_atm_pop;
flow              307 net/sched/sch_atm.c 	flow->common.classid = classid;
flow              308 net/sched/sch_atm.c 	flow->ref = 1;
flow              309 net/sched/sch_atm.c 	flow->excess = excess;
flow              310 net/sched/sch_atm.c 	list_add(&flow->list, &p->link.list);
flow              311 net/sched/sch_atm.c 	flow->hdr_len = hdr_len;
flow              313 net/sched/sch_atm.c 		memcpy(flow->hdr, hdr, hdr_len);
flow              315 net/sched/sch_atm.c 		memcpy(flow->hdr, llc_oui_ip, sizeof(llc_oui_ip));
flow              316 net/sched/sch_atm.c 	*arg = (unsigned long)flow;
flow              326 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)arg;
flow              328 net/sched/sch_atm.c 	pr_debug("atm_tc_delete(sch %p,[qdisc %p],flow %p)\n", sch, p, flow);
flow              329 net/sched/sch_atm.c 	if (list_empty(&flow->list))
flow              331 net/sched/sch_atm.c 	if (rcu_access_pointer(flow->filter_list) || flow == &p->link)
flow              337 net/sched/sch_atm.c 	if (flow->ref < 2) {
flow              338 net/sched/sch_atm.c 		pr_err("atm_tc_delete: flow->ref == %d\n", flow->ref);
flow              341 net/sched/sch_atm.c 	if (flow->ref > 2)
flow              350 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              355 net/sched/sch_atm.c 	list_for_each_entry(flow, &p->flows, list) {
flow              357 net/sched/sch_atm.c 		    walker->fn(sch, (unsigned long)flow, walker) < 0) {
flow              369 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)cl;
flow              371 net/sched/sch_atm.c 	pr_debug("atm_tc_find_tcf(sch %p,[qdisc %p],flow %p)\n", sch, p, flow);
flow              372 net/sched/sch_atm.c 	return flow ? flow->block : p->link.block;
flow              381 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              388 net/sched/sch_atm.c 	flow = NULL;
flow              390 net/sched/sch_atm.c 	    !(flow = (struct atm_flow_data *)atm_tc_find(sch, skb->priority))) {
flow              393 net/sched/sch_atm.c 		list_for_each_entry(flow, &p->flows, list) {
flow              394 net/sched/sch_atm.c 			fl = rcu_dereference_bh(flow->filter_list);
flow              399 net/sched/sch_atm.c 				flow = (struct atm_flow_data *)res.class;
flow              400 net/sched/sch_atm.c 				if (!flow)
flow              401 net/sched/sch_atm.c 					flow = lookup_flow(sch, res.classid);
flow              405 net/sched/sch_atm.c 		flow = NULL;
flow              409 net/sched/sch_atm.c 	if (!flow) {
flow              410 net/sched/sch_atm.c 		flow = &p->link;
flow              412 net/sched/sch_atm.c 		if (flow->vcc)
flow              413 net/sched/sch_atm.c 			ATM_SKB(skb)->atm_options = flow->vcc->atm_options;
flow              426 net/sched/sch_atm.c 			if (flow->excess)
flow              427 net/sched/sch_atm.c 				flow = flow->excess;
flow              435 net/sched/sch_atm.c 	ret = qdisc_enqueue(skb, flow->q, to_free);
flow              440 net/sched/sch_atm.c 			if (flow)
flow              441 net/sched/sch_atm.c 				flow->qstats.drops++;
flow              454 net/sched/sch_atm.c 	if (flow == &p->link) {
flow              473 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              477 net/sched/sch_atm.c 	list_for_each_entry(flow, &p->flows, list) {
flow              478 net/sched/sch_atm.c 		if (flow == &p->link)
flow              484 net/sched/sch_atm.c 		while ((skb = flow->q->ops->peek(flow->q))) {
flow              485 net/sched/sch_atm.c 			if (!atm_may_send(flow->vcc, skb->truesize))
flow              488 net/sched/sch_atm.c 			skb = qdisc_dequeue_peeked(flow->q);
flow              493 net/sched/sch_atm.c 			bstats_update(&flow->bstats, skb);
flow              494 net/sched/sch_atm.c 			pr_debug("atm_tc_dequeue: sending on class %p\n", flow);
flow              497 net/sched/sch_atm.c 			if (skb_headroom(skb) < flow->hdr_len) {
flow              500 net/sched/sch_atm.c 				new = skb_realloc_headroom(skb, flow->hdr_len);
flow              508 net/sched/sch_atm.c 			ATM_SKB(skb)->vcc = flow->vcc;
flow              509 net/sched/sch_atm.c 			memcpy(skb_push(skb, flow->hdr_len), flow->hdr,
flow              510 net/sched/sch_atm.c 			       flow->hdr_len);
flow              512 net/sched/sch_atm.c 				   &sk_atm(flow->vcc)->sk_wmem_alloc);
flow              514 net/sched/sch_atm.c 			flow->vcc->send(flow->vcc, skb);
flow              573 net/sched/sch_atm.c 	struct atm_flow_data *flow;
flow              576 net/sched/sch_atm.c 	list_for_each_entry(flow, &p->flows, list)
flow              577 net/sched/sch_atm.c 		qdisc_reset(flow->q);
flow              584 net/sched/sch_atm.c 	struct atm_flow_data *flow, *tmp;
flow              587 net/sched/sch_atm.c 	list_for_each_entry(flow, &p->flows, list) {
flow              588 net/sched/sch_atm.c 		tcf_block_put(flow->block);
flow              589 net/sched/sch_atm.c 		flow->block = NULL;
flow              592 net/sched/sch_atm.c 	list_for_each_entry_safe(flow, tmp, &p->flows, list) {
flow              593 net/sched/sch_atm.c 		if (flow->ref > 1)
flow              594 net/sched/sch_atm.c 			pr_err("atm_destroy: %p->ref = %d\n", flow, flow->ref);
flow              595 net/sched/sch_atm.c 		atm_tc_put(sch, (unsigned long)flow);
flow              604 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)cl;
flow              608 net/sched/sch_atm.c 		sch, p, flow, skb, tcm);
flow              609 net/sched/sch_atm.c 	if (list_empty(&flow->list))
flow              611 net/sched/sch_atm.c 	tcm->tcm_handle = flow->common.classid;
flow              612 net/sched/sch_atm.c 	tcm->tcm_info = flow->q->handle;
flow              618 net/sched/sch_atm.c 	if (nla_put(skb, TCA_ATM_HDR, flow->hdr_len, flow->hdr))
flow              620 net/sched/sch_atm.c 	if (flow->vcc) {
flow              626 net/sched/sch_atm.c 		pvc.sap_addr.itf = flow->vcc->dev ? flow->vcc->dev->number : -1;
flow              627 net/sched/sch_atm.c 		pvc.sap_addr.vpi = flow->vcc->vpi;
flow              628 net/sched/sch_atm.c 		pvc.sap_addr.vci = flow->vcc->vci;
flow              631 net/sched/sch_atm.c 		state = ATM_VF2VS(flow->vcc->flags);
flow              635 net/sched/sch_atm.c 	if (flow->excess) {
flow              636 net/sched/sch_atm.c 		if (nla_put_u32(skb, TCA_ATM_EXCESS, flow->common.classid))
flow              652 net/sched/sch_atm.c 	struct atm_flow_data *flow = (struct atm_flow_data *)arg;
flow              655 net/sched/sch_atm.c 				  d, NULL, &flow->bstats) < 0 ||
flow              656 net/sched/sch_atm.c 	    gnet_stats_copy_queue(d, NULL, &flow->qstats, flow->q->q.qlen) < 0)
flow              816 net/sched/sch_cake.c static struct sk_buff *dequeue_head(struct cake_flow *flow)
flow              818 net/sched/sch_cake.c 	struct sk_buff *skb = flow->head;
flow              821 net/sched/sch_cake.c 		flow->head = skb->next;
flow              830 net/sched/sch_cake.c static void flow_queue_add(struct cake_flow *flow, struct sk_buff *skb)
flow              832 net/sched/sch_cake.c 	if (!flow->head)
flow              833 net/sched/sch_cake.c 		flow->head = skb;
flow              835 net/sched/sch_cake.c 		flow->tail->next = skb;
flow              836 net/sched/sch_cake.c 	flow->tail = skb;
flow             1112 net/sched/sch_cake.c 				       struct cake_flow *flow)
flow             1129 net/sched/sch_cake.c 	if (flow->head == flow->tail)
flow             1132 net/sched/sch_cake.c 	skb = flow->tail;
flow             1152 net/sched/sch_cake.c 	for (skb_check = flow->head;
flow             1260 net/sched/sch_cake.c 		flow->head = elig_ack->next;
flow             1468 net/sched/sch_cake.c 	struct cake_flow *flow;
flow             1485 net/sched/sch_cake.c 	flow = &b->flows[idx];
flow             1486 net/sched/sch_cake.c 	skb = dequeue_head(flow);
flow             1493 net/sched/sch_cake.c 	if (cobalt_queue_full(&flow->cvars, &b->cparams, now))
flow             1503 net/sched/sch_cake.c 	flow->dropped++;
flow             1596 net/sched/sch_cake.c 	u16 flow = 0, host = 0;
flow             1619 net/sched/sch_cake.c 			flow = TC_H_MIN(res.classid);
flow             1625 net/sched/sch_cake.c 	return cake_hash(*t, skb, flow_mode, flow, host) + 1;
flow             1639 net/sched/sch_cake.c 	struct cake_flow *flow;
flow             1651 net/sched/sch_cake.c 	flow = &b->flows[idx];
flow             1693 net/sched/sch_cake.c 			flow_queue_add(flow, segs);
flow             1716 net/sched/sch_cake.c 		flow_queue_add(flow, skb);
flow             1719 net/sched/sch_cake.c 			ack = cake_ack_filter(q, flow);
flow             1792 net/sched/sch_cake.c 	if (!flow->set || flow->set == CAKE_SET_DECAYING) {
flow             1793 net/sched/sch_cake.c 		struct cake_host *srchost = &b->hosts[flow->srchost];
flow             1794 net/sched/sch_cake.c 		struct cake_host *dsthost = &b->hosts[flow->dsthost];
flow             1797 net/sched/sch_cake.c 		if (!flow->set) {
flow             1798 net/sched/sch_cake.c 			list_add_tail(&flow->flowchain, &b->new_flows);
flow             1801 net/sched/sch_cake.c 			list_move_tail(&flow->flowchain, &b->new_flows);
flow             1803 net/sched/sch_cake.c 		flow->set = CAKE_SET_SPARSE;
flow             1812 net/sched/sch_cake.c 		flow->deficit = (b->flow_quantum *
flow             1814 net/sched/sch_cake.c 	} else if (flow->set == CAKE_SET_SPARSE_WAIT) {
flow             1815 net/sched/sch_cake.c 		struct cake_host *srchost = &b->hosts[flow->srchost];
flow             1816 net/sched/sch_cake.c 		struct cake_host *dsthost = &b->hosts[flow->dsthost];
flow             1821 net/sched/sch_cake.c 		flow->set = CAKE_SET_BULK;
flow             1852 net/sched/sch_cake.c 	struct cake_flow *flow = &b->flows[q->cur_flow];
flow             1856 net/sched/sch_cake.c 	if (flow->head) {
flow             1857 net/sched/sch_cake.c 		skb = dequeue_head(flow);
flow             1889 net/sched/sch_cake.c 	struct cake_flow *flow;
flow             1989 net/sched/sch_cake.c 	flow = list_first_entry(head, struct cake_flow, flowchain);
flow             1990 net/sched/sch_cake.c 	q->cur_flow = flow - b->flows;
flow             1994 net/sched/sch_cake.c 	srchost = &b->hosts[flow->srchost];
flow             1995 net/sched/sch_cake.c 	dsthost = &b->hosts[flow->dsthost];
flow             1999 net/sched/sch_cake.c 	if (flow->deficit <= 0) {
flow             2004 net/sched/sch_cake.c 		if (flow->set == CAKE_SET_SPARSE) {
flow             2005 net/sched/sch_cake.c 			if (flow->head) {
flow             2015 net/sched/sch_cake.c 				flow->set = CAKE_SET_BULK;
flow             2021 net/sched/sch_cake.c 				flow->set = CAKE_SET_SPARSE_WAIT;
flow             2036 net/sched/sch_cake.c 		flow->deficit += (b->flow_quantum * quantum_div[host_load] +
flow             2038 net/sched/sch_cake.c 		list_move_tail(&flow->flowchain, &b->old_flows);
flow             2048 net/sched/sch_cake.c 			if (cobalt_queue_empty(&flow->cvars, &b->cparams, now))
flow             2051 net/sched/sch_cake.c 			if (flow->cvars.p_drop || flow->cvars.count ||
flow             2052 net/sched/sch_cake.c 			    ktime_before(now, flow->cvars.drop_next)) {
flow             2056 net/sched/sch_cake.c 				list_move_tail(&flow->flowchain,
flow             2058 net/sched/sch_cake.c 				if (flow->set == CAKE_SET_BULK) {
flow             2068 net/sched/sch_cake.c 				} else if (flow->set == CAKE_SET_SPARSE ||
flow             2069 net/sched/sch_cake.c 					   flow->set == CAKE_SET_SPARSE_WAIT) {
flow             2073 net/sched/sch_cake.c 				flow->set = CAKE_SET_DECAYING;
flow             2076 net/sched/sch_cake.c 				list_del_init(&flow->flowchain);
flow             2077 net/sched/sch_cake.c 				if (flow->set == CAKE_SET_SPARSE ||
flow             2078 net/sched/sch_cake.c 				    flow->set == CAKE_SET_SPARSE_WAIT)
flow             2080 net/sched/sch_cake.c 				else if (flow->set == CAKE_SET_BULK) {
flow             2092 net/sched/sch_cake.c 				flow->set = CAKE_SET_NONE;
flow             2098 net/sched/sch_cake.c 		if (!cobalt_should_drop(&flow->cvars, &b->cparams, now, skb,
flow             2102 net/sched/sch_cake.c 		    !flow->head)
flow             2109 net/sched/sch_cake.c 			flow->deficit -= len;
flow             2112 net/sched/sch_cake.c 		flow->dropped++;
flow             2121 net/sched/sch_cake.c 	b->tin_ecn_mark += !!flow->cvars.ecn_marked;
flow             2133 net/sched/sch_cake.c 	flow->deficit -= len;
flow             2712 net/sched/sch_cake.c 			struct cake_flow *flow = b->flows + j;
flow             2715 net/sched/sch_cake.c 			INIT_LIST_HEAD(&flow->flowchain);
flow             2716 net/sched/sch_cake.c 			cobalt_vars_init(&flow->cvars);
flow             2949 net/sched/sch_cake.c 	const struct cake_flow *flow = NULL;
flow             2959 net/sched/sch_cake.c 		flow = &b->flows[idx % CAKE_QUEUES];
flow             2961 net/sched/sch_cake.c 		if (flow->head) {
flow             2963 net/sched/sch_cake.c 			skb = flow->head;
flow             2971 net/sched/sch_cake.c 		qs.drops = flow->dropped;
flow             2975 net/sched/sch_cake.c 	if (flow) {
flow             2991 net/sched/sch_cake.c 		PUT_STAT_S32(DEFICIT, flow->deficit);
flow             2992 net/sched/sch_cake.c 		PUT_STAT_U32(DROPPING, flow->cvars.dropping);
flow             2993 net/sched/sch_cake.c 		PUT_STAT_U32(COBALT_COUNT, flow->cvars.count);
flow             2994 net/sched/sch_cake.c 		PUT_STAT_U32(P_DROP, flow->cvars.p_drop);
flow             2995 net/sched/sch_cake.c 		if (flow->cvars.p_drop) {
flow             2999 net/sched/sch_cake.c 						     flow->cvars.blue_timer)));
flow             3001 net/sched/sch_cake.c 		if (flow->cvars.dropping) {
flow             3005 net/sched/sch_cake.c 						       flow->cvars.drop_next)));
flow              146 net/sched/sch_fq.c static void fq_flow_add_tail(struct fq_flow_head *head, struct fq_flow *flow)
flow              149 net/sched/sch_fq.c 		head->last->next = flow;
flow              151 net/sched/sch_fq.c 		head->first = flow;
flow              152 net/sched/sch_fq.c 	head->last = flow;
flow              153 net/sched/sch_fq.c 	flow->next = NULL;
flow              344 net/sched/sch_fq.c static struct sk_buff *fq_peek(struct fq_flow *flow)
flow              346 net/sched/sch_fq.c 	struct sk_buff *skb = skb_rb_first(&flow->t_root);
flow              347 net/sched/sch_fq.c 	struct sk_buff *head = flow->head;
flow              360 net/sched/sch_fq.c static void fq_erase_head(struct Qdisc *sch, struct fq_flow *flow,
flow              363 net/sched/sch_fq.c 	if (skb == flow->head) {
flow              364 net/sched/sch_fq.c 		flow->head = skb->next;
flow              366 net/sched/sch_fq.c 		rb_erase(&skb->rbnode, &flow->t_root);
flow              372 net/sched/sch_fq.c static struct sk_buff *fq_dequeue_head(struct Qdisc *sch, struct fq_flow *flow)
flow              374 net/sched/sch_fq.c 	struct sk_buff *skb = fq_peek(flow);
flow              377 net/sched/sch_fq.c 		fq_erase_head(sch, flow, skb);
flow              379 net/sched/sch_fq.c 		flow->qlen--;
flow              386 net/sched/sch_fq.c static void flow_queue_add(struct fq_flow *flow, struct sk_buff *skb)
flow              393 net/sched/sch_fq.c 	head = flow->head;
flow              395 net/sched/sch_fq.c 	    fq_skb_cb(skb)->time_to_send >= fq_skb_cb(flow->tail)->time_to_send) {
flow              397 net/sched/sch_fq.c 			flow->head = skb;
flow              399 net/sched/sch_fq.c 			flow->tail->next = skb;
flow              400 net/sched/sch_fq.c 		flow->tail = skb;
flow              405 net/sched/sch_fq.c 	p = &flow->t_root.rb_node;
flow              417 net/sched/sch_fq.c 	rb_insert_color(&skb->rbnode, &flow->t_root);
flow              602 net/sched/sch_fq.c static void fq_flow_purge(struct fq_flow *flow)
flow              604 net/sched/sch_fq.c 	struct rb_node *p = rb_first(&flow->t_root);
flow              610 net/sched/sch_fq.c 		rb_erase(&skb->rbnode, &flow->t_root);
flow              613 net/sched/sch_fq.c 	rtnl_kfree_skbs(flow->head, flow->tail);
flow              614 net/sched/sch_fq.c 	flow->head = NULL;
flow              615 net/sched/sch_fq.c 	flow->qlen = 0;
flow              117 net/sched/sch_fq_codel.c static inline struct sk_buff *dequeue_head(struct fq_codel_flow *flow)
flow              119 net/sched/sch_fq_codel.c 	struct sk_buff *skb = flow->head;
flow              121 net/sched/sch_fq_codel.c 	flow->head = skb->next;
flow              127 net/sched/sch_fq_codel.c static inline void flow_queue_add(struct fq_codel_flow *flow,
flow              130 net/sched/sch_fq_codel.c 	if (flow->head == NULL)
flow              131 net/sched/sch_fq_codel.c 		flow->head = skb;
flow              133 net/sched/sch_fq_codel.c 		flow->tail->next = skb;
flow              134 net/sched/sch_fq_codel.c 	flow->tail = skb;
flow              144 net/sched/sch_fq_codel.c 	struct fq_codel_flow *flow;
flow              165 net/sched/sch_fq_codel.c 	flow = &q->flows[idx];
flow              169 net/sched/sch_fq_codel.c 		skb = dequeue_head(flow);
flow              176 net/sched/sch_fq_codel.c 	flow->cvars.count += i;
flow              190 net/sched/sch_fq_codel.c 	struct fq_codel_flow *flow;
flow              205 net/sched/sch_fq_codel.c 	flow = &q->flows[idx];
flow              206 net/sched/sch_fq_codel.c 	flow_queue_add(flow, skb);
flow              210 net/sched/sch_fq_codel.c 	if (list_empty(&flow->flowchain)) {
flow              211 net/sched/sch_fq_codel.c 		list_add_tail(&flow->flowchain, &q->new_flows);
flow              213 net/sched/sch_fq_codel.c 		flow->deficit = q->quantum;
flow              260 net/sched/sch_fq_codel.c 	struct fq_codel_flow *flow;
flow              263 net/sched/sch_fq_codel.c 	flow = container_of(vars, struct fq_codel_flow, cvars);
flow              264 net/sched/sch_fq_codel.c 	if (flow->head) {
flow              265 net/sched/sch_fq_codel.c 		skb = dequeue_head(flow);
flow              266 net/sched/sch_fq_codel.c 		q->backlogs[flow - q->flows] -= qdisc_pkt_len(skb);
flow              286 net/sched/sch_fq_codel.c 	struct fq_codel_flow *flow;
flow              296 net/sched/sch_fq_codel.c 	flow = list_first_entry(head, struct fq_codel_flow, flowchain);
flow              298 net/sched/sch_fq_codel.c 	if (flow->deficit <= 0) {
flow              299 net/sched/sch_fq_codel.c 		flow->deficit += q->quantum;
flow              300 net/sched/sch_fq_codel.c 		list_move_tail(&flow->flowchain, &q->old_flows);
flow              305 net/sched/sch_fq_codel.c 			    &flow->cvars, &q->cstats, qdisc_pkt_len,
flow              311 net/sched/sch_fq_codel.c 			list_move_tail(&flow->flowchain, &q->old_flows);
flow              313 net/sched/sch_fq_codel.c 			list_del_init(&flow->flowchain);
flow              317 net/sched/sch_fq_codel.c 	flow->deficit -= qdisc_pkt_len(skb);
flow              330 net/sched/sch_fq_codel.c static void fq_codel_flow_purge(struct fq_codel_flow *flow)
flow              332 net/sched/sch_fq_codel.c 	rtnl_kfree_skbs(flow->head, flow->tail);
flow              333 net/sched/sch_fq_codel.c 	flow->head = NULL;
flow              344 net/sched/sch_fq_codel.c 		struct fq_codel_flow *flow = q->flows + i;
flow              346 net/sched/sch_fq_codel.c 		fq_codel_flow_purge(flow);
flow              347 net/sched/sch_fq_codel.c 		INIT_LIST_HEAD(&flow->flowchain);
flow              348 net/sched/sch_fq_codel.c 		codel_vars_init(&flow->cvars);
flow              493 net/sched/sch_fq_codel.c 			struct fq_codel_flow *flow = q->flows + i;
flow              495 net/sched/sch_fq_codel.c 			INIT_LIST_HEAD(&flow->flowchain);
flow              496 net/sched/sch_fq_codel.c 			codel_vars_init(&flow->cvars);
flow              624 net/sched/sch_fq_codel.c 		const struct fq_codel_flow *flow = &q->flows[idx];
flow              629 net/sched/sch_fq_codel.c 		xstats.class_stats.deficit = flow->deficit;
flow              631 net/sched/sch_fq_codel.c 			codel_time_to_us(flow->cvars.ldelay);
flow              632 net/sched/sch_fq_codel.c 		xstats.class_stats.count = flow->cvars.count;
flow              633 net/sched/sch_fq_codel.c 		xstats.class_stats.lastcount = flow->cvars.lastcount;
flow              634 net/sched/sch_fq_codel.c 		xstats.class_stats.dropping = flow->cvars.dropping;
flow              635 net/sched/sch_fq_codel.c 		if (flow->cvars.dropping) {
flow              636 net/sched/sch_fq_codel.c 			codel_tdiff_t delta = flow->cvars.drop_next -
flow              643 net/sched/sch_fq_codel.c 		if (flow->head) {
flow              645 net/sched/sch_fq_codel.c 			skb = flow->head;
flow              184 net/sched/sch_hhf.c 	struct hh_flow_state *flow, *next;
flow              190 net/sched/sch_hhf.c 	list_for_each_entry_safe(flow, next, head, flowchain) {
flow              191 net/sched/sch_hhf.c 		u32 prev = flow->hit_timestamp + q->hhf_evict_timeout;
flow              197 net/sched/sch_hhf.c 			if (list_is_last(&flow->flowchain, head))
flow              199 net/sched/sch_hhf.c 			list_del(&flow->flowchain);
flow              200 net/sched/sch_hhf.c 			kfree(flow);
flow              202 net/sched/sch_hhf.c 		} else if (flow->hash_id == hash) {
flow              203 net/sched/sch_hhf.c 			return flow;
flow              215 net/sched/sch_hhf.c 	struct hh_flow_state *flow;
flow              220 net/sched/sch_hhf.c 		list_for_each_entry(flow, head, flowchain) {
flow              221 net/sched/sch_hhf.c 			u32 prev = flow->hit_timestamp + q->hhf_evict_timeout;
flow              224 net/sched/sch_hhf.c 				return flow;
flow              233 net/sched/sch_hhf.c 	flow = kzalloc(sizeof(struct hh_flow_state), GFP_ATOMIC);
flow              234 net/sched/sch_hhf.c 	if (!flow)
flow              238 net/sched/sch_hhf.c 	INIT_LIST_HEAD(&flow->flowchain);
flow              239 net/sched/sch_hhf.c 	list_add_tail(&flow->flowchain, head);
flow              241 net/sched/sch_hhf.c 	return flow;
flow              252 net/sched/sch_hhf.c 	struct hh_flow_state *flow;
flow              271 net/sched/sch_hhf.c 	flow = seek_list(hash, &q->hh_flows[flow_pos], q);
flow              272 net/sched/sch_hhf.c 	if (flow) { /* found its HH flow */
flow              273 net/sched/sch_hhf.c 		flow->hit_timestamp = now;
flow              307 net/sched/sch_hhf.c 		flow = alloc_new_hh(&q->hh_flows[flow_pos], q);
flow              308 net/sched/sch_hhf.c 		if (!flow) /* memory alloc problem */
flow              310 net/sched/sch_hhf.c 		flow->hash_id = hash;
flow              311 net/sched/sch_hhf.c 		flow->hit_timestamp = now;
flow              485 net/sched/sch_hhf.c 		struct hh_flow_state *flow, *next;
flow              490 net/sched/sch_hhf.c 		list_for_each_entry_safe(flow, next, head, flowchain) {
flow              491 net/sched/sch_hhf.c 			list_del(&flow->flowchain);
flow              492 net/sched/sch_hhf.c 			kfree(flow);
flow               62 samples/bpf/sockex2_kern.c 			     struct flow_key_record *flow)
flow               72 samples/bpf/sockex2_kern.c 		flow->src = load_word(skb, nhoff + offsetof(struct iphdr, saddr));
flow               73 samples/bpf/sockex2_kern.c 		flow->dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr));
flow               86 samples/bpf/sockex2_kern.c 			       struct flow_key_record *flow)
flow               90 samples/bpf/sockex2_kern.c 	flow->src = ipv6_addr_hash(skb,
flow               92 samples/bpf/sockex2_kern.c 	flow->dst = ipv6_addr_hash(skb,
flow              100 samples/bpf/sockex2_kern.c 				  struct flow_key_record *flow)
flow              120 samples/bpf/sockex2_kern.c 		nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
flow              122 samples/bpf/sockex2_kern.c 		nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
flow              158 samples/bpf/sockex2_kern.c 			nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
flow              160 samples/bpf/sockex2_kern.c 			nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
flow              166 samples/bpf/sockex2_kern.c 		nhoff = parse_ip(skb, nhoff, &ip_proto, flow);
flow              169 samples/bpf/sockex2_kern.c 		nhoff = parse_ipv6(skb, nhoff, &ip_proto, flow);
flow              175 samples/bpf/sockex2_kern.c 	flow->ip_proto = ip_proto;
flow              179 samples/bpf/sockex2_kern.c 		flow->ports = load_word(skb, nhoff);
flow              182 samples/bpf/sockex2_kern.c 	flow->thoff = (__u16) nhoff;
flow              202 samples/bpf/sockex2_kern.c 	struct flow_key_record flow = {};
flow              206 samples/bpf/sockex2_kern.c 	if (!flow_dissector(skb, &flow))
flow              209 samples/bpf/sockex2_kern.c 	key = flow.dst;
flow               91 samples/bpf/sockex3_kern.c 	struct flow_key_record flow;
flow              124 samples/bpf/sockex3_kern.c 	struct flow_key_record key = g->flow;
flow              179 samples/bpf/sockex3_kern.c 		g->flow.ports = load_word(skb, nhoff);
flow              181 samples/bpf/sockex3_kern.c 		g->flow.ip_proto = ip_proto;
flow              205 samples/bpf/sockex3_kern.c 		g->flow.src = load_word(skb, nhoff + offsetof(struct iphdr, saddr));
flow              206 samples/bpf/sockex3_kern.c 		g->flow.dst = load_word(skb, nhoff + offsetof(struct iphdr, daddr));
flow              229 samples/bpf/sockex3_kern.c 	g->flow.src = ipv6_addr_hash(skb,
flow              231 samples/bpf/sockex3_kern.c 	g->flow.dst = ipv6_addr_hash(skb,
flow              122 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	struct flow_key flow;
flow              244 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[0] = udp->source;
flow              245 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[1] = udp->dest;
flow              247 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[0] = udp->dest;
flow              248 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[1] = udp->source;
flow              268 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[0] = tcp->source;
flow              269 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[1] = tcp->dest;
flow              271 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[0] = tcp->dest;
flow              272 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[1] = tcp->source;
flow              307 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	ip_suffix = pckt->flow.srcv6[3] ^ pckt->flow.port16[0];
flow              326 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	__u32 ip_suffix = bpf_ntohs(pckt->flow.port16[0]);
flow              336 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	ip_suffix ^= pckt->flow.src;
flow              501 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.proto = ip6h->nexthdr;
flow              503 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	memcpy(pckt->flow.srcv6, ip6h->daddr.in6_u.u6_addr32, 16);
flow              504 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	memcpy(pckt->flow.dstv6, ip6h->saddr.in6_u.u6_addr32, 16);
flow              528 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.proto = iph->protocol;
flow              530 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.src = iph->daddr;
flow              531 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.dst = iph->saddr;
flow              540 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		return jhash_2words(jhash(pckt->flow.srcv6, 16, 12),
flow              541 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 				    pckt->flow.ports, 24);
flow              543 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		return jhash_2words(pckt->flow.src, pckt->flow.ports,
flow              561 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.port16[0] = pckt->flow.port16[1];
flow              562 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		memset(pckt->flow.srcv6, 0, 16);
flow              592 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		if (pckt->flow.proto == IPPROTO_UDP)
flow              595 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		bpf_map_update_elem(lru_map, &pckt->flow, &new_dst_lru, 0);
flow              610 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	dst_lru = bpf_map_lookup_elem(lru_map, &pckt->flow);
flow              613 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	if (pckt->flow.proto == IPPROTO_UDP) {
flow              642 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.proto = *protocol;
flow              652 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		memcpy(pckt->flow.srcv6, ip6h->saddr.in6_u.u6_addr32, 16);
flow              653 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		memcpy(pckt->flow.dstv6, ip6h->daddr.in6_u.u6_addr32, 16);
flow              674 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	pckt->flow.proto = *protocol;
flow              684 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.src = iph->saddr;
flow              685 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		pckt->flow.dst = iph->daddr;
flow              720 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	protocol = pckt.flow.proto;
flow              732 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		memcpy(vip.vipv6, pckt.flow.dstv6, 16);
flow              734 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		vip.vip = pckt.flow.dst;
flow              735 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	vip.port = pckt.flow.port16[1];
flow              736 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 	vip.proto = pckt.flow.proto;
flow              744 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 			pckt.flow.port16[1] = 0;
flow              754 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 			pckt.flow.port16[0] = 0;
flow              759 tools/testing/selftests/bpf/progs/test_xdp_noinline.c 		if (pckt.flow.proto == IPPROTO_TCP) {