aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/e1000e/nvm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/nvm.c')
-rw-r--r--drivers/net/ethernet/intel/e1000e/nvm.c22
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
538out: 535 return 0;
539 return ret_val;
540} 536}
541 537
542/** 538/**