Commit d5a5b78
committed
femu/ocssd: charge an erase to the chips it names
The v1.2 erase path never set req->slba, and the timing model's erase
branch read it: the chip whose queue the erase joined came from the
freed address list the previous command on that request left behind.
Hand it the list this command read, walk it, and charge every chip the
erase names rather than the first.
Validate those addresses against the geometry first, as read and write
already do. Nothing bounded them, and the model turns the channel and
lun fields into an index into a fixed-size array; axis counts that are
not powers of two leave both fields able to hold values the device does
not have. The read and write paths also stop leaving a freed pointer
behind for the next command to find.1 parent e9746f6 commit d5a5b78
1 file changed
Lines changed: 45 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
420 | 420 | | |
421 | 421 | | |
422 | 422 | | |
423 | | - | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
424 | 432 | | |
425 | | - | |
426 | | - | |
427 | | - | |
428 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
429 | 448 | | |
430 | | - | |
431 | 449 | | |
432 | 450 | | |
433 | 451 | | |
| |||
574 | 592 | | |
575 | 593 | | |
576 | 594 | | |
| 595 | + | |
577 | 596 | | |
578 | 597 | | |
579 | 598 | | |
580 | 599 | | |
581 | 600 | | |
582 | 601 | | |
| 602 | + | |
583 | 603 | | |
584 | 604 | | |
585 | 605 | | |
| |||
685 | 705 | | |
686 | 706 | | |
687 | 707 | | |
| 708 | + | |
688 | 709 | | |
689 | 710 | | |
690 | 711 | | |
691 | 712 | | |
692 | 713 | | |
693 | 714 | | |
| 715 | + | |
694 | 716 | | |
695 | 717 | | |
696 | 718 | | |
| |||
895 | 917 | | |
896 | 918 | | |
897 | 919 | | |
| 920 | + | |
898 | 921 | | |
899 | 922 | | |
900 | 923 | | |
| |||
909 | 932 | | |
910 | 933 | | |
911 | 934 | | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
912 | 949 | | |
913 | 950 | | |
| 951 | + | |
914 | 952 | | |
| 953 | + | |
915 | 954 | | |
916 | 955 | | |
917 | 956 | | |
| |||
0 commit comments