scsi: mpt3sas: Lockless access for chain buffers.
Introduces Chain lookup table/tracker and implements accessing chain buffer using smid. Removed link list based access of chain buffer which requires lock and allocated as many chains needed. Signed-off-by: Chaitra P B <chaitra.basappa@broadcom.com> Signed-off-by: Suganath Prabu S <suganath-prabu.subramani@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
cd33223b59
commit
93204b782a
@@ -770,7 +770,11 @@ struct pcie_sg_list {
|
||||
struct chain_tracker {
|
||||
void *chain_buffer;
|
||||
dma_addr_t chain_buffer_dma;
|
||||
struct list_head tracker_list;
|
||||
};
|
||||
|
||||
struct chain_lookup {
|
||||
struct chain_tracker *chains_per_smid;
|
||||
atomic_t chain_offset;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1261,7 +1265,7 @@ struct MPT3SAS_ADAPTER {
|
||||
u32 page_size;
|
||||
|
||||
/* chain */
|
||||
struct chain_tracker *chain_lookup;
|
||||
struct chain_lookup *chain_lookup;
|
||||
struct list_head free_chain_list;
|
||||
struct dma_pool *chain_dma_pool;
|
||||
ulong chain_pages;
|
||||
|
Reference in New Issue
Block a user