On 2/27/2025 11:10 AM, Raj Kumar Bhagat wrote: ... > +static int ath12k_qmi_assign_target_mem_chunk(struct ath12k_base *ab) > +{ > + struct reserved_mem *rmem; > + phys_addr_t bdf_size; > + int i, idx, ret; > + > + for (i = 0, idx = 0; i < ab->qmi.mem_seg_count; i++) { > + switch (ab->qmi.target_mem[i].type) { > + case HOST_DDR_REGION_TYPE: > + rmem = ath12k_core_get_reserved_mem(ab, 0); > + if (!rmem) { > + ret = -ENODEV; > + goto out; > + } > + > + if (rmem->size < ab->qmi.target_mem[i].size) { > + ath12k_dbg(ab, ATH12K_DBG_QMI, > + "failed to assign mem type %d req size %d avail size %lld\n", > + ab->qmi.target_mem[i].type, > + ab->qmi.target_mem[i].size, > + rmem->size); The v6 version had a kernel test robot build warning here when building for MIPS and it looks like nothing has changed. I don't know the history of why struct reserved_mem::size is of type phys_addr_t, but that type has a different size depending upon architecture, therefore you can't use %lld. To print it correctly you either need to use the %paa format that is meant for that type, or probably better would be to assign it to a variable of type size_t and then use %zu (and use that variable in the size test as well) (also consider if the other %d formats should be %u instead) > + ret = -EINVAL; > + goto out; > + } > + > + ab->qmi.target_mem[idx].paddr = rmem->base; > + ab->qmi.target_mem[idx].v.ioaddr = > + ioremap(ab->qmi.target_mem[idx].paddr, > + ab->qmi.target_mem[i].size); > + if (!ab->qmi.target_mem[idx].v.ioaddr) { > + ret = -EIO; > + goto out; > + } > + ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size; > + ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type; > + idx++; > + break; > + case BDF_MEM_REGION_TYPE: > + rmem = ath12k_core_get_reserved_mem(ab, 0); > + if (!rmem) { > + ret = -ENODEV; > + goto out; > + } > + > + bdf_size = rmem->size - ab->hw_params->bdf_addr_offset; > + if (bdf_size < ab->qmi.target_mem[i].size) { > + ath12k_dbg(ab, ATH12K_DBG_QMI, > + "failed to assign mem type %d req size %d avail size %lld\n", > + ab->qmi.target_mem[i].type, > + ab->qmi.target_mem[i].size, > + bdf_size); the same issue exists here. again this would be fixed by making bdf_size type size_t and using %zu > + ret = -EINVAL; > + goto out; > + } > + ab->qmi.target_mem[idx].paddr = > + rmem->base + ab->hw_params->bdf_addr_offset; > + ab->qmi.target_mem[idx].v.ioaddr = > + ioremap(ab->qmi.target_mem[idx].paddr, > + ab->qmi.target_mem[i].size); > + if (!ab->qmi.target_mem[idx].v.ioaddr) { > + ret = -EIO; > + goto out; > + } > + ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size; > + ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type; > + idx++; > + break;