H A D | rocker.c | 213 struct rocker_port { struct 235 struct rocker_port **ports; 297 static __be16 rocker_port_vid_to_vlan(struct rocker_port *rocker_port, rocker_port_vid_to_vlan() argument 306 vlan_id = rocker_port->internal_vlan_id; rocker_port_vid_to_vlan() 314 static u16 rocker_port_vlan_to_vid(struct rocker_port *rocker_port, rocker_port_vlan_to_vid() argument 323 static bool rocker_port_is_bridged(struct rocker_port *rocker_port) rocker_port_is_bridged() argument 325 return !!rocker_port->bridge_dev; rocker_port_is_bridged() 382 static u32 rocker_msix_tx_vector(struct rocker_port *rocker_port) rocker_msix_tx_vector() argument 384 return rocker_msix_vector(rocker_port->rocker, rocker_msix_tx_vector() 385 ROCKER_MSIX_VEC_TX(rocker_port->port_number)); rocker_msix_tx_vector() 388 static u32 rocker_msix_rx_vector(struct rocker_port *rocker_port) rocker_msix_rx_vector() argument 390 return rocker_msix_vector(rocker_port->rocker, rocker_msix_rx_vector() 391 ROCKER_MSIX_VEC_RX(rocker_port->port_number)); rocker_msix_rx_vector() 1106 struct rocker_port *rocker_port, rocker_dma_rx_ring_skb_map() 1129 static size_t rocker_port_rx_buf_len(struct rocker_port *rocker_port) rocker_port_rx_buf_len() argument 1131 return rocker_port->dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; rocker_port_rx_buf_len() 1135 struct rocker_port *rocker_port, rocker_dma_rx_ring_skb_alloc() 1138 struct net_device *dev = rocker_port->dev; rocker_dma_rx_ring_skb_alloc() 1140 size_t buf_len = rocker_port_rx_buf_len(rocker_port); rocker_dma_rx_ring_skb_alloc() 1152 err = rocker_dma_rx_ring_skb_map(rocker, rocker_port, desc_info, rocker_dma_rx_ring_skb_alloc() 1191 struct rocker_port *rocker_port) rocker_dma_rx_ring_skbs_alloc() 1193 struct rocker_dma_ring_info *rx_ring = &rocker_port->rx_ring; rocker_dma_rx_ring_skbs_alloc() 1198 err = rocker_dma_rx_ring_skb_alloc(rocker, rocker_port, rocker_dma_rx_ring_skbs_alloc() 1212 struct rocker_port *rocker_port) rocker_dma_rx_ring_skbs_free() 1214 struct rocker_dma_ring_info *rx_ring = &rocker_port->rx_ring; rocker_dma_rx_ring_skbs_free() 1221 static int rocker_port_dma_rings_init(struct rocker_port *rocker_port) rocker_port_dma_rings_init() argument 1223 struct rocker *rocker = rocker_port->rocker; rocker_port_dma_rings_init() 1227 ROCKER_DMA_TX(rocker_port->port_number), rocker_port_dma_rings_init() 1229 &rocker_port->tx_ring); rocker_port_dma_rings_init() 1231 netdev_err(rocker_port->dev, "failed to create tx dma ring\n"); rocker_port_dma_rings_init() 1235 err = rocker_dma_ring_bufs_alloc(rocker, &rocker_port->tx_ring, rocker_port_dma_rings_init() 1239 netdev_err(rocker_port->dev, "failed to alloc tx dma ring buffers\n"); rocker_port_dma_rings_init() 1244 ROCKER_DMA_RX(rocker_port->port_number), rocker_port_dma_rings_init() 1246 &rocker_port->rx_ring); rocker_port_dma_rings_init() 1248 netdev_err(rocker_port->dev, "failed to create rx dma ring\n"); rocker_port_dma_rings_init() 1252 err = rocker_dma_ring_bufs_alloc(rocker, &rocker_port->rx_ring, rocker_port_dma_rings_init() 1256 netdev_err(rocker_port->dev, "failed to alloc rx dma ring buffers\n"); rocker_port_dma_rings_init() 1260 err = rocker_dma_rx_ring_skbs_alloc(rocker, rocker_port); rocker_port_dma_rings_init() 1262 netdev_err(rocker_port->dev, "failed to alloc rx dma ring skbs\n"); rocker_port_dma_rings_init() 1265 rocker_dma_ring_pass_to_producer(rocker, &rocker_port->rx_ring); rocker_port_dma_rings_init() 1270 rocker_dma_ring_bufs_free(rocker, &rocker_port->rx_ring, rocker_port_dma_rings_init() 1273 rocker_dma_ring_destroy(rocker, &rocker_port->rx_ring); rocker_port_dma_rings_init() 1275 rocker_dma_ring_bufs_free(rocker, &rocker_port->tx_ring, rocker_port_dma_rings_init() 1278 rocker_dma_ring_destroy(rocker, &rocker_port->tx_ring); rocker_port_dma_rings_init() 1282 static void rocker_port_dma_rings_fini(struct rocker_port *rocker_port) rocker_port_dma_rings_fini() argument 1284 struct rocker *rocker = rocker_port->rocker; rocker_port_dma_rings_fini() 1286 rocker_dma_rx_ring_skbs_free(rocker, rocker_port); rocker_port_dma_rings_fini() 1287 rocker_dma_ring_bufs_free(rocker, &rocker_port->rx_ring, rocker_port_dma_rings_fini() 1289 rocker_dma_ring_destroy(rocker, &rocker_port->rx_ring); rocker_port_dma_rings_fini() 1290 rocker_dma_ring_bufs_free(rocker, &rocker_port->tx_ring, rocker_port_dma_rings_fini() 1292 rocker_dma_ring_destroy(rocker, &rocker_port->tx_ring); rocker_port_dma_rings_fini() 1295 static void rocker_port_set_enable(struct rocker_port *rocker_port, bool enable) rocker_port_set_enable() argument 1297 u64 val = rocker_read64(rocker_port->rocker, PORT_PHYS_ENABLE); rocker_port_set_enable() 1300 val |= 1ULL << rocker_port->pport; rocker_port_set_enable() 1302 val &= ~(1ULL << rocker_port->pport); rocker_port_set_enable() 1303 rocker_write64(rocker_port->rocker, PORT_PHYS_ENABLE, val); rocker_port_set_enable() 1334 static void rocker_port_link_up(struct rocker_port *rocker_port) rocker_port_link_up() argument 1336 netif_carrier_on(rocker_port->dev); rocker_port_link_up() 1337 netdev_info(rocker_port->dev, "Link is up\n"); rocker_port_link_up() 1340 static void rocker_port_link_down(struct rocker_port *rocker_port) rocker_port_link_down() argument 1342 netif_carrier_off(rocker_port->dev); rocker_port_link_down() 1343 netdev_info(rocker_port->dev, "Link is down\n"); rocker_port_link_down() 1352 struct rocker_port *rocker_port; rocker_event_link_change() local 1365 rocker_port = rocker->ports[port_number]; rocker_event_link_change() 1366 if (netif_carrier_ok(rocker_port->dev) != link_up) { rocker_event_link_change() 1368 rocker_port_link_up(rocker_port); rocker_event_link_change() 1370 rocker_port_link_down(rocker_port); rocker_event_link_change() 1381 static int rocker_port_fdb(struct rocker_port *rocker_port, 1390 struct rocker_port *rocker_port; rocker_event_mac_vlan_seen() local 1408 rocker_port = rocker->ports[port_number]; rocker_event_mac_vlan_seen() 1410 if (rocker_port->stp_state != BR_STATE_LEARNING && rocker_event_mac_vlan_seen() 1411 rocker_port->stp_state != BR_STATE_FORWARDING) rocker_event_mac_vlan_seen() 1414 return rocker_port_fdb(rocker_port, addr, vlan_id, flags); rocker_event_mac_vlan_seen() 1472 struct rocker_port *rocker_port = dev_id; rocker_tx_irq_handler() local 1474 napi_schedule(&rocker_port->napi_tx); rocker_tx_irq_handler() 1480 struct rocker_port *rocker_port = dev_id; rocker_rx_irq_handler() local 1482 napi_schedule(&rocker_port->napi_rx); rocker_rx_irq_handler() 1491 struct rocker_port *rocker_port, 1496 struct rocker_port *rocker_port, rocker_cmd_exec() 1518 err = prepare(rocker, rocker_port, desc_info, prepare_priv); rocker_cmd_exec() 1538 err = process(rocker, rocker_port, desc_info, process_priv); rocker_cmd_exec() 1548 struct rocker_port *rocker_port, rocker_cmd_get_port_settings_prep() 1561 rocker_port->pport)) rocker_cmd_get_port_settings_prep() 1569 struct rocker_port *rocker_port, rocker_cmd_get_port_settings_ethtool_proc() 1608 struct rocker_port *rocker_port, rocker_cmd_get_port_settings_macaddr_proc() 1641 struct rocker_port *rocker_port, rocker_cmd_get_port_settings_phys_name_proc() 1683 struct rocker_port *rocker_port, rocker_cmd_set_port_settings_ethtool_prep() 1697 rocker_port->pport)) rocker_cmd_set_port_settings_ethtool_prep() 1714 struct rocker_port *rocker_port, rocker_cmd_set_port_settings_macaddr_prep() 1728 rocker_port->pport)) rocker_cmd_set_port_settings_macaddr_prep() 1739 struct rocker_port *rocker_port, rocker_cmd_set_port_learning_prep() 1752 rocker_port->pport)) rocker_cmd_set_port_learning_prep() 1755 !!(rocker_port->brport_flags & BR_LEARNING))) rocker_cmd_set_port_learning_prep() 1761 static int rocker_cmd_get_port_settings_ethtool(struct rocker_port *rocker_port, rocker_cmd_get_port_settings_ethtool() argument 1764 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_cmd_get_port_settings_ethtool() 1770 static int rocker_cmd_get_port_settings_macaddr(struct rocker_port *rocker_port, rocker_cmd_get_port_settings_macaddr() argument 1773 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_cmd_get_port_settings_macaddr() 1779 static int rocker_cmd_set_port_settings_ethtool(struct rocker_port *rocker_port, rocker_cmd_set_port_settings_ethtool() argument 1782 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_cmd_set_port_settings_ethtool() 1787 static int rocker_cmd_set_port_settings_macaddr(struct rocker_port *rocker_port, rocker_cmd_set_port_settings_macaddr() argument 1790 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_cmd_set_port_settings_macaddr() 1795 static int rocker_port_set_learning(struct rocker_port *rocker_port) rocker_port_set_learning() argument 1797 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_port_set_learning() 1999 struct rocker_port *rocker_port, rocker_cmd_flow_tbl_add() 2057 struct rocker_port *rocker_port, rocker_cmd_flow_tbl_del() 2167 struct rocker_port *rocker_port, rocker_cmd_group_tbl_add() 2213 struct rocker_port *rocker_port, rocker_cmd_group_tbl_del() 2310 static int rocker_flow_tbl_add(struct rocker_port *rocker_port, rocker_flow_tbl_add() argument 2314 struct rocker *rocker = rocker_port->rocker; rocker_flow_tbl_add() 2341 return rocker_cmd_exec(rocker, rocker_port, rocker_flow_tbl_add() 2346 static int rocker_flow_tbl_del(struct rocker_port *rocker_port, rocker_flow_tbl_del() argument 2350 struct rocker *rocker = rocker_port->rocker; rocker_flow_tbl_del() 2372 err = rocker_cmd_exec(rocker, rocker_port, rocker_flow_tbl_del() 2386 static int rocker_flow_tbl_do(struct rocker_port *rocker_port, rocker_flow_tbl_do() argument 2392 return rocker_flow_tbl_del(rocker_port, entry, nowait); rocker_flow_tbl_do() 2394 return rocker_flow_tbl_add(rocker_port, entry, nowait); rocker_flow_tbl_do() 2397 static int rocker_flow_tbl_ig_port(struct rocker_port *rocker_port, rocker_flow_tbl_ig_port() argument 2413 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_ig_port() 2416 static int rocker_flow_tbl_vlan(struct rocker_port *rocker_port, rocker_flow_tbl_vlan() argument 2438 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_vlan() 2441 static int rocker_flow_tbl_term_mac(struct rocker_port *rocker_port, rocker_flow_tbl_term_mac() argument 2474 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_term_mac() 2477 static int rocker_flow_tbl_bridge(struct rocker_port *rocker_port, rocker_flow_tbl_bridge() argument 2528 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_bridge() 2531 static int rocker_flow_tbl_ucast4_routing(struct rocker_port *rocker_port, rocker_flow_tbl_ucast4_routing() argument 2553 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_ucast4_routing() 2556 static int rocker_flow_tbl_acl(struct rocker_port *rocker_port, rocker_flow_tbl_acl() argument 2605 return rocker_flow_tbl_do(rocker_port, flags, entry); rocker_flow_tbl_acl() 2636 static int rocker_group_tbl_add(struct rocker_port *rocker_port, rocker_group_tbl_add() argument 2640 struct rocker *rocker = rocker_port->rocker; rocker_group_tbl_add() 2662 return rocker_cmd_exec(rocker, rocker_port, rocker_group_tbl_add() 2667 static int rocker_group_tbl_del(struct rocker_port *rocker_port, rocker_group_tbl_del() argument 2671 struct rocker *rocker = rocker_port->rocker; rocker_group_tbl_del() 2690 err = rocker_cmd_exec(rocker, rocker_port, rocker_group_tbl_del() 2699 static int rocker_group_tbl_do(struct rocker_port *rocker_port, rocker_group_tbl_do() argument 2705 return rocker_group_tbl_del(rocker_port, entry, nowait); rocker_group_tbl_do() 2707 return rocker_group_tbl_add(rocker_port, entry, nowait); rocker_group_tbl_do() 2710 static int rocker_group_l2_interface(struct rocker_port *rocker_port, rocker_group_l2_interface() argument 2723 return rocker_group_tbl_do(rocker_port, flags, entry); rocker_group_l2_interface() 2726 static int rocker_group_l2_fan_out(struct rocker_port *rocker_port, rocker_group_l2_fan_out() argument 2747 return rocker_group_tbl_do(rocker_port, flags, entry); rocker_group_l2_fan_out() 2750 static int rocker_group_l2_flood(struct rocker_port *rocker_port, rocker_group_l2_flood() argument 2755 return rocker_group_l2_fan_out(rocker_port, flags, rocker_group_l2_flood() 2760 static int rocker_group_l3_unicast(struct rocker_port *rocker_port, rocker_group_l3_unicast() argument 2780 return rocker_group_tbl_do(rocker_port, flags, entry); rocker_group_l3_unicast() 2826 static int rocker_port_ipv4_neigh(struct rocker_port *rocker_port, rocker_port_ipv4_neigh() argument 2829 struct rocker *rocker = rocker_port->rocker; rocker_port_ipv4_neigh() 2857 entry->dev = rocker_port->dev; rocker_port_ipv4_neigh() 2882 err = rocker_group_l3_unicast(rocker_port, flags, rocker_port_ipv4_neigh() 2884 rocker_port->dev->dev_addr, rocker_port_ipv4_neigh() 2886 rocker_port->internal_vlan_id, rocker_port_ipv4_neigh() 2888 rocker_port->pport); rocker_port_ipv4_neigh() 2890 netdev_err(rocker_port->dev, rocker_port_ipv4_neigh() 2898 err = rocker_flow_tbl_ucast4_routing(rocker_port, rocker_port_ipv4_neigh() 2905 netdev_err(rocker_port->dev, rocker_port_ipv4_neigh() 2917 static int rocker_port_ipv4_resolve(struct rocker_port *rocker_port, rocker_port_ipv4_resolve() argument 2920 struct net_device *dev = rocker_port->dev; rocker_port_ipv4_resolve() 2936 err = rocker_port_ipv4_neigh(rocker_port, 0, ip_addr, n->ha); rocker_port_ipv4_resolve() 2944 static int rocker_port_ipv4_nh(struct rocker_port *rocker_port, int flags, rocker_port_ipv4_nh() argument 2947 struct rocker *rocker = rocker_port->rocker; rocker_port_ipv4_nh() 2973 entry->dev = rocker_port->dev; rocker_port_ipv4_nh() 2997 err = rocker_port_ipv4_resolve(rocker_port, ip_addr); rocker_port_ipv4_nh() 3002 static int rocker_port_vlan_flood_group(struct rocker_port *rocker_port, rocker_port_vlan_flood_group() argument 3005 struct rocker_port *p; rocker_port_vlan_flood_group() 3006 struct rocker *rocker = rocker_port->rocker; rocker_port_vlan_flood_group() 3037 err = rocker_group_l2_flood(rocker_port, flags, vlan_id, rocker_port_vlan_flood_group() 3041 netdev_err(rocker_port->dev, rocker_port_vlan_flood_group() 3049 static int rocker_port_vlan_l2_groups(struct rocker_port *rocker_port, rocker_port_vlan_l2_groups() argument 3053 struct rocker *rocker = rocker_port->rocker; rocker_port_vlan_l2_groups() 3054 struct rocker_port *p; rocker_port_vlan_l2_groups() 3065 if (rocker_port->stp_state == BR_STATE_LEARNING || rocker_port_vlan_l2_groups() 3066 rocker_port->stp_state == BR_STATE_FORWARDING) { rocker_port_vlan_l2_groups() 3067 out_pport = rocker_port->pport; rocker_port_vlan_l2_groups() 3068 err = rocker_group_l2_interface(rocker_port, flags, rocker_port_vlan_l2_groups() 3072 netdev_err(rocker_port->dev, rocker_port_vlan_l2_groups() 3094 err = rocker_group_l2_interface(rocker_port, flags, rocker_port_vlan_l2_groups() 3098 netdev_err(rocker_port->dev, rocker_port_vlan_l2_groups() 3151 static int rocker_port_ctrl_vlan_acl(struct rocker_port *rocker_port, rocker_port_ctrl_vlan_acl() argument 3155 u32 in_pport = rocker_port->pport; rocker_port_ctrl_vlan_acl() 3168 err = rocker_flow_tbl_acl(rocker_port, flags, rocker_port_ctrl_vlan_acl() 3179 netdev_err(rocker_port->dev, "Error (%d) ctrl ACL\n", err); rocker_port_ctrl_vlan_acl() 3184 static int rocker_port_ctrl_vlan_bridge(struct rocker_port *rocker_port, rocker_port_ctrl_vlan_bridge() argument 3194 if (!rocker_port_is_bridged(rocker_port)) rocker_port_ctrl_vlan_bridge() 3197 err = rocker_flow_tbl_bridge(rocker_port, flags, rocker_port_ctrl_vlan_bridge() 3203 netdev_err(rocker_port->dev, "Error (%d) ctrl FLOOD\n", err); rocker_port_ctrl_vlan_bridge() 3208 static int rocker_port_ctrl_vlan_term(struct rocker_port *rocker_port, rocker_port_ctrl_vlan_term() argument 3217 vlan_id = rocker_port->internal_vlan_id; rocker_port_ctrl_vlan_term() 3219 err = rocker_flow_tbl_term_mac(rocker_port, rocker_port_ctrl_vlan_term() 3220 rocker_port->pport, in_pport_mask, rocker_port_ctrl_vlan_term() 3227 netdev_err(rocker_port->dev, "Error (%d) ctrl term\n", err); rocker_port_ctrl_vlan_term() 3232 static int rocker_port_ctrl_vlan(struct rocker_port *rocker_port, int flags, rocker_port_ctrl_vlan() argument 3236 return rocker_port_ctrl_vlan_acl(rocker_port, flags, rocker_port_ctrl_vlan() 3239 return rocker_port_ctrl_vlan_bridge(rocker_port, flags, rocker_port_ctrl_vlan() 3243 return rocker_port_ctrl_vlan_term(rocker_port, flags, rocker_port_ctrl_vlan() 3249 static int rocker_port_ctrl_vlan_add(struct rocker_port *rocker_port, rocker_port_ctrl_vlan_add() argument 3256 if (rocker_port->ctrls[i]) { rocker_port_ctrl_vlan_add() 3257 err = rocker_port_ctrl_vlan(rocker_port, flags, rocker_port_ctrl_vlan_add() 3267 static int rocker_port_ctrl(struct rocker_port *rocker_port, int flags, rocker_port_ctrl() argument 3274 if (!test_bit(vid, rocker_port->vlan_bitmap)) rocker_port_ctrl() 3276 err = rocker_port_ctrl_vlan(rocker_port, flags, rocker_port_ctrl() 3285 static int rocker_port_vlan(struct rocker_port *rocker_port, int flags, rocker_port_vlan() argument 3290 u32 in_pport = rocker_port->pport; rocker_port_vlan() 3298 internal_vlan_id = rocker_port_vid_to_vlan(rocker_port, vid, &untagged); rocker_port_vlan() 3301 rocker_port->vlan_bitmap)) rocker_port_vlan() 3304 rocker_port->vlan_bitmap)) rocker_port_vlan() 3308 err = rocker_port_ctrl_vlan_add(rocker_port, flags, rocker_port_vlan() 3311 netdev_err(rocker_port->dev, rocker_port_vlan() 3317 err = rocker_port_vlan_l2_groups(rocker_port, flags, rocker_port_vlan() 3320 netdev_err(rocker_port->dev, rocker_port_vlan() 3325 err = rocker_port_vlan_flood_group(rocker_port, flags, rocker_port_vlan() 3328 netdev_err(rocker_port->dev, rocker_port_vlan() 3333 err = rocker_flow_tbl_vlan(rocker_port, flags, rocker_port_vlan() 3337 netdev_err(rocker_port->dev, rocker_port_vlan() 3343 static int rocker_port_ig_tbl(struct rocker_port *rocker_port, int flags) rocker_port_ig_tbl() argument 3358 err = rocker_flow_tbl_ig_port(rocker_port, flags, rocker_port_ig_tbl() 3362 netdev_err(rocker_port->dev, rocker_port_ig_tbl() 3399 static int rocker_port_fdb_learn(struct rocker_port *rocker_port, rocker_port_fdb_learn() argument 3405 u32 out_pport = rocker_port->pport; rocker_port_fdb_learn() 3408 bool syncing = !!(rocker_port->brport_flags & BR_LEARNING_SYNC); rocker_port_fdb_learn() 3412 if (rocker_port_is_bridged(rocker_port)) rocker_port_fdb_learn() 3416 err = rocker_flow_tbl_bridge(rocker_port, flags, addr, NULL, rocker_port_fdb_learn() 3426 if (!rocker_port_is_bridged(rocker_port)) rocker_port_fdb_learn() 3435 lw->dev = rocker_port->dev; rocker_port_fdb_learn() 3438 lw->vid = rocker_port_vlan_to_vid(rocker_port, vlan_id); rocker_port_fdb_learn() 3457 static int rocker_port_fdb(struct rocker_port *rocker_port, rocker_port_fdb() argument 3461 struct rocker *rocker = rocker_port->rocker; rocker_port_fdb() 3472 fdb->key.pport = rocker_port->pport; rocker_port_fdb() 3499 return rocker_port_fdb_learn(rocker_port, flags, addr, vlan_id); rocker_port_fdb() 3502 static int rocker_port_fdb_flush(struct rocker_port *rocker_port) rocker_port_fdb_flush() argument 3504 struct rocker *rocker = rocker_port->rocker; rocker_port_fdb_flush() 3512 if (rocker_port->stp_state == BR_STATE_LEARNING || rocker_port_fdb_flush() 3513 rocker_port->stp_state == BR_STATE_FORWARDING) rocker_port_fdb_flush() 3519 if (found->key.pport != rocker_port->pport) rocker_port_fdb_flush() 3523 err = rocker_port_fdb_learn(rocker_port, flags, rocker_port_fdb_flush() 3537 static int rocker_port_router_mac(struct rocker_port *rocker_port, rocker_port_router_mac() argument 3548 vlan_id = rocker_port->internal_vlan_id; rocker_port_router_mac() 3551 err = rocker_flow_tbl_term_mac(rocker_port, rocker_port_router_mac() 3552 rocker_port->pport, in_pport_mask, rocker_port_router_mac() 3553 eth_type, rocker_port->dev->dev_addr, rocker_port_router_mac() 3560 err = rocker_flow_tbl_term_mac(rocker_port, rocker_port_router_mac() 3561 rocker_port->pport, in_pport_mask, rocker_port_router_mac() 3562 eth_type, rocker_port->dev->dev_addr, rocker_port_router_mac() 3569 static int rocker_port_fwding(struct rocker_port *rocker_port) rocker_port_fwding() argument 3585 if (rocker_port->stp_state != BR_STATE_LEARNING && rocker_port_fwding() 3586 rocker_port->stp_state != BR_STATE_FORWARDING) rocker_port_fwding() 3589 out_pport = rocker_port->pport; rocker_port_fwding() 3591 if (!test_bit(vid, rocker_port->vlan_bitmap)) rocker_port_fwding() 3595 err = rocker_group_l2_interface(rocker_port, flags, rocker_port_fwding() 3599 netdev_err(rocker_port->dev, rocker_port_fwding() 3609 static int rocker_port_stp_update(struct rocker_port *rocker_port, u8 state) rocker_port_stp_update() argument 3616 if (rocker_port->stp_state == state) rocker_port_stp_update() 3619 rocker_port->stp_state = state; rocker_port_stp_update() 3634 if (rocker_port_is_bridged(rocker_port)) rocker_port_stp_update() 3642 if (want[i] != rocker_port->ctrls[i]) { rocker_port_stp_update() 3645 err = rocker_port_ctrl(rocker_port, flags, rocker_port_stp_update() 3649 rocker_port->ctrls[i] = want[i]; rocker_port_stp_update() 3653 err = rocker_port_fdb_flush(rocker_port); rocker_port_stp_update() 3657 return rocker_port_fwding(rocker_port); rocker_port_stp_update() 3660 static int rocker_port_fwd_enable(struct rocker_port *rocker_port) rocker_port_fwd_enable() argument 3662 if (rocker_port_is_bridged(rocker_port)) rocker_port_fwd_enable() 3667 return rocker_port_stp_update(rocker_port, BR_STATE_FORWARDING); rocker_port_fwd_enable() 3670 static int rocker_port_fwd_disable(struct rocker_port *rocker_port) rocker_port_fwd_disable() argument 3672 if (rocker_port_is_bridged(rocker_port)) rocker_port_fwd_disable() 3677 return rocker_port_stp_update(rocker_port, BR_STATE_DISABLED); rocker_port_fwd_disable() 3694 static __be16 rocker_port_internal_vlan_id_get(struct rocker_port *rocker_port, rocker_port_internal_vlan_id_get() argument 3697 struct rocker *rocker = rocker_port->rocker; rocker_port_internal_vlan_id_get() 3727 netdev_err(rocker_port->dev, "Out of internal VLAN IDs\n"); rocker_port_internal_vlan_id_get() 3736 static void rocker_port_internal_vlan_id_put(struct rocker_port *rocker_port, rocker_port_internal_vlan_id_put() argument 3739 struct rocker *rocker = rocker_port->rocker; rocker_port_internal_vlan_id_put() 3748 netdev_err(rocker_port->dev, rocker_port_internal_vlan_id_put() 3765 static int rocker_port_fib_ipv4(struct rocker_port *rocker_port, __be32 dst, rocker_port_fib_ipv4() argument 3772 __be16 internal_vlan_id = rocker_port->internal_vlan_id; rocker_port_fib_ipv4() 3785 nh_on_port = (fi->fib_dev == rocker_port->dev); rocker_port_fib_ipv4() 3789 err = rocker_port_ipv4_nh(rocker_port, flags, rocker_port_fib_ipv4() 3800 err = rocker_flow_tbl_ucast4_routing(rocker_port, eth_type, dst, rocker_port_fib_ipv4() 3804 netdev_err(rocker_port->dev, "Error (%d) IPv4 route %pI4\n", rocker_port_fib_ipv4() 3816 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_open() local 3819 err = rocker_port_dma_rings_init(rocker_port); rocker_port_open() 3823 err = request_irq(rocker_msix_tx_vector(rocker_port), rocker_port_open() 3825 rocker_driver_name, rocker_port); rocker_port_open() 3827 netdev_err(rocker_port->dev, "cannot assign tx irq\n"); rocker_port_open() 3831 err = request_irq(rocker_msix_rx_vector(rocker_port), rocker_port_open() 3833 rocker_driver_name, rocker_port); rocker_port_open() 3835 netdev_err(rocker_port->dev, "cannot assign rx irq\n"); rocker_port_open() 3839 err = rocker_port_fwd_enable(rocker_port); rocker_port_open() 3843 napi_enable(&rocker_port->napi_tx); rocker_port_open() 3844 napi_enable(&rocker_port->napi_rx); rocker_port_open() 3845 rocker_port_set_enable(rocker_port, true); rocker_port_open() 3850 free_irq(rocker_msix_rx_vector(rocker_port), rocker_port); rocker_port_open() local 3852 free_irq(rocker_msix_tx_vector(rocker_port), rocker_port); rocker_port_open() local 3854 rocker_port_dma_rings_fini(rocker_port); rocker_port_open() 3860 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_stop() local 3863 rocker_port_set_enable(rocker_port, false); rocker_port_stop() 3864 napi_disable(&rocker_port->napi_rx); rocker_port_stop() 3865 napi_disable(&rocker_port->napi_tx); rocker_port_stop() 3866 rocker_port_fwd_disable(rocker_port); rocker_port_stop() 3867 free_irq(rocker_msix_rx_vector(rocker_port), rocker_port); rocker_port_stop() local 3868 free_irq(rocker_msix_tx_vector(rocker_port), rocker_port); rocker_port_stop() local 3869 rocker_port_dma_rings_fini(rocker_port); rocker_port_stop() 3874 static void rocker_tx_desc_frags_unmap(struct rocker_port *rocker_port, rocker_tx_desc_frags_unmap() argument 3877 struct rocker *rocker = rocker_port->rocker; rocker_tx_desc_frags_unmap() 3904 static int rocker_tx_desc_frag_map_put(struct rocker_port *rocker_port, rocker_tx_desc_frag_map_put() argument 3908 struct rocker *rocker = rocker_port->rocker; rocker_tx_desc_frag_map_put() 3916 netdev_err(rocker_port->dev, "failed to dma map tx frag\n"); rocker_tx_desc_frag_map_put() 3940 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_xmit() local 3941 struct rocker *rocker = rocker_port->rocker; rocker_port_xmit() 3947 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); rocker_port_xmit() 3959 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, rocker_port_xmit() 3969 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, rocker_port_xmit() 3978 rocker_desc_head_set(rocker, &rocker_port->tx_ring, desc_info); rocker_port_xmit() 3980 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); rocker_port_xmit() 3987 rocker_tx_desc_frags_unmap(rocker_port, desc_info); rocker_port_xmit() 4000 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_set_mac_address() local 4006 err = rocker_cmd_set_port_settings_macaddr(rocker_port, addr->sa_data); rocker_port_set_mac_address() 4016 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_vlan_rx_add_vid() local 4019 err = rocker_port_vlan(rocker_port, 0, vid); rocker_port_vlan_rx_add_vid() 4023 return rocker_port_router_mac(rocker_port, 0, htons(vid)); rocker_port_vlan_rx_add_vid() 4029 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_vlan_rx_kill_vid() local 4032 err = rocker_port_router_mac(rocker_port, ROCKER_OP_FLAG_REMOVE, rocker_port_vlan_rx_kill_vid() 4037 return rocker_port_vlan(rocker_port, ROCKER_OP_FLAG_REMOVE, vid); rocker_port_vlan_rx_kill_vid() 4045 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_fdb_add() local 4046 __be16 vlan_id = rocker_port_vid_to_vlan(rocker_port, vid, NULL); rocker_port_fdb_add() 4049 if (!rocker_port_is_bridged(rocker_port)) rocker_port_fdb_add() 4052 return rocker_port_fdb(rocker_port, addr, vlan_id, flags); rocker_port_fdb_add() 4059 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_fdb_del() local 4060 __be16 vlan_id = rocker_port_vid_to_vlan(rocker_port, vid, NULL); rocker_port_fdb_del() 4063 if (!rocker_port_is_bridged(rocker_port)) rocker_port_fdb_del() 4066 return rocker_port_fdb(rocker_port, addr, vlan_id, flags); rocker_port_fdb_del() 4070 struct rocker_port *rocker_port, rocker_fdb_fill_info() 4088 ndm->ndm_ifindex = rocker_port->dev->ifindex; rocker_fdb_fill_info() 4111 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_fdb_dump() local 4112 struct rocker *rocker = rocker_port->rocker; rocker_port_fdb_dump() 4123 if (found->key.pport != rocker_port->pport) rocker_port_fdb_dump() 4128 vid = rocker_port_vlan_to_vid(rocker_port, found->key.vlan_id); rocker_port_fdb_dump() 4129 err = rocker_fdb_fill_info(skb, rocker_port, addr, vid, rocker_port_fdb_dump() 4145 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_bridge_setlink() local 4159 rocker_port->brport_flags |= BR_LEARNING; rocker_port_bridge_setlink() 4161 rocker_port->brport_flags &= ~BR_LEARNING; rocker_port_bridge_setlink() 4162 err = rocker_port_set_learning(rocker_port); rocker_port_bridge_setlink() 4172 rocker_port->brport_flags |= BR_LEARNING_SYNC; rocker_port_bridge_setlink() 4174 rocker_port->brport_flags &= ~BR_LEARNING_SYNC; rocker_port_bridge_setlink() 4185 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_bridge_getlink() local 4190 rocker_port->brport_flags, mask, rocker_port_bridge_getlink() 4197 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_get_phys_port_name() local 4201 err = rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_port_get_phys_port_name() 4231 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_swdev_parent_id_get() local 4232 struct rocker *rocker = rocker_port->rocker; rocker_port_swdev_parent_id_get() 4241 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_swdev_port_stp_update() local 4243 return rocker_port_stp_update(rocker_port, state); rocker_port_swdev_port_stp_update() 4252 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_swdev_fib_ipv4_add() local 4255 return rocker_port_fib_ipv4(rocker_port, dst, dst_len, rocker_port_swdev_fib_ipv4_add() 4264 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_swdev_fib_ipv4_del() local 4267 return rocker_port_fib_ipv4(rocker_port, dst, dst_len, rocker_port_swdev_fib_ipv4_del() 4285 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_get_settings() local 4287 return rocker_cmd_get_port_settings_ethtool(rocker_port, ecmd); rocker_port_get_settings() 4293 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_set_settings() local 4295 return rocker_cmd_set_port_settings_ethtool(rocker_port, ecmd); rocker_port_set_settings() 4340 struct rocker_port *rocker_port, rocker_cmd_get_port_stats_prep() 4355 rocker_port->pport)) rocker_cmd_get_port_stats_prep() 4365 struct rocker_port *rocker_port, rocker_cmd_get_port_stats_ethtool_proc() 4388 if (pport != rocker_port->pport) rocker_cmd_get_port_stats_ethtool_proc() 4402 static int rocker_cmd_get_port_stats_ethtool(struct rocker_port *rocker_port, rocker_cmd_get_port_stats_ethtool() argument 4405 return rocker_cmd_exec(rocker_port->rocker, rocker_port, rocker_cmd_get_port_stats_ethtool() 4414 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_get_stats() local 4416 if (rocker_cmd_get_port_stats_ethtool(rocker_port, data) != 0) { rocker_port_get_stats() 4450 static struct rocker_port *rocker_port_napi_tx_get(struct napi_struct *napi) rocker_port_napi_tx_get() 4452 return container_of(napi, struct rocker_port, napi_tx); rocker_port_napi_tx_get() 4457 struct rocker_port *rocker_port = rocker_port_napi_tx_get(napi); rocker_port_poll_tx() local 4458 struct rocker *rocker = rocker_port->rocker; rocker_port_poll_tx() 4464 while ((desc_info = rocker_desc_tail_get(&rocker_port->tx_ring))) { rocker_port_poll_tx() 4469 netdev_err(rocker_port->dev, "tx desc received with err %d\n", rocker_port_poll_tx() 4471 rocker_tx_desc_frags_unmap(rocker_port, desc_info); rocker_port_poll_tx() 4475 rocker_port->dev->stats.tx_packets++; rocker_port_poll_tx() 4476 rocker_port->dev->stats.tx_bytes += skb->len; rocker_port_poll_tx() 4478 rocker_port->dev->stats.tx_errors++; rocker_port_poll_tx() 4484 if (credits && netif_queue_stopped(rocker_port->dev)) rocker_port_poll_tx() 4485 netif_wake_queue(rocker_port->dev); rocker_port_poll_tx() 4488 rocker_dma_ring_credits_set(rocker, &rocker_port->tx_ring, credits); rocker_port_poll_tx() 4494 struct rocker_port *rocker_port, rocker_port_rx_proc() 4512 skb->protocol = eth_type_trans(skb, rocker_port->dev); rocker_port_rx_proc() 4514 rocker_port->dev->stats.rx_packets++; rocker_port_rx_proc() 4515 rocker_port->dev->stats.rx_bytes += skb->len; rocker_port_rx_proc() 4519 return rocker_dma_rx_ring_skb_alloc(rocker, rocker_port, desc_info); rocker_port_rx_proc() 4522 static struct rocker_port *rocker_port_napi_rx_get(struct napi_struct *napi) rocker_port_napi_rx_get() 4524 return container_of(napi, struct rocker_port, napi_rx); rocker_port_napi_rx_get() 4529 struct rocker_port *rocker_port = rocker_port_napi_rx_get(napi); rocker_port_poll_rx() local 4530 struct rocker *rocker = rocker_port->rocker; rocker_port_poll_rx() 4537 (desc_info = rocker_desc_tail_get(&rocker_port->rx_ring))) { rocker_port_poll_rx() 4541 netdev_err(rocker_port->dev, "rx desc received with err %d\n", rocker_port_poll_rx() 4544 err = rocker_port_rx_proc(rocker, rocker_port, rocker_port_poll_rx() 4547 netdev_err(rocker_port->dev, "rx processing failed with err %d\n", rocker_port_poll_rx() 4551 rocker_port->dev->stats.rx_errors++; rocker_port_poll_rx() 4554 rocker_desc_head_set(rocker, &rocker_port->rx_ring, desc_info); rocker_port_poll_rx() 4561 rocker_dma_ring_credits_set(rocker, &rocker_port->rx_ring, credits); rocker_port_poll_rx() 4570 static void rocker_carrier_init(struct rocker_port *rocker_port) rocker_carrier_init() argument 4572 struct rocker *rocker = rocker_port->rocker; rocker_carrier_init() 4576 link_up = link_status & (1 << rocker_port->pport); rocker_carrier_init() 4578 netif_carrier_on(rocker_port->dev); rocker_carrier_init() 4580 netif_carrier_off(rocker_port->dev); rocker_carrier_init() 4585 struct rocker_port *rocker_port; rocker_remove_ports() local 4589 rocker_port = rocker->ports[i]; rocker_remove_ports() 4590 rocker_port_ig_tbl(rocker_port, ROCKER_OP_FLAG_REMOVE); rocker_remove_ports() 4591 unregister_netdev(rocker_port->dev); rocker_remove_ports() 4592 free_netdev(rocker_port->dev); rocker_remove_ports() 4598 struct rocker_port *rocker_port) rocker_port_dev_addr_init() 4603 err = rocker_cmd_get_port_settings_macaddr(rocker_port, rocker_port_dev_addr_init() 4604 rocker_port->dev->dev_addr); rocker_port_dev_addr_init() 4607 eth_hw_addr_random(rocker_port->dev); rocker_port_dev_addr_init() 4614 struct rocker_port *rocker_port; rocker_probe_port() local 4618 dev = alloc_etherdev(sizeof(struct rocker_port)); rocker_probe_port() 4621 rocker_port = netdev_priv(dev); rocker_probe_port() 4622 rocker_port->dev = dev; rocker_probe_port() 4623 rocker_port->rocker = rocker; rocker_probe_port() 4624 rocker_port->port_number = port_number; rocker_probe_port() 4625 rocker_port->pport = port_number + 1; rocker_probe_port() 4626 rocker_port->brport_flags = BR_LEARNING | BR_LEARNING_SYNC; rocker_probe_port() 4628 rocker_port_dev_addr_init(rocker, rocker_port); rocker_probe_port() 4632 netif_napi_add(dev, &rocker_port->napi_tx, rocker_port_poll_tx, rocker_probe_port() 4634 netif_napi_add(dev, &rocker_port->napi_rx, rocker_port_poll_rx, rocker_probe_port() 4636 rocker_carrier_init(rocker_port); rocker_probe_port() 4647 rocker->ports[port_number] = rocker_port; rocker_probe_port() 4649 rocker_port_set_learning(rocker_port); rocker_probe_port() 4651 rocker_port->internal_vlan_id = rocker_probe_port() 4652 rocker_port_internal_vlan_id_get(rocker_port, dev->ifindex); rocker_probe_port() 4653 err = rocker_port_ig_tbl(rocker_port, 0); rocker_probe_port() 4674 alloc_size = sizeof(struct rocker_port *) * rocker->port_count; rocker_probe_ports() 4895 static int rocker_port_bridge_join(struct rocker_port *rocker_port, rocker_port_bridge_join() argument 4900 rocker_port_internal_vlan_id_put(rocker_port, rocker_port_bridge_join() 4901 rocker_port->dev->ifindex); rocker_port_bridge_join() 4903 rocker_port->bridge_dev = bridge; rocker_port_bridge_join() 4906 err = rocker_port_vlan(rocker_port, ROCKER_OP_FLAG_REMOVE, 0); rocker_port_bridge_join() 4909 rocker_port->internal_vlan_id = rocker_port_bridge_join() 4910 rocker_port_internal_vlan_id_get(rocker_port, rocker_port_bridge_join() 4912 return rocker_port_vlan(rocker_port, 0, 0); rocker_port_bridge_join() 4915 static int rocker_port_bridge_leave(struct rocker_port *rocker_port) rocker_port_bridge_leave() argument 4919 rocker_port_internal_vlan_id_put(rocker_port, rocker_port_bridge_leave() 4920 rocker_port->bridge_dev->ifindex); rocker_port_bridge_leave() 4922 rocker_port->bridge_dev = NULL; rocker_port_bridge_leave() 4925 err = rocker_port_vlan(rocker_port, ROCKER_OP_FLAG_REMOVE, 0); rocker_port_bridge_leave() 4928 rocker_port->internal_vlan_id = rocker_port_bridge_leave() 4929 rocker_port_internal_vlan_id_get(rocker_port, rocker_port_bridge_leave() 4930 rocker_port->dev->ifindex); rocker_port_bridge_leave() 4931 err = rocker_port_vlan(rocker_port, 0, 0); rocker_port_bridge_leave() 4935 if (rocker_port->dev->flags & IFF_UP) rocker_port_bridge_leave() 4936 err = rocker_port_fwd_enable(rocker_port); rocker_port_bridge_leave() 4943 struct rocker_port *rocker_port = netdev_priv(dev); rocker_port_master_changed() local 4955 err = rocker_port_bridge_join(rocker_port, master); rocker_port_master_changed() 4956 else if (rocker_port_is_bridged(rocker_port)) rocker_port_master_changed() 4957 err = rocker_port_bridge_leave(rocker_port); rocker_port_master_changed() 4994 struct rocker_port *rocker_port = netdev_priv(dev); rocker_neigh_update() local 4998 return rocker_port_ipv4_neigh(rocker_port, flags, ip_addr, n->ha); rocker_neigh_update() 1105 rocker_dma_rx_ring_skb_map(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, struct sk_buff *skb, size_t buf_len) rocker_dma_rx_ring_skb_map() argument 1134 rocker_dma_rx_ring_skb_alloc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info) rocker_dma_rx_ring_skb_alloc() argument 1190 rocker_dma_rx_ring_skbs_alloc(struct rocker *rocker, struct rocker_port *rocker_port) rocker_dma_rx_ring_skbs_alloc() argument 1211 rocker_dma_rx_ring_skbs_free(struct rocker *rocker, struct rocker_port *rocker_port) rocker_dma_rx_ring_skbs_free() argument 1495 rocker_cmd_exec(struct rocker *rocker, struct rocker_port *rocker_port, rocker_cmd_cb_t prepare, void *prepare_priv, rocker_cmd_cb_t process, void *process_priv, bool nowait) rocker_cmd_exec() argument 1547 rocker_cmd_get_port_settings_prep(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_settings_prep() argument 1568 rocker_cmd_get_port_settings_ethtool_proc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_settings_ethtool_proc() argument 1607 rocker_cmd_get_port_settings_macaddr_proc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_settings_macaddr_proc() argument 1640 rocker_cmd_get_port_settings_phys_name_proc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_settings_phys_name_proc() argument 1682 rocker_cmd_set_port_settings_ethtool_prep(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_set_port_settings_ethtool_prep() argument 1713 rocker_cmd_set_port_settings_macaddr_prep(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_set_port_settings_macaddr_prep() argument 1738 rocker_cmd_set_port_learning_prep(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_set_port_learning_prep() argument 1998 rocker_cmd_flow_tbl_add(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_flow_tbl_add() argument 2056 rocker_cmd_flow_tbl_del(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_flow_tbl_del() argument 2166 rocker_cmd_group_tbl_add(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_group_tbl_add() argument 2212 rocker_cmd_group_tbl_del(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_group_tbl_del() argument 4069 rocker_fdb_fill_info(struct sk_buff *skb, struct rocker_port *rocker_port, const unsigned char *addr, u16 vid, u32 portid, u32 seq, int type, unsigned int flags) rocker_fdb_fill_info() argument 4339 rocker_cmd_get_port_stats_prep(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_stats_prep() argument 4364 rocker_cmd_get_port_stats_ethtool_proc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info, void *priv) rocker_cmd_get_port_stats_ethtool_proc() argument 4493 rocker_port_rx_proc(struct rocker *rocker, struct rocker_port *rocker_port, struct rocker_desc_info *desc_info) rocker_port_rx_proc() argument 4597 rocker_port_dev_addr_init(struct rocker *rocker, struct rocker_port *rocker_port) rocker_port_dev_addr_init() argument
|