opensm/osm_sa_lft_record.c: In lftr_rcv_new_lftr, handle osm_switch_get_lft_block failure
PATCH 1/1 opensm/osm_sa_lft_record.c: In lftr_rcv_new_lftr, handle osm_switch_get_lft_block failure
---
opensm/opensm/osm_sa_lft_record.c +6 -2
@@ -99,8 +99,12 @@ static ib_api_status_t lftr_rcv_new_lftr(IN osm_sa_t * sa, p_rec_item->rec.block_num =cl_hton16 (block);/* copy the lft block */ -osm_switch_get_lft_block (p_sw, block, p_rec_item->rec.lft); - +if (!osm_switch_get_lft_block (p_sw, block, p_rec_item->rec.lft)) { +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 4403: " +"osm_switch_get_lft_block failed\n" ); + status =IB_INSUFFICIENT_RESOURCES ; + goto Exit; + }cl_qlist_insert_tail (p_list, &p_rec_item->list_item); Exit:
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 9 lines · Hal Rosenstock
Signed-off-by Hal Rosenstock <[email protected]>---
opensm/opensm/osm_sa_lft_record.c +0
-0@@ -99,8 +99,12 @@ static ib_api_status_t lftr_rcv_new_lftr(IN osm_sa_t * sa, p_rec_item->rec.block_num =cl_hton16 (block);
opensm/opensm/osm_sa_lft_record.c static ib_api_status_t lftr_rcv_new_lftr(IN osm_sa_t * sa, · line 107
Quoted 10 lines
opensm/opensm/osm_sa_lft_record.c +6
-2/* copy the lft block */ -osm_switch_get_lft_block (p_sw, block, p_rec_item->rec.lft); - +if (!osm_switch_get_lft_block (p_sw, block, p_rec_item->rec.lft)) { +OSM_LOG (sa->p_log,OSM_LOG_ERROR ,"ERR 4403: " +"osm_switch_get_lft_block failed\n" ); + status =IB_INSUFFICIENT_RESOURCES ; + goto Exit; + }
'block' value is limited here (look at lftr_rcv_by_comp_mask()) by:
max_block = osm_switch_get_max_block_id_in_use(p_sw);
if (comp_mask & IB_LFTR_COMPMASK_BLOCK) {
min_block = cl_ntoh16(p_rcvd_rec->block_num);
if (min_block > max_block)
return;
max_block = min_block;
}, so as far as I can understand osm_switch_get_lft_block() cannot fail here.
Sasha
Quoted 8 lines
opensm/opensm/osm_sa_lft_record.c +0
-1cl_qlist_insert_tail (p_list, &p_rec_item->list_item); Exit: --To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html