diff options
Diffstat (limited to 'sys/dev/cxgbe/cudbg/cudbg_lib.c')
| -rw-r--r-- | sys/dev/cxgbe/cudbg/cudbg_lib.c | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/sys/dev/cxgbe/cudbg/cudbg_lib.c b/sys/dev/cxgbe/cudbg/cudbg_lib.c index a36c53f68223..f0273349263a 100644 --- a/sys/dev/cxgbe/cudbg/cudbg_lib.c +++ b/sys/dev/cxgbe/cudbg/cudbg_lib.c @@ -155,23 +155,25 @@ static int wr_entity_to_flash(void *handle, struct cudbg_buffer *dbg_buff,  	u32 flash_data_offset;  	u32 data_hdr_size;  	int rc = -1; +	unsigned int cudbg_len;  	data_hdr_size = CUDBG_MAX_ENTITY * sizeof(struct cudbg_entity_hdr) +  			sizeof(struct cudbg_hdr); +	t4_flash_loc_start(cudbg_init->adap, FLASH_LOC_CUDBG, &cudbg_len); -	flash_data_offset = (FLASH_CUDBG_NSECS * +	flash_data_offset = ((cudbg_len / SF_SEC_SIZE) *  			     (sizeof(struct cudbg_flash_hdr) +  			      data_hdr_size)) +  			    (cur_entity_data_offset - data_hdr_size); -	if (flash_data_offset > CUDBG_FLASH_SIZE) { +	if (flash_data_offset > cudbg_len) {  		update_skip_size(sec_info, cur_entity_size);  		if (cudbg_init->verbose)  			cudbg_init->print("Large entity skipping...\n");  		return rc;  	} -	remain_flash_size = CUDBG_FLASH_SIZE - flash_data_offset; +	remain_flash_size = cudbg_len - flash_data_offset;  	if (cur_entity_size > remain_flash_size) {  		update_skip_size(sec_info, cur_entity_size); @@ -1292,6 +1294,7 @@ static int collect_macstats(struct cudbg_init *pdbg_init,  	mac_stats_buff->port_count = n;  	for (i = 0; i <  mac_stats_buff->port_count; i++) +		/* Incorrect, should use hport instead of i */  		t4_get_port_stats(padap, i, &mac_stats_buff->stats[i]);  	rc = write_compression_hdr(&scratch_buff, dbg_buff); @@ -1967,7 +1970,7 @@ static int collect_fw_devlog(struct cudbg_init *pdbg_init,  	u32 offset;  	int rc = 0, i; -	rc = t4_init_devlog_params(padap, 1); +	rc = t4_init_devlog_ncores_params(padap, 1);  	if (rc < 0) {  		pdbg_init->print("%s(), t4_init_devlog_params failed!, rc: "\ | 
