Re: [PATCH v2 07/13] qla2xxx: edif: replace list_for_each_safe with list_for_each_entry_safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Oct 21, 2021, at 2:32 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote:
> 
> From: Quinn Tran <qutran@xxxxxxxxxxx>
> 
> This patch is per review comment by Hannes Reinecke from
> previous submission to replace list_for_each_safe with
> list_for_each_entry_safe.
> 
> Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
> Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> drivers/scsi/qla2xxx/qla_edif.c | 39 ++++++++-------------------------
> drivers/scsi/qla2xxx/qla_edif.h |  1 -
> drivers/scsi/qla2xxx/qla_os.c   |  8 +++----
> 3 files changed, 13 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c
> index b4eca966067a..ca3b947770b9 100644
> --- a/drivers/scsi/qla2xxx/qla_edif.c
> +++ b/drivers/scsi/qla2xxx/qla_edif.c
> @@ -1674,41 +1674,25 @@ static struct enode *
> qla_enode_find(scsi_qla_host_t *vha, uint32_t ntype, uint32_t p1, uint32_t p2)
> {
> 	struct enode		*node_rtn = NULL;
> -	struct enode		*list_node = NULL;
> +	struct enode		*list_node, *q;
> 	unsigned long		flags;
> -	struct list_head	*pos, *q;
> 	uint32_t		sid;
> -	uint32_t		rw_flag;
> 	struct purexevent	*purex;
> 
> 	/* secure the list from moving under us */
> 	spin_lock_irqsave(&vha->pur_cinfo.pur_lock, flags);
> 
> -	list_for_each_safe(pos, q, &vha->pur_cinfo.head) {
> -		list_node = list_entry(pos, struct enode, list);
> +	list_for_each_entry_safe(list_node, q, &vha->pur_cinfo.head, list) {
> 
> 		/* node type determines what p1 and p2 are */
> 		purex = &list_node->u.purexinfo;
> 		sid = p1;
> -		rw_flag = p2;
> 
> 		if (purex->pur_info.pur_sid.b24 == sid) {
> -			if (purex->pur_info.pur_pend == 1 &&
> -			    rw_flag == PUR_GET) {
> -				/*
> -				 * if the receive is in progress
> -				 * and its a read/get then can't
> -				 * transfer yet
> -				 */
> -				ql_dbg(ql_dbg_edif, vha, 0x9106,
> -				    "%s purex xfer in progress for sid=%x\n",
> -				    __func__, sid);
> -			} else {
> -				/* found it and its complete */
> -				node_rtn = list_node;
> -				list_del(pos);
> -				break;
> -			}
> +			/* found it and its complete */
> +			node_rtn = list_node;
> +			list_del(&list_node->list);
> +			break;
> 		}
> 	}
> 
> @@ -2419,7 +2403,6 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp)
> 
> 	purex = &ptr->u.purexinfo;
> 	purex->pur_info.pur_sid = a.did;
> -	purex->pur_info.pur_pend = 0;
> 	purex->pur_info.pur_bytes_rcvd = totlen;
> 	purex->pur_info.pur_rx_xchg_address = le32_to_cpu(p->rx_xchg_addr);
> 	purex->pur_info.pur_nphdl = le16_to_cpu(p->nport_handle);
> @@ -3171,18 +3154,14 @@ static uint16_t qla_edif_sadb_get_sa_index(fc_port_t *fcport,
> /* release any sadb entries -- only done at teardown */
> void qla_edif_sadb_release(struct qla_hw_data *ha)
> {
> -	struct list_head *pos;
> -	struct list_head *tmp;
> -	struct edif_sa_index_entry *entry;
> +	struct edif_sa_index_entry *entry, *tmp;
> 
> -	list_for_each_safe(pos, tmp, &ha->sadb_rx_index_list) {
> -		entry = list_entry(pos, struct edif_sa_index_entry, next);
> +	list_for_each_entry_safe(entry, tmp, &ha->sadb_rx_index_list, next) {
> 		list_del(&entry->next);
> 		kfree(entry);
> 	}
> 
> -	list_for_each_safe(pos, tmp, &ha->sadb_tx_index_list) {
> -		entry = list_entry(pos, struct edif_sa_index_entry, next);
> +	list_for_each_entry_safe(entry, tmp, &ha->sadb_tx_index_list, next) {
> 		list_del(&entry->next);
> 		kfree(entry);
> 	}
> diff --git a/drivers/scsi/qla2xxx/qla_edif.h b/drivers/scsi/qla2xxx/qla_edif.h
> index 9e8f28d0caa1..cd54c1dfe3cb 100644
> --- a/drivers/scsi/qla2xxx/qla_edif.h
> +++ b/drivers/scsi/qla2xxx/qla_edif.h
> @@ -102,7 +102,6 @@ struct dinfo {
> };
> 
> struct pur_ninfo {
> -	unsigned int	pur_pend:1;
> 	port_id_t       pur_sid;
> 	port_id_t	pur_did;
> 	uint8_t		vp_idx;
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 3fca6b8bb23f..df0e46ef3e96 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -3885,13 +3885,13 @@ qla2x00_remove_one(struct pci_dev *pdev)
> static inline void
> qla24xx_free_purex_list(struct purex_list *list)
> {
> -	struct list_head *item, *next;
> +	struct purex_item *item, *next;
> 	ulong flags;
> 
> 	spin_lock_irqsave(&list->lock, flags);
> -	list_for_each_safe(item, next, &list->head) {
> -		list_del(item);
> -		kfree(list_entry(item, struct purex_item, list));
> +	list_for_each_entry_safe(item, next, &list->head, list) {
> +		list_del(&item->list);
> +		kfree(item);
> 	}
> 	spin_unlock_irqrestore(&list->lock, flags);
> }
> -- 
> 2.19.0.rc0
> 

Looks Good. 

Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>

--
Himanshu Madhani	 Oracle Linux Engineering





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux