/linux-4.1.27/net/bridge/ |
H A D | br_stp.c | 35 br_info(p->br, "port %u(%s) entered %s state\n", br_log_state() 47 br_warn(p->br, "error setting offload STP state on port %u(%s)\n", br_set_state() 52 struct net_bridge_port *br_get_port(struct net_bridge *br, u16 port_no) br_get_port() argument 56 list_for_each_entry_rcu(p, &br->port_list, list) { br_get_port() 68 struct net_bridge *br; br_should_become_root_port() local 72 br = p->br; br_should_become_root_port() 77 if (memcmp(&br->bridge_id, &p->designated_root, 8) <= 0) br_should_become_root_port() 83 rp = br_get_port(br, root_port); br_should_become_root_port() 115 static void br_root_port_block(const struct net_bridge *br, br_root_port_block() argument 119 br_notice(br, "port %u(%s) tried to become root port (blocked)", br_root_port_block() 126 if (br->forward_delay > 0) br_root_port_block() 127 mod_timer(&p->forward_delay_timer, jiffies + br->forward_delay); br_root_port_block() 131 static void br_root_selection(struct net_bridge *br) br_root_selection() argument 136 list_for_each_entry(p, &br->port_list, list) { br_root_selection() 141 br_root_port_block(br, p); br_root_selection() 146 br->root_port = root_port; br_root_selection() 149 br->designated_root = br->bridge_id; br_root_selection() 150 br->root_path_cost = 0; br_root_selection() 152 p = br_get_port(br, root_port); br_root_selection() 153 br->designated_root = p->designated_root; br_root_selection() 154 br->root_path_cost = p->designated_cost + p->path_cost; br_root_selection() 159 void br_become_root_bridge(struct net_bridge *br) br_become_root_bridge() argument 161 br->max_age = br->bridge_max_age; br_become_root_bridge() 162 br->hello_time = br->bridge_hello_time; br_become_root_bridge() 163 br->forward_delay = br->bridge_forward_delay; br_become_root_bridge() 164 br_topology_change_detection(br); br_become_root_bridge() 165 del_timer(&br->tcn_timer); br_become_root_bridge() 167 if (br->dev->flags & IFF_UP) { br_become_root_bridge() 168 br_config_bpdu_generation(br); br_become_root_bridge() 169 mod_timer(&br->hello_timer, jiffies + br->hello_time); br_become_root_bridge() 177 struct net_bridge *br; br_transmit_config() local 184 br = p->br; br_transmit_config() 186 bpdu.topology_change = br->topology_change; br_transmit_config() 188 bpdu.root = br->designated_root; br_transmit_config() 189 bpdu.root_path_cost = br->root_path_cost; br_transmit_config() 190 bpdu.bridge_id = br->bridge_id; br_transmit_config() 192 if (br_is_root_bridge(br)) br_transmit_config() 196 = br_get_port(br, br->root_port); br_transmit_config() 200 bpdu.max_age = br->max_age; br_transmit_config() 201 bpdu.hello_time = br->hello_time; br_transmit_config() 202 bpdu.forward_delay = br->forward_delay; br_transmit_config() 204 if (bpdu.message_age < br->max_age) { br_transmit_config() 228 static void br_record_config_timeout_values(struct net_bridge *br, br_record_config_timeout_values() argument 231 br->max_age = bpdu->max_age; br_record_config_timeout_values() 232 br->hello_time = bpdu->hello_time; br_record_config_timeout_values() 233 br->forward_delay = bpdu->forward_delay; br_record_config_timeout_values() 234 br->topology_change = bpdu->topology_change; br_record_config_timeout_values() 238 void br_transmit_tcn(struct net_bridge *br) br_transmit_tcn() argument 242 p = br_get_port(br, br->root_port); br_transmit_tcn() 246 br_notice(br, "root port %u not found for topology notice\n", br_transmit_tcn() 247 br->root_port); br_transmit_tcn() 253 struct net_bridge *br; br_should_become_designated_port() local 256 br = p->br; br_should_become_designated_port() 260 if (memcmp(&p->designated_root, &br->designated_root, 8)) br_should_become_designated_port() 263 if (br->root_path_cost < p->designated_cost) br_should_become_designated_port() 265 else if (br->root_path_cost > p->designated_cost) br_should_become_designated_port() 268 t = memcmp(&br->bridge_id, &p->designated_bridge, 8); br_should_become_designated_port() 281 static void br_designated_port_selection(struct net_bridge *br) br_designated_port_selection() argument 285 list_for_each_entry(p, &br->port_list, list) { br_designated_port_selection() 316 if (memcmp(&bpdu->bridge_id, &p->br->bridge_id, 8)) br_supersedes_port_info() 326 static void br_topology_change_acknowledged(struct net_bridge *br) br_topology_change_acknowledged() argument 328 br->topology_change_detected = 0; br_topology_change_acknowledged() 329 del_timer(&br->tcn_timer); br_topology_change_acknowledged() 333 void br_topology_change_detection(struct net_bridge *br) br_topology_change_detection() argument 335 int isroot = br_is_root_bridge(br); br_topology_change_detection() 337 if (br->stp_enabled != BR_KERNEL_STP) br_topology_change_detection() 340 br_info(br, "topology change detected, %s\n", br_topology_change_detection() 344 br->topology_change = 1; br_topology_change_detection() 345 mod_timer(&br->topology_change_timer, jiffies br_topology_change_detection() 346 + br->bridge_forward_delay + br->bridge_max_age); br_topology_change_detection() 347 } else if (!br->topology_change_detected) { br_topology_change_detection() 348 br_transmit_tcn(br); br_topology_change_detection() 349 mod_timer(&br->tcn_timer, jiffies + br->bridge_hello_time); br_topology_change_detection() 352 br->topology_change_detected = 1; br_topology_change_detection() 356 void br_config_bpdu_generation(struct net_bridge *br) br_config_bpdu_generation() argument 360 list_for_each_entry(p, &br->port_list, list) { br_config_bpdu_generation() 374 void br_configuration_update(struct net_bridge *br) br_configuration_update() argument 376 br_root_selection(br); br_configuration_update() 377 br_designated_port_selection(br); br_configuration_update() 383 struct net_bridge *br; br_become_designated_port() local 385 br = p->br; br_become_designated_port() 386 p->designated_root = br->designated_root; br_become_designated_port() 387 p->designated_cost = br->root_path_cost; br_become_designated_port() 388 p->designated_bridge = br->bridge_id; br_become_designated_port() 400 br_topology_change_detection(p->br); br_make_blocking() 413 struct net_bridge *br = p->br; br_make_forwarding() local 418 if (br->stp_enabled == BR_NO_STP || br->forward_delay == 0) { br_make_forwarding() 420 br_topology_change_detection(br); br_make_forwarding() 422 } else if (br->stp_enabled == BR_KERNEL_STP) br_make_forwarding() 431 if (br->forward_delay != 0) br_make_forwarding() 432 mod_timer(&p->forward_delay_timer, jiffies + br->forward_delay); br_make_forwarding() 436 void br_port_state_selection(struct net_bridge *br) br_port_state_selection() argument 441 list_for_each_entry(p, &br->port_list, list) { br_port_state_selection() 446 if (br->stp_enabled != BR_USER_STP) { br_port_state_selection() 447 if (p->port_no == br->root_port) { br_port_state_selection() 466 netif_carrier_off(br->dev); br_port_state_selection() 468 netif_carrier_on(br->dev); br_port_state_selection() 482 struct net_bridge *br; br_received_config_bpdu() local 485 br = p->br; br_received_config_bpdu() 486 was_root = br_is_root_bridge(br); br_received_config_bpdu() 490 br_configuration_update(br); br_received_config_bpdu() 491 br_port_state_selection(br); br_received_config_bpdu() 493 if (!br_is_root_bridge(br) && was_root) { br_received_config_bpdu() 494 del_timer(&br->hello_timer); br_received_config_bpdu() 495 if (br->topology_change_detected) { br_received_config_bpdu() 496 del_timer(&br->topology_change_timer); br_received_config_bpdu() 497 br_transmit_tcn(br); br_received_config_bpdu() 499 mod_timer(&br->tcn_timer, br_received_config_bpdu() 500 jiffies + br->bridge_hello_time); br_received_config_bpdu() 504 if (p->port_no == br->root_port) { br_received_config_bpdu() 505 br_record_config_timeout_values(br, bpdu); br_received_config_bpdu() 506 br_config_bpdu_generation(br); br_received_config_bpdu() 508 br_topology_change_acknowledged(br); br_received_config_bpdu() 519 br_info(p->br, "port %u(%s) received tcn bpdu\n", br_received_tcn_bpdu() 522 br_topology_change_detection(p->br); br_received_tcn_bpdu() 528 int br_set_hello_time(struct net_bridge *br, unsigned long val) br_set_hello_time() argument 535 spin_lock_bh(&br->lock); br_set_hello_time() 536 br->bridge_hello_time = t; br_set_hello_time() 537 if (br_is_root_bridge(br)) br_set_hello_time() 538 br->hello_time = br->bridge_hello_time; br_set_hello_time() 539 spin_unlock_bh(&br->lock); br_set_hello_time() 543 int br_set_max_age(struct net_bridge *br, unsigned long val) br_set_max_age() argument 550 spin_lock_bh(&br->lock); br_set_max_age() 551 br->bridge_max_age = t; br_set_max_age() 552 if (br_is_root_bridge(br)) br_set_max_age() 553 br->max_age = br->bridge_max_age; br_set_max_age() 554 spin_unlock_bh(&br->lock); br_set_max_age() 559 void __br_set_forward_delay(struct net_bridge *br, unsigned long t) __br_set_forward_delay() argument 561 br->bridge_forward_delay = t; __br_set_forward_delay() 562 if (br_is_root_bridge(br)) __br_set_forward_delay() 563 br->forward_delay = br->bridge_forward_delay; __br_set_forward_delay() 566 int br_set_forward_delay(struct net_bridge *br, unsigned long val) br_set_forward_delay() argument 571 spin_lock_bh(&br->lock); br_set_forward_delay() 572 if (br->stp_enabled != BR_NO_STP && br_set_forward_delay() 576 __br_set_forward_delay(br, t); br_set_forward_delay() 580 spin_unlock_bh(&br->lock); br_set_forward_delay()
|
H A D | br_stp_timer.c | 21 static int br_is_designated_for_some_port(const struct net_bridge *br) br_is_designated_for_some_port() argument 25 list_for_each_entry(p, &br->port_list, list) { br_is_designated_for_some_port() 27 !memcmp(&p->designated_bridge, &br->bridge_id, 8)) br_is_designated_for_some_port() 36 struct net_bridge *br = (struct net_bridge *)arg; br_hello_timer_expired() local 38 br_debug(br, "hello timer expired\n"); br_hello_timer_expired() 39 spin_lock(&br->lock); br_hello_timer_expired() 40 if (br->dev->flags & IFF_UP) { br_hello_timer_expired() 41 br_config_bpdu_generation(br); br_hello_timer_expired() 43 mod_timer(&br->hello_timer, round_jiffies(jiffies + br->hello_time)); br_hello_timer_expired() 45 spin_unlock(&br->lock); br_hello_timer_expired() 51 struct net_bridge *br = p->br; br_message_age_timer_expired() local 58 br_info(br, "port %u(%s) neighbor %.2x%.2x.%pM lost\n", br_message_age_timer_expired() 67 spin_lock(&br->lock); br_message_age_timer_expired() 70 was_root = br_is_root_bridge(br); br_message_age_timer_expired() 73 br_configuration_update(br); br_message_age_timer_expired() 74 br_port_state_selection(br); br_message_age_timer_expired() 75 if (br_is_root_bridge(br) && !was_root) br_message_age_timer_expired() 76 br_become_root_bridge(br); br_message_age_timer_expired() 78 spin_unlock(&br->lock); br_message_age_timer_expired() 84 struct net_bridge *br = p->br; br_forward_delay_timer_expired() local 86 br_debug(br, "port %u(%s) forward delay timer\n", br_forward_delay_timer_expired() 88 spin_lock(&br->lock); br_forward_delay_timer_expired() 92 jiffies + br->forward_delay); br_forward_delay_timer_expired() 95 if (br_is_designated_for_some_port(br)) br_forward_delay_timer_expired() 96 br_topology_change_detection(br); br_forward_delay_timer_expired() 97 netif_carrier_on(br->dev); br_forward_delay_timer_expired() 103 spin_unlock(&br->lock); br_forward_delay_timer_expired() 108 struct net_bridge *br = (struct net_bridge *) arg; br_tcn_timer_expired() local 110 br_debug(br, "tcn timer expired\n"); br_tcn_timer_expired() 111 spin_lock(&br->lock); br_tcn_timer_expired() 112 if (!br_is_root_bridge(br) && (br->dev->flags & IFF_UP)) { br_tcn_timer_expired() 113 br_transmit_tcn(br); br_tcn_timer_expired() 115 mod_timer(&br->tcn_timer, jiffies + br->bridge_hello_time); br_tcn_timer_expired() 117 spin_unlock(&br->lock); br_tcn_timer_expired() 122 struct net_bridge *br = (struct net_bridge *) arg; br_topology_change_timer_expired() local 124 br_debug(br, "topo change timer expired\n"); br_topology_change_timer_expired() 125 spin_lock(&br->lock); br_topology_change_timer_expired() 126 br->topology_change_detected = 0; br_topology_change_timer_expired() 127 br->topology_change = 0; br_topology_change_timer_expired() 128 spin_unlock(&br->lock); br_topology_change_timer_expired() 135 br_debug(p->br, "port %u(%s) hold timer expired\n", br_hold_timer_expired() 138 spin_lock(&p->br->lock); br_hold_timer_expired() 141 spin_unlock(&p->br->lock); br_hold_timer_expired() 144 void br_stp_timer_init(struct net_bridge *br) br_stp_timer_init() argument 146 setup_timer(&br->hello_timer, br_hello_timer_expired, br_stp_timer_init() 147 (unsigned long) br); br_stp_timer_init() 149 setup_timer(&br->tcn_timer, br_tcn_timer_expired, br_stp_timer_init() 150 (unsigned long) br); br_stp_timer_init() 152 setup_timer(&br->topology_change_timer, br_stp_timer_init() 154 (unsigned long) br); br_stp_timer_init() 156 setup_timer(&br->gc_timer, br_fdb_cleanup, (unsigned long) br); br_stp_timer_init()
|
H A D | br_stp_if.c | 46 void br_stp_enable_bridge(struct net_bridge *br) br_stp_enable_bridge() argument 50 spin_lock_bh(&br->lock); br_stp_enable_bridge() 51 mod_timer(&br->hello_timer, jiffies + br->hello_time); br_stp_enable_bridge() 52 mod_timer(&br->gc_timer, jiffies + HZ/10); br_stp_enable_bridge() 54 br_config_bpdu_generation(br); br_stp_enable_bridge() 56 list_for_each_entry(p, &br->port_list, list) { br_stp_enable_bridge() 61 spin_unlock_bh(&br->lock); br_stp_enable_bridge() 65 void br_stp_disable_bridge(struct net_bridge *br) br_stp_disable_bridge() argument 69 spin_lock_bh(&br->lock); br_stp_disable_bridge() 70 list_for_each_entry(p, &br->port_list, list) { br_stp_disable_bridge() 76 br->topology_change = 0; br_stp_disable_bridge() 77 br->topology_change_detected = 0; br_stp_disable_bridge() 78 spin_unlock_bh(&br->lock); br_stp_disable_bridge() 80 del_timer_sync(&br->hello_timer); br_stp_disable_bridge() 81 del_timer_sync(&br->topology_change_timer); br_stp_disable_bridge() 82 del_timer_sync(&br->tcn_timer); br_stp_disable_bridge() 83 del_timer_sync(&br->gc_timer); br_stp_disable_bridge() 90 br_port_state_selection(p->br); br_stp_enable_port() 98 struct net_bridge *br = p->br; br_stp_disable_port() local 101 wasroot = br_is_root_bridge(br); br_stp_disable_port() 114 br_fdb_delete_by_port(br, p, 0); br_stp_disable_port() 117 br_configuration_update(br); br_stp_disable_port() 119 br_port_state_selection(br); br_stp_disable_port() 121 if (br_is_root_bridge(br) && !wasroot) br_stp_disable_port() 122 br_become_root_bridge(br); br_stp_disable_port() 125 static void br_stp_start(struct net_bridge *br) br_stp_start() argument 128 char *argv[] = { BR_STP_PROG, br->dev->name, "start", NULL }; br_stp_start() 131 if (net_eq(dev_net(br->dev), &init_net)) br_stp_start() 136 spin_lock_bh(&br->lock); br_stp_start() 138 if (br->bridge_forward_delay < BR_MIN_FORWARD_DELAY) br_stp_start() 139 __br_set_forward_delay(br, BR_MIN_FORWARD_DELAY); br_stp_start() 140 else if (br->bridge_forward_delay > BR_MAX_FORWARD_DELAY) br_stp_start() 141 __br_set_forward_delay(br, BR_MAX_FORWARD_DELAY); br_stp_start() 144 br->stp_enabled = BR_USER_STP; br_stp_start() 145 br_debug(br, "userspace STP started\n"); br_stp_start() 147 br->stp_enabled = BR_KERNEL_STP; br_stp_start() 148 br_debug(br, "using kernel STP\n"); br_stp_start() 151 br_port_state_selection(br); br_stp_start() 154 spin_unlock_bh(&br->lock); br_stp_start() 157 static void br_stp_stop(struct net_bridge *br) br_stp_stop() argument 160 char *argv[] = { BR_STP_PROG, br->dev->name, "stop", NULL }; br_stp_stop() 163 if (br->stp_enabled == BR_USER_STP) { br_stp_stop() 165 br_info(br, "userspace STP stopped, return code %d\n", r); br_stp_stop() 168 spin_lock_bh(&br->lock); br_stp_stop() 169 br_port_state_selection(br); br_stp_stop() 170 spin_unlock_bh(&br->lock); br_stp_stop() 173 br->stp_enabled = BR_NO_STP; br_stp_stop() 176 void br_stp_set_enabled(struct net_bridge *br, unsigned long val) br_stp_set_enabled() argument 181 if (br->stp_enabled == BR_NO_STP) br_stp_set_enabled() 182 br_stp_start(br); br_stp_set_enabled() 184 if (br->stp_enabled != BR_NO_STP) br_stp_set_enabled() 185 br_stp_stop(br); br_stp_set_enabled() 190 void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *addr) br_stp_change_bridge_id() argument 198 wasroot = br_is_root_bridge(br); br_stp_change_bridge_id() 200 br_fdb_change_mac_address(br, addr); br_stp_change_bridge_id() 202 memcpy(oldaddr, br->bridge_id.addr, ETH_ALEN); br_stp_change_bridge_id() 203 memcpy(br->bridge_id.addr, addr, ETH_ALEN); br_stp_change_bridge_id() 204 memcpy(br->dev->dev_addr, addr, ETH_ALEN); br_stp_change_bridge_id() 206 list_for_each_entry(p, &br->port_list, list) { br_stp_change_bridge_id() 214 br_configuration_update(br); br_stp_change_bridge_id() 215 br_port_state_selection(br); br_stp_change_bridge_id() 216 if (br_is_root_bridge(br) && !wasroot) br_stp_change_bridge_id() 217 br_become_root_bridge(br); br_stp_change_bridge_id() 224 bool br_stp_recalculate_bridge_id(struct net_bridge *br) br_stp_recalculate_bridge_id() argument 232 if (br->dev->addr_assign_type == NET_ADDR_SET) br_stp_recalculate_bridge_id() 235 list_for_each_entry(p, &br->port_list, list) { br_stp_recalculate_bridge_id() 242 if (ether_addr_equal(br->bridge_id.addr, addr)) br_stp_recalculate_bridge_id() 245 br_stp_change_bridge_id(br, addr); br_stp_recalculate_bridge_id() 250 void br_stp_set_bridge_priority(struct net_bridge *br, u16 newprio) br_stp_set_bridge_priority() argument 255 spin_lock_bh(&br->lock); br_stp_set_bridge_priority() 256 wasroot = br_is_root_bridge(br); br_stp_set_bridge_priority() 258 list_for_each_entry(p, &br->port_list, list) { br_stp_set_bridge_priority() 267 br->bridge_id.prio[0] = (newprio >> 8) & 0xFF; br_stp_set_bridge_priority() 268 br->bridge_id.prio[1] = newprio & 0xFF; br_stp_set_bridge_priority() 269 br_configuration_update(br); br_stp_set_bridge_priority() 270 br_port_state_selection(br); br_stp_set_bridge_priority() 271 if (br_is_root_bridge(br) && !wasroot) br_stp_set_bridge_priority() 272 br_become_root_bridge(br); br_stp_set_bridge_priority() 273 spin_unlock_bh(&br->lock); br_stp_set_bridge_priority() 290 if (!memcmp(&p->br->bridge_id, &p->designated_bridge, 8) && br_stp_set_port_priority() 293 br_port_state_selection(p->br); br_stp_set_port_priority() 308 br_configuration_update(p->br); br_stp_set_path_cost() 309 br_port_state_selection(p->br); br_stp_set_path_cost()
|
H A D | br_device.c | 36 struct net_bridge *br = netdev_priv(dev); br_dev_xmit() local 40 struct pcpu_sw_netstats *brstats = this_cpu_ptr(br->stats); br_dev_xmit() 61 if (!br_allowed_ingress(br, br_get_vlan_info(br), skb, &vid)) br_dev_xmit() 65 br_flood_deliver(br, skb, false); br_dev_xmit() 68 br_flood_deliver(br, skb, false); br_dev_xmit() 71 if (br_multicast_rcv(br, NULL, skb, vid)) { br_dev_xmit() 76 mdst = br_mdb_get(br, skb, vid); br_dev_xmit() 78 br_multicast_querier_exists(br, eth_hdr(skb))) br_dev_xmit() 81 br_flood_deliver(br, skb, false); br_dev_xmit() 82 } else if ((dst = __br_fdb_get(br, dest, vid)) != NULL) br_dev_xmit() 85 br_flood_deliver(br, skb, true); br_dev_xmit() 99 struct net_bridge *br = netdev_priv(dev); br_dev_init() local 102 br->stats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); br_dev_init() 103 if (!br->stats) br_dev_init() 106 err = br_vlan_init(br); br_dev_init() 108 free_percpu(br->stats); br_dev_init() 116 struct net_bridge *br = netdev_priv(dev); br_dev_open() local 120 br_stp_enable_bridge(br); br_dev_open() 121 br_multicast_open(br); br_dev_open() 138 struct net_bridge *br = netdev_priv(dev); br_dev_stop() local 140 br_stp_disable_bridge(br); br_dev_stop() 141 br_multicast_stop(br); br_dev_stop() 151 struct net_bridge *br = netdev_priv(dev); br_get_stats64() local 158 = per_cpu_ptr(br->stats, cpu); for_each_possible_cpu() 179 struct net_bridge *br = netdev_priv(dev); br_change_mtu() local 180 if (new_mtu < 68 || new_mtu > br_min_mtu(br)) br_change_mtu() 187 dst_metric_set(&br->fake_rtable.dst, RTAX_MTU, new_mtu); br_change_mtu() 196 struct net_bridge *br = netdev_priv(dev); br_set_mac_address() local 202 spin_lock_bh(&br->lock); br_set_mac_address() 205 br_stp_change_bridge_id(br, addr->sa_data); br_set_mac_address() 207 spin_unlock_bh(&br->lock); br_set_mac_address() 223 struct net_bridge *br = netdev_priv(dev); br_fix_features() local 225 return br_features_recompute(br, features); br_fix_features() 235 struct net_bridge *br = netdev_priv(dev); br_netpoll_cleanup() local 238 list_for_each_entry(p, &br->port_list, list) br_netpoll_cleanup() 263 if (!p->br->dev->npinfo) br_netpoll_enable() 271 struct net_bridge *br = netdev_priv(dev); br_netpoll_setup() local 275 list_for_each_entry(p, &br->port_list, list) { br_netpoll_setup() 308 struct net_bridge *br = netdev_priv(dev); br_add_slave() local 310 return br_add_if(br, slave_dev); br_add_slave() 315 struct net_bridge *br = netdev_priv(dev); br_del_slave() local 317 return br_del_if(br, slave_dev); br_del_slave() 354 struct net_bridge *br = netdev_priv(dev); br_dev_free() local 356 free_percpu(br->stats); br_dev_free() 366 struct net_bridge *br = netdev_priv(dev); br_dev_setup() local 384 br->dev = dev; br_dev_setup() 385 spin_lock_init(&br->lock); br_dev_setup() 386 INIT_LIST_HEAD(&br->port_list); br_dev_setup() 387 spin_lock_init(&br->hash_lock); br_dev_setup() 389 br->bridge_id.prio[0] = 0x80; br_dev_setup() 390 br->bridge_id.prio[1] = 0x00; br_dev_setup() 392 ether_addr_copy(br->group_addr, eth_reserved_addr_base); br_dev_setup() 394 br->stp_enabled = BR_NO_STP; br_dev_setup() 395 br->group_fwd_mask = BR_GROUPFWD_DEFAULT; br_dev_setup() 396 br->group_fwd_mask_required = BR_GROUPFWD_DEFAULT; br_dev_setup() 398 br->designated_root = br->bridge_id; br_dev_setup() 399 br->bridge_max_age = br->max_age = 20 * HZ; br_dev_setup() 400 br->bridge_hello_time = br->hello_time = 2 * HZ; br_dev_setup() 401 br->bridge_forward_delay = br->forward_delay = 15 * HZ; br_dev_setup() 402 br->ageing_time = 300 * HZ; br_dev_setup() 404 br_netfilter_rtable_init(br); br_dev_setup() 405 br_stp_timer_init(br); br_dev_setup() 406 br_multicast_init(br); br_dev_setup()
|
H A D | br_vlan.c | 42 struct net_bridge *br; __vlan_add() local 53 br = p->br; __vlan_add() 56 br = v->parent.br; __vlan_add() 57 dev = br->dev; __vlan_add() 65 err = vlan_vid_add(dev, br->vlan_proto, vid); __vlan_add() 70 err = br_fdb_insert(br, p, dev->dev_addr, vid); __vlan_add() 72 br_err(br, "failed insert local address into bridge " __vlan_add() 85 vlan_vid_del(dev, br->vlan_proto, vid); __vlan_add() 99 vlan_vid_del(p->dev, p->br->vlan_proto, vid); __vlan_del() 108 RCU_INIT_POINTER(v->parent.br->vlan_info, NULL); __vlan_del() 122 RCU_INIT_POINTER(v->parent.br->vlan_info, NULL); __vlan_flush() 126 struct sk_buff *br_handle_vlan(struct net_bridge *br, br_handle_vlan() argument 142 if ((br->dev->flags & IFF_PROMISC) && skb->dev == br->dev) { br_handle_vlan() 163 bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v, br_allowed_ingress() argument 172 if (!br->vlan_enabled) { br_allowed_ingress() 184 proto = br->vlan_proto; br_allowed_ingress() 256 bool br_allowed_egress(struct net_bridge *br, br_allowed_egress() argument 279 struct net_bridge *br = p->br; br_should_learn() local 283 if (!br->vlan_enabled) br_should_learn() 290 if (!br_vlan_get_tag(skb, vid) && skb->vlan_proto != br->vlan_proto) br_should_learn() 310 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags) br_vlan_add() argument 317 pv = rtnl_dereference(br->vlan_info); br_vlan_add() 327 pv->parent.br = br; br_vlan_add() 332 rcu_assign_pointer(br->vlan_info, pv); br_vlan_add() 342 int br_vlan_delete(struct net_bridge *br, u16 vid) br_vlan_delete() argument 348 pv = rtnl_dereference(br->vlan_info); br_vlan_delete() 352 br_fdb_find_delete_local(br, NULL, br->dev->dev_addr, vid); br_vlan_delete() 358 void br_vlan_flush(struct net_bridge *br) br_vlan_flush() argument 363 pv = rtnl_dereference(br->vlan_info); br_vlan_flush() 370 bool br_vlan_find(struct net_bridge *br, u16 vid) br_vlan_find() argument 376 pv = rcu_dereference(br->vlan_info); br_vlan_find() 390 static void recalculate_group_addr(struct net_bridge *br) recalculate_group_addr() argument 392 if (br->group_addr_set) recalculate_group_addr() 395 spin_lock_bh(&br->lock); recalculate_group_addr() 396 if (!br->vlan_enabled || br->vlan_proto == htons(ETH_P_8021Q)) { recalculate_group_addr() 398 br->group_addr[5] = 0x00; recalculate_group_addr() 401 br->group_addr[5] = 0x08; recalculate_group_addr() 403 spin_unlock_bh(&br->lock); recalculate_group_addr() 407 void br_recalculate_fwd_mask(struct net_bridge *br) br_recalculate_fwd_mask() argument 409 if (!br->vlan_enabled || br->vlan_proto == htons(ETH_P_8021Q)) br_recalculate_fwd_mask() 410 br->group_fwd_mask_required = BR_GROUPFWD_DEFAULT; br_recalculate_fwd_mask() 412 br->group_fwd_mask_required = BR_GROUPFWD_8021AD & br_recalculate_fwd_mask() 413 ~(1u << br->group_addr[5]); br_recalculate_fwd_mask() 416 int br_vlan_filter_toggle(struct net_bridge *br, unsigned long val) br_vlan_filter_toggle() argument 421 if (br->vlan_enabled == val) br_vlan_filter_toggle() 424 br->vlan_enabled = val; br_vlan_filter_toggle() 425 br_manage_promisc(br); br_vlan_filter_toggle() 426 recalculate_group_addr(br); br_vlan_filter_toggle() 427 br_recalculate_fwd_mask(br); br_vlan_filter_toggle() 434 int br_vlan_set_proto(struct net_bridge *br, unsigned long val) br_vlan_set_proto() argument 449 if (br->vlan_proto == proto) br_vlan_set_proto() 453 list_for_each_entry(p, &br->port_list, list) { br_vlan_set_proto() 465 oldproto = br->vlan_proto; br_vlan_set_proto() 466 br->vlan_proto = proto; br_vlan_set_proto() 468 recalculate_group_addr(br); br_vlan_set_proto() 469 br_recalculate_fwd_mask(br); br_vlan_set_proto() 472 list_for_each_entry(p, &br->port_list, list) { br_vlan_set_proto() 490 list_for_each_entry_continue_reverse(p, &br->port_list, list) { br_vlan_set_proto() 507 static void br_vlan_disable_default_pvid(struct net_bridge *br) br_vlan_disable_default_pvid() argument 510 u16 pvid = br->default_pvid; br_vlan_disable_default_pvid() 515 if (vlan_default_pvid(br_get_vlan_info(br), pvid)) br_vlan_disable_default_pvid() 516 br_vlan_delete(br, pvid); br_vlan_disable_default_pvid() 518 list_for_each_entry(p, &br->port_list, list) { br_vlan_disable_default_pvid() 523 br->default_pvid = 0; br_vlan_disable_default_pvid() 526 static int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid) __br_vlan_set_default_pvid() argument 538 old_pvid = br->default_pvid; __br_vlan_set_default_pvid() 543 if ((!old_pvid || vlan_default_pvid(br_get_vlan_info(br), old_pvid)) && __br_vlan_set_default_pvid() 544 !br_vlan_find(br, pvid)) { __br_vlan_set_default_pvid() 545 err = br_vlan_add(br, pvid, __br_vlan_set_default_pvid() 550 br_vlan_delete(br, old_pvid); __br_vlan_set_default_pvid() 554 list_for_each_entry(p, &br->port_list, list) { __br_vlan_set_default_pvid() 572 br->default_pvid = pvid; __br_vlan_set_default_pvid() 579 list_for_each_entry_continue_reverse(p, &br->port_list, list) { __br_vlan_set_default_pvid() 592 br_vlan_add(br, old_pvid, __br_vlan_set_default_pvid() 595 br_vlan_delete(br, pvid); __br_vlan_set_default_pvid() 600 int br_vlan_set_default_pvid(struct net_bridge *br, unsigned long val) br_vlan_set_default_pvid() argument 611 if (pvid == br->default_pvid) br_vlan_set_default_pvid() 615 if (br->vlan_enabled) { br_vlan_set_default_pvid() 622 br_vlan_disable_default_pvid(br); br_vlan_set_default_pvid() 624 err = __br_vlan_set_default_pvid(br, pvid); br_vlan_set_default_pvid() 631 int br_vlan_init(struct net_bridge *br) br_vlan_init() argument 633 br->vlan_proto = htons(ETH_P_8021Q); br_vlan_init() 634 br->default_pvid = 1; br_vlan_init() 635 return br_vlan_add(br, 1, br_vlan_init() 688 br_fdb_find_delete_local(port->br, port, port->dev->dev_addr, vid); nbp_vlan_delete() 705 vlan_vid_del(port->dev, port->br->vlan_proto, vid); nbp_vlan_flush() 731 return p->br->default_pvid ? nbp_vlan_init() 732 nbp_vlan_add(p, p->br->default_pvid, nbp_vlan_init()
|
H A D | br_multicast.c | 38 static void br_multicast_start_querier(struct net_bridge *br, 138 struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, br_mdb_get() argument 141 struct net_bridge_mdb_htable *mdb = rcu_dereference(br->mdb); br_mdb_get() 144 if (br->multicast_disabled) br_mdb_get() 228 struct net_bridge *br = mp->br; br_multicast_group_expired() local 231 spin_lock(&br->multicast_lock); br_multicast_group_expired() 232 if (!netif_running(br->dev) || timer_pending(&mp->timer)) br_multicast_group_expired() 240 mdb = mlock_dereference(br->mdb, br); br_multicast_group_expired() 248 spin_unlock(&br->multicast_lock); br_multicast_group_expired() 251 static void br_multicast_del_pg(struct net_bridge *br, br_multicast_del_pg() argument 259 mdb = mlock_dereference(br->mdb, br); br_multicast_del_pg() 266 (p = mlock_dereference(*pp, br)) != NULL; br_multicast_del_pg() 277 netif_running(br->dev)) br_multicast_del_pg() 289 struct net_bridge *br = pg->port->br; br_multicast_port_group_expired() local 291 spin_lock(&br->multicast_lock); br_multicast_port_group_expired() 292 if (!netif_running(br->dev) || timer_pending(&pg->timer) || br_multicast_port_group_expired() 296 br_multicast_del_pg(br, pg); br_multicast_port_group_expired() 299 spin_unlock(&br->multicast_lock); br_multicast_port_group_expired() 349 static struct sk_buff *br_ip4_multicast_alloc_query(struct net_bridge *br, br_ip4_multicast_alloc_query() argument 357 skb = netdev_alloc_skb_ip_align(br->dev, sizeof(*eth) + sizeof(*iph) + br_ip4_multicast_alloc_query() 367 ether_addr_copy(eth->h_source, br->dev->dev_addr); br_ip4_multicast_alloc_query() 388 iph->saddr = br->multicast_query_use_ifaddr ? br_ip4_multicast_alloc_query() 389 inet_select_addr(br->dev, 0, RT_SCOPE_LINK) : 0; br_ip4_multicast_alloc_query() 401 ih->code = (group ? br->multicast_last_member_interval : br_ip4_multicast_alloc_query() 402 br->multicast_query_response_interval) / br_ip4_multicast_alloc_query() 416 static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, br_ip6_multicast_alloc_query() argument 426 skb = netdev_alloc_skb_ip_align(br->dev, sizeof(*eth) + sizeof(*ip6h) + br_ip6_multicast_alloc_query() 437 ether_addr_copy(eth->h_source, br->dev->dev_addr); br_ip6_multicast_alloc_query() 450 if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, br_ip6_multicast_alloc_query() 474 br->multicast_query_response_interval : br_ip6_multicast_alloc_query() 475 br->multicast_last_member_interval; br_ip6_multicast_alloc_query() 498 static struct sk_buff *br_multicast_alloc_query(struct net_bridge *br, br_multicast_alloc_query() argument 503 return br_ip4_multicast_alloc_query(br, addr->u.ip4); br_multicast_alloc_query() 506 return br_ip6_multicast_alloc_query(br, &addr->u.ip6); br_multicast_alloc_query() 513 struct net_bridge *br, struct net_bridge_port *port, br_multicast_get_group() 523 mdb = rcu_dereference_protected(br->mdb, 1); br_multicast_get_group() 533 if (unlikely(count > br->hash_elasticity && count)) { br_multicast_get_group() 535 br_info(br, "Multicast hash table " br_multicast_get_group() 537 port ? port->dev->name : br->dev->name); br_multicast_get_group() 539 elasticity = br->hash_elasticity; br_multicast_get_group() 544 if (unlikely(max > br->hash_max)) { br_multicast_get_group() 545 br_warn(br, "Multicast hash table maximum of %d " br_multicast_get_group() 547 br->hash_max, br_multicast_get_group() 548 port ? port->dev->name : br->dev->name); br_multicast_get_group() 551 br->multicast_disabled = 1; br_multicast_get_group() 559 br_info(br, "Multicast hash table " br_multicast_get_group() 561 port ? port->dev->name : br->dev->name); br_multicast_get_group() 566 err = br_mdb_rehash(&br->mdb, max, elasticity); br_multicast_get_group() 568 br_warn(br, "Cannot rehash multicast " br_multicast_get_group() 570 port ? port->dev->name : br->dev->name, br_multicast_get_group() 586 struct net_bridge_mdb_entry *br_multicast_new_group(struct net_bridge *br, br_multicast_new_group() argument 594 mdb = rcu_dereference_protected(br->mdb, 1); br_multicast_new_group() 596 err = br_mdb_rehash(&br->mdb, BR_HASH_SIZE, 0); br_multicast_new_group() 603 mp = br_multicast_get_group(br, port, group, hash); br_multicast_new_group() 610 mdb = rcu_dereference_protected(br->mdb, 1); br_multicast_new_group() 622 mp->br = br; br_multicast_new_group() 656 static int br_multicast_add_group(struct net_bridge *br, br_multicast_add_group() argument 666 spin_lock(&br->multicast_lock); br_multicast_add_group() 667 if (!netif_running(br->dev) || br_multicast_add_group() 671 mp = br_multicast_new_group(br, port, group); br_multicast_add_group() 678 mod_timer(&mp->timer, now + br->multicast_membership_interval); br_multicast_add_group() 683 (p = mlock_dereference(*pp, br)) != NULL; br_multicast_add_group() 695 br_mdb_notify(br->dev, port, group, RTM_NEWMDB); br_multicast_add_group() 698 mod_timer(&p->timer, now + br->multicast_membership_interval); br_multicast_add_group() 703 spin_unlock(&br->multicast_lock); br_multicast_add_group() 707 static int br_ip4_multicast_add_group(struct net_bridge *br, br_ip4_multicast_add_group() argument 721 return br_multicast_add_group(br, port, &br_group); br_ip4_multicast_add_group() 725 static int br_ip6_multicast_add_group(struct net_bridge *br, br_ip6_multicast_add_group() argument 739 return br_multicast_add_group(br, port, &br_group); br_ip6_multicast_add_group() 746 struct net_bridge *br = port->br; br_multicast_router_expired() local 748 spin_lock(&br->multicast_lock); br_multicast_router_expired() 757 spin_unlock(&br->multicast_lock); br_multicast_router_expired() 764 static void br_multicast_querier_expired(struct net_bridge *br, br_multicast_querier_expired() argument 767 spin_lock(&br->multicast_lock); br_multicast_querier_expired() 768 if (!netif_running(br->dev) || br->multicast_disabled) br_multicast_querier_expired() 771 br_multicast_start_querier(br, query); br_multicast_querier_expired() 774 spin_unlock(&br->multicast_lock); br_multicast_querier_expired() 779 struct net_bridge *br = (void *)data; br_ip4_multicast_querier_expired() local 781 br_multicast_querier_expired(br, &br->ip4_own_query); br_ip4_multicast_querier_expired() 787 struct net_bridge *br = (void *)data; br_ip6_multicast_querier_expired() local 789 br_multicast_querier_expired(br, &br->ip6_own_query); br_ip6_multicast_querier_expired() 793 static void br_multicast_select_own_querier(struct net_bridge *br, br_multicast_select_own_querier() argument 798 br->ip4_querier.addr.u.ip4 = ip_hdr(skb)->saddr; br_multicast_select_own_querier() 801 br->ip6_querier.addr.u.ip6 = ipv6_hdr(skb)->saddr; br_multicast_select_own_querier() 805 static void __br_multicast_send_query(struct net_bridge *br, __br_multicast_send_query() argument 811 skb = br_multicast_alloc_query(br, ip); __br_multicast_send_query() 821 br_multicast_select_own_querier(br, ip, skb); __br_multicast_send_query() 826 static void br_multicast_send_query(struct net_bridge *br, br_multicast_send_query() argument 834 if (!netif_running(br->dev) || br->multicast_disabled || br_multicast_send_query() 835 !br->multicast_querier) br_multicast_send_query() 841 (own_query == &br->ip4_own_query)) { br_multicast_send_query() 842 other_query = &br->ip4_other_query; br_multicast_send_query() 846 other_query = &br->ip6_other_query; br_multicast_send_query() 854 __br_multicast_send_query(br, port, &br_group); br_multicast_send_query() 857 time += own_query->startup_sent < br->multicast_startup_query_count ? br_multicast_send_query() 858 br->multicast_startup_query_interval : br_multicast_send_query() 859 br->multicast_query_interval; br_multicast_send_query() 867 struct net_bridge *br = port->br; br_multicast_port_query_expired() local 869 spin_lock(&br->multicast_lock); br_multicast_port_query_expired() 874 if (query->startup_sent < br->multicast_startup_query_count) br_multicast_port_query_expired() 877 br_multicast_send_query(port->br, port, query); br_multicast_port_query_expired() 880 spin_unlock(&br->multicast_lock); br_multicast_port_query_expired() 929 struct net_bridge *br = port->br; br_multicast_enable_port() local 931 spin_lock(&br->multicast_lock); br_multicast_enable_port() 932 if (br->multicast_disabled || !netif_running(br->dev)) br_multicast_enable_port() 941 spin_unlock(&br->multicast_lock); br_multicast_enable_port() 946 struct net_bridge *br = port->br; br_multicast_disable_port() local 950 spin_lock(&br->multicast_lock); br_multicast_disable_port() 952 br_multicast_del_pg(br, pg); br_multicast_disable_port() 961 spin_unlock(&br->multicast_lock); br_multicast_disable_port() 964 static int br_ip4_multicast_igmp3_report(struct net_bridge *br, br_ip4_multicast_igmp3_report() argument 1012 err = br_ip4_multicast_add_group(br, port, group, vid); br_ip4_multicast_igmp3_report() 1021 static int br_ip6_multicast_mld2_report(struct net_bridge *br, br_ip6_multicast_mld2_report() argument 1073 err = br_ip6_multicast_add_group(br, port, &grec->grec_mca, br_ip6_multicast_mld2_report() 1083 static bool br_ip4_multicast_select_querier(struct net_bridge *br, br_ip4_multicast_select_querier() argument 1087 if (!timer_pending(&br->ip4_own_query.timer) && br_ip4_multicast_select_querier() 1088 !timer_pending(&br->ip4_other_query.timer)) br_ip4_multicast_select_querier() 1091 if (!br->ip4_querier.addr.u.ip4) br_ip4_multicast_select_querier() 1094 if (ntohl(saddr) <= ntohl(br->ip4_querier.addr.u.ip4)) br_ip4_multicast_select_querier() 1100 br->ip4_querier.addr.u.ip4 = saddr; br_ip4_multicast_select_querier() 1103 rcu_assign_pointer(br->ip4_querier.port, port); br_ip4_multicast_select_querier() 1109 static bool br_ip6_multicast_select_querier(struct net_bridge *br, br_ip6_multicast_select_querier() argument 1113 if (!timer_pending(&br->ip6_own_query.timer) && br_ip6_multicast_select_querier() 1114 !timer_pending(&br->ip6_other_query.timer)) br_ip6_multicast_select_querier() 1117 if (ipv6_addr_cmp(saddr, &br->ip6_querier.addr.u.ip6) <= 0) br_ip6_multicast_select_querier() 1123 br->ip6_querier.addr.u.ip6 = *saddr; br_ip6_multicast_select_querier() 1126 rcu_assign_pointer(br->ip6_querier.port, port); br_ip6_multicast_select_querier() 1132 static bool br_multicast_select_querier(struct net_bridge *br, br_multicast_select_querier() argument 1138 return br_ip4_multicast_select_querier(br, port, saddr->u.ip4); br_multicast_select_querier() 1141 return br_ip6_multicast_select_querier(br, port, &saddr->u.ip6); br_multicast_select_querier() 1149 br_multicast_update_query_timer(struct net_bridge *br, br_multicast_update_query_timer() argument 1156 mod_timer(&query->timer, jiffies + br->multicast_querier_interval); br_multicast_update_query_timer() 1162 * and locked by br->multicast_lock and RCU 1164 static void br_multicast_add_router(struct net_bridge *br, br_multicast_add_router() argument 1173 hlist_for_each_entry(p, &br->router_list, rlist) { br_multicast_add_router() 1182 hlist_add_head_rcu(&port->rlist, &br->router_list); br_multicast_add_router() 1185 static void br_multicast_mark_router(struct net_bridge *br, br_multicast_mark_router() argument 1191 if (br->multicast_router == 1) br_multicast_mark_router() 1192 mod_timer(&br->multicast_router_timer, br_multicast_mark_router() 1193 now + br->multicast_querier_interval); br_multicast_mark_router() 1200 br_multicast_add_router(br, port); br_multicast_mark_router() 1203 now + br->multicast_querier_interval); br_multicast_mark_router() 1206 static void br_multicast_query_received(struct net_bridge *br, br_multicast_query_received() argument 1212 if (!br_multicast_select_querier(br, port, saddr)) br_multicast_query_received() 1215 br_multicast_update_query_timer(br, query, max_delay); br_multicast_query_received() 1216 br_multicast_mark_router(br, port); br_multicast_query_received() 1219 static int br_ip4_multicast_query(struct net_bridge *br, br_ip4_multicast_query() argument 1236 spin_lock(&br->multicast_lock); br_ip4_multicast_query() 1237 if (!netif_running(br->dev) || br_ip4_multicast_query() 1276 br_multicast_query_received(br, port, &br->ip4_other_query, br_ip4_multicast_query() 1281 mp = br_mdb_ip4_get(mlock_dereference(br->mdb, br), group, vid); br_ip4_multicast_query() 1285 max_delay *= br->multicast_last_member_count; br_ip4_multicast_query() 1294 (p = mlock_dereference(*pp, br)) != NULL; br_ip4_multicast_query() 1303 spin_unlock(&br->multicast_lock); br_ip4_multicast_query() 1308 static int br_ip6_multicast_query(struct net_bridge *br, br_ip6_multicast_query() argument 1326 spin_lock(&br->multicast_lock); br_ip6_multicast_query() 1327 if (!netif_running(br->dev) || br_ip6_multicast_query() 1372 br_multicast_query_received(br, port, &br->ip6_other_query, br_ip6_multicast_query() 1379 mp = br_mdb_ip6_get(mlock_dereference(br->mdb, br), group, vid); br_ip6_multicast_query() 1383 max_delay *= br->multicast_last_member_count; br_ip6_multicast_query() 1391 (p = mlock_dereference(*pp, br)) != NULL; br_ip6_multicast_query() 1400 spin_unlock(&br->multicast_lock); br_ip6_multicast_query() 1406 br_multicast_leave_group(struct net_bridge *br, br_multicast_leave_group() argument 1418 spin_lock(&br->multicast_lock); br_multicast_leave_group() 1419 if (!netif_running(br->dev) || br_multicast_leave_group() 1424 mdb = mlock_dereference(br->mdb, br); br_multicast_leave_group() 1429 if (br->multicast_querier) { br_multicast_leave_group() 1430 __br_multicast_send_query(br, port, &mp->addr); br_multicast_leave_group() 1432 time = jiffies + br->multicast_last_member_count * br_multicast_leave_group() 1433 br->multicast_last_member_interval; br_multicast_leave_group() 1437 for (p = mlock_dereference(mp->ports, br); br_multicast_leave_group() 1439 p = mlock_dereference(p->next, br)) { br_multicast_leave_group() 1458 (p = mlock_dereference(*pp, br)) != NULL; br_multicast_leave_group() 1467 br_mdb_notify(br->dev, port, group, RTM_DELMDB); br_multicast_leave_group() 1470 netif_running(br->dev)) br_multicast_leave_group() 1477 time = now + br->multicast_last_member_count * br_multicast_leave_group() 1478 br->multicast_last_member_interval; br_multicast_leave_group() 1491 for (p = mlock_dereference(mp->ports, br); br_multicast_leave_group() 1493 p = mlock_dereference(p->next, br)) { br_multicast_leave_group() 1507 spin_unlock(&br->multicast_lock); br_multicast_leave_group() 1510 static void br_ip4_multicast_leave_group(struct net_bridge *br, br_ip4_multicast_leave_group() argument 1521 own_query = port ? &port->ip4_own_query : &br->ip4_own_query; br_ip4_multicast_leave_group() 1527 br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query, br_ip4_multicast_leave_group() 1532 static void br_ip6_multicast_leave_group(struct net_bridge *br, br_ip6_multicast_leave_group() argument 1543 own_query = port ? &port->ip6_own_query : &br->ip6_own_query; br_ip6_multicast_leave_group() 1549 br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query, br_ip6_multicast_leave_group() 1554 static int br_multicast_ipv4_rcv(struct net_bridge *br, br_multicast_ipv4_rcv() argument 1632 err = br_ip4_multicast_add_group(br, port, ih->group, vid); br_multicast_ipv4_rcv() 1635 err = br_ip4_multicast_igmp3_report(br, port, skb2, vid); br_multicast_ipv4_rcv() 1638 err = br_ip4_multicast_query(br, port, skb2, vid); br_multicast_ipv4_rcv() 1641 br_ip4_multicast_leave_group(br, port, ih->group, vid); br_multicast_ipv4_rcv() 1654 static int br_multicast_ipv6_rcv(struct net_bridge *br, br_multicast_ipv6_rcv() argument 1768 err = br_ip6_multicast_add_group(br, port, &mld->mld_mca, vid); br_multicast_ipv6_rcv() 1772 err = br_ip6_multicast_mld2_report(br, port, skb2, vid); br_multicast_ipv6_rcv() 1775 err = br_ip6_multicast_query(br, port, skb2, vid); br_multicast_ipv6_rcv() 1785 br_ip6_multicast_leave_group(br, port, &mld->mld_mca, vid); br_multicast_ipv6_rcv() 1795 int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port, br_multicast_rcv() argument 1801 if (br->multicast_disabled) br_multicast_rcv() 1806 return br_multicast_ipv4_rcv(br, port, skb, vid); br_multicast_rcv() 1809 return br_multicast_ipv6_rcv(br, port, skb, vid); br_multicast_rcv() 1816 static void br_multicast_query_expired(struct net_bridge *br, br_multicast_query_expired() argument 1820 spin_lock(&br->multicast_lock); br_multicast_query_expired() 1821 if (query->startup_sent < br->multicast_startup_query_count) br_multicast_query_expired() 1825 br_multicast_send_query(br, NULL, query); br_multicast_query_expired() 1826 spin_unlock(&br->multicast_lock); br_multicast_query_expired() 1831 struct net_bridge *br = (void *)data; br_ip4_multicast_query_expired() local 1833 br_multicast_query_expired(br, &br->ip4_own_query, &br->ip4_querier); br_ip4_multicast_query_expired() 1839 struct net_bridge *br = (void *)data; br_ip6_multicast_query_expired() local 1841 br_multicast_query_expired(br, &br->ip6_own_query, &br->ip6_querier); br_ip6_multicast_query_expired() 1845 void br_multicast_init(struct net_bridge *br) br_multicast_init() argument 1847 br->hash_elasticity = 4; br_multicast_init() 1848 br->hash_max = 512; br_multicast_init() 1850 br->multicast_router = 1; br_multicast_init() 1851 br->multicast_querier = 0; br_multicast_init() 1852 br->multicast_query_use_ifaddr = 0; br_multicast_init() 1853 br->multicast_last_member_count = 2; br_multicast_init() 1854 br->multicast_startup_query_count = 2; br_multicast_init() 1856 br->multicast_last_member_interval = HZ; br_multicast_init() 1857 br->multicast_query_response_interval = 10 * HZ; br_multicast_init() 1858 br->multicast_startup_query_interval = 125 * HZ / 4; br_multicast_init() 1859 br->multicast_query_interval = 125 * HZ; br_multicast_init() 1860 br->multicast_querier_interval = 255 * HZ; br_multicast_init() 1861 br->multicast_membership_interval = 260 * HZ; br_multicast_init() 1863 br->ip4_other_query.delay_time = 0; br_multicast_init() 1864 br->ip4_querier.port = NULL; br_multicast_init() 1866 br->ip6_other_query.delay_time = 0; br_multicast_init() 1867 br->ip6_querier.port = NULL; br_multicast_init() 1870 spin_lock_init(&br->multicast_lock); br_multicast_init() 1871 setup_timer(&br->multicast_router_timer, br_multicast_init() 1873 setup_timer(&br->ip4_other_query.timer, br_multicast_init() 1874 br_ip4_multicast_querier_expired, (unsigned long)br); br_multicast_init() 1875 setup_timer(&br->ip4_own_query.timer, br_ip4_multicast_query_expired, br_multicast_init() 1876 (unsigned long)br); br_multicast_init() 1878 setup_timer(&br->ip6_other_query.timer, br_multicast_init() 1879 br_ip6_multicast_querier_expired, (unsigned long)br); br_multicast_init() 1880 setup_timer(&br->ip6_own_query.timer, br_ip6_multicast_query_expired, br_multicast_init() 1881 (unsigned long)br); br_multicast_init() 1885 static void __br_multicast_open(struct net_bridge *br, __br_multicast_open() argument 1890 if (br->multicast_disabled) __br_multicast_open() 1896 void br_multicast_open(struct net_bridge *br) br_multicast_open() argument 1898 __br_multicast_open(br, &br->ip4_own_query); br_multicast_open() 1900 __br_multicast_open(br, &br->ip6_own_query); br_multicast_open() 1904 void br_multicast_stop(struct net_bridge *br) br_multicast_stop() argument 1912 del_timer_sync(&br->multicast_router_timer); br_multicast_stop() 1913 del_timer_sync(&br->ip4_other_query.timer); br_multicast_stop() 1914 del_timer_sync(&br->ip4_own_query.timer); br_multicast_stop() 1916 del_timer_sync(&br->ip6_other_query.timer); br_multicast_stop() 1917 del_timer_sync(&br->ip6_own_query.timer); br_multicast_stop() 1920 spin_lock_bh(&br->multicast_lock); br_multicast_stop() 1921 mdb = mlock_dereference(br->mdb, br); br_multicast_stop() 1925 br->mdb = NULL; br_multicast_stop() 1937 spin_unlock_bh(&br->multicast_lock); br_multicast_stop() 1939 spin_lock_bh(&br->multicast_lock); br_multicast_stop() 1947 spin_unlock_bh(&br->multicast_lock); br_multicast_stop() 1950 int br_multicast_set_router(struct net_bridge *br, unsigned long val) br_multicast_set_router() argument 1954 spin_lock_bh(&br->multicast_lock); br_multicast_set_router() 1955 if (!netif_running(br->dev)) br_multicast_set_router() 1961 del_timer(&br->multicast_router_timer); br_multicast_set_router() 1964 br->multicast_router = val; br_multicast_set_router() 1974 spin_unlock_bh(&br->multicast_lock); br_multicast_set_router() 1981 struct net_bridge *br = p->br; br_multicast_set_port_router() local 1984 spin_lock(&br->multicast_lock); br_multicast_set_port_router() 1985 if (!netif_running(br->dev) || p->state == BR_STATE_DISABLED) br_multicast_set_port_router() 2006 br_multicast_add_router(br, p); br_multicast_set_port_router() 2015 spin_unlock(&br->multicast_lock); br_multicast_set_port_router() 2020 static void br_multicast_start_querier(struct net_bridge *br, br_multicast_start_querier() argument 2025 __br_multicast_open(br, query); br_multicast_start_querier() 2027 list_for_each_entry(port, &br->port_list, list) { br_multicast_start_querier() 2032 if (query == &br->ip4_own_query) br_multicast_start_querier() 2041 int br_multicast_toggle(struct net_bridge *br, unsigned long val) br_multicast_toggle() argument 2046 spin_lock_bh(&br->multicast_lock); br_multicast_toggle() 2047 if (br->multicast_disabled == !val) br_multicast_toggle() 2050 br->multicast_disabled = !val; br_multicast_toggle() 2051 if (br->multicast_disabled) br_multicast_toggle() 2054 if (!netif_running(br->dev)) br_multicast_toggle() 2057 mdb = mlock_dereference(br->mdb, br); br_multicast_toggle() 2062 br->multicast_disabled = !!val; br_multicast_toggle() 2066 err = br_mdb_rehash(&br->mdb, mdb->max, br_multicast_toggle() 2067 br->hash_elasticity); br_multicast_toggle() 2072 br_multicast_start_querier(br, &br->ip4_own_query); br_multicast_toggle() 2074 br_multicast_start_querier(br, &br->ip6_own_query); br_multicast_toggle() 2078 spin_unlock_bh(&br->multicast_lock); br_multicast_toggle() 2083 int br_multicast_set_querier(struct net_bridge *br, unsigned long val) br_multicast_set_querier() argument 2089 spin_lock_bh(&br->multicast_lock); br_multicast_set_querier() 2090 if (br->multicast_querier == val) br_multicast_set_querier() 2093 br->multicast_querier = val; br_multicast_set_querier() 2097 max_delay = br->multicast_query_response_interval; br_multicast_set_querier() 2099 if (!timer_pending(&br->ip4_other_query.timer)) br_multicast_set_querier() 2100 br->ip4_other_query.delay_time = jiffies + max_delay; br_multicast_set_querier() 2102 br_multicast_start_querier(br, &br->ip4_own_query); br_multicast_set_querier() 2105 if (!timer_pending(&br->ip6_other_query.timer)) br_multicast_set_querier() 2106 br->ip6_other_query.delay_time = jiffies + max_delay; br_multicast_set_querier() 2108 br_multicast_start_querier(br, &br->ip6_own_query); br_multicast_set_querier() 2112 spin_unlock_bh(&br->multicast_lock); br_multicast_set_querier() 2117 int br_multicast_set_hash_max(struct net_bridge *br, unsigned long val) br_multicast_set_hash_max() argument 2123 spin_lock_bh(&br->multicast_lock); br_multicast_set_hash_max() 2124 if (!netif_running(br->dev)) br_multicast_set_hash_max() 2131 mdb = mlock_dereference(br->mdb, br); br_multicast_set_hash_max() 2137 old = br->hash_max; br_multicast_set_hash_max() 2138 br->hash_max = val; br_multicast_set_hash_max() 2144 br->hash_max = old; br_multicast_set_hash_max() 2148 err = br_mdb_rehash(&br->mdb, br->hash_max, br_multicast_set_hash_max() 2149 br->hash_elasticity); br_multicast_set_hash_max() 2155 spin_unlock_bh(&br->multicast_lock); br_multicast_set_hash_max() 2180 struct net_bridge *br; br_multicast_list_adjacent() local 2191 if (!port || !port->br) br_multicast_list_adjacent() 2194 br = port->br; br_multicast_list_adjacent() 2196 list_for_each_entry_rcu(port, &br->port_list, list) { br_multicast_list_adjacent() 2228 struct net_bridge *br; br_multicast_has_querier_anywhere() local 2238 if (!port || !port->br) br_multicast_has_querier_anywhere() 2241 br = port->br; br_multicast_has_querier_anywhere() 2246 ret = br_multicast_querier_exists(br, ð); br_multicast_has_querier_anywhere() 2265 struct net_bridge *br; br_multicast_has_querier_adjacent() local 2274 if (!port || !port->br) br_multicast_has_querier_adjacent() 2277 br = port->br; br_multicast_has_querier_adjacent() 2281 if (!timer_pending(&br->ip4_other_query.timer) || br_multicast_has_querier_adjacent() 2282 rcu_dereference(br->ip4_querier.port) == port) br_multicast_has_querier_adjacent() 2287 if (!timer_pending(&br->ip6_other_query.timer) || br_multicast_has_querier_adjacent() 2288 rcu_dereference(br->ip6_querier.port) == port) br_multicast_has_querier_adjacent() 512 br_multicast_get_group( struct net_bridge *br, struct net_bridge_port *port, struct br_ip *group, int hash) br_multicast_get_group() argument
|
H A D | br_sysfs_br.c | 35 struct net_bridge *br = to_bridge(d); store_bridge_parm() local 40 if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) store_bridge_parm() 47 err = (*set)(br, val); store_bridge_parm() 55 struct net_bridge *br = to_bridge(d); forward_delay_show() local 56 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay)); forward_delay_show() 99 struct net_bridge *br = to_bridge(d); ageing_time_show() local 100 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time)); ageing_time_show() 103 static int set_ageing_time(struct net_bridge *br, unsigned long val) set_ageing_time() argument 105 br->ageing_time = clock_t_to_jiffies(val); set_ageing_time() 120 struct net_bridge *br = to_bridge(d); stp_state_show() local 121 return sprintf(buf, "%d\n", br->stp_enabled); stp_state_show() 129 struct net_bridge *br = to_bridge(d); stp_state_store() local 133 if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) stp_state_store() 142 br_stp_set_enabled(br, val); stp_state_store() 153 struct net_bridge *br = to_bridge(d); group_fwd_mask_show() local 154 return sprintf(buf, "%#x\n", br->group_fwd_mask); group_fwd_mask_show() 163 struct net_bridge *br = to_bridge(d); group_fwd_mask_store() local 167 if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) group_fwd_mask_store() 177 br->group_fwd_mask = val; group_fwd_mask_store() 186 struct net_bridge *br = to_bridge(d); priority_show() local 188 (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]); priority_show() 191 static int set_priority(struct net_bridge *br, unsigned long val) set_priority() argument 193 br_stp_set_bridge_priority(br, (u16) val); set_priority() 243 struct net_bridge *br = to_bridge(d); topology_change_detected_show() local 244 return sprintf(buf, "%d\n", br->topology_change_detected); topology_change_detected_show() 251 struct net_bridge *br = to_bridge(d); hello_timer_show() local 252 return sprintf(buf, "%ld\n", br_timer_value(&br->hello_timer)); hello_timer_show() 259 struct net_bridge *br = to_bridge(d); tcn_timer_show() local 260 return sprintf(buf, "%ld\n", br_timer_value(&br->tcn_timer)); tcn_timer_show() 268 struct net_bridge *br = to_bridge(d); topology_change_timer_show() local 269 return sprintf(buf, "%ld\n", br_timer_value(&br->topology_change_timer)); topology_change_timer_show() 276 struct net_bridge *br = to_bridge(d); gc_timer_show() local 277 return sprintf(buf, "%ld\n", br_timer_value(&br->gc_timer)); gc_timer_show() 284 struct net_bridge *br = to_bridge(d); group_addr_show() local 286 br->group_addr[0], br->group_addr[1], group_addr_show() 287 br->group_addr[2], br->group_addr[3], group_addr_show() 288 br->group_addr[4], br->group_addr[5]); group_addr_show() 295 struct net_bridge *br = to_bridge(d); group_addr_store() local 299 if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) group_addr_store() 318 spin_lock_bh(&br->lock); group_addr_store() 320 br->group_addr[i] = new_addr[i]; group_addr_store() 321 spin_unlock_bh(&br->lock); group_addr_store() 323 br->group_addr_set = true; group_addr_store() 324 br_recalculate_fwd_mask(br); group_addr_store() 337 struct net_bridge *br = to_bridge(d); flush_store() local 339 if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) flush_store() 342 br_fdb_flush(br); flush_store() 351 struct net_bridge *br = to_bridge(d); multicast_router_show() local 352 return sprintf(buf, "%d\n", br->multicast_router); multicast_router_show() 367 struct net_bridge *br = to_bridge(d); multicast_snooping_show() local 368 return sprintf(buf, "%d\n", !br->multicast_disabled); multicast_snooping_show() 383 struct net_bridge *br = to_bridge(d); multicast_query_use_ifaddr_show() local 384 return sprintf(buf, "%d\n", br->multicast_query_use_ifaddr); multicast_query_use_ifaddr_show() 387 static int set_query_use_ifaddr(struct net_bridge *br, unsigned long val) set_query_use_ifaddr() argument 389 br->multicast_query_use_ifaddr = !!val; set_query_use_ifaddr() 406 struct net_bridge *br = to_bridge(d); multicast_querier_show() local 407 return sprintf(buf, "%d\n", br->multicast_querier); multicast_querier_show() 421 struct net_bridge *br = to_bridge(d); hash_elasticity_show() local 422 return sprintf(buf, "%u\n", br->hash_elasticity); hash_elasticity_show() 425 static int set_elasticity(struct net_bridge *br, unsigned long val) set_elasticity() argument 427 br->hash_elasticity = val; set_elasticity() 442 struct net_bridge *br = to_bridge(d); hash_max_show() local 443 return sprintf(buf, "%u\n", br->hash_max); hash_max_show() 457 struct net_bridge *br = to_bridge(d); multicast_last_member_count_show() local 458 return sprintf(buf, "%u\n", br->multicast_last_member_count); multicast_last_member_count_show() 461 static int set_last_member_count(struct net_bridge *br, unsigned long val) set_last_member_count() argument 463 br->multicast_last_member_count = val; set_last_member_count() 478 struct net_bridge *br = to_bridge(d); multicast_startup_query_count_show() local 479 return sprintf(buf, "%u\n", br->multicast_startup_query_count); multicast_startup_query_count_show() 482 static int set_startup_query_count(struct net_bridge *br, unsigned long val) set_startup_query_count() argument 484 br->multicast_startup_query_count = val; set_startup_query_count() 499 struct net_bridge *br = to_bridge(d); multicast_last_member_interval_show() local 501 jiffies_to_clock_t(br->multicast_last_member_interval)); multicast_last_member_interval_show() 504 static int set_last_member_interval(struct net_bridge *br, unsigned long val) set_last_member_interval() argument 506 br->multicast_last_member_interval = clock_t_to_jiffies(val); set_last_member_interval() 521 struct net_bridge *br = to_bridge(d); multicast_membership_interval_show() local 523 jiffies_to_clock_t(br->multicast_membership_interval)); multicast_membership_interval_show() 526 static int set_membership_interval(struct net_bridge *br, unsigned long val) set_membership_interval() argument 528 br->multicast_membership_interval = clock_t_to_jiffies(val); set_membership_interval() 544 struct net_bridge *br = to_bridge(d); multicast_querier_interval_show() local 546 jiffies_to_clock_t(br->multicast_querier_interval)); multicast_querier_interval_show() 549 static int set_querier_interval(struct net_bridge *br, unsigned long val) set_querier_interval() argument 551 br->multicast_querier_interval = clock_t_to_jiffies(val); set_querier_interval() 567 struct net_bridge *br = to_bridge(d); multicast_query_interval_show() local 569 jiffies_to_clock_t(br->multicast_query_interval)); multicast_query_interval_show() 572 static int set_query_interval(struct net_bridge *br, unsigned long val) set_query_interval() argument 574 br->multicast_query_interval = clock_t_to_jiffies(val); set_query_interval() 589 struct net_bridge *br = to_bridge(d); multicast_query_response_interval_show() local 592 jiffies_to_clock_t(br->multicast_query_response_interval)); multicast_query_response_interval_show() 595 static int set_query_response_interval(struct net_bridge *br, unsigned long val) set_query_response_interval() argument 597 br->multicast_query_response_interval = clock_t_to_jiffies(val); set_query_response_interval() 612 struct net_bridge *br = to_bridge(d); multicast_startup_query_interval_show() local 615 jiffies_to_clock_t(br->multicast_startup_query_interval)); multicast_startup_query_interval_show() 618 static int set_startup_query_interval(struct net_bridge *br, unsigned long val) set_startup_query_interval() argument 620 br->multicast_startup_query_interval = clock_t_to_jiffies(val); set_startup_query_interval() 636 struct net_bridge *br = to_bridge(d); nf_call_iptables_show() local 637 return sprintf(buf, "%u\n", br->nf_call_iptables); nf_call_iptables_show() 640 static int set_nf_call_iptables(struct net_bridge *br, unsigned long val) set_nf_call_iptables() argument 642 br->nf_call_iptables = val ? true : false; set_nf_call_iptables() 657 struct net_bridge *br = to_bridge(d); nf_call_ip6tables_show() local 658 return sprintf(buf, "%u\n", br->nf_call_ip6tables); nf_call_ip6tables_show() 661 static int set_nf_call_ip6tables(struct net_bridge *br, unsigned long val) set_nf_call_ip6tables() argument 663 br->nf_call_ip6tables = val ? true : false; set_nf_call_ip6tables() 678 struct net_bridge *br = to_bridge(d); nf_call_arptables_show() local 679 return sprintf(buf, "%u\n", br->nf_call_arptables); nf_call_arptables_show() 682 static int set_nf_call_arptables(struct net_bridge *br, unsigned long val) set_nf_call_arptables() argument 684 br->nf_call_arptables = val ? true : false; set_nf_call_arptables() 701 struct net_bridge *br = to_bridge(d); vlan_filtering_show() local 702 return sprintf(buf, "%d\n", br->vlan_enabled); vlan_filtering_show() 717 struct net_bridge *br = to_bridge(d); vlan_protocol_show() local 718 return sprintf(buf, "%#06x\n", ntohs(br->vlan_proto)); vlan_protocol_show() 733 struct net_bridge *br = to_bridge(d); default_pvid_show() local 734 return sprintf(buf, "%d\n", br->default_pvid); default_pvid_show() 811 struct net_bridge *br = to_bridge(dev); brforward_read() local 818 n = br_fdb_fillbuf(br, buf, brforward_read() 848 struct net_bridge *br = netdev_priv(dev); br_sysfs_addbr() local 865 br->ifobj = kobject_create_and_add(SYSFS_BRIDGE_PORT_SUBDIR, brobj); br_sysfs_addbr() 866 if (!br->ifobj) { br_sysfs_addbr() 884 struct net_bridge *br = netdev_priv(dev); br_sysfs_delbr() local 886 kobject_put(br->ifobj); br_sysfs_delbr()
|
H A D | br_ioctl.c | 41 static void get_port_ifindices(struct net_bridge *br, int *ifindices, int num) get_port_ifindices() argument 45 list_for_each_entry(p, &br->port_list, list) { get_port_ifindices() 58 static int get_fdb_entries(struct net_bridge *br, void __user *userbuf, get_fdb_entries() argument 75 num = br_fdb_fillbuf(br, buf, maxnum, offset); get_fdb_entries() 86 static int add_del_if(struct net_bridge *br, int ifindex, int isadd) add_del_if() argument 88 struct net *net = dev_net(br->dev); add_del_if() 100 ret = br_add_if(br, dev); add_del_if() 102 ret = br_del_if(br, dev); add_del_if() 114 struct net_bridge *br = netdev_priv(dev); old_dev_ioctl() local 123 return add_del_if(br, args[1], args[0] == BRCTL_ADD_IF); old_dev_ioctl() 131 memcpy(&b.designated_root, &br->designated_root, 8); old_dev_ioctl() 132 memcpy(&b.bridge_id, &br->bridge_id, 8); old_dev_ioctl() 133 b.root_path_cost = br->root_path_cost; old_dev_ioctl() 134 b.max_age = jiffies_to_clock_t(br->max_age); old_dev_ioctl() 135 b.hello_time = jiffies_to_clock_t(br->hello_time); old_dev_ioctl() 136 b.forward_delay = br->forward_delay; old_dev_ioctl() 137 b.bridge_max_age = br->bridge_max_age; old_dev_ioctl() 138 b.bridge_hello_time = br->bridge_hello_time; old_dev_ioctl() 139 b.bridge_forward_delay = jiffies_to_clock_t(br->bridge_forward_delay); old_dev_ioctl() 140 b.topology_change = br->topology_change; old_dev_ioctl() 141 b.topology_change_detected = br->topology_change_detected; old_dev_ioctl() 142 b.root_port = br->root_port; old_dev_ioctl() 144 b.stp_enabled = (br->stp_enabled != BR_NO_STP); old_dev_ioctl() 145 b.ageing_time = jiffies_to_clock_t(br->ageing_time); old_dev_ioctl() 146 b.hello_timer_value = br_timer_value(&br->hello_timer); old_dev_ioctl() 147 b.tcn_timer_value = br_timer_value(&br->tcn_timer); old_dev_ioctl() 148 b.topology_change_timer_value = br_timer_value(&br->topology_change_timer); old_dev_ioctl() 149 b.gc_timer_value = br_timer_value(&br->gc_timer); old_dev_ioctl() 174 get_port_ifindices(br, indices, num); old_dev_ioctl() 185 return br_set_forward_delay(br, args[1]); old_dev_ioctl() 191 return br_set_hello_time(br, args[1]); old_dev_ioctl() 197 return br_set_max_age(br, args[1]); old_dev_ioctl() 203 br->ageing_time = clock_t_to_jiffies(args[1]); old_dev_ioctl() 212 if ((pt = br_get_port(br, args[2])) == NULL) { old_dev_ioctl() 243 br_stp_set_enabled(br, args[1]); old_dev_ioctl() 250 br_stp_set_bridge_priority(br, args[1]); old_dev_ioctl() 261 spin_lock_bh(&br->lock); old_dev_ioctl() 262 if ((p = br_get_port(br, args[1])) == NULL) old_dev_ioctl() 266 spin_unlock_bh(&br->lock); old_dev_ioctl() 278 spin_lock_bh(&br->lock); old_dev_ioctl() 279 if ((p = br_get_port(br, args[1])) == NULL) old_dev_ioctl() 283 spin_unlock_bh(&br->lock); old_dev_ioctl() 289 return get_fdb_entries(br, (void __user *)args[1], old_dev_ioctl() 380 struct net_bridge *br = netdev_priv(dev); br_dev_ioctl() local 388 return add_del_if(br, rq->ifr_ifindex, cmd == SIOCBRADDIF); br_dev_ioctl() 392 br_debug(br, "Bridge does not support ioctl 0x%x\n", cmd); br_dev_ioctl()
|
H A D | br_if.c | 68 struct net_bridge *br = p->br; br_port_carrier_check() local 74 if (!netif_running(br->dev)) br_port_carrier_check() 77 spin_lock_bh(&br->lock); br_port_carrier_check() 85 spin_unlock_bh(&br->lock); br_port_carrier_check() 99 br_fdb_unsync_static(p->br, p); br_port_set_promisc() 118 err = br_fdb_sync_static(p->br, p); br_port_clear_promisc() 131 void br_manage_promisc(struct net_bridge *br) br_manage_promisc() argument 139 if ((br->dev->flags & IFF_PROMISC) || !br_vlan_enabled(br)) br_manage_promisc() 142 list_for_each_entry(p, &br->port_list, list) { br_manage_promisc() 156 if (br->auto_cnt == 0 || br_manage_promisc() 157 (br->auto_cnt == 1 && br_auto_port(p))) br_manage_promisc() 165 static void nbp_update_port_count(struct net_bridge *br) nbp_update_port_count() argument 170 list_for_each_entry(p, &br->port_list, list) { nbp_update_port_count() 174 if (br->auto_cnt != cnt) { nbp_update_port_count() 175 br->auto_cnt = cnt; nbp_update_port_count() 176 br_manage_promisc(br); nbp_update_port_count() 190 br_fdb_unsync_static(p->br, p); nbp_delete_promisc() 211 p->br = NULL; destroy_nbp() 236 struct net_bridge *br = p->br; del_nbp() local 239 sysfs_remove_link(br->ifobj, p->dev->name); del_nbp() 243 spin_lock_bh(&br->lock); del_nbp() 245 spin_unlock_bh(&br->lock); del_nbp() 252 br_fdb_delete_by_port(br, p, 1); del_nbp() 253 nbp_update_port_count(br); del_nbp() 255 netdev_upper_dev_unlink(dev, br->dev); del_nbp() 274 struct net_bridge *br = netdev_priv(dev); br_dev_delete() local 277 list_for_each_entry_safe(p, n, &br->port_list, list) { br_dev_delete() 281 br_fdb_delete_by_port(br, NULL, 1); br_dev_delete() 283 br_vlan_flush(br); br_dev_delete() 284 del_timer_sync(&br->gc_timer); br_dev_delete() 286 br_sysfs_delbr(br->dev); br_dev_delete() 287 unregister_netdevice_queue(br->dev, head); br_dev_delete() 291 static int find_portno(struct net_bridge *br) find_portno() argument 303 list_for_each_entry(p, &br->port_list, list) { find_portno() 313 static struct net_bridge_port *new_nbp(struct net_bridge *br, new_nbp() argument 319 index = find_portno(br); new_nbp() 327 p->br = br; new_nbp() 390 int br_min_mtu(const struct net_bridge *br) br_min_mtu() argument 397 if (list_empty(&br->port_list)) br_min_mtu() 400 list_for_each_entry(p, &br->port_list, list) { br_min_mtu() 411 netdev_features_t br_features_recompute(struct net_bridge *br, br_features_recompute() argument 417 if (list_empty(&br->port_list)) br_features_recompute() 423 list_for_each_entry(p, &br->port_list, list) { br_features_recompute() 433 int br_add_if(struct net_bridge *br, struct net_device *dev) br_add_if() argument 463 p = new_nbp(br, dev); br_add_if() 492 err = netdev_master_upper_dev_link(dev, br->dev); br_add_if() 498 list_add_rcu(&p->list, &br->port_list); br_add_if() 500 nbp_update_port_count(br); br_add_if() 502 netdev_update_features(br->dev); br_add_if() 504 if (br->dev->needed_headroom < dev->needed_headroom) br_add_if() 505 br->dev->needed_headroom = dev->needed_headroom; br_add_if() 507 if (br_fdb_insert(br, p, dev->dev_addr, 0)) br_add_if() 513 spin_lock_bh(&br->lock); br_add_if() 514 changed_addr = br_stp_recalculate_bridge_id(br); br_add_if() 517 (br->dev->flags & IFF_UP)) br_add_if() 519 spin_unlock_bh(&br->lock); br_add_if() 524 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); br_add_if() 526 dev_set_mtu(br->dev, br_min_mtu(br)); br_add_if() 538 sysfs_remove_link(br->ifobj, p->dev->name); br_add_if() 551 int br_del_if(struct net_bridge *br, struct net_device *dev) br_del_if() argument 557 if (!p || p->br != br) br_del_if() 566 dev_set_mtu(br->dev, br_min_mtu(br)); br_del_if() 568 spin_lock_bh(&br->lock); br_del_if() 569 changed_addr = br_stp_recalculate_bridge_id(br); br_del_if() 570 spin_unlock_bh(&br->lock); br_del_if() 573 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); br_del_if() 575 netdev_update_features(br->dev); br_del_if() 582 struct net_bridge *br = p->br; br_port_flags_change() local 585 nbp_update_port_count(br); br_port_flags_change()
|
H A D | br_private.h | 84 struct net_bridge *br; member in union:net_port_vlans::__anon14078 121 struct net_bridge *br; member in struct:net_bridge_mdb_entry 142 struct net_bridge *br; member in struct:net_bridge_port 323 #define br_printk(level, br, format, args...) \ 324 printk(level "%s: " format, (br)->dev->name, ##args) 335 #define br_debug(br, format, args...) \ 336 pr_debug("%s: " format, (br)->dev->name, ##args) 339 static inline int br_is_root_bridge(const struct net_bridge *br) br_is_root_bridge() argument 341 return !memcmp(&br->bridge_id, &br->designated_root, 8); br_is_root_bridge() 379 void br_fdb_flush(struct net_bridge *br); 380 void br_fdb_find_delete_local(struct net_bridge *br, 384 void br_fdb_change_mac_address(struct net_bridge *br, const u8 *newaddr); 386 void br_fdb_delete_by_port(struct net_bridge *br, 388 struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br, 391 int br_fdb_fillbuf(struct net_bridge *br, void *buf, unsigned long count, 393 int br_fdb_insert(struct net_bridge *br, struct net_bridge_port *source, 395 void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source, 404 int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p); 405 void br_fdb_unsync_static(struct net_bridge *br, struct net_bridge_port *p); 406 int br_fdb_external_learn_add(struct net_bridge *br, struct net_bridge_port *p, 408 int br_fdb_external_learn_del(struct net_bridge *br, struct net_bridge_port *p, 417 void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast); 418 void br_flood_forward(struct net_bridge *br, struct sk_buff *skb, 425 int br_add_if(struct net_bridge *br, struct net_device *dev); 426 int br_del_if(struct net_bridge *br, struct net_device *dev); 427 int br_min_mtu(const struct net_bridge *br); 428 netdev_features_t br_features_recompute(struct net_bridge *br, 431 void br_manage_promisc(struct net_bridge *br); 455 int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port, 457 struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, 463 void br_multicast_init(struct net_bridge *br); 464 void br_multicast_open(struct net_bridge *br); 465 void br_multicast_stop(struct net_bridge *br); 470 int br_multicast_set_router(struct net_bridge *br, unsigned long val); 472 int br_multicast_toggle(struct net_bridge *br, unsigned long val); 473 int br_multicast_set_querier(struct net_bridge *br, unsigned long val); 474 int br_multicast_set_hash_max(struct net_bridge *br, unsigned long val); 478 br_multicast_new_group(struct net_bridge *br, struct net_bridge_port *port, 490 #define mlock_dereference(X, br) \ 491 rcu_dereference_protected(X, lockdep_is_held(&br->multicast_lock)) 493 static inline bool br_multicast_is_router(struct net_bridge *br) br_multicast_is_router() argument 495 return br->multicast_router == 2 || br_multicast_is_router() 496 (br->multicast_router == 1 && br_multicast_is_router() 497 timer_pending(&br->multicast_router_timer)); br_multicast_is_router() 501 __br_multicast_querier_exists(struct net_bridge *br, __br_multicast_querier_exists() argument 505 (br->multicast_querier || timer_pending(&querier->timer)); __br_multicast_querier_exists() 508 static inline bool br_multicast_querier_exists(struct net_bridge *br, br_multicast_querier_exists() argument 513 return __br_multicast_querier_exists(br, &br->ip4_other_query); br_multicast_querier_exists() 516 return __br_multicast_querier_exists(br, &br->ip6_other_query); br_multicast_querier_exists() 523 static inline int br_multicast_rcv(struct net_bridge *br, br_multicast_rcv() argument 531 static inline struct net_bridge_mdb_entry *br_mdb_get(struct net_bridge *br, br_mdb_get() argument 553 static inline void br_multicast_init(struct net_bridge *br) br_multicast_init() argument 557 static inline void br_multicast_open(struct net_bridge *br) br_multicast_open() argument 561 static inline void br_multicast_stop(struct net_bridge *br) br_multicast_stop() argument 575 static inline bool br_multicast_is_router(struct net_bridge *br) br_multicast_is_router() argument 579 static inline bool br_multicast_querier_exists(struct net_bridge *br, br_multicast_querier_exists() argument 594 bool br_allowed_ingress(struct net_bridge *br, struct net_port_vlans *v, 596 bool br_allowed_egress(struct net_bridge *br, const struct net_port_vlans *v, 599 struct sk_buff *br_handle_vlan(struct net_bridge *br, 602 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags); 603 int br_vlan_delete(struct net_bridge *br, u16 vid); 604 void br_vlan_flush(struct net_bridge *br); 605 bool br_vlan_find(struct net_bridge *br, u16 vid); 606 void br_recalculate_fwd_mask(struct net_bridge *br); 607 int br_vlan_filter_toggle(struct net_bridge *br, unsigned long val); 608 int br_vlan_set_proto(struct net_bridge *br, unsigned long val); 609 int br_vlan_init(struct net_bridge *br); 610 int br_vlan_set_default_pvid(struct net_bridge *br, unsigned long val); 618 const struct net_bridge *br) br_get_vlan_info() 620 return rcu_dereference_rtnl(br->vlan_info); br_get_vlan_info() 655 static inline int br_vlan_enabled(struct net_bridge *br) br_vlan_enabled() argument 657 return br->vlan_enabled; br_vlan_enabled() 660 static inline bool br_allowed_ingress(struct net_bridge *br, br_allowed_ingress() argument 668 static inline bool br_allowed_egress(struct net_bridge *br, br_allowed_egress() argument 681 static inline struct sk_buff *br_handle_vlan(struct net_bridge *br, br_handle_vlan() argument 688 static inline int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags) br_vlan_add() argument 693 static inline int br_vlan_delete(struct net_bridge *br, u16 vid) br_vlan_delete() argument 698 static inline void br_vlan_flush(struct net_bridge *br) br_vlan_flush() argument 702 static inline bool br_vlan_find(struct net_bridge *br, u16 vid) br_vlan_find() argument 707 static inline void br_recalculate_fwd_mask(struct net_bridge *br) br_recalculate_fwd_mask() argument 711 static inline int br_vlan_init(struct net_bridge *br) br_vlan_init() argument 731 const struct net_bridge *br) br_get_vlan_info() 760 static inline int br_vlan_enabled(struct net_bridge *br) br_vlan_enabled() argument 785 struct net_bridge_port *br_get_port(struct net_bridge *br, u16 port_no); br_nf_core_fini() 789 void __br_set_forward_delay(struct net_bridge *br, unsigned long t); br_nf_core_fini() 790 int br_set_forward_delay(struct net_bridge *br, unsigned long x); br_nf_core_fini() 791 int br_set_hello_time(struct net_bridge *br, unsigned long x); br_nf_core_fini() 792 int br_set_max_age(struct net_bridge *br, unsigned long x); br_nf_core_fini() 796 void br_stp_enable_bridge(struct net_bridge *br); br_nf_core_fini() 797 void br_stp_disable_bridge(struct net_bridge *br); br_nf_core_fini() 798 void br_stp_set_enabled(struct net_bridge *br, unsigned long val); br_nf_core_fini() 801 bool br_stp_recalculate_bridge_id(struct net_bridge *br); br_nf_core_fini() 802 void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *a); br_nf_core_fini() 803 void br_stp_set_bridge_priority(struct net_bridge *br, u16 newprio); br_nf_core_fini() 814 void br_stp_timer_init(struct net_bridge *br); br_nf_core_fini() 818 /* br.c */ br_nf_core_fini() 617 br_get_vlan_info( const struct net_bridge *br) br_get_vlan_info() argument 730 br_get_vlan_info( const struct net_bridge *br) br_get_vlan_info() argument
|
H A D | br.c | 36 struct net_bridge *br; br_device_event() local 51 br = p->br; br_device_event() 55 dev_set_mtu(br->dev, br_min_mtu(br)); br_device_event() 59 spin_lock_bh(&br->lock); br_device_event() 61 changed_addr = br_stp_recalculate_bridge_id(br); br_device_event() 62 spin_unlock_bh(&br->lock); br_device_event() 65 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); br_device_event() 74 netdev_update_features(br->dev); br_device_event() 78 spin_lock_bh(&br->lock); br_device_event() 79 if (br->dev->flags & IFF_UP) br_device_event() 81 spin_unlock_bh(&br->lock); br_device_event() 85 if (netif_running(br->dev) && netif_oper_up(dev)) { br_device_event() 86 spin_lock_bh(&br->lock); br_device_event() 88 spin_unlock_bh(&br->lock); br_device_event() 93 br_del_if(br, dev); br_device_event() 108 call_netdevice_notifiers(event, br->dev); br_device_event() 130 struct net_bridge *br; br_netdev_switch_event() local 138 br = p->br; br_netdev_switch_event() 143 err = br_fdb_external_learn_add(br, p, fdb_info->addr, br_netdev_switch_event() 150 err = br_fdb_external_learn_del(br, p, fdb_info->addr, br_netdev_switch_event()
|
H A D | br_fdb.c | 33 static int fdb_insert(struct net_bridge *br, struct net_bridge_port *source, 35 static void fdb_notify(struct net_bridge *br, 62 static inline unsigned long hold_time(const struct net_bridge *br) hold_time() argument 64 return br->topology_change ? br->forward_delay : br->ageing_time; hold_time() 67 static inline int has_expired(const struct net_bridge *br, has_expired() argument 71 time_before_eq(fdb->updated + hold_time(br), jiffies); has_expired() 93 static void fdb_add_hw_addr(struct net_bridge *br, const unsigned char *addr) fdb_add_hw_addr() argument 100 list_for_each_entry(p, &br->port_list, list) { fdb_add_hw_addr() 110 list_for_each_entry_continue_reverse(p, &br->port_list, list) { fdb_add_hw_addr() 121 static void fdb_del_hw_addr(struct net_bridge *br, const unsigned char *addr) fdb_del_hw_addr() argument 127 list_for_each_entry(p, &br->port_list, list) { fdb_del_hw_addr() 133 static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f) fdb_delete() argument 136 fdb_del_hw_addr(br, f->addr.addr); fdb_delete() 139 fdb_notify(br, f, RTM_DELNEIGH); fdb_delete() 144 static void fdb_delete_local(struct net_bridge *br, fdb_delete_local() argument 153 list_for_each_entry(op, &br->port_list, list) { fdb_delete_local() 163 if (p && ether_addr_equal(br->dev->dev_addr, addr) && fdb_delete_local() 164 (!vid || br_vlan_find(br, vid))) { fdb_delete_local() 170 fdb_delete(br, f); fdb_delete_local() 173 void br_fdb_find_delete_local(struct net_bridge *br, br_fdb_find_delete_local() argument 177 struct hlist_head *head = &br->hash[br_mac_hash(addr, vid)]; br_fdb_find_delete_local() 180 spin_lock_bh(&br->hash_lock); br_fdb_find_delete_local() 183 fdb_delete_local(br, p, f); br_fdb_find_delete_local() 184 spin_unlock_bh(&br->hash_lock); br_fdb_find_delete_local() 189 struct net_bridge *br = p->br; br_fdb_changeaddr() local 195 spin_lock_bh(&br->hash_lock); br_fdb_changeaddr() 200 hlist_for_each(h, &br->hash[i]) { br_fdb_changeaddr() 206 fdb_delete_local(br, p, f); br_fdb_changeaddr() 220 fdb_insert(br, p, newaddr, 0); br_fdb_changeaddr() 230 fdb_insert(br, p, newaddr, vid); br_fdb_changeaddr() 233 spin_unlock_bh(&br->hash_lock); br_fdb_changeaddr() 236 void br_fdb_change_mac_address(struct net_bridge *br, const u8 *newaddr) br_fdb_change_mac_address() argument 242 spin_lock_bh(&br->hash_lock); br_fdb_change_mac_address() 245 f = __br_fdb_get(br, br->dev->dev_addr, 0); br_fdb_change_mac_address() 247 fdb_delete_local(br, NULL, f); br_fdb_change_mac_address() 249 fdb_insert(br, NULL, newaddr, 0); br_fdb_change_mac_address() 255 pv = br_get_vlan_info(br); br_fdb_change_mac_address() 260 f = __br_fdb_get(br, br->dev->dev_addr, vid); br_fdb_change_mac_address() 262 fdb_delete_local(br, NULL, f); br_fdb_change_mac_address() 263 fdb_insert(br, NULL, newaddr, vid); br_fdb_change_mac_address() 266 spin_unlock_bh(&br->hash_lock); br_fdb_change_mac_address() 271 struct net_bridge *br = (struct net_bridge *)_data; br_fdb_cleanup() local 272 unsigned long delay = hold_time(br); br_fdb_cleanup() 273 unsigned long next_timer = jiffies + br->ageing_time; br_fdb_cleanup() 276 spin_lock(&br->hash_lock); br_fdb_cleanup() 281 hlist_for_each_entry_safe(f, n, &br->hash[i], hlist) { br_fdb_cleanup() 287 fdb_delete(br, f); br_fdb_cleanup() 292 spin_unlock(&br->hash_lock); br_fdb_cleanup() 294 mod_timer(&br->gc_timer, round_jiffies_up(next_timer)); br_fdb_cleanup() 298 void br_fdb_flush(struct net_bridge *br) br_fdb_flush() argument 302 spin_lock_bh(&br->hash_lock); br_fdb_flush() 306 hlist_for_each_entry_safe(f, n, &br->hash[i], hlist) { br_fdb_flush() 308 fdb_delete(br, f); br_fdb_flush() 311 spin_unlock_bh(&br->hash_lock); br_fdb_flush() 317 void br_fdb_delete_by_port(struct net_bridge *br, br_fdb_delete_by_port() argument 323 spin_lock_bh(&br->hash_lock); br_fdb_delete_by_port() 327 hlist_for_each_safe(h, g, &br->hash[i]) { br_fdb_delete_by_port() 337 fdb_delete_local(br, p, f); br_fdb_delete_by_port() 339 fdb_delete(br, f); br_fdb_delete_by_port() 342 spin_unlock_bh(&br->hash_lock); br_fdb_delete_by_port() 346 struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br, __br_fdb_get() argument 353 &br->hash[br_mac_hash(addr, vid)], hlist) { __br_fdb_get() 356 if (unlikely(has_expired(br, fdb))) __br_fdb_get() 379 fdb = __br_fdb_get(port->br, addr, 0); br_fdb_test_addr() 393 int br_fdb_fillbuf(struct net_bridge *br, void *buf, br_fdb_fillbuf() argument 404 hlist_for_each_entry_rcu(f, &br->hash[i], hlist) { br_fdb_fillbuf() 408 if (has_expired(br, f)) br_fdb_fillbuf() 491 static int fdb_insert(struct net_bridge *br, struct net_bridge_port *source, fdb_insert() argument 494 struct hlist_head *head = &br->hash[br_mac_hash(addr, vid)]; fdb_insert() 507 br_warn(br, "adding interface %s with same address " fdb_insert() 509 source ? source->dev->name : br->dev->name); fdb_insert() 510 fdb_delete(br, fdb); fdb_insert() 518 fdb_add_hw_addr(br, addr); fdb_insert() 519 fdb_notify(br, fdb, RTM_NEWNEIGH); fdb_insert() 524 int br_fdb_insert(struct net_bridge *br, struct net_bridge_port *source, br_fdb_insert() argument 529 spin_lock_bh(&br->hash_lock); br_fdb_insert() 530 ret = fdb_insert(br, source, addr, vid); br_fdb_insert() 531 spin_unlock_bh(&br->hash_lock); br_fdb_insert() 535 void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source, br_fdb_update() argument 538 struct hlist_head *head = &br->hash[br_mac_hash(addr, vid)]; br_fdb_update() 543 if (hold_time(br) == 0) br_fdb_update() 556 br_warn(br, "received packet on %s with " br_fdb_update() 569 fdb_notify(br, fdb, RTM_NEWNEIGH); br_fdb_update() 572 spin_lock(&br->hash_lock); br_fdb_update() 578 fdb_notify(br, fdb, RTM_NEWNEIGH); br_fdb_update() 584 spin_unlock(&br->hash_lock); br_fdb_update() 594 else if (has_expired(fdb->dst->br, fdb)) fdb_to_nud() 600 static int fdb_fill_info(struct sk_buff *skb, const struct net_bridge *br, fdb_fill_info() argument 619 ndm->ndm_ifindex = fdb->dst ? fdb->dst->dev->ifindex : br->dev->ifindex; fdb_fill_info() 624 if (nla_put_u32(skb, NDA_MASTER, br->dev->ifindex)) fdb_fill_info() 653 static void fdb_notify(struct net_bridge *br, fdb_notify() argument 656 struct net *net = dev_net(br->dev); fdb_notify() 664 err = fdb_fill_info(skb, br, fdb, 0, 0, type, 0); fdb_notify() 684 struct net_bridge *br = netdev_priv(dev); br_fdb_dump() local 696 hlist_for_each_entry_rcu(f, &br->hash[i], hlist) { br_fdb_dump() 715 if (fdb_fill_info(skb, br, f, br_fdb_dump() 734 struct net_bridge *br = source->br; fdb_add_entry() local 735 struct hlist_head *head = &br->hash[br_mac_hash(addr, vid)]; fdb_add_entry() 764 fdb_add_hw_addr(br, addr); fdb_add_entry() 770 fdb_add_hw_addr(br, addr); fdb_add_entry() 776 fdb_del_hw_addr(br, addr); fdb_add_entry() 787 fdb_notify(br, fdb, RTM_NEWNEIGH); fdb_add_entry() 801 br_fdb_update(p->br, p, addr, vid, true); __br_fdb_add() 805 spin_lock_bh(&p->br->hash_lock); __br_fdb_add() 808 spin_unlock_bh(&p->br->hash_lock); __br_fdb_add() 870 static int fdb_delete_by_addr(struct net_bridge *br, const u8 *addr, u16 vlan) fdb_delete_by_addr() argument 872 struct hlist_head *head = &br->hash[br_mac_hash(addr, vlan)]; fdb_delete_by_addr() 879 fdb_delete(br, fdb); fdb_delete_by_addr() 888 spin_lock_bh(&p->br->hash_lock); __br_fdb_delete() 889 err = fdb_delete_by_addr(p->br, addr, vid); __br_fdb_delete() 890 spin_unlock_bh(&p->br->hash_lock); __br_fdb_delete() 938 int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p) br_fdb_sync_static() argument 947 hlist_for_each_entry(fdb, &br->hash[i], hlist) { br_fdb_sync_static() 961 hlist_for_each_entry(tmp, &br->hash[i], hlist) { br_fdb_sync_static() 976 void br_fdb_unsync_static(struct net_bridge *br, struct net_bridge_port *p) br_fdb_unsync_static() argument 984 hlist_for_each_entry_rcu(fdb, &br->hash[i], hlist) { br_fdb_unsync_static() 994 int br_fdb_external_learn_add(struct net_bridge *br, struct net_bridge_port *p, br_fdb_external_learn_add() argument 1002 spin_lock_bh(&br->hash_lock); br_fdb_external_learn_add() 1004 head = &br->hash[br_mac_hash(addr, vid)]; br_fdb_external_learn_add() 1013 fdb_notify(br, fdb, RTM_NEWNEIGH); br_fdb_external_learn_add() 1021 fdb_notify(br, fdb, RTM_NEWNEIGH); br_fdb_external_learn_add() 1025 spin_unlock_bh(&br->hash_lock); br_fdb_external_learn_add() 1030 int br_fdb_external_learn_del(struct net_bridge *br, struct net_bridge_port *p, br_fdb_external_learn_del() argument 1038 spin_lock_bh(&br->hash_lock); br_fdb_external_learn_del() 1040 head = &br->hash[br_mac_hash(addr, vid)]; br_fdb_external_learn_del() 1043 fdb_delete(br, fdb); br_fdb_external_learn_del() 1047 spin_unlock_bh(&br->hash_lock); br_fdb_external_learn_del()
|
H A D | br_mdb.c | 20 struct net_bridge *br = netdev_priv(dev); br_rports_fill_info() local 24 if (!br->multicast_router || hlist_empty(&br->router_list)) br_rports_fill_info() 31 hlist_for_each_entry_rcu(p, &br->router_list, rlist) { br_rports_fill_info() 46 struct net_bridge *br = netdev_priv(dev); br_mdb_fill_info() local 52 if (br->multicast_disabled) br_mdb_fill_info() 55 mdb = rcu_dereference(br->mdb); br_mdb_fill_info() 319 static int br_mdb_add_group(struct net_bridge *br, struct net_bridge_port *port, br_mdb_add_group() argument 328 mdb = mlock_dereference(br->mdb, br); br_mdb_add_group() 331 mp = br_multicast_new_group(br, port, group); br_mdb_add_group() 338 (p = mlock_dereference(*pp, br)) != NULL; br_mdb_add_group() 354 static int __br_mdb_add(struct net *net, struct net_bridge *br, __br_mdb_add() argument 362 if (!netif_running(br->dev) || br->multicast_disabled) __br_mdb_add() 370 if (!p || p->br != br || p->state == BR_STATE_DISABLED) __br_mdb_add() 382 spin_lock_bh(&br->multicast_lock); __br_mdb_add() 383 ret = br_mdb_add_group(br, p, &ip, entry->state); __br_mdb_add() 384 spin_unlock_bh(&br->multicast_lock); __br_mdb_add() 393 struct net_bridge *br; br_mdb_add() local 400 br = netdev_priv(dev); br_mdb_add() 402 err = __br_mdb_add(net, br, entry); br_mdb_add() 408 static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry) __br_mdb_del() argument 417 if (!netif_running(br->dev) || br->multicast_disabled) __br_mdb_del() 423 if (timer_pending(&br->ip4_other_query.timer)) __br_mdb_del() 429 if (timer_pending(&br->ip6_other_query.timer)) __br_mdb_del() 436 spin_lock_bh(&br->multicast_lock); __br_mdb_del() 437 mdb = mlock_dereference(br->mdb, br); __br_mdb_del() 444 (p = mlock_dereference(*pp, br)) != NULL; __br_mdb_del() 459 netif_running(br->dev)) __br_mdb_del() 465 spin_unlock_bh(&br->multicast_lock); __br_mdb_del() 473 struct net_bridge *br; br_mdb_del() local 480 br = netdev_priv(dev); br_mdb_del() 482 err = __br_mdb_del(br, entry); br_mdb_del()
|
H A D | br_input.c | 32 struct net_bridge *br = netdev_priv(brdev); br_pass_frame_up() local 33 struct pcpu_sw_netstats *brstats = this_cpu_ptr(br->stats); br_pass_frame_up() 45 pv = br_get_vlan_info(br); br_pass_frame_up() 47 !br_allowed_egress(br, pv, skb)) { br_pass_frame_up() 54 skb = br_handle_vlan(br, pv, skb); br_pass_frame_up() 63 static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br, br_do_proxy_arp() argument 66 struct net_device *dev = br->dev; br_do_proxy_arp() 110 f = __br_fdb_get(br, n->ha, vid); br_do_proxy_arp() 127 struct net_bridge *br; br_handle_frame_finish() local 137 if (!br_allowed_ingress(p->br, nbp_get_vlan_info(p), skb, &vid)) br_handle_frame_finish() 141 br = p->br; br_handle_frame_finish() 143 br_fdb_update(br, p, eth_hdr(skb)->h_source, vid, false); br_handle_frame_finish() 146 br_multicast_rcv(br, p, skb, vid)) br_handle_frame_finish() 152 BR_INPUT_SKB_CB(skb)->brdev = br->dev; br_handle_frame_finish() 157 if (br->dev->flags & IFF_PROMISC) br_handle_frame_finish() 163 br_do_proxy_arp(skb, br, vid, p); br_handle_frame_finish() 169 mdst = br_mdb_get(br, skb, vid); br_handle_frame_finish() 171 br_multicast_querier_exists(br, eth_hdr(skb))) { br_handle_frame_finish() 173 br_multicast_is_router(br)) br_handle_frame_finish() 183 br->dev->stats.multicast++; br_handle_frame_finish() 184 } else if ((dst = __br_fdb_get(br, dest, vid)) && br_handle_frame_finish() 196 br_flood_forward(br, skb, skb2, unicast); br_handle_frame_finish() 218 br_fdb_update(p->br, p, eth_hdr(skb)->h_source, vid, false); br_handle_local_finish() 246 u16 fwd_mask = p->br->group_fwd_mask_required; br_handle_frame() 265 if (p->br->stp_enabled == BR_NO_STP || br_handle_frame() 275 fwd_mask |= p->br->group_fwd_mask; br_handle_frame() 303 if (ether_addr_equal(p->br->dev->dev_addr, dest)) br_handle_frame()
|
H A D | br_stp_bpdu.c | 53 llc_mac_hdr_init(skb, p->dev->dev_addr, p->br->group_addr); br_send_bpdu() 81 if (p->br->stp_enabled != BR_KERNEL_STP) br_send_config_bpdu() 126 if (p->br->stp_enabled != BR_KERNEL_STP) br_send_tcn_bpdu() 146 struct net_bridge *br; br_stp_rcv() local 161 br = p->br; br_stp_rcv() 162 spin_lock(&br->lock); br_stp_rcv() 164 if (br->stp_enabled != BR_KERNEL_STP) br_stp_rcv() 167 if (!(br->dev->flags & IFF_UP)) br_stp_rcv() 173 if (!ether_addr_equal(dest, br->group_addr)) br_stp_rcv() 177 br_notice(br, "BPDU received on blocked port %u(%s)\n", br_stp_rcv() 225 br_notice(p->br, br_stp_rcv() 239 spin_unlock(&br->lock); br_stp_rcv()
|
H A D | br_netlink.c | 279 const struct net_bridge *br; br_fill_ifinfo() local 285 br = port->br; br_fill_ifinfo() 287 br = netdev_priv(dev); br_fill_ifinfo() 289 br_debug(br, "br_fill_info event %d port %s master %s\n", br_fill_ifinfo() 290 event, dev->name, br->dev->name); br_fill_ifinfo() 305 nla_put_u32(skb, IFLA_MASTER, br->dev->ifindex) || br_fill_ifinfo() 333 pv = br_get_vlan_info(br); br_fill_ifinfo() 374 br_debug(port->br, "port %u(%s) event %d\n", br_ifinfo_notify() 411 static int br_vlan_info(struct net_bridge *br, struct net_bridge_port *p, br_vlan_info() argument 424 err = br_vlan_add(p->br, vinfo->vid, br_vlan_info() 427 err = br_vlan_add(br, vinfo->vid, vinfo->flags); br_vlan_info() 435 br_vlan_delete(p->br, vinfo->vid); br_vlan_info() 437 br_vlan_delete(br, vinfo->vid); br_vlan_info() 445 static int br_afspec(struct net_bridge *br, br_afspec() argument 484 err = br_vlan_info(br, p, cmd, &tmp_vinfo); nla_for_each_nested() 490 err = br_vlan_info(br, p, cmd, vinfo); nla_for_each_nested() 520 if (p->br->stp_enabled == BR_KERNEL_STP) br_set_port_state() 532 br_port_state_selection(p->br); br_set_port_state() 614 spin_lock_bh(&p->br->lock); br_setlink() 616 spin_unlock_bh(&p->br->lock); br_setlink() 622 spin_lock_bh(&p->br->lock); br_setlink() 624 spin_unlock_bh(&p->br->lock); br_setlink() 641 br_warn(p->br, "error setting attrs on port %u(%s)\n", br_setlink() 681 br_warn(p->br, "error deleting attrs on port %u (%s)\n", br_dellink() 702 struct net_bridge *br = netdev_priv(dev); br_dev_newlink() local 705 spin_lock_bh(&br->lock); br_dev_newlink() 706 br_stp_change_bridge_id(br, nla_data(tb[IFLA_ADDRESS])); br_dev_newlink() 707 spin_unlock_bh(&br->lock); br_dev_newlink() 718 struct net_bridge *br = netdev_priv(brdev); br_port_slave_changelink() local 724 spin_lock_bh(&br->lock); br_port_slave_changelink() 726 spin_unlock_bh(&br->lock); br_port_slave_changelink() 756 struct net_bridge *br = netdev_priv(brdev); br_changelink() local 763 err = br_set_forward_delay(br, nla_get_u32(data[IFLA_BR_FORWARD_DELAY])); br_changelink() 769 err = br_set_hello_time(br, nla_get_u32(data[IFLA_BR_HELLO_TIME])); br_changelink() 775 err = br_set_max_age(br, nla_get_u32(data[IFLA_BR_MAX_AGE])); br_changelink() 783 br->ageing_time = clock_t_to_jiffies(ageing_time); br_changelink() 789 br_stp_set_enabled(br, stp_enabled); br_changelink() 795 br_stp_set_bridge_priority(br, priority); br_changelink() 814 struct net_bridge *br = netdev_priv(brdev); br_fill_info() local 815 u32 forward_delay = jiffies_to_clock_t(br->forward_delay); br_fill_info() 816 u32 hello_time = jiffies_to_clock_t(br->hello_time); br_fill_info() 817 u32 age_time = jiffies_to_clock_t(br->max_age); br_fill_info() 818 u32 ageing_time = jiffies_to_clock_t(br->ageing_time); br_fill_info() 819 u32 stp_enabled = br->stp_enabled; br_fill_info() 820 u16 priority = (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]; br_fill_info()
|
H A D | Makefile | 7 bridge-y := br.o br_device.o br_fdb.o br_forward.o br_if.o br_input.o \
|
H A D | br_private_stp.h | 48 return !memcmp(&p->designated_bridge, &p->br->bridge_id, 8) && br_is_designated_port() 54 void br_become_root_bridge(struct net_bridge *br); 62 void br_transmit_tcn(struct net_bridge *br); 63 void br_topology_change_detection(struct net_bridge *br);
|
H A D | br_forward.c | 34 br_allowed_egress(p->br, nbp_get_vlan_info(p), skb) && should_deliver() 64 skb = br_handle_vlan(to->br, nbp_get_vlan_info(to), skb); __br_deliver() 70 if (unlikely(netpoll_tx_running(to->br->dev))) { __br_deliver() 94 skb = br_handle_vlan(to->br, nbp_get_vlan_info(to), skb); __br_forward() 174 static void br_flood(struct net_bridge *br, struct sk_buff *skb, br_flood() argument 185 list_for_each_entry_rcu(p, &br->port_list, list) { br_flood() 218 void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast) br_flood_deliver() argument 220 br_flood(br, skb, NULL, __br_deliver, unicast); br_flood_deliver() 224 void br_flood_forward(struct net_bridge *br, struct sk_buff *skb, br_flood_forward() argument 227 br_flood(br, skb, skb2, __br_forward, unicast); br_flood_forward() 239 struct net_bridge *br = netdev_priv(dev); br_multicast_flood() local 244 rp = rcu_dereference(hlist_first_rcu(&br->router_list)); br_multicast_flood()
|
H A D | br_sysfs_if.c | 163 br_fdb_delete_by_port(p->br, p, 0); // Don't delete local entry store_flush() 252 if (p->dev && p->br && brport_attr->store) { brport_store() 253 spin_lock_bh(&p->br->lock); brport_store() 255 spin_unlock_bh(&p->br->lock); brport_store() 276 struct net_bridge *br = p->br; br_sysfs_addif() local 280 err = sysfs_create_link(&p->kobj, &br->dev->dev.kobj, br_sysfs_addif() 292 return sysfs_create_link(br->ifobj, &p->kobj, p->sysfs_name); br_sysfs_addif() 298 struct net_bridge *br = p->br; br_sysfs_renameif() local 307 err = sysfs_rename_link(br->ifobj, &p->kobj, br_sysfs_renameif() 310 netdev_notice(br->dev, "unable to rename link %s to %s", br_sysfs_renameif()
|
H A D | br_nf_core.c | 75 void br_netfilter_rtable_init(struct net_bridge *br) br_netfilter_rtable_init() argument 77 struct rtable *rt = &br->fake_rtable; br_netfilter_rtable_init() 80 rt->dst.dev = br->dev; br_netfilter_rtable_init()
|
H A D | br_netfilter.c | 133 return port ? &port->br->fake_rtable : NULL; bridge_parent_rtable() 141 return port ? port->br->dev : NULL; bridge_parent() 476 struct net_device *vlan, *br; brnf_get_logical_dev() local 478 br = bridge_parent(dev); brnf_get_logical_dev() 480 return br; brnf_get_logical_dev() 482 vlan = __vlan_find_dev_deep_rcu(br, skb->vlan_proto, brnf_get_logical_dev() 485 return vlan ? vlan : br; brnf_get_logical_dev() 624 struct net_bridge *br; br_nf_pre_routing() local 633 br = p->br; br_nf_pre_routing() 636 if (!brnf_call_ip6tables && !br->nf_call_ip6tables) br_nf_pre_routing() 643 if (!brnf_call_iptables && !br->nf_call_iptables) br_nf_pre_routing() 789 struct net_bridge *br; br_nf_forward_arp() local 795 br = p->br; br_nf_forward_arp() 797 if (!brnf_call_arptables && !br->nf_call_arptables) br_nf_forward_arp()
|
/linux-4.1.27/drivers/clk/qcom/ |
H A D | clk-branch.c | 24 static bool clk_branch_in_hwcg_mode(const struct clk_branch *br) clk_branch_in_hwcg_mode() argument 28 if (!br->hwcg_reg) clk_branch_in_hwcg_mode() 31 regmap_read(br->clkr.regmap, br->hwcg_reg, &val); clk_branch_in_hwcg_mode() 33 return !!(val & BIT(br->hwcg_bit)); clk_branch_in_hwcg_mode() 36 static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling) clk_branch_check_halt() argument 38 bool invert = (br->halt_check == BRANCH_HALT_ENABLE); clk_branch_check_halt() 41 regmap_read(br->clkr.regmap, br->halt_reg, &val); clk_branch_check_halt() 43 val &= BIT(br->halt_bit); clk_branch_check_halt() 55 static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling) clk_branch2_check_halt() argument 63 regmap_read(br->clkr.regmap, br->halt_reg, &val); clk_branch2_check_halt() 74 static int clk_branch_wait(const struct clk_branch *br, bool enabling, clk_branch_wait() argument 77 bool voted = br->halt_check & BRANCH_VOTED; clk_branch_wait() 78 const char *name = __clk_get_name(br->clkr.hw.clk); clk_branch_wait() 81 if (clk_branch_in_hwcg_mode(br)) clk_branch_wait() 84 if (br->halt_check == BRANCH_HALT_DELAY || (!enabling && voted)) { clk_branch_wait() 86 } else if (br->halt_check == BRANCH_HALT_ENABLE || clk_branch_wait() 87 br->halt_check == BRANCH_HALT || clk_branch_wait() 92 if (check_halt(br, enabling)) clk_branch_wait() 106 struct clk_branch *br = to_clk_branch(hw); clk_branch_toggle() local 117 return clk_branch_wait(br, en, check_halt); clk_branch_toggle()
|
/linux-4.1.27/arch/alpha/lib/ |
H A D | dec_and_lock.c | 25 2: br $29, 3f \n\ 27 br $atomic_dec_and_lock_1..ng \n\ 29 4: br 1b \n\
|
H A D | dbg_stackcheck.S | 25 br 1b
|
H A D | strcpy.S | 21 br __stxcpy # do the copy
|
H A D | strcat.S | 50 br __stxcpy
|
H A D | ev67-strcat.S | 52 br __stxcpy # L0 :
|
H A D | memmove.S | 104 br $egress
|
H A D | callback_srm.S | 59 ldgp $29,0($27); br $25,srm_dispatch; .word CODE, ARG_CNT; .end callback_##NAME
|
H A D | clear_user.S | 99 br $loop # e1 :
|
H A D | copy_user.S | 103 br $31,$41
|
H A D | memset.S | 122 br __constant_c_memset /* .. E1 */
|
H A D | ev6-stxncpy.S | 139 br $a_eos # L0 : Latency=3 174 br stxncpy_aligned # .. e1 : 332 br $u_final # L0 : Latency=3
|
H A D | stxncpy.S | 109 br $a_eos 139 br stxncpy_aligned # .. e1 : 286 br $u_final
|
/linux-4.1.27/arch/ia64/hp/sim/boot/ |
H A D | boot_head.S | 28 br.call.sptk.many rp=start_bootloader 37 br.ret.sptk.many b0 44 br.ret.sptk.many b0 51 br.sptk.few b7 64 (p6) br.cond.sptk.few static 69 (p6) br.cond.sptk.few stacked 72 (p7) br.cond.sptk.few 1f 78 br.cond.sptk.few rp 80 (p7) br.cond.sptk.few 1f 87 (p7) br.cond.sptk.few 1f 92 br.cond.sptk.few rp 94 (p7) br.cond.sptk.few 1f 103 br.cloop.sptk.few .loop 112 (p7) br.cond.sptk.few 1f 148 (p7) br.cond.sptk.few 1f 157 (p7) br.cond.sptk.few 1f 161 1: br.cond.sptk.few rp 163 br.ret.sptk.few rp
|
/linux-4.1.27/arch/alpha/include/asm/ |
H A D | spinlock.h | 39 " br 1b\n" arch_spin_lock() 76 " br 1b\n" arch_read_lock() 96 " br 1b\n" arch_write_lock() 116 "6: br 1b\n" arch_read_trylock() 138 "6: br 1b\n" arch_write_trylock() 156 "6: br 1b\n" arch_read_unlock()
|
H A D | rwsem.h | 39 "2: br 1b\n" __down_read() 81 "2: br 1b\n" __down_write() 117 "2: br 1b\n" __up_read() 143 "2: br 1b\n" __up_write() 171 "2: br 1b\n" __downgrade_write() 192 "2: br 1b\n" rwsem_atomic_add() 213 "2: br 1b\n" rwsem_atomic_update()
|
H A D | xchg.h | 32 "2: br 1b\n" ____xchg() 56 "2: br 1b\n" ____xchg() 76 "2: br 1b\n" ____xchg() 96 "2: br 1b\n" ____xchg() 155 "3: br 1b\n" ____cmpxchg() 182 "3: br 1b\n" ____cmpxchg() 205 "3: br 1b\n" ____cmpxchg() 228 "3: br 1b\n" ____cmpxchg()
|
H A D | atomic.h | 42 "2: br 1b\n" \ 60 "2: br 1b\n" \ 78 "2: br 1b\n" \ 96 "2: br 1b\n" \ 147 "3: br 1b\n" __atomic_add_unless() 179 "3: br 1b\n" atomic64_add_unless() 207 "3: br 1b\n" atomic64_dec_if_positive()
|
H A D | futex.h | 20 "4: br 1b\n" \ 102 "4: br 1b\n" futex_atomic_cmpxchg_inatomic()
|
H A D | local.h | 30 "2: br 1b\n" local_add_return() 47 "2: br 1b\n" local_sub_return()
|
H A D | bitops.h | 39 "2: br 1b\n" set_bit() 68 "2: br 1b\n" clear_bit() 111 "2: br 1b\n" change_bit() 150 "3: br 1b\n" test_and_set_bit() 177 "3: br 1b\n" test_and_set_bit_lock() 221 "3: br 1b\n" test_and_clear_bit() 263 "3: br 1b\n" test_and_change_bit()
|
H A D | processor.h | 16 ({ void *__pc; __asm__ ("br %0,.+4" : "=r"(__pc)); __pc; })
|
/linux-4.1.27/arch/s390/kernel/ |
H A D | mcount.S | 16 br %r14 24 br %r14 67 br %r1 80 br %r14
|
H A D | sclp.S | 84 br %r14 # return to caller 132 br %r14 178 br %r14 254 br %r14 295 br %r14
|
H A D | entry.S | 193 br %r14 685 br %r14 851 0: br %r14 908 br %r14 918 br %r14 928 br %r14 934 br %r14 944 br %r14 975 br %r14 1029 br %r14
|
H A D | base.S | 112 br %r14
|
H A D | head.S | 74 br %r14 83 br %r14 130 br %r4 # r2 contains the total size 258 br %r1
|
H A D | swsusp.S | 119 br %r14 301 br %r14
|
/linux-4.1.27/arch/ia64/sn/kernel/sn2/ |
H A D | ptc_deadlock.S | 54 (p6) br.cond.sptk 5b 69 (p6) br.cond.sptk 5b;; 80 (p6) br.cond.sptk 5b 89 (p8) br.cond.spnt 1b;; // Repeat if DEADLOCK occurred. 91 br.ret.sptk rp
|
/linux-4.1.27/arch/ia64/lib/ |
H A D | memcpy.S | 63 (p6) br.ret.spnt.many rp // zero length, return immediately 71 adds cnt=-1,cnt // br.ctop is repeat/until 82 (p7) br.cond.spnt.few .memcpy_short 83 (p6) br.cond.spnt.few .memcpy_long 103 br.ctop.dptk.few 1b 109 br.ret.sptk.many rp 119 adds cnt=-1,in2 // br.ctop is repeat/until 147 br.ctop.dptk.few 1b 152 br.ret.sptk.many rp 169 * On Itanium, the pipeline itself runs without stalls. However, br.ctop 239 adds t2=-1,t2 // br.ctop is repeat/until 254 br.sptk.few b6 270 br.ret.sptk.many rp 284 br.ctop.dptk.few 1b; \ 290 br .memcpy_tail
|
H A D | memcpy_mck.S | 78 br.cond.sptk .common_code 102 (p15) br.cond.dpnt .memcpy_short 103 (p13) br.cond.dpnt .align_dest 104 (p14) br.cond.dpnt .unaligned_src 127 (p6) br.cond.dpnt .long_copy 133 br.cloop.dptk.few .prefetch 150 (p10) br.dpnt.few .aligned_src_tail 163 br.ctop.dptk.few 1b 183 br.dptk.many .memcpy_short 213 br.ctop.sptk .prefetch_loop 259 br.ctop.sptk .line_copy 266 br.sptk.many .medium_copy 312 br.cloop.dptk.few 1b 323 (p8) br.dpnt.few .noloop 346 br.cond.sptk.few b6 371 (p8) br.dpnt .4k_block 415 (p9) br.ret.dpnt rp // 0 byte copy 420 (p11) br.ret.dpnt rp // 1 byte copy 424 (p13) br.ret.dpnt rp // 2 byte copy 433 (p15) br.ret.dpnt rp // 3 byte copy 438 (p7) br.ret.dpnt rp // 4 byte copy 443 (p9) br.ret.dptk rp // 5 byte copy 446 (p11) br.ret.dptk rp // 6 byte copy 450 br.ret.dptk rp // done all cases 495 (p6) br.cond.dptk .aligned_src 496 (p7) br.cond.dpnt .unaligned_src 510 br.ctop.dptk.few 1b;; \ 513 br.sptk.few .unaligned_src_tail /* branch out of jump table */ \ 566 br.sptk .ex_handler 570 br.sptk .ex_handler 582 br.sptk .ex_handler 613 (p14) br.ret.sptk.many rp 649 (p8) br.call.sptk.few b0=__copy_user // recursive call 657 (p8) br.call.sptk.few b0=memset 663 br.ret.sptk.many rp
|
H A D | memset.S | 76 (p_scr) br.ret.dpnt.many rp // return immediately if count = 0 83 (p_scr) br.cond.dptk.many .move_bytes_unaligned // go move just a few (M_B_U) 119 (p_scr) br.cond.dpnt.many .fraction_of_line // go move just a few 125 (p_zr) br.cond.dptk.many .l1b // Jump to use stf.spill 150 br.cloop.dptk.few .pref_l1a 189 br.cloop.dptk.few .l1ax 193 (p_scr) br.cond.dpnt.many .fraction_of_line // Branch no. 2 194 br.cond.dpnt.many .move_bytes_from_alignment // Branch no. 3 220 br.cloop.dptk.few .pref_l1b 243 br.cloop.dptk.few .l1bx 247 (p_scr) br.cond.dpnt.many .move_bytes_from_alignment // 258 (p_scr) br.cond.dpnt.many .store_words 272 br.cloop.dptk.many .l2 277 (p_scr) br.cond.dpnt.many .move_bytes_from_alignment // Branch 299 (p_scr) br.cond.dpnt.few .restore_and_exit 317 br.ret.sptk.many rp 360 br.ret.sptk.many rp
|
H A D | copy_user.S | 81 adds len2=-1,len // br.ctop is repeat/until 88 (p8) br.ret.spnt.many rp // empty mempcy() 106 (p10) br.cond.dptk .long_copy_user 115 br.ctop.dptk.few 1b 120 br.ret.sptk.many rp // end of short memcpy 156 (p15) br.cond.spnt 1f 166 br.cond.spnt .word_copy_user 197 br.ctop.dptk.few 2b 203 (p9) br.cond.spnt 4f // if (16 > len1) skip 8-byte copy 235 (pred) br.cond.spnt .copy_user_bit##shift 243 br.ctop.dptk 1b; \ 245 br.cond.sptk.many .diff_align_do_tail; \ 252 br.ctop.dptk 2b; \ 254 br.cond.sptk.many .failure_in2 308 br.ctop.dptk.few 5b 313 br.ret.sptk.many rp 324 (p8) br.cond.dpnt .diff_align_copy_user 364 adds tmp=-1,cnt // br.ctop is repeat/until 365 (p7) br.cond.dpnt .dotail // we have less than 16 bytes left 380 br.ctop.dptk 2b 410 br.ret.sptk.many rp 442 br.ctop.dptk 1b 447 br.ret.sptk.many rp 459 br.ctop.dptk 2b 462 br.cond.dptk.many .failure_in1bis 553 br.cloop.dptk 5b 558 br.ret.sptk.many rp 578 br.ctop.dptk 2b 582 (p6) br.cond.dptk .failure_in1bis 587 br.ret.sptk.many rp 593 (p6) br.cond.dptk .failure_in1bis 598 br.ret.sptk.many rp 609 br.ret.sptk.many rp
|
H A D | clear_page.S | 47 br.cloop.sptk.few .fetch 72 br.cloop.sptk.few 1b 75 br.ret.sptk.many rp
|
H A D | ip_fast_csum.S | 44 (p6) br.spnt .generic 75 br.ret.sptk.many b0 88 br.call.sptk.many b0=do_csum 93 br.ret.sptk.many b0 143 br.ret.sptk.many b0
|
H A D | clear_user.S | 63 adds tmp=-1,len // br.ctop is repeat/until 65 (p6) br.ret.spnt.many rp 69 (p6) br.cond.dptk .long_do_clear 82 br.cloop.dptk 1b 90 br.ret.sptk.many rp // end of short clear_user 122 (p6) br.cond.dpnt .dotail // we have less than 16 bytes left 151 br.cloop.dptk 2b 181 br.ret.sptk.many rp // end of most likely path 208 br.ret.sptk.many rp
|
H A D | strlen_user.S | 122 (p6) br.wtop.dptk.few 1b // loop until p6 == 0 133 (p6) br.cond.spnt .recover // jump to recovery if val1 is NaT 140 (p7) br.cond.spnt .recover // jump to recovery if val2 is NaT 152 br.ret.sptk.many rp // end of normal execution 180 (p6) br.wtop.dptk.few 2b // loop until p6 == 0 188 br.ret.sptk.many rp // end of successful recovery code 197 br.ret.sptk.many rp
|
H A D | carta_random.S | 53 br.ret.sptk.many rp
|
H A D | copy_page.S | 92 br.ctop.sptk.few 1b 97 br.ret.sptk.many rp
|
H A D | strlen.S | 119 (p6) br.wtop.dptk 1b // loop until p6 == 0 130 (p6) br.cond.spnt .recover // jump to recovery if val1 is NaT 137 (p7) br.cond.spnt .recover // jump to recovery if val2 is NaT 149 br.ret.sptk.many rp // end of normal execution 183 (p6) br.wtop.dptk 2b // loop until p6 == 0 191 br.ret.sptk.many rp // end of successful recovery code
|
H A D | copy_page_mck.S | 134 br.ctop.sptk .prefetch_loop 136 cmp.eq p16, p0 = r0, r0 // reset p16 to 1 (br.ctop cleared it to zero) 180 br.ctop.sptk .line_copy 184 br.ret.sptk.many rp
|
H A D | do_csum.S | 138 (p6) br.ret.spnt.many rp // return if zero or negative length 190 (p8) br.cond.dptk .do_csum_exit // if (within an 8-byte word) 191 (p11) br.cond.dptk .do_csum16 // if (count is even) 203 (p9) br.cond.sptk .do_csum_exit // if (count == 1) exit 235 br.ctop.sptk 1b 289 br.ret.sptk.many rp 321 // br.ret.sptk.many rp
|
H A D | idiv32.S | 82 br.ret.sptk.many rp
|
H A D | idiv64.S | 79 br.ret.sptk.many rp
|
/linux-4.1.27/arch/ia64/kernel/ |
H A D | pal.S | 36 br.ret.sptk.many rp 42 * calls are done via "br.cond" (not "br.call"). 46 br.cond.sptk.many rp 81 br.cond.sptk.many b7 88 br.ret.sptk.many b0 117 br.call.sptk.many rp=b7 // now make the call 123 br.ret.sptk.many b0 176 br.call.sptk.many rp=ia64_switch_mode_phys 180 br.cond.sptk.many b7 186 br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode 194 br.ret.sptk.many b0 228 br.call.sptk.many rp=ia64_switch_mode_phys 237 br.call.sptk.many rp=b7 // now make the call 243 br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode 251 br.ret.sptk.many b0 276 br.ret.sptk.many rp 297 br.ret.sptk.many rp
|
H A D | relocate_kernel.S | 82 (p7) br.cond.dpnt.few 4f 88 br.cloop.sptk.few 3b 93 br.sptk.few 2b 133 br.sptk.few .dest_page 140 (p6) br.cond.sptk.few .loop;; 144 (p6) br.cond.sptk.few .loop;; 147 (p6) br.cond.sptk.few .end_loop;; 150 (p6) br.cond.sptk.few .loop 162 br.ctop.sptk.few 1b 163 br.sptk.few .loop 173 br.call.sptk.many b0=b6;; 322 br.ret.sptk.many rp
|
H A D | efi_stub.S | 21 * (the br.ia instruction fails unless psr.dfl and psr.dfh are 65 br.call.sptk.many rp=ia64_switch_mode_phys 75 br.call.sptk.many rp=b6 // call the EFI function 80 br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode 85 br.ret.sptk.many rp
|
H A D | esi_stub.S | 24 * (the br.ia instruction fails unless psr.dfl and psr.dfh are 82 br.call.sptk.many rp=ia64_switch_mode_phys 85 br.call.sptk.many rp=b6 // call the ESI function 90 br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode 95 br.ret.sptk.many rp
|
H A D | entry.S | 71 br.call.sptk.many rp=sys_execve 80 (p7) br.ret.sptk.many rp 100 br.ret.sptk.many rp 126 br.call.sptk.many rp=do_fork 131 br.ret.sptk.many rp 157 br.call.sptk.many rp=do_fork 162 br.ret.sptk.many rp 192 (p6) br.cond.dpnt .map 205 br.ret.sptk.many rp // boogie on out in new context 223 br.cond.sptk .done 357 br.cond.sptk.many b7 457 br.cond.sptk.many b7 480 br.ret.sptk.many rp 506 br.call.sptk.many rp=syscall_trace_enter // give parent a chance to catch syscall args 511 (p6) br.cond.sptk strace_error // syscall failed -> 540 br.call.sptk.many rp=b6 // do the syscall 546 (p6) br.cond.sptk strace_error // syscall failed -> 551 br.call.sptk.many rp=syscall_trace_leave // give parent a chance to catch return value 555 br.cond.sptk ia64_work_pending_syscall_end 566 br.cond.sptk .strace_save_retval 581 br.call.sptk.many rp=syscall_trace_leave // give parent a chance to catch return value 583 .ret4: br.cond.sptk ia64_leave_kernel 598 br.call.sptk.many rp=b6 // fn(arg) 604 br.ret.sptk.many rp 620 br.call.sptk.many rp=ia64_invoke_schedule_tail 623 (pKStk) br.call.sptk.many rp=call_payload 632 (p6) br.cond.spnt .strace_check_retval 641 (p7) br.cond.spnt handle_syscall_error // handle potential syscall failure 644 br.cond.sptk.few ia64_leave_syscall 752 (p6) br.cond.spnt .work_pending_syscall 810 (pKStk) br.cond.dpnt.many skip_rbs_switch // B 838 br.cond.sptk.many rbs_switch // B 894 (p6) br.cond.spnt .work_pending 1002 // mib : mov add br -> mib : ld8 add br 1003 // bbb_ : br nop cover;; mbb_ : mov br cover;; 1012 (pKStk) br.cond.dpnt skip_rbs_switch 1021 (pKStk) br.cond.dpnt skip_rbs_switch 1029 (pNonSys) br.cond.dpnt dont_preserve_current_frame 1075 nop.b 0 // can't do br.call here because of alloc (WAW on CFM) 1084 (pRecurse) br.call.sptk.many b0=rse_clear_invalid 1089 cmp.ne pReturn,p0=r0,in1 // if recursion count != 0, we need to do a br.ret 1093 (pReturn) br.ret.sptk.many b0 1108 (pRecurse) br.call.dptk.few b0=rse_clear_invalid 1112 cmp.ne pReturn,p0=r0,in1 // if recursion count != 0, we need to do a br.ret 1115 (pReturn) br.ret.dptk.many b0 1171 (p6) br.cond.sptk.few .notify 1172 br.call.spnt.many rp=preempt_schedule_irq 1174 (pLvSys)br.cond.sptk.few __paravirt_pending_syscall_end 1175 br.cond.sptk.many .work_processed_kernel 1178 (pUStk) br.call.spnt.many rp=notify_resume_user 1180 (pLvSys)br.cond.sptk.few __paravirt_pending_syscall_end 1181 br.cond.sptk.many .work_processed_kernel 1190 br.cond.sptk.many __paravirt_work_processed_syscall_target 1208 br.cond.sptk ia64_leave_syscall 1221 br.call.sptk.many rp=schedule_tail 1224 br.ret.sptk.many rp 1250 br.call.sptk.many rp=do_notify_resume_user 1259 br.ret.sptk.many rp 1292 br.call.sptk.many rp=ia64_rt_sigreturn 1300 br.many b7 1310 br.call.sptk.many rp=ia64_handle_unaligned // stack frame setup in ivt 1313 br.cond.sptk.many rp // goes to ia64_leave_kernel 1340 br.call.sptk.many rp=unw_init_frame_info 1347 br.call.sptk.many rp=b6 // invoke the callback function 1358 br.ret.sptk.many rp 1364 br ftrace_stub 1368 br.ret.sptk.many b0 1377 br.call.sptk.many b0 = ftrace_patch_gp 1401 br.call.sptk.many b0 = b6 1407 br ftrace_stub 1418 (p7) br.sptk.many ftrace_stub 1432 br.call.sptk.many b0 = b6 1438 br ftrace_stub 1449 br.ret.sptk.many b6 1455 br b7
|
H A D | jprobes.S | 62 br.call.sptk.many b0=jprobe_break 70 br.ret.sptk.many b6 81 br.cond.sptk.many rp 88 br.ret.sptk.many rp
|
H A D | mca_asm.S | 81 (p7) br.cond.dpnt.few 4f 87 br.cloop.sptk.few 3b 92 br.sptk.few 2b 133 br.sptk.many b1 144 br.sptk ia64_state_save // save the state that is not in minstate 155 (p7) br.spnt done_tlb_purge_and_reload 163 br.sptk.many ia64_do_tlb_purge;; 236 br.sptk ia64_new_stack 242 br.sptk ia64_set_kernel_registers 274 br.call.sptk.many b0=ia64_mca_handler 286 br.sptk ia64_old_stack 291 br.sptk ia64_state_restore // restore the SAL state 296 br b0 319 br b0 330 br.sptk ia64_os_init_dispatch 339 br.sptk ia64_state_save // save the state that is not in minstate 345 br.sptk ia64_new_stack 351 br.sptk ia64_set_kernel_registers 383 br.call.sptk.many b0=ia64_init_handler 393 br.sptk ia64_state_restore // restore the SAL state 400 br.sptk ia64_old_stack 404 br b0 693 br.sptk b0 881 (p6) br.spnt 1f // the dreaded cpu 0 idle task in region 5:( 892 br.sptk b0 939 br.sptk b0 1000 br.sptk b0 1067 br.sptk b0 1094 br.ret.sptk.many rp 1121 br.ret.sptk.many rp
|
H A D | paravirtentry.S | 46 br.cond.sptk.many breg 79 br.ret.sptk.many rp
|
H A D | head.S | 55 br.cloop.sptk.many 1b 62 br.cloop.sptk.many _lbl 97 br.cloop.sptk.few RestRR 315 (isBP) br.cond.dpnt .load_current // BP stack is on region 5 --- no need to map it 368 (isAP) br.few 2f 377 (p7) br.cond.dptk.few 1b 413 (p7) br.call.sptk.many rp=b1 433 (isAP) br.call.sptk.many rp=start_secondary 435 (isAP) br.cond.sptk self 442 br.call.sptk.many rp=sys_fw_init 445 br.call.sptk.many rp=start_kernel 451 br.call.sptk.many b0=console_print 454 br.sptk.many self // endless loop 476 br.cloop.sptk.many 1b 479 br.ret.sptk.many rp 500 br.cloop.sptk.many 1b 503 br.ret.sptk.many rp 668 br.ret.sptk.many rp 798 br.ret.sptk.many rp 909 br.ret.sptk.many rp // F 958 br.ret.sptk.many rp 1009 br.ret.sptk.many rp 1025 1: br.cloop.sptk.few 1b 1028 br.ret.sptk.many rp 1064 br.ret.sptk.many rp 1089 br.ret.sptk.many rp 1104 br.ret.sptk.many rp; \ 1144 br.sptk.many b2;; // jump to tlb purge code 1208 br.ret.sptk.many b0;;
|
H A D | ivt.S | 82 br.sptk.many dispatch_to_fault_handler 187 (p6) br.cond.spnt.many page_fault // handle bad address/page not present (page fault) 268 (p6) br.cond.spnt page_fault 312 (p6) br.cond.spnt page_fault 354 (p8) br.cond.dptk .itlb_fault 365 (p8) br.cond.spnt page_fault 394 (p8) br.cond.dptk dtlb_fault 415 (p8) br.cond.spnt page_fault 503 (p6) br.cond.spnt page_fault 505 br.sptk.many b0 // return to continuation point 751 (p7) br.cond.spnt non_syscall // B no -> 813 (pKStk) br.cond.spnt .break_fixup // B we're already in kernel-mode -- fix up RBS 818 br.call.sptk.many b7=ia64_syscall_setup // B 824 (pKStk) br.cond.spnt .skip_accounting // B unlikely skip 854 (p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT 857 (p14) br.call.sptk.many b6=b6 // B invoke syscall-handker (ignore return addr) 858 br.cond.spnt.many ia64_trace_syscall // B do syscall-tracing thingamagic 869 br.cond.sptk .back_from_break_fixup 877 br.sptk.many __interrupt 1030 br.ret.sptk.many b7 1077 br.ret.sptk.many rp 1120 br.sptk.many page_fault 1133 br.sptk.many page_fault 1146 br.sptk.many page_fault 1159 br.sptk.many page_fault 1171 (p6) br.sptk.many dispatch_illegal_op_fault 1174 br.sptk.many dispatch_to_fault_handler 1187 br.sptk.many dispatch_to_fault_handler 1205 (p6) br.cond.spnt 1f // branch if (cr.ispr.na == 0 || cr.ipsr.code{3:0} != LFETCH) 1275 br.sptk.many dispatch_unaligned_handler 1536 br.call.sptk.many b6=ia64_do_page_fault // ignore return address 1562 br.call.sptk.many b6=ia64_bad_break // avoid WAW on CFM and ignore return addr 1585 br.call.sptk.many b6=ia64_handle_irq 1611 br.sptk.many ia64_prepare_handle_unaligned 1646 br.call.sptk.many b6=ia64_fault 1674 br.call.sptk.many rp=ia64_illegal_op_fault 1686 (p6) br.call.dpnt.many b6=b6 // call returns to ia64_leave_kernel 1687 br.sptk.many ia64_leave_kernel
|
H A D | gate.S | 49 br.ret.sptk.many b6 121 br.call.sptk.many rp=1f 130 (p1) br.cond.spnt setup_rbs // yup -> (clobbers p8, r14-r16, and r18-r20) 163 br.call.sptk.many rp=b6 // call the signal handler 170 (p1) br.cond.spnt restore_rbs // yup -> (clobbers r14-r18, f6 & f7) 224 br.cond.sptk back_from_setup_rbs 296 br.cond.sptk back_from_restore_rbs 354 (p8) br.dptk.many b7 // B 369 (p6) br.sptk.many b7
|
H A D | entry.h | 72 br.cond.sptk.many save_switch_stack; \ 80 br.cond.sptk.many load_switch_stack; \
|
H A D | fsys.S | 89 (p8) br.spnt.many fsys_fallback_syscall 122 (p8) br.spnt.many fsys_fallback_syscall 146 (p6) br.cond.spnt.few .fail_einval 195 (p6) br.cond.spnt.few .fail_einval 210 (p6) br.cond.spnt.many fsys_fallback_syscall 272 (p7) br.cond.dpnt.few .time_redo // sequence number changed, redo 289 (p6) br.cond.dpnt.few .time_normalize 321 (p6) br.spnt.few fsys_fallback_syscall 324 br.many .gettime 342 (p6) br.cond.spnt.few .fail_einval // B 345 (p7) br.cond.spnt.few .fail_einval // B 361 (p8) br.spnt.many fsys_fallback_syscall 374 (p8) br.spnt.many fsys_fallback_syscall 509 br.call.sptk.many b7=ia64_syscall_setup // B 539 (p10) br.cond.spnt.many ia64_ret_from_syscall // B return if bad call-frame or r15 is a NaT 542 (p8) br.call.sptk.many b6=b6 // B (ignore return address) 543 br.cond.spnt ia64_trace_syscall // B
|
H A D | minstate.h | 12 (pUStk) br.call.spnt rp=account_sys_enter \ 217 [1:](pKStk) br.cond.sptk.many 1f; \ 226 (p1) br.cond.sptk.many 1f; \ 234 br.ret.sptk b0; \
|
H A D | paravirt.c | 305 "br.cond.sptk.many b6\n" \ 403 "(p6) br.cond.sptk.many b6\n" \ 481 "(p6) br.cond.sptk.many b6\n" \ 494 "(p6) br.cond.sptk.many b6\n"
|
H A D | ptrace.c | 906 retval |= __put_user(pt->b0, &ppr->br[0]); ptrace_getregs() 913 __put_user(val, &ppr->br[i]); ptrace_getregs() 918 retval |= __put_user(pt->b6, &ppr->br[6]); ptrace_getregs() 919 retval |= __put_user(pt->b7, &ppr->br[7]); ptrace_getregs() 1043 retval |= __get_user(pt->b0, &ppr->br[0]); ptrace_setregs() 1048 retval |= __get_user(val, &ppr->br[i]); ptrace_setregs() 1054 retval |= __get_user(pt->b6, &ppr->br[6]); ptrace_setregs() 1055 retval |= __get_user(pt->b7, &ppr->br[7]); ptrace_setregs()
|
/linux-4.1.27/drivers/media/dvb-frontends/ |
H A D | zl10036.c | 49 u8 br, bf; member in struct:zl10036_state 206 u8 br, bf; zl10036_set_bandwidth() local 212 0xf0, 0x00, /* 12/13: br=0xa clr=0 tl=0*/ zl10036_set_bandwidth() 226 br = _BR_MAXIMUM; zl10036_set_bandwidth() 230 * br = (10111/34600) * 63 * 1/K = 14; zl10036_set_bandwidth() 232 br = ((_XTAL * 21 * 1000) / (fbw * 419)); zl10036_set_bandwidth() 236 if (br < 4) zl10036_set_bandwidth() 237 br = 4; zl10036_set_bandwidth() 238 if (br > _BR_MAXIMUM) zl10036_set_bandwidth() 239 br = _BR_MAXIMUM; zl10036_set_bandwidth() 243 * bf = fbw/_XTAL * br * k - 1 */ zl10036_set_bandwidth() 245 bf = (fbw * br * 1257) / (_XTAL * 1000) - 1; zl10036_set_bandwidth() 252 buf_br[1] = (br << 2) & 0x7c; zl10036_set_bandwidth() 253 deb_info("%s: BW=%d br=%u bf=%u\n", __func__, fbw, br, bf); zl10036_set_bandwidth() 255 if (br != state->br) { zl10036_set_bandwidth() 266 /* time = br/(32* fxtal) */ zl10036_set_bandwidth() 268 * maximum br is 63 -> max time = 2 /10 MHz = 2e-7 */ zl10036_set_bandwidth() 277 state->br = br; zl10036_set_bandwidth() 406 { 0xf0, 0x28 }, /* 12/13: br=0xa clr=0 tl=0*/ zl10036_init_regs() 411 state->br = 0xff; zl10036_init_regs()
|
/linux-4.1.27/arch/s390/boot/compressed/ |
H A D | head.S | 35 br %r1 39 br %r6
|
/linux-4.1.27/arch/s390/kernel/vdso32/ |
H A D | clock_getres.S | 39 br %r14 42 br %r14
|
H A D | clock_gettime.S | 75 br %r14 138 br %r14 144 br %r14
|
H A D | gettimeofday.S | 76 br %r14
|
/linux-4.1.27/arch/s390/kernel/vdso64/ |
H A D | clock_getres.S | 45 br %r14 48 br %r14
|
H A D | clock_gettime.S | 59 br %r14 105 br %r14 139 br %r14 145 br %r14
|
H A D | gettimeofday.S | 55 br %r14
|
/linux-4.1.27/arch/alpha/boot/ |
H A D | head.S | 13 br $29,2f 64 br $17,1f
|
/linux-4.1.27/arch/nios2/kernel/ |
H A D | entry.S | 238 br translate_rc_and_ret 288 br ret_from_exception 299 br ret_from_exception 317 br local_restart /* restart syscall */ 321 br ret_from_exception 362 /* br ret_from_interrupt */ /* fall through to ret_from_interrupt */ 379 br restore_all 417 br ret_from_exception 422 br ret_from_exception 426 br ret_from_exception 430 br ret_from_exception 437 br ret_from_exception 441 br ret_from_exception 446 br ret_from_exception 450 br ret_from_exception 455 br ret_from_exception 460 br ret_from_exception 464 br ret_from_exception 469 br ret_from_exception 498 br ret_from_exception 504 br ret_from_exception
|
H A D | head.S | 75 br 1f
|
/linux-4.1.27/drivers/pcmcia/ |
H A D | sa1100_nanoengine.c | 8 * http://cambuca.ldhs.cetuc.puc-rio.br/nanoengine/ 10 * Copyright (C) 2010 Marcelo Roberto Jimenez <mroberto@cpti.cetuc.puc-rio.br> 13 * Miguel Freitas <miguel@cpti.cetuc.puc-rio.br>
|
/linux-4.1.27/include/net/ |
H A D | llc_s_st.h | 5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_sap.h | 8 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | timewait_sock.h | 4 * Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_c_st.h | 5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_if.h | 5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_s_ac.h | 5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_s_ev.h | 5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc.h | 5 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_conn.h | 5 * 2001, 2002 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/arch/s390/net/ |
H A D | bpf_jit.S | 66 br %r6; /* Return */ 92 br %r6 # Return cc 106 br %r6; /* Return cc */ 115 br %r6
|
/linux-4.1.27/arch/nios2/mm/ |
H A D | uaccess.c | 54 " br 6b\n" 60 " br 5b\n" 116 " br 6b\n" 123 " br 5b\n"
|
/linux-4.1.27/net/llc/ |
H A D | Makefile | 5 # 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | sysctl_net_llc.c | 4 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_output.c | 5 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_s_ev.c | 8 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_s_st.c | 8 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_station.c | 5 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_core.c | 5 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | llc_if.c | 5 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/drivers/misc/sgi-xp/ |
H A D | xp_nofault.S | 30 br.ret.sptk.many b0;; // Return success 35 br.ret.sptk.many b0;; // Return failure
|
/linux-4.1.27/drivers/media/rc/keymaps/ |
H A D | rc-avermedia-m733a-rm-k6.c | 3 * Copyright (c) 2010 by Herton Ronaldo Krzesinski <herton@mandriva.com.br> 17 * Herton Ronaldo Krzesinski <herton@mandriva.com.br>
|
H A D | rc-avermedia-m135a.c | 4 * Copyright (c) 2010 by Herton Ronaldo Krzesinski <herton@mandriva.com.br> 23 * codes added by Herton Ronaldo Krzesinski <herton@mandriva.com.br>
|
H A D | rc-eztv.c | 17 * updates from Job D. R. Borges <jobdrb@ig.com.br> */
|
/linux-4.1.27/arch/alpha/kernel/ |
H A D | entry.S | 240 br ret_from_sys_call 421 br ret_from_sys_call 506 br restore_all 526 br ret_from_sys_call 531 br ret_from_sys_call 558 br ret_to_user 565 br restore_all 608 br $31, ret_from_sys_call 630 br ret_from_sys_call 791 br $31, ret_to_user 830 1: br $1, undo_switch_stack 831 br ret_from_sys_call 845 1: br $1, undo_switch_stack 846 br ret_from_sys_call
|
H A D | head.S | 23 br $27,1f
|
/linux-4.1.27/arch/powerpc/sysdev/ |
H A D | fsl_lbc.c | 77 u32 br = in_be32(&lbc->bank[i].br); fsl_lbc_find() local 80 if (br & BR_V && (br & or & BR_BA) == fsl_lbc_addr(addr_base)) fsl_lbc_find() 100 u32 br; fsl_upm_find() local 111 br = in_be32(&lbc->bank[bank].br); fsl_upm_find() 113 switch (br & BR_MSEL) { fsl_upm_find() 127 switch (br & BR_PS) { fsl_upm_find()
|
/linux-4.1.27/arch/ia64/include/asm/ |
H A D | asmmacro.h | 95 br.call.sptk.many b7=2f;; \ 100 br.ret.sptk.many b6;; \ 103 # define FSYS_RETURN br.ret.sptk.many b6
|
H A D | spinlock.h | 157 "br.few 3f\n" arch_read_lock_flags() 165 "(p7) br.cond.spnt.few 2b\n" arch_read_lock_flags() 171 "(p7) br.cond.spnt.few 1b\n" arch_read_lock_flags() 210 "br.few 3f;;\n" arch_write_lock_flags() 217 "(p7) br.cond.spnt.few 2b\n" arch_write_lock_flags() 223 "(p7) br.cond.spnt.few 1b;;\n" arch_write_lock_flags()
|
H A D | paravirt_patch.h | 31 br.cond.sptk.many 2f ; \
|
H A D | sal.h | 379 br : 1, member in struct:sal_processor_static_info::__anon1531 387 u64 br[8]; member in struct:sal_processor_static_info 864 u64 br[6]; /* br0: member in struct:sal_to_os_boot
|
/linux-4.1.27/drivers/media/usb/dvb-usb/ |
H A D | dtt200u-fe.c | 77 u8 bw = GET_SNR,br; dtt200u_fe_read_snr() local 78 dvb_usb_generic_rw(state->d,&bw,1,&br,1,0); dtt200u_fe_read_snr() 79 *snr = ~((br << 8) | br); dtt200u_fe_read_snr()
|
H A D | vp7045.c | 182 u8 v,br[2]; vp7045_read_eeprom() local 185 vp7045_usb_op(d,GET_EE_VALUE,&v,1,br,2,5); vp7045_read_eeprom() 186 buf[i] = br[1]; vp7045_read_eeprom()
|
/linux-4.1.27/drivers/crypto/vmx/ |
H A D | vmx.c | 19 * Author: Marcelo Henrique Cerri <mhcerri@br.ibm.com> 84 MODULE_AUTHOR("Marcelo Cerri<mhcerri@br.ibm.com>");
|
H A D | aes.c | 19 * Author: Marcelo Henrique Cerri <mhcerri@br.ibm.com>
|
H A D | aes_cbc.c | 19 * Author: Marcelo Henrique Cerri <mhcerri@br.ibm.com>
|
H A D | aes_ctr.c | 19 * Author: Marcelo Henrique Cerri <mhcerri@br.ibm.com>
|
H A D | ghash.c | 19 * Author: Marcelo Henrique Cerri <mhcerri@br.ibm.com>
|
/linux-4.1.27/drivers/acpi/ |
H A D | video.c | 770 struct acpi_video_device_brightness *br = device->brightness; acpi_video_bqc_quirk() local 783 test_level = current_level == max_level ? br->levels[3] : max_level; acpi_video_bqc_quirk() 795 if (level < br->count) { acpi_video_bqc_quirk() 796 if (br->flags._BCL_reversed) acpi_video_bqc_quirk() 797 level = br->count - 3 - level; acpi_video_bqc_quirk() 798 if (br->levels[level + 2] == test_level) acpi_video_bqc_quirk() 799 br->flags._BQC_use_index = 1; acpi_video_bqc_quirk() 802 if (!br->flags._BQC_use_index) acpi_video_bqc_quirk() 827 struct acpi_video_device_brightness *br = NULL; acpi_video_init_brightness() local 840 br = kzalloc(sizeof(*br), GFP_KERNEL); acpi_video_init_brightness() 841 if (!br) { acpi_video_init_brightness() 847 br->levels = kmalloc((obj->package.count + 2) * sizeof *(br->levels), acpi_video_init_brightness() 849 if (!br->levels) { acpi_video_init_brightness() 862 if (count > 2 && br->levels[count - 1] == value) acpi_video_init_brightness() 865 br->levels[count] = value; acpi_video_init_brightness() 867 if (br->levels[count] > max_level) acpi_video_init_brightness() 868 max_level = br->levels[count]; acpi_video_init_brightness() 879 if (br->levels[i] == br->levels[0]) acpi_video_init_brightness() 881 if (br->levels[i] == br->levels[1]) acpi_video_init_brightness() 887 br->flags._BCL_no_ac_battery_levels = 1; acpi_video_init_brightness() 889 br->levels[i] = br->levels[i - level_ac_battery]; acpi_video_init_brightness() 895 if (max_level == br->levels[2]) { acpi_video_init_brightness() 896 br->flags._BCL_reversed = 1; acpi_video_init_brightness() 897 sort(&br->levels[2], count - 2, sizeof(br->levels[2]), acpi_video_init_brightness() 899 } else if (max_level != br->levels[count - 1]) acpi_video_init_brightness() 903 br->count = count; acpi_video_init_brightness() 904 device->brightness = br; acpi_video_init_brightness() 907 br->curr = level = max_level; acpi_video_init_brightness() 934 for (i = 2; i < br->count; i++) acpi_video_init_brightness() 935 if (level == br->levels[i]) acpi_video_init_brightness() 937 if (i == br->count || !level) acpi_video_init_brightness() 951 kfree(br->levels); acpi_video_init_brightness() 953 kfree(br); acpi_video_init_brightness()
|
/linux-4.1.27/drivers/uio/ |
H A D | uio_fsl_elbc_gpcm.c | 18 elbc-gpcm-br = <0xff810800>; 83 in_be32(&bank->br)); reg_show() 111 reg_br_cur = in_be32(&bank->br); reg_store() 126 out_be32(&bank->br, reg_new | BR_V); reg_store() 267 ret = of_property_read_u32(node, "elbc-gpcm-br", reg_br); get_of_data() 269 dev_err(priv->dev, "missing elbc-gpcm-br value\n"); get_of_data() 341 reg_br_cur = in_be32(&priv->lbc->bank[priv->bank].br); uio_fsl_elbc_gpcm_probe() 373 out_be32(&priv->lbc->bank[priv->bank].br, reg_br_new); uio_fsl_elbc_gpcm_probe()
|
/linux-4.1.27/scripts/kconfig/ |
H A D | qconf.cc | 1006 str += "</b></big><br><br>value: "; symbolInfo() 1008 str += "<br>visibility: "; symbolInfo() 1010 str += "<br>"; symbolInfo() 1045 head += "<br><br>"; menuInfo() 1057 head += "</b></big><br><br>"; menuInfo() 1062 debug += "<br><br>"; menuInfo() 1067 debug += QString().sprintf("defined at %s:%d<br><br>", _menu->file->name, _menu->lineno); menuInfo() 1080 debug += "<br>"; debug_info() 1084 debug += "<br>"; debug_info() 1092 debug += "</a><br>"; debug_info() 1101 debug += "<br>"; debug_info() 1107 debug += "<br>"; debug_info() 1113 debug += "<br>"; debug_info() 1118 debug += "<br>"; debug_info() 1121 debug += "<br>"; debug_info() 1149 res.replace(i, 1, "<br>"); print_filter()
|
H A D | kxgettext.c | 2 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2005
|
/linux-4.1.27/drivers/media/usb/gspca/m5602/ |
H A D | m5602_sensor.h | 6 * Copyright (C) 2005 m5603x Linux Driver Project <m5602@x3ng.com.br>
|
H A D | m5602_bridge.h | 6 * Copyright (C) 2005 m5603x Linux Driver Project <m5602@x3ng.com.br>
|
/linux-4.1.27/drivers/net/wireless/rtl818x/rtl8187/ |
H A D | rfkill.c | 4 * Copyright (c) 2009 Herton Ronaldo Krzesinski <herton@mandriva.com.br>
|
/linux-4.1.27/include/linux/ |
H A D | tfrc.h | 9 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | if_arp.h | 16 * Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
|
/linux-4.1.27/arch/score/kernel/ |
H A D | head.S | 70 br r30
|
H A D | entry.S | 102 br r30 401 br r3 493 br r8
|
/linux-4.1.27/arch/arm64/kvm/ |
H A D | hyp.S | 246 br x26 267 br x26 291 br x26 312 br x26 336 br x26 357 br x26 381 br x26 402 br x26 483 br x26 504 br x26 527 br x26 548 br x26 571 br x26 592 br x26 615 br x26 636 br x26
|
H A D | vgic-v3-switch.S | 71 br x24 93 br x24 199 br x24 221 br x24
|
H A D | hyp-init.S | 122 br x4
|
/linux-4.1.27/arch/arm/mach-sa1100/include/mach/ |
H A D | nanoengine.h | 7 * Copyright (C) 2010 Marcelo Roberto Jimenez <mroberto@cpti.cetuc.puc-rio.br>
|
/linux-4.1.27/arch/arm/mach-omap1/ |
H A D | board-h2-mmc.c | 5 * Author: Felipe Balbi <felipe.lima@indt.org.br>
|
H A D | board-h3-mmc.c | 5 * Author: Felipe Balbi <felipe.lima@indt.org.br>
|
H A D | board-sx1-mmc.c | 5 * Author: Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br>
|
/linux-4.1.27/net/bridge/netfilter/ |
H A D | ebt_redirect.c | 29 br_port_get_rcu(par->in)->br->dev->dev_addr); ebt_redirect_tg()
|
H A D | nft_meta_bridge.c | 43 strncpy((char *)dest, p->br->dev->name, IFNAMSIZ); nft_meta_bridge_get_eval()
|
/linux-4.1.27/net/dccp/ccids/lib/ |
H A D | tfrc.h | 7 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | packet_history.h | 17 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>. 19 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | loss_interval.h | 7 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | loss_interval.c | 5 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/arch/powerpc/platforms/85xx/ |
H A D | p1022_ds.c | 135 static phys_addr_t lbc_br_to_phys(const void *ecm, unsigned int count, u32 br) lbc_br_to_phys() argument 142 return br & BR_BA; lbc_br_to_phys() 153 return (br & BR_BA) | ((lawbar & LAWBAR_MASK) << 12); lbc_br_to_phys() 233 br0 = in_be32(&lbc->bank[0].br); p1022ds_set_monitor_port() 234 br1 = in_be32(&lbc->bank[1].br); p1022ds_set_monitor_port() 252 out_be32(&lbc->bank[0].br, br0); p1022ds_set_monitor_port() 258 out_be32(&lbc->bank[1].br, br1); p1022ds_set_monitor_port()
|
/linux-4.1.27/fs/ubifs/ |
H A D | commit.c | 596 struct ubifs_branch *br; dbg_check_old_index() local 650 br = ubifs_idx_branch(c, idx, child_cnt - 1); dbg_check_old_index() 651 key_read(c, &br->key, &u_key); dbg_check_old_index() 696 br = ubifs_idx_branch(c, idx, iip); dbg_check_old_index() 697 lnum = le32_to_cpu(br->lnum); dbg_check_old_index() 698 offs = le32_to_cpu(br->offs); dbg_check_old_index() 699 len = le32_to_cpu(br->len); dbg_check_old_index() 700 key_read(c, &br->key, &lower_key); dbg_check_old_index() 702 br = ubifs_idx_branch(c, idx, iip + 1); dbg_check_old_index() 703 key_read(c, &br->key, &upper_key); dbg_check_old_index()
|
H A D | tnc_misc.c | 305 const struct ubifs_branch *br = ubifs_idx_branch(c, idx, i); read_znode() local 308 key_read(c, &br->key, &zbr->key); read_znode() 309 zbr->lnum = le32_to_cpu(br->lnum); read_znode() 310 zbr->offs = le32_to_cpu(br->offs); read_znode() 311 zbr->len = le32_to_cpu(br->len); read_znode()
|
H A D | tnc_commit.c | 48 struct ubifs_branch *br = ubifs_idx_branch(c, idx, i); make_idx_node() local 51 key_write_idx(c, &zbr->key, &br->key); make_idx_node() 52 br->lnum = cpu_to_le32(zbr->lnum); make_idx_node() 53 br->offs = cpu_to_le32(zbr->offs); make_idx_node() 54 br->len = cpu_to_le32(zbr->len); make_idx_node() 850 struct ubifs_branch *br = ubifs_idx_branch(c, idx, i); write_index() local 853 key_write_idx(c, &zbr->key, &br->key); write_index() 854 br->lnum = cpu_to_le32(zbr->lnum); write_index() 855 br->offs = cpu_to_le32(zbr->offs); write_index() 856 br->len = cpu_to_le32(zbr->len); write_index()
|
H A D | sb.c | 78 struct ubifs_branch *br; create_default_filesystem() local 278 br = ubifs_idx_branch(c, idx, 0); create_default_filesystem() 279 key_write_idx(c, &key, &br->key); create_default_filesystem() 280 br->lnum = cpu_to_le32(main_first + DEFAULT_DATA_LEB); create_default_filesystem() 281 br->len = cpu_to_le32(UBIFS_INO_NODE_SZ); create_default_filesystem()
|
/linux-4.1.27/drivers/net/wan/ |
H A D | hd64570.c | 412 unsigned int tmc, br = 10, brv = 1024; sca_set_port() local 416 /* Try lower br for better accuracy*/ sca_set_port() 418 br--; sca_set_port() 423 }while (br > 1 && tmc <= 128); sca_set_port() 427 br = 0; /* For baud=CLOCK_BASE we use tmc=1 br=0 */ sca_set_port() 434 br = 9; /* Minimum clock rate */ sca_set_port() 439 port->rxs = (port->rxs & ~CLK_BRG_MASK) | br; sca_set_port() 440 port->txs = (port->txs & ~CLK_BRG_MASK) | br; sca_set_port()
|
H A D | hd64572.c | 375 unsigned int tmc, br = 10, brv = 1024; sca_set_port() local 379 /* Try lower br for better accuracy*/ sca_set_port() 381 br--; sca_set_port() 386 }while (br > 1 && tmc <= 128); sca_set_port() 390 br = 0; /* For baud=CLOCK_BASE we use tmc=1 br=0 */ sca_set_port() 397 br = 9; /* Minimum clock rate */ sca_set_port() 402 port->rxs = (port->rxs & ~CLK_BRG_MASK) | br; sca_set_port() 403 port->txs = (port->txs & ~CLK_BRG_MASK) | br; sca_set_port()
|
/linux-4.1.27/drivers/spi/ |
H A D | spi-fsl-dspi.c | 145 static void hz_to_spi_baud(char *pbr, char *br, int speed_hz, hz_to_spi_baud() argument 167 *br = i; hz_to_spi_baud() 178 *br = ARRAY_SIZE(brs) - 1; hz_to_spi_baud() 395 unsigned char br = 0, pbr = 0, pcssck = 0, cssck = 0; dspi_setup() local 426 hz_to_spi_baud(&pbr, &br, spi->max_speed_hz, clkrate); dspi_setup() 443 | SPI_CTAR_BR(br); dspi_setup()
|
/linux-4.1.27/arch/arm64/include/asm/ |
H A D | fpsimdmacros.h | 87 br x\tmpnr1 115 br x\tmpnr1
|
/linux-4.1.27/net/dccp/ccids/ |
H A D | ccid3.h | 17 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>. 19 * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/drivers/video/backlight/ |
H A D | lp855x_bl.c | 235 static void lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br) lp855x_pwm_ctrl() argument 238 unsigned int duty = br * period / max_br; lp855x_pwm_ctrl() 265 int br = bl->props.brightness; lp855x_bl_update_status() local 268 lp855x_pwm_ctrl(lp, br, max_br); lp855x_bl_update_status()
|
H A D | lp8788_bl.c | 125 static void lp8788_pwm_ctrl(struct lp8788_bl *bl, int br, int max_br) lp8788_pwm_ctrl() argument 136 duty = br * period / max_br; lp8788_pwm_ctrl()
|
H A D | lm3630a_bl.c | 163 static void lm3630a_pwm_ctrl(struct lm3630a_chip *pchip, int br, int br_max) lm3630a_pwm_ctrl() argument 166 unsigned int duty = br * period / br_max; lm3630a_pwm_ctrl()
|
/linux-4.1.27/include/uapi/linux/ |
H A D | cycx_cfm.h | 5 * Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
H A D | if_arp.h | 16 * Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
|
/linux-4.1.27/arch/arm/mach-sa1100/ |
H A D | nanoengine.c | 6 * Copyright (C) 2010 Marcelo Roberto Jimenez <mroberto@cpti.cetuc.puc-rio.br>
|
/linux-4.1.27/fs/ocfs2/dlm/ |
H A D | dlmrecovery.c | 2653 struct dlm_begin_reco br; dlm_send_begin_reco_message() local 2667 memset(&br, 0, sizeof(br)); dlm_send_begin_reco_message() 2668 br.node_idx = dlm->node_num; dlm_send_begin_reco_message() 2669 br.dead_node = dead_node; dlm_send_begin_reco_message() 2687 &br, sizeof(br), nodenum, &status); dlm_send_begin_reco_message() 2742 struct dlm_begin_reco *br = (struct dlm_begin_reco *)msg->buf; dlm_begin_reco_handler() local 2752 dlm->name, br->node_idx, br->dead_node, dlm_begin_reco_handler() 2761 dlm->name, br->node_idx, br->dead_node, dlm_begin_reco_handler() 2764 dlm_fire_domain_eviction_callbacks(dlm, br->dead_node); dlm_begin_reco_handler() 2771 br->node_idx); dlm_begin_reco_handler() 2775 br->node_idx); dlm_begin_reco_handler() 2782 dlm->reco.dead_node, br->node_idx, br->dead_node); dlm_begin_reco_handler() 2784 dlm_set_reco_master(dlm, br->node_idx); dlm_begin_reco_handler() 2785 dlm_set_reco_dead_node(dlm, br->dead_node); dlm_begin_reco_handler() 2786 if (!test_bit(br->dead_node, dlm->recovery_map)) { dlm_begin_reco_handler() 2789 br->node_idx, br->dead_node, br->dead_node); dlm_begin_reco_handler() 2790 if (!test_bit(br->dead_node, dlm->domain_map) || dlm_begin_reco_handler() 2791 !test_bit(br->dead_node, dlm->live_nodes_map)) dlm_begin_reco_handler() 2794 br->dead_node); dlm_begin_reco_handler() 2797 set_bit(br->dead_node, dlm->domain_map); dlm_begin_reco_handler() 2798 set_bit(br->dead_node, dlm->live_nodes_map); dlm_begin_reco_handler() 2799 __dlm_hb_node_down(dlm, br->dead_node); dlm_begin_reco_handler() 2806 dlm->name, br->node_idx, br->dead_node, dlm_begin_reco_handler()
|
/linux-4.1.27/arch/powerpc/platforms/cell/spufs/ |
H A D | spu_restore.c | 39 #define BR_INSTR 0x327fff80 /* br -4 */ 230 * followed by 'br -4' after end of restore restore_complete() 240 * followed by 'br -4' after end of restore code. restore_complete()
|
H A D | switch.c | 1154 * by Stop and Signal instruction, followed by 'br -4'. setup_spu_status_part1() 1164 * 'br -4'. setup_spu_status_part1() 1172 * followed by 'br -4'. setup_spu_status_part1() 1180 * by 'br -4'. setup_spu_status_part1() 1188 * followed by 'br -4'. setup_spu_status_part1() 1196 * by 'br -4'. setup_spu_status_part1() 1209 * by 'br -4'. setup_spu_status_part1() 1223 * add a 'br *' instruction to the end of setup_spu_status_part2()
|
/linux-4.1.27/drivers/usb/serial/ |
H A D | oti6858.c | 410 int br; oti6858_set_termios() local 442 br = tty_get_baud_rate(tty); oti6858_set_termios() 443 if (br == 0) { oti6858_set_termios() 448 br = min(br, OTI6858_MAX_BAUD_RATE); oti6858_set_termios() 450 new_divisor = (96000000 + 8 * br) / (16 * br); oti6858_set_termios()
|
/linux-4.1.27/drivers/video/fbdev/omap2/dss/ |
H A D | manager-sysfs.c | 386 info.cpr_coefs.br, manager_cpr_coef_show() 405 &coefs.br, &coefs.bg, &coefs.bb) != 9) manager_cpr_coef_store() 410 coefs.br, coefs.bg, coefs.bb }; manager_cpr_coef_store()
|
/linux-4.1.27/drivers/media/usb/stkwebcam/ |
H A D | stk-webcam.h | 138 int stk_sensor_set_brightness(struct stk_camera *dev, int br);
|
H A D | stk-sensor.c | 587 int stk_sensor_set_brightness(struct stk_camera *dev, int br) stk_sensor_set_brightness() argument 589 if (br < 0 || br > 0xff) stk_sensor_set_brightness() 591 stk_sensor_outb(dev, REG_AEB, max(0x00, br - 6)); stk_sensor_set_brightness() 592 stk_sensor_outb(dev, REG_AEW, min(0xff, br + 6)); stk_sensor_set_brightness()
|
/linux-4.1.27/arch/nios2/include/asm/ |
H A D | entry.h | 33 br 2f
|
/linux-4.1.27/arch/arm64/kernel/ |
H A D | efi-entry.S | 116 br x21
|
/linux-4.1.27/arch/arm/mach-omap2/ |
H A D | mcbsp.c | 5 * Contact: Eduardo Valentin <eduardo.valentin@indt.org.br>
|
/linux-4.1.27/scripts/ |
H A D | kernel-doc | 200 my $blankline_html5 = $local_lt . "br /" . $local_gt; 535 print "<b>enum " . $args{'enum'} . "</b> {<br>\n"; 543 print "<br>"; 545 print "};<br>\n"; 577 print "<b>" . $args{'type'} . " " . $args{'struct'} . "</b> {<br>\n"; 580 print "$parameter<br>\n"; 590 print " <i>$1</i><b>$parameter</b>) <i>($2)</i>;<br>\n"; 593 print " <i>$1</i> <b>$parameter</b>$2;<br>\n"; 595 print " <i>$type</i> <b>$parameter</b>;<br>\n"; 598 print "};<br>\n"; 1391 print ".br\n.BI \" $parameter\"\n"; 1397 print ", \n.br\n"; 1428 print $args{'type'} . " " . $args{'struct'} . " {\n.br\n"; 1432 print ".BI \"$parameter\"\n.br\n"; 1450 print "\n.br\n"; 1452 print "};\n.br\n";
|
/linux-4.1.27/drivers/tty/serial/ |
H A D | sirfsoc_uart.h | 331 #define SIRFSOC_UART_RX_TIMEOUT(br, to) (((br) * (((to) + 999) / 1000)) / 1000)
|
/linux-4.1.27/arch/score/lib/ |
H A D | checksum.S | 131 br r3 253 br r3
|
/linux-4.1.27/arch/mips/alchemy/common/ |
H A D | clock.c | 398 long tdv, tpr, pr, nr, br, bpr, diff, lastdiff; alchemy_clk_fgcs_detr() local 404 br = -EINVAL; alchemy_clk_fgcs_detr() 439 br = nr; alchemy_clk_fgcs_detr() 465 br = nr; alchemy_clk_fgcs_detr() 474 return br; alchemy_clk_fgcs_detr()
|
H A D | usb.c | 511 static void au1000_usb_pm(unsigned long br, int creg, int susp) au1000_usb_pm() argument 513 void __iomem *base = (void __iomem *)KSEG1ADDR(br); au1000_usb_pm()
|
/linux-4.1.27/tools/perf/ |
H A D | builtin-record.c | 606 const struct branch_mode *br; parse_branch_stack() local 631 for (br = branch_modes; br->name; br++) { parse_branch_stack() 632 if (!strcasecmp(s, br->name)) parse_branch_stack() 635 if (!br->name) { parse_branch_stack() 641 *mode |= br->mode; parse_branch_stack()
|
/linux-4.1.27/drivers/net/ |
H A D | Space.c | 19 * Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 09/1999
|
/linux-4.1.27/drivers/platform/x86/ |
H A D | topstar-laptop.c | 4 * Copyright (c) 2009 Herton Ronaldo Krzesinski <herton@mandriva.com.br>
|
/linux-4.1.27/arch/powerpc/platforms/powermac/ |
H A D | udbg_scc.c | 63 11, 0x50, /* clocks = br gen */
|
/linux-4.1.27/net/core/ |
H A D | stream.c | 10 * Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/net/dccp/ |
H A D | ccid.c | 5 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/net/appletalk/ |
H A D | atalk_proc.c | 4 * Copyright(c) Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
/linux-4.1.27/sound/pci/asihpi/ |
H A D | hpi.h | 64 <td><p><b>Stereo,<br>Joint Stereo or<br>Dual Channel</b></p> 92 <td><p><b>Mono<br>Stereo @ 8,<br>11.025 and<br>12kHz*</b></p> 93 <td><p><b>Mono<br>Stereo @ 16,<br>22.050 and<br>24kHz*</b></p> 94 <td><p><b>Mono<br>Stereo @ 32,<br>44.1 and<br>48kHz</b></p>
|
/linux-4.1.27/drivers/watchdog/ |
H A D | machzwd.c | 14 * Author: Fernando Fuganti <fuganti@conectiva.com.br> 92 MODULE_AUTHOR("Fernando Fuganti <fuganti@conectiva.com.br>");
|
/linux-4.1.27/drivers/gpu/drm/panel/ |
H A D | panel-s6e8aa0.c | 323 u8 br; s6e8aa0_elvss_nvm_set_v142() local 327 br = 0xdf; s6e8aa0_elvss_nvm_set_v142() 330 br = 0xdd; s6e8aa0_elvss_nvm_set_v142() 334 br = 0xd9; s6e8aa0_elvss_nvm_set_v142() 337 br = 0xd0; s6e8aa0_elvss_nvm_set_v142() 342 0xc4, 0x0f, 0x40, 0x41, br, 0x00, 0x60, 0x19); s6e8aa0_elvss_nvm_set_v142()
|
/linux-4.1.27/drivers/mtd/nand/ |
H A D | fsl_elbc_nand.c | 680 if ((in_be32(&lbc->bank[priv->bank].br) & BR_DECC) == fsl_elbc_chip_init_tail() 780 if ((in_be32(&lbc->bank[priv->bank].br) & BR_DECC) == fsl_elbc_chip_init() 843 if ((in_be32(&lbc->bank[bank].br) & BR_V) && fsl_elbc_nand_probe() 844 (in_be32(&lbc->bank[bank].br) & BR_MSEL) == BR_MS_FCM && fsl_elbc_nand_probe() 845 (in_be32(&lbc->bank[bank].br) & fsl_elbc_nand_probe()
|
/linux-4.1.27/drivers/net/irda/ |
H A D | vlsi_ir.h | 422 #define BAUD_BITS(br) ((115200/(br))-1) 439 #define PHYCTL_SIR(br,ws,cs) BWP_TO_PHYCTL(BAUD_BITS(br),calc_width_bits((br),(ws),(cs)),0)
|
/linux-4.1.27/drivers/atm/ |
H A D | horizon.c | 590 const unsigned long br = test_bit(ultra, &dev->flags) ? BR_ULT : BR_HRZ; make_rate() local 599 unsigned long br_man = br; make_rate() 602 PRINTD (DBG_QOS|DBG_FLOW, "make_rate b=%lu, c=%u, %s", br, c, make_rate() 615 // (br >>br_exp) <<br_exp == br and make_rate() 623 pre = DIV_ROUND_UP(br, c<<div); make_rate() 629 pre = DIV_ROUND_CLOSEST(br, c<<div); make_rate() 635 pre = br/(c<<div); make_rate() 656 pre = DIV_ROUND_UP(br, c<<div); make_rate() 659 pre = DIV_ROUND_CLOSEST(br, c<<div); make_rate() 662 pre = br/(c<<div); make_rate() 686 *actual = DIV_ROUND_UP(br, pre<<div); make_rate()
|
/linux-4.1.27/net/dsa/ |
H A D | slave.c | 349 struct net_device *br) dsa_slave_bridge_port_join() 355 p->bridge_dev = br; dsa_slave_bridge_port_join() 359 dsa_slave_br_port_mask(ds, br)); dsa_slave_bridge_port_join() 348 dsa_slave_bridge_port_join(struct net_device *dev, struct net_device *br) dsa_slave_bridge_port_join() argument
|