diff options
author | Shannon Nelson <shannon.nelson@amd.com> | 2024-03-06 15:29:46 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-03-08 11:54:33 +0000 |
commit | d60984d39f18780dd978963b1bc4c56ee3f44ef0 (patch) | |
tree | 8bf47d1220c3bf6a3e8717d0630dcd57e49abda6 /drivers/net/ethernet/pensando/ionic/ionic_dev.c | |
parent | e3eec3497731e227f02d6f83899ef23b34996b2b (diff) |
ionic: remove desc, sg_desc and cmb_desc from desc_info
Remove the struct pointers from desc_info to use less space.
Instead of pointers in every desc_info to its descriptor,
we can use the queue descriptor index to find the individual
desc, desc_info, and sgl structs in their parallel arrays.
struct ionic_desc_info
Before: /* size: 496, cachelines: 8, members: 10 */
After: /* size: 472, cachelines: 8, members: 7 */
Suggested-by: Neel Patel <npatel2@amd.com>
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/pensando/ionic/ionic_dev.c')
-rw-r--r-- | drivers/net/ethernet/pensando/ionic/ionic_dev.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.c b/drivers/net/ethernet/pensando/ionic/ionic_dev.c index 746072b4dbd0..fc83f80fba00 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_dev.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.c @@ -708,38 +708,20 @@ int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev, void ionic_q_map(struct ionic_queue *q, void *base, dma_addr_t base_pa) { - struct ionic_desc_info *cur; - unsigned int i; - q->base = base; q->base_pa = base_pa; - - for (i = 0, cur = q->info; i < q->num_descs; i++, cur++) - cur->desc = base + (i * q->desc_size); } void ionic_q_cmb_map(struct ionic_queue *q, void __iomem *base, dma_addr_t base_pa) { - struct ionic_desc_info *cur; - unsigned int i; - q->cmb_base = base; q->cmb_base_pa = base_pa; - - for (i = 0, cur = q->info; i < q->num_descs; i++, cur++) - cur->cmb_desc = base + (i * q->desc_size); } void ionic_q_sg_map(struct ionic_queue *q, void *base, dma_addr_t base_pa) { - struct ionic_desc_info *cur; - unsigned int i; - q->sg_base = base; q->sg_base_pa = base_pa; - - for (i = 0, cur = q->info; i < q->num_descs; i++, cur++) - cur->sg_desc = base + (i * q->sg_desc_size); } void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb, |