diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/nvm.c')
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/nvm.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c index 1b50db59fb0d..24b7930b7500 100644 --- a/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/drivers/net/ethernet/intel/e1000e/nvm.c | |||
@@ -446,20 +446,19 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, | |||
446 | 446 | ||
447 | if (pba_num == NULL) { | 447 | if (pba_num == NULL) { |
448 | e_dbg("PBA string buffer was null\n"); | 448 | e_dbg("PBA string buffer was null\n"); |
449 | ret_val = E1000_ERR_INVALID_ARGUMENT; | 449 | return -E1000_ERR_INVALID_ARGUMENT; |
450 | goto out; | ||
451 | } | 450 | } |
452 | 451 | ||
453 | ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_0, 1, &nvm_data); | 452 | ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_0, 1, &nvm_data); |
454 | if (ret_val) { | 453 | if (ret_val) { |
455 | e_dbg("NVM Read Error\n"); | 454 | e_dbg("NVM Read Error\n"); |
456 | goto out; | 455 | return ret_val; |
457 | } | 456 | } |
458 | 457 | ||
459 | ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_1, 1, &pba_ptr); | 458 | ret_val = e1000_read_nvm(hw, NVM_PBA_OFFSET_1, 1, &pba_ptr); |
460 | if (ret_val) { | 459 | if (ret_val) { |
461 | e_dbg("NVM Read Error\n"); | 460 | e_dbg("NVM Read Error\n"); |
462 | goto out; | 461 | return ret_val; |
463 | } | 462 | } |
464 | 463 | ||
465 | /* | 464 | /* |
@@ -499,25 +498,23 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, | |||
499 | pba_num[offset] += 'A' - 0xA; | 498 | pba_num[offset] += 'A' - 0xA; |
500 | } | 499 | } |
501 | 500 | ||
502 | goto out; | 501 | return 0; |
503 | } | 502 | } |
504 | 503 | ||
505 | ret_val = e1000_read_nvm(hw, pba_ptr, 1, &length); | 504 | ret_val = e1000_read_nvm(hw, pba_ptr, 1, &length); |
506 | if (ret_val) { | 505 | if (ret_val) { |
507 | e_dbg("NVM Read Error\n"); | 506 | e_dbg("NVM Read Error\n"); |
508 | goto out; | 507 | return ret_val; |
509 | } | 508 | } |
510 | 509 | ||
511 | if (length == 0xFFFF || length == 0) { | 510 | if (length == 0xFFFF || length == 0) { |
512 | e_dbg("NVM PBA number section invalid length\n"); | 511 | e_dbg("NVM PBA number section invalid length\n"); |
513 | ret_val = E1000_ERR_NVM_PBA_SECTION; | 512 | return -E1000_ERR_NVM_PBA_SECTION; |
514 | goto out; | ||
515 | } | 513 | } |
516 | /* check if pba_num buffer is big enough */ | 514 | /* check if pba_num buffer is big enough */ |
517 | if (pba_num_size < (((u32)length * 2) - 1)) { | 515 | if (pba_num_size < (((u32)length * 2) - 1)) { |
518 | e_dbg("PBA string buffer too small\n"); | 516 | e_dbg("PBA string buffer too small\n"); |
519 | ret_val = E1000_ERR_NO_SPACE; | 517 | return -E1000_ERR_NO_SPACE; |
520 | goto out; | ||
521 | } | 518 | } |
522 | 519 | ||
523 | /* trim pba length from start of string */ | 520 | /* trim pba length from start of string */ |
@@ -528,15 +525,14 @@ s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num, | |||
528 | ret_val = e1000_read_nvm(hw, pba_ptr + offset, 1, &nvm_data); | 525 | ret_val = e1000_read_nvm(hw, pba_ptr + offset, 1, &nvm_data); |
529 | if (ret_val) { | 526 | if (ret_val) { |
530 | e_dbg("NVM Read Error\n"); | 527 | e_dbg("NVM Read Error\n"); |
531 | goto out; | 528 | return ret_val; |
532 | } | 529 | } |
533 | pba_num[offset * 2] = (u8)(nvm_data >> 8); | 530 | pba_num[offset * 2] = (u8)(nvm_data >> 8); |
534 | pba_num[(offset * 2) + 1] = (u8)(nvm_data & 0xFF); | 531 | pba_num[(offset * 2) + 1] = (u8)(nvm_data & 0xFF); |
535 | } | 532 | } |
536 | pba_num[offset * 2] = '\0'; | 533 | pba_num[offset * 2] = '\0'; |
537 | 534 | ||
538 | out: | 535 | return 0; |
539 | return ret_val; | ||
540 | } | 536 | } |
541 | 537 | ||
542 | /** | 538 | /** |