Commit e628cb6
committed
bond: remove port from members on destroy
When deleting a port interface which is part of a bond, a dangling
pointer is left in the bond members array. This causes crashes when
destroying the bond:
Program terminated with signal SIGSEGV, Segmentation fault.
error reading variable: Cannot access memory at address 0xc
Thread 1 (Thread 0x7f2f5cb51bc0 (LWP 657645)):
#0 rte_arch_bswap16 at ../subprojects/dpdk/lib/eal/x86/include/rte_byteorder.h:30
#1 bond_update_active_members at ../modules/infra/control/bond.c:248
DPDK#2 gr_event_push at ../main/event.c:26
DPDK#3 iface_destroy at ../modules/infra/control/iface.c:409
DPDK#4 iface_del at ../modules/infra/api/iface.c:60
Make sure to remove the member when a port is deleted. Update the
primary index accordingly.
Signed-off-by: Robin Jarry <[email protected]>1 parent fb99a0c commit e628cb6
1 file changed
Lines changed: 29 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
426 | 426 | | |
427 | 427 | | |
428 | 428 | | |
429 | | - | |
| 429 | + | |
430 | 430 | | |
431 | 431 | | |
432 | 432 | | |
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
444 | | - | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
445 | 470 | | |
446 | 471 | | |
447 | 472 | | |
448 | 473 | | |
449 | 474 | | |
450 | 475 | | |
451 | | - | |
| 476 | + | |
452 | 477 | | |
| 478 | + | |
453 | 479 | | |
454 | 480 | | |
455 | 481 | | |
| |||
0 commit comments