lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b40f6418-55aa-5318-0da5-c41f12f05386@suse.com>
Date:   Mon, 29 Mar 2021 11:33:09 -0700
From:   Lee Duncan <lduncan@...e.com>
To:     Joe Perches <joe@...ches.com>, linux-scsi@...r.kernel.org,
        linux-kernel@...r.kernel.org
CC:     Satish Kharat <satishkh@...co.com>,
        Sesidhar Baddela <sebaddel@...co.com>,
        Karan Tilak Kumar <kartilak@...co.com>,
        "James E.J. Bottomley" <jejb@...ux.ibm.com>,
        "Martin K. Petersen" <martin.petersen@...cle.com>
Subject: Re: [PATCH] Fix fnic driver to remove bogus ratelimit messages.

On 3/24/21 3:41 PM, Joe Perches wrote:
> On Tue, 2021-03-23 at 10:27 -0700, lduncan@...e.com wrote:
>> From: Lee Duncan <lduncan@...e.com>
>>
>> Commit b43abcbbd5b1 ("scsi: fnic: Ratelimit printks to avoid
>> looding when vlan is not set by the switch.i") added
>> printk_ratelimit() in front of a couple of debug-mode
>> messages, to reduce logging overrun when debugging the
>> driver. The code:
>>
>>>           if (printk_ratelimit())
>>>                   FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
>>>                             "Start VLAN Discovery\n");
>>
>> ends up calling printk_ratelimit() quite often, triggering
>> many kernel messages about callbacks being surpressed.
>>
>> The fix is to decompose FNIC_FCS_DBG(), then change the order
>> of checks so that printk_ratelimit() is only called if
>> driver debugging is enabled.
> 
> Please make sure to cc the fnic maintainers when submitting patches
> to their drivers.
> 
> $ ./scripts/get_maintainer.pl drivers/scsi/fnic/
> Satish Kharat <satishkh@...co.com> (supporter:CISCO FCOE HBA DRIVER)
> Sesidhar Baddela <sebaddel@...co.com> (supporter:CISCO FCOE HBA DRIVER)
> Karan Tilak Kumar <kartilak@...co.com> (supporter:CISCO FCOE HBA DRIVER)
> "James E.J. Bottomley" <jejb@...ux.ibm.com> (maintainer:SCSI SUBSYSTEM)
> "Martin K. Petersen" <martin.petersen@...cle.com> (maintainer:SCSI SUBSYSTEM)
> linux-scsi@...r.kernel.org (open list:CISCO FCOE HBA DRIVER)
> linux-kernel@...r.kernel.org (open list)
> 
> 
> My preference would be to rewrite the FNIC_<FOO>_DBG macros to use
> a single fnic_dbg macro and add a new fnic_dbg_ratelimited macro.
> 
> Something like the below:
> 
> This converts a few uses at KERN_INFO to KERN_DEBUG, only uses fnic
> and adds a macro concatenation instead of multiple macros.
> 
> Miscellanea:
> 
> o Add missing newlines
> o Coalesce formats
> o Align arguments
> 
> ---
> 
> compile tested only
> 
>  drivers/scsi/fnic/fnic.h      |  45 +++----
>  drivers/scsi/fnic/fnic_fcs.c  |  92 +++++---------
>  drivers/scsi/fnic/fnic_isr.c  |   9 +-
>  drivers/scsi/fnic/fnic_main.c |   9 +-
>  drivers/scsi/fnic/fnic_scsi.c | 280 ++++++++++++++++--------------------------
>  5 files changed, 162 insertions(+), 273 deletions(-)
> 
> diff --git a/drivers/scsi/fnic/fnic.h b/drivers/scsi/fnic/fnic.h
> index 69f373b53132..f12cd6ed9296 100644
> --- a/drivers/scsi/fnic/fnic.h
> +++ b/drivers/scsi/fnic/fnic.h
> @@ -130,36 +130,27 @@
>  extern unsigned int fnic_log_level;
>  extern unsigned int io_completions;
>  
> -#define FNIC_MAIN_LOGGING 0x01
> -#define FNIC_FCS_LOGGING 0x02
> -#define FNIC_SCSI_LOGGING 0x04
> -#define FNIC_ISR_LOGGING 0x08
> -
> -#define FNIC_CHECK_LOGGING(LEVEL, CMD)				\
> -do {								\
> -	if (unlikely(fnic_log_level & LEVEL))			\
> -		do {						\
> -			CMD;					\
> -		} while (0);					\
> +#define FNIC_DBG_MAIN	0x01
> +#define FNIC_DBG_FCS	0x02
> +#define FNIC_DBG_SCSI	0x04
> +#define FNIC_DBG_ISR	0x08
> +
> +#define fnic_dbg(fnic, TYPE, fmt, ...)					\
> +do {									\
> +	if (unlikely(fnic_log_level & FNIC_DBG_##TYPE))			\
> +		shost_printk(KERN_DEBUG, (fnic)->lport->host,		\
> +			     fmt, ##__VA_ARGS__);			\
>  } while (0)
>  
> -#define FNIC_MAIN_DBG(kern_level, host, fmt, args...)		\
> -	FNIC_CHECK_LOGGING(FNIC_MAIN_LOGGING,			\
> -			 shost_printk(kern_level, host, fmt, ##args);)
> -
> -#define FNIC_FCS_DBG(kern_level, host, fmt, args...)		\
> -	FNIC_CHECK_LOGGING(FNIC_FCS_LOGGING,			\
> -			 shost_printk(kern_level, host, fmt, ##args);)
> -
> -#define FNIC_SCSI_DBG(kern_level, host, fmt, args...)		\
> -	FNIC_CHECK_LOGGING(FNIC_SCSI_LOGGING,			\
> -			 shost_printk(kern_level, host, fmt, ##args);)
> -
> -#define FNIC_ISR_DBG(kern_level, host, fmt, args...)		\
> -	FNIC_CHECK_LOGGING(FNIC_ISR_LOGGING,			\
> -			 shost_printk(kern_level, host, fmt, ##args);)
> +#define fnic_dbg_ratelimited(fnic, TYPE, fmt, ...)			\
> +do {									\
> +	if (unlikely(fnic_log_level & FNIC_DBG_##TYPE) &&		\
> +	    printk_ratelimit())						\
> +		shost_printk(KERN_DEBUG, (fnic)->lport->host,		\
> +			     fmt, ##__VA_ARGS__);			\
> +} while (0)
>  
> -#define FNIC_MAIN_NOTE(kern_level, host, fmt, args...)          \
> +#define FNIC_MAIN_NOTE(kern_level, host, fmt, args...)	\
>  	shost_printk(kern_level, host, fmt, ##args)
>  
>  extern const char *fnic_state_str[];
> diff --git a/drivers/scsi/fnic/fnic_fcs.c b/drivers/scsi/fnic/fnic_fcs.c
> index 881c4823d7e2..81eb278ea025 100644
> --- a/drivers/scsi/fnic/fnic_fcs.c
> +++ b/drivers/scsi/fnic/fnic_fcs.c
> @@ -75,9 +75,8 @@ void fnic_handle_link(struct work_struct *work)
>  	atomic64_set(&fnic->fnic_stats.misc_stats.current_port_speed,
>  			new_port_speed);
>  	if (old_port_speed != new_port_speed)
> -		FNIC_MAIN_DBG(KERN_INFO, fnic->lport->host,
> -				"Current vnic speed set to :  %llu\n",
> -				new_port_speed);
> +		fnic_dbg(fnic, MAIN, "Current vnic speed set to: %llu\n",
> +			 new_port_speed);
>  
>  	switch (vnic_dev_port_speed(fnic->vdev)) {
>  	case DCEM_PORTSPEED_10G:
> @@ -125,8 +124,7 @@ void fnic_handle_link(struct work_struct *work)
>  					"Link Status:UP_DOWN_UP",
>  					strlen("Link_Status:UP_DOWN_UP")
>  					);
> -				FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -					     "link down\n");
> +				fnic_dbg(fnic, FCS, "link down\n");
>  				fcoe_ctlr_link_down(&fnic->ctlr);
>  				if (fnic->config.flags & VFCF_FIP_CAPABLE) {
>  					/* start FCoE VLAN discovery */
> @@ -140,8 +138,7 @@ void fnic_handle_link(struct work_struct *work)
>  					fnic_fcoe_send_vlan_req(fnic);
>  					return;
>  				}
> -				FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -					     "link up\n");
> +				fnic_dbg(fnic, FCS, "link up\n");
>  				fcoe_ctlr_link_up(&fnic->ctlr);
>  			} else {
>  				/* UP -> UP */
> @@ -164,7 +161,7 @@ void fnic_handle_link(struct work_struct *work)
>  			fnic_fcoe_send_vlan_req(fnic);
>  			return;
>  		}
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link up\n");
> +		fnic_dbg(fnic, FCS, "link up\n");
>  		fnic_fc_trace_set_data(fnic->lport->host->host_no, FNIC_FC_LE,
>  			"Link Status: DOWN_UP", strlen("Link Status: DOWN_UP"));
>  		fcoe_ctlr_link_up(&fnic->ctlr);
> @@ -172,14 +169,14 @@ void fnic_handle_link(struct work_struct *work)
>  		/* UP -> DOWN */
>  		fnic->lport->host_stats.link_failure_count++;
>  		spin_unlock_irqrestore(&fnic->fnic_lock, flags);
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link down\n");
> +		fnic_dbg(fnic, FCS, "link down\n");
>  		fnic_fc_trace_set_data(
>  			fnic->lport->host->host_no, FNIC_FC_LE,
>  			"Link Status: UP_DOWN",
>  			strlen("Link Status: UP_DOWN"));
>  		if (fnic->config.flags & VFCF_FIP_CAPABLE) {
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				"deleting fip-timer during link-down\n");
> +			fnic_dbg(fnic, FCS,
> +				 "deleting fip-timer during link-down\n");
>  			del_timer_sync(&fnic->fip_timer);
>  		}
>  		fcoe_ctlr_link_down(&fnic->ctlr);
> @@ -281,13 +278,12 @@ void fnic_handle_event(struct work_struct *work)
>  			spin_lock_irqsave(&fnic->fnic_lock, flags);
>  			break;
>  		case FNIC_EVT_START_FCF_DISC:
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				  "Start FCF Discovery\n");
> +			fnic_dbg(fnic, FCS, "Start FCF Discovery\n");
>  			fnic_fcoe_start_fcf_disc(fnic);
>  			break;
>  		default:
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				  "Unknown event 0x%x\n", fevt->event);
> +			fnic_dbg(fnic, FCS, "Unknown event 0x%x\n",
> +				 fevt->event);
>  			break;
>  		}
>  		kfree(fevt);
> @@ -380,9 +376,7 @@ static void fnic_fcoe_send_vlan_req(struct fnic *fnic)
>  	fnic_fcoe_reset_vlans(fnic);
>  	fnic->set_vlan(fnic, 0);
>  
> -	if (printk_ratelimit())
> -		FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -			  "Sending VLAN request...\n");
> +	fnic_dbg_ratelimited(fnic, FCS, "Sending VLAN request...\n");
>  
>  	skb = dev_alloc_skb(sizeof(struct fip_vlan));
>  	if (!skb)
> @@ -434,14 +428,12 @@ static void fnic_fcoe_process_vlan_resp(struct fnic *fnic, struct sk_buff *skb)
>  	u64 sol_time;
>  	unsigned long flags;
>  
> -	FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -		  "Received VLAN response...\n");
> +	fnic_dbg(fnic, FCS, "Received VLAN response...\n");
>  
>  	fiph = (struct fip_header *) skb->data;
>  
> -	FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -		  "Received VLAN response... OP 0x%x SUB_OP 0x%x\n",
> -		  ntohs(fiph->fip_op), fiph->fip_subcode);
> +	fnic_dbg(fnic, FCS, "Received VLAN response... OP 0x%x SUB_OP 0x%x\n",
> +		 ntohs(fiph->fip_op), fiph->fip_subcode);
>  
>  	rlen = ntohs(fiph->fip_dl_len) * 4;
>  	fnic_fcoe_reset_vlans(fnic);
> @@ -474,8 +466,7 @@ static void fnic_fcoe_process_vlan_resp(struct fnic *fnic, struct sk_buff *skb)
>  	if (list_empty(&fnic->vlans)) {
>  		/* retry from timer */
>  		atomic64_inc(&fnic_stats->vlan_stats.resp_withno_vlanID);
> -		FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -			  "No VLAN descriptors in FIP VLAN response\n");
> +		fnic_dbg(fnic, FCS, "No VLAN descriptors in FIP VLAN response\n");
>  		spin_unlock_irqrestore(&fnic->vlans_lock, flags);
>  		goto out;
>  	}
> @@ -732,7 +723,7 @@ void fnic_update_mac_locked(struct fnic *fnic, u8 *new)
>  		new = ctl;
>  	if (ether_addr_equal(data, new))
>  		return;
> -	FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "update_mac %pM\n", new);
> +	fnic_dbg(fnic, FCS, "update_mac %pM\n", new);
>  	if (!is_zero_ether_addr(data) && !ether_addr_equal(data, ctl))
>  		vnic_dev_del_addr(fnic->vdev, data);
>  	memcpy(data, new, ETH_ALEN);
> @@ -774,8 +765,7 @@ void fnic_set_port_id(struct fc_lport *lport, u32 port_id, struct fc_frame *fp)
>  	u8 *mac;
>  	int ret;
>  
> -	FNIC_FCS_DBG(KERN_DEBUG, lport->host, "set port_id %x fp %p\n",
> -		     port_id, fp);
> +	fnic_dbg(fnic, FCS, "set port_id %x fp %p\n", port_id, fp);
>  
>  	/*
>  	 * If we're clearing the FC_ID, change to use the ctl_src_addr.
> @@ -801,10 +791,8 @@ void fnic_set_port_id(struct fc_lport *lport, u32 port_id, struct fc_frame *fp)
>  	if (fnic->state == FNIC_IN_ETH_MODE || fnic->state == FNIC_IN_FC_MODE)
>  		fnic->state = FNIC_IN_ETH_TRANS_FC_MODE;
>  	else {
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -			     "Unexpected fnic state %s while"
> -			     " processing flogi resp\n",
> -			     fnic_state_to_str(fnic->state));
> +		fnic_dbg(fnic, FCS, "Unexpected fnic state %s while processing flogi resp\n",
> +			 fnic_state_to_str(fnic->state));
>  		spin_unlock_irq(&fnic->fnic_lock);
>  		return;
>  	}
> @@ -881,8 +869,7 @@ static void fnic_rq_cmpl_frame_recv(struct vnic_rq *rq, struct cq_desc
>  		skb_trim(skb, bytes_written);
>  		if (!fcs_ok) {
>  			atomic64_inc(&fnic_stats->misc_stats.frame_errors);
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				     "fcs error.  dropping packet.\n");
> +			fnic_dbg(fnic, FCS, "fcs error - dropping packet\n");
>  			goto drop;
>  		}
>  		if (fnic_import_rq_eth_pkt(fnic, skb))
> @@ -897,12 +884,9 @@ static void fnic_rq_cmpl_frame_recv(struct vnic_rq *rq, struct cq_desc
>  
>  	if (!fcs_ok || packet_error || !fcoe_fc_crc_ok || fcoe_enc_error) {
>  		atomic64_inc(&fnic_stats->misc_stats.frame_errors);
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -			     "fnic rq_cmpl fcoe x%x fcsok x%x"
> -			     " pkterr x%x fcoe_fc_crc_ok x%x, fcoe_enc_err"
> -			     " x%x\n",
> -			     fcoe, fcs_ok, packet_error,
> -			     fcoe_fc_crc_ok, fcoe_enc_error);
> +		fnic_dbg(fnic, FCS, "fnic rq_cmpl fcoe x%x fcsok x%x pkterr x%x fcoe_fc_crc_ok x%x, fcoe_enc_err x%x\n",
> +			 fcoe, fcs_ok, packet_error,
> +			 fcoe_fc_crc_ok, fcoe_enc_error);
>  		goto drop;
>  	}
>  
> @@ -978,8 +962,7 @@ int fnic_alloc_rq_frame(struct vnic_rq *rq)
>  	len = FC_FRAME_HEADROOM + FC_MAX_FRAME + FC_FRAME_TAILROOM;
>  	skb = dev_alloc_skb(len);
>  	if (!skb) {
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -			     "Unable to allocate RQ sk_buff\n");
> +		fnic_dbg(fnic, FCS, "Unable to allocate RQ sk_buff\n");
>  		return -ENOMEM;
>  	}
>  	skb_reset_mac_header(skb);
> @@ -1343,29 +1326,23 @@ void fnic_handle_fip_timer(struct fnic *fnic)
>  	if (list_empty(&fnic->vlans)) {
>  		spin_unlock_irqrestore(&fnic->vlans_lock, flags);
>  		/* no vlans available, try again */
> -		if (printk_ratelimit())
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				  "Start VLAN Discovery\n");
> +		fnic_dbg_ratelimited(fnic, FCS, "Start VLAN Discovery\n");
>  		fnic_event_enq(fnic, FNIC_EVT_START_VLAN_DISC);
>  		return;
>  	}
>  
>  	vlan = list_first_entry(&fnic->vlans, struct fcoe_vlan, list);
> -	FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -		  "fip_timer: vlan %d state %d sol_count %d\n",
> -		  vlan->vid, vlan->state, vlan->sol_count);
> +	fnic_dbg(fnic, FCS, "fip_timer: vlan %d state %d sol_count %d\n",
> +		 vlan->vid, vlan->state, vlan->sol_count);
>  	switch (vlan->state) {
>  	case FIP_VLAN_USED:
> -		FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -			  "FIP VLAN is selected for FC transaction\n");
> +		fnic_dbg(fnic, FCS, "FIP VLAN is selected for FC transaction\n");
>  		spin_unlock_irqrestore(&fnic->vlans_lock, flags);
>  		break;
>  	case FIP_VLAN_FAILED:
>  		spin_unlock_irqrestore(&fnic->vlans_lock, flags);
>  		/* if all vlans are in failed state, restart vlan disc */
> -		if (printk_ratelimit())
> -			FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host,
> -				  "Start VLAN Discovery\n");
> +		fnic_dbg_ratelimited(fnic, FCS, "Start VLAN Discovery\n");
>  		fnic_event_enq(fnic, FNIC_EVT_START_VLAN_DISC);
>  		break;
>  	case FIP_VLAN_SENT:
> @@ -1374,9 +1351,8 @@ void fnic_handle_fip_timer(struct fnic *fnic)
>  			 * no response on this vlan, remove  from the list.
>  			 * Try the next vlan
>  			 */
> -			FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -				  "Dequeue this VLAN ID %d from list\n",
> -				  vlan->vid);
> +			fnic_dbg(fnic, FCS, "Dequeue this VLAN ID %d from list\n",
> +				 vlan->vid);
>  			list_del(&vlan->list);
>  			kfree(vlan);
>  			vlan = NULL;
> @@ -1384,9 +1360,7 @@ void fnic_handle_fip_timer(struct fnic *fnic)
>  				/* we exhausted all vlans, restart vlan disc */
>  				spin_unlock_irqrestore(&fnic->vlans_lock,
>  							flags);
> -				FNIC_FCS_DBG(KERN_INFO, fnic->lport->host,
> -					  "fip_timer: vlan list empty, "
> -					  "trigger vlan disc\n");
> +				fnic_dbg(fnic, FCS, "fip_timer: vlan list empty, trigger vlan disc\n");
>  				fnic_event_enq(fnic, FNIC_EVT_START_VLAN_DISC);
>  				return;
>  			}
> diff --git a/drivers/scsi/fnic/fnic_isr.c b/drivers/scsi/fnic/fnic_isr.c
> index 2fb2731f50fb..dbd86ddd3418 100644
> --- a/drivers/scsi/fnic/fnic_isr.c
> +++ b/drivers/scsi/fnic/fnic_isr.c
> @@ -263,8 +263,7 @@ int fnic_set_intr_mode(struct fnic *fnic)
>  			fnic->intr_count = vecs;
>  			fnic->err_intr_offset = FNIC_MSIX_ERR_NOTIFY;
>  
> -			FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
> -				     "Using MSI-X Interrupts\n");
> +			fnic_dbg(fnic, ISR, "Using MSI-X Interrupts\n");
>  			vnic_dev_set_intr_mode(fnic->vdev,
>  					       VNIC_DEV_INTR_MODE_MSIX);
>  			return 0;
> @@ -289,8 +288,7 @@ int fnic_set_intr_mode(struct fnic *fnic)
>  		fnic->intr_count = 1;
>  		fnic->err_intr_offset = 0;
>  
> -		FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
> -			     "Using MSI Interrupts\n");
> +		fnic_dbg(fnic, ISR, "Using MSI Interrupts\n");
>  		vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_MSI);
>  
>  		return 0;
> @@ -315,8 +313,7 @@ int fnic_set_intr_mode(struct fnic *fnic)
>  		fnic->cq_count = 3;
>  		fnic->intr_count = 3;
>  
> -		FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host,
> -			     "Using Legacy Interrupts\n");
> +		fnic_dbg(fnic, ISR, "Using Legacy Interrupts\n");
>  		vnic_dev_set_intr_mode(fnic->vdev, VNIC_DEV_INTR_MODE_INTX);
>  
>  		return 0;
> diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
> index 186c3ab4456b..dd6bb5643ebb 100644
> --- a/drivers/scsi/fnic/fnic_main.c
> +++ b/drivers/scsi/fnic/fnic_main.c
> @@ -220,9 +220,7 @@ static struct fc_host_statistics *fnic_get_stats(struct Scsi_Host *host)
>  	spin_unlock_irqrestore(&fnic->fnic_lock, flags);
>  
>  	if (ret) {
> -		FNIC_MAIN_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "fnic: Get vnic stats failed"
> -			      " 0x%x", ret);
> +		fnic_dbg(fnic, MAIN, "fnic: Get vnic stats failed 0x%x\n", ret);
>  		return stats;
>  	}
>  	vs = fnic->stats;
> @@ -332,9 +330,8 @@ static void fnic_reset_host_stats(struct Scsi_Host *host)
>  	spin_unlock_irqrestore(&fnic->fnic_lock, flags);
>  
>  	if (ret) {
> -		FNIC_MAIN_DBG(KERN_DEBUG, fnic->lport->host,
> -				"fnic: Reset vnic stats failed"
> -				" 0x%x", ret);
> +		fnic_dbg(fnic, MAIN, "fnic: Reset vnic stats failed 0x%x\n",
> +			 ret);
>  		return;
>  	}
>  	fnic->stats_reset_time = jiffies;
> diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
> index e619a82f921b..3809e57792aa 100644
> --- a/drivers/scsi/fnic/fnic_scsi.c
> +++ b/drivers/scsi/fnic/fnic_scsi.c
> @@ -240,12 +240,10 @@ int fnic_fw_reset_handler(struct fnic *fnic)
>  
>  	if (!ret) {
>  		atomic64_inc(&fnic->fnic_stats.reset_stats.fw_resets);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Issued fw reset\n");
> +		fnic_dbg(fnic, SCSI, "Issued fw reset\n");
>  	} else {
>  		fnic_clear_state_flags(fnic, FNIC_FLAGS_FWRESET);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Failed to issue fw reset\n");
> +		fnic_dbg(fnic, SCSI, "Failed to issue fw reset\n");
>  	}
>  
>  	return ret;
> @@ -288,15 +286,13 @@ int fnic_flogi_reg_handler(struct fnic *fnic, u32 fc_id)
>  						fc_id, gw_mac,
>  						fnic->data_src_addr,
>  						lp->r_a_tov, lp->e_d_tov);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "FLOGI FIP reg issued fcid %x src %pM dest %pM\n",
> -			      fc_id, fnic->data_src_addr, gw_mac);
> +		fnic_dbg(fnic, SCSI, "FLOGI FIP reg issued fcid %x src %pM dest %pM\n",
> +			 fc_id, fnic->data_src_addr, gw_mac);
>  	} else {
>  		fnic_queue_wq_copy_desc_flogi_reg(wq, SCSI_NO_TAG,
>  						  format, fc_id, gw_mac);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "FLOGI reg issued fcid %x map %d dest %pM\n",
> -			      fc_id, fnic->ctlr.map_dest, gw_mac);
> +		fnic_dbg(fnic, SCSI, "FLOGI reg issued fcid %x map %d dest %pM\n",
> +			 fc_id, fnic->ctlr.map_dest, gw_mac);
>  	}
>  
>  	atomic64_inc(&fnic->fnic_stats.fw_stats.active_fw_reqs);
> @@ -373,8 +369,8 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic,
>  
>  	if (unlikely(!vnic_wq_copy_desc_avail(wq))) {
>  		spin_unlock_irqrestore(&fnic->wq_copy_lock[0], intr_flags);
> -		FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -			  "fnic_queue_wq_copy_desc failure - no descriptors\n");
> +		fnic_dbg(fnic, SCSI, "%s: failure - no descriptors\n",
> +			 __func__);
>  		atomic64_inc(&misc_stats->io_cpwq_alloc_failures);
>  		return SCSI_MLQUEUE_HOST_BUSY;
>  	}
> @@ -445,8 +441,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
>  
>  	rport = starget_to_rport(scsi_target(sc->device));
>  	if (!rport) {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"returning DID_NO_CONNECT for IO as rport is NULL\n");
> +		fnic_dbg(fnic, SCSI, "returning DID_NO_CONNECT for IO as rport is NULL\n");
>  		sc->result = DID_NO_CONNECT << 16;
>  		done(sc);
>  		return 0;
> @@ -454,8 +449,7 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
>  
>  	ret = fc_remote_port_chkready(rport);
>  	if (ret) {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"rport is not ready\n");
> +		fnic_dbg(fnic, SCSI, "rport is not ready\n");
>  		atomic64_inc(&fnic_stats->misc_stats.rport_not_ready);
>  		sc->result = ret;
>  		done(sc);
> @@ -464,9 +458,8 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
>  
>  	rp = rport->dd_data;
>  	if (!rp || rp->rp_state == RPORT_ST_DELETE) {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"rport 0x%x removed, returning DID_NO_CONNECT\n",
> -			rport->port_id);
> +		fnic_dbg(fnic, SCSI, "rport 0x%x removed, returning DID_NO_CONNECT\n",
> +			 rport->port_id);
>  
>  		atomic64_inc(&fnic_stats->misc_stats.rport_not_ready);
>  		sc->result = DID_NO_CONNECT<<16;
> @@ -475,9 +468,8 @@ static int fnic_queuecommand_lck(struct scsi_cmnd *sc, void (*done)(struct scsi_
>  	}
>  
>  	if (rp->rp_state != RPORT_ST_READY) {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"rport 0x%x in state 0x%x, returning DID_IMM_RETRY\n",
> -			rport->port_id, rp->rp_state);
> +		fnic_dbg(fnic, SCSI, "rport 0x%x in state 0x%x, returning DID_IMM_RETRY\n",
> +			 rport->port_id, rp->rp_state);
>  
>  		sc->result = DID_IMM_RETRY << 16;
>  		done(sc);
> @@ -650,15 +642,12 @@ static int fnic_fcpio_fw_reset_cmpl_handler(struct fnic *fnic,
>  	if (fnic->state == FNIC_IN_FC_TRANS_ETH_MODE) {
>  		/* Check status of reset completion */
>  		if (!hdr_status) {
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				      "reset cmpl success\n");
> +			fnic_dbg(fnic, SCSI, "reset cmpl success\n");
>  			/* Ready to send flogi out */
>  			fnic->state = FNIC_IN_ETH_MODE;
>  		} else {
> -			FNIC_SCSI_DBG(KERN_DEBUG,
> -				      fnic->lport->host,
> -				      "fnic fw_reset : failed %s\n",
> -				      fnic_fcpio_status_to_str(hdr_status));
> +			fnic_dbg(fnic, SCSI, "fnic fw_reset : failed %s\n",
> +				 fnic_fcpio_status_to_str(hdr_status));
>  
>  			/*
>  			 * Unable to change to eth mode, cannot send out flogi
> @@ -671,10 +660,8 @@ static int fnic_fcpio_fw_reset_cmpl_handler(struct fnic *fnic,
>  			ret = -1;
>  		}
>  	} else {
> -		FNIC_SCSI_DBG(KERN_DEBUG,
> -			      fnic->lport->host,
> -			      "Unexpected state %s while processing"
> -			      " reset cmpl\n", fnic_state_to_str(fnic->state));
> +		fnic_dbg(fnic, SCSI, "Unexpected state %s while processing reset cmpl\n",
> +			 fnic_state_to_str(fnic->state));
>  		atomic64_inc(&reset_stats->fw_reset_failures);
>  		ret = -1;
>  	}
> @@ -725,22 +712,17 @@ static int fnic_fcpio_flogi_reg_cmpl_handler(struct fnic *fnic,
>  
>  		/* Check flogi registration completion status */
>  		if (!hdr_status) {
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				      "flog reg succeeded\n");
> +			fnic_dbg(fnic, SCSI, "flog reg succeeded\n");
>  			fnic->state = FNIC_IN_FC_MODE;
>  		} else {
> -			FNIC_SCSI_DBG(KERN_DEBUG,
> -				      fnic->lport->host,
> -				      "fnic flogi reg :failed %s\n",
> -				      fnic_fcpio_status_to_str(hdr_status));
> +			fnic_dbg(fnic, SCSI, "fnic flogi reg :failed %s\n",
> +				 fnic_fcpio_status_to_str(hdr_status));
>  			fnic->state = FNIC_IN_ETH_MODE;
>  			ret = -1;
>  		}
>  	} else {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Unexpected fnic state %s while"
> -			      " processing flogi reg completion\n",
> -			      fnic_state_to_str(fnic->state));
> +		fnic_dbg(fnic, SCSI, "Unexpected fnic state %s while processing flogi reg completion\n",
> +			 fnic_state_to_str(fnic->state));
>  		ret = -1;
>  	}
>  
> @@ -901,14 +883,11 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
>  		if(FCPIO_ABORTED == hdr_status)
>  			CMD_FLAGS(sc) |= FNIC_IO_ABORTED;
>  
> -		FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -			"icmnd_cmpl abts pending "
> -			  "hdr status = %s tag = 0x%x sc = 0x%p "
> -			  "scsi_status = %x residual = %d\n",
> -			  fnic_fcpio_status_to_str(hdr_status),
> -			  id, sc,
> -			  icmnd_cmpl->scsi_status,
> -			  icmnd_cmpl->residual);
> +		fnic_dbg(fnic, SCSI, "icmnd_cmpl abts pending hdr status = %s tag = 0x%x sc = 0x%p scsi_status = %x residual = %d\n",
> +			 fnic_fcpio_status_to_str(hdr_status),
> +			 id, sc,
> +			 icmnd_cmpl->scsi_status,
> +			 icmnd_cmpl->residual);
>  		return;
>  	}
>  
> @@ -1114,9 +1093,8 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  	if ((id & FNIC_TAG_ABORT) && (id & FNIC_TAG_DEV_RST)) {
>  		/* Abort and terminate completion of device reset req */
>  		/* REVISIT : Add asserts about various flags */
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "dev reset abts cmpl recd. id %x status %s\n",
> -			      id, fnic_fcpio_status_to_str(hdr_status));
> +		fnic_dbg(fnic, SCSI, "dev reset abts cmpl recd. id %x status %s\n",
> +			 id, fnic_fcpio_status_to_str(hdr_status));
>  		CMD_STATE(sc) = FNIC_IOREQ_ABTS_COMPLETE;
>  		CMD_ABTS_STATUS(sc) = hdr_status;
>  		CMD_FLAGS(sc) |= FNIC_DEV_RST_DONE;
> @@ -1136,9 +1114,8 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  					&term_stats->terminate_fw_timeouts);
>  			break;
>  		case FCPIO_ITMF_REJECTED:
> -			FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -				"abort reject recd. id %d\n",
> -				(int)(id & FNIC_TAG_MASK));
> +			fnic_dbg(fnic, SCSI, "abort reject recd. id %d\n",
> +				 (int)(id & FNIC_TAG_MASK));
>  			break;
>  		case FCPIO_IO_NOT_FOUND:
>  			if (CMD_FLAGS(sc) & FNIC_IO_ABTS_ISSUED)
> @@ -1171,10 +1148,9 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  		if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE)))
>  			atomic64_inc(&misc_stats->no_icmnd_itmf_cmpls);
>  
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "abts cmpl recd. id %d status %s\n",
> -			      (int)(id & FNIC_TAG_MASK),
> -			      fnic_fcpio_status_to_str(hdr_status));
> +		fnic_dbg(fnic, SCSI, "abts cmpl recd. id %d status %s\n",
> +			 (int)(id & FNIC_TAG_MASK),
> +			 fnic_fcpio_status_to_str(hdr_status));
>  
>  		/*
>  		 * If scsi_eh thread is blocked waiting for abts to complete,
> @@ -1185,8 +1161,7 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  			complete(io_req->abts_done);
>  			spin_unlock_irqrestore(io_lock, flags);
>  		} else {
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				      "abts cmpl, completing IO\n");
> +			fnic_dbg(fnic, SCSI, "abts cmpl, completing IO\n");
>  			CMD_SP(sc) = NULL;
>  			sc->result = (DID_ERROR << 16);
>  
> @@ -1227,11 +1202,9 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  				  jiffies_to_msecs(jiffies - start_time),
>  				  desc, 0,
>  				  (((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"Terminate pending "
> -				"dev reset cmpl recd. id %d status %s\n",
> -				(int)(id & FNIC_TAG_MASK),
> -				fnic_fcpio_status_to_str(hdr_status));
> +			fnic_dbg(fnic, SCSI, "Terminate pending dev reset cmpl recd. id %d status %s\n",
> +				 (int)(id & FNIC_TAG_MASK),
> +				 fnic_fcpio_status_to_str(hdr_status));
>  			return;
>  		}
>  		if (CMD_FLAGS(sc) & FNIC_DEV_RST_TIMED_OUT) {
> @@ -1242,19 +1215,16 @@ static void fnic_fcpio_itmf_cmpl_handler(struct fnic *fnic,
>  				  jiffies_to_msecs(jiffies - start_time),
>  				  desc, 0,
>  				  (((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"dev reset cmpl recd after time out. "
> -				"id %d status %s\n",
> -				(int)(id & FNIC_TAG_MASK),
> -				fnic_fcpio_status_to_str(hdr_status));
> +			fnic_dbg(fnic, SCSI, "dev reset cmpl recd after time out. id %d status %s\n",
> +				 (int)(id & FNIC_TAG_MASK),
> +				 fnic_fcpio_status_to_str(hdr_status));
>  			return;
>  		}
>  		CMD_STATE(sc) = FNIC_IOREQ_CMD_COMPLETE;
>  		CMD_FLAGS(sc) |= FNIC_DEV_RST_DONE;
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "dev reset cmpl recd. id %d status %s\n",
> -			      (int)(id & FNIC_TAG_MASK),
> -			      fnic_fcpio_status_to_str(hdr_status));
> +		fnic_dbg(fnic, SCSI, "dev reset cmpl recd. id %d status %s\n",
> +			 (int)(id & FNIC_TAG_MASK),
> +			 fnic_fcpio_status_to_str(hdr_status));
>  		if (io_req->dr_done)
>  			complete(io_req->dr_done);
>  		spin_unlock_irqrestore(io_lock, flags);
> @@ -1313,9 +1283,8 @@ static int fnic_fcpio_cmpl_handler(struct vnic_dev *vdev,
>  		break;
>  
>  	default:
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "firmware completion type %d\n",
> -			      desc->hdr.type);
> +		fnic_dbg(fnic, SCSI, "firmware completion type %d\n",
> +			 desc->hdr.type);
>  		break;
>  	}
>  
> @@ -1419,10 +1388,9 @@ static void fnic_cleanup_io(struct fnic *fnic, int exclude_id)
>  		mempool_free(io_req, fnic->io_req_pool);
>  
>  		sc->result = DID_TRANSPORT_DISRUPTED << 16;
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "%s: tag:0x%x : sc:0x%p duration = %lu DID_TRANSPORT_DISRUPTED\n",
> -			      __func__, sc->request->tag, sc,
> -			      (jiffies - start_time));
> +		fnic_dbg(fnic, SCSI, "%s: tag:0x%x : sc:0x%p duration = %lu DID_TRANSPORT_DISRUPTED\n",
> +			 __func__, sc->request->tag, sc,
> +			 (jiffies - start_time));
>  
>  		if (atomic64_read(&fnic->io_cmpl_skip))
>  			atomic64_dec(&fnic->io_cmpl_skip);
> @@ -1495,8 +1463,7 @@ void fnic_wq_copy_cleanup_handler(struct vnic_wq_copy *wq,
>  
>  wq_copy_cleanup_scsi_cmd:
>  	sc->result = DID_NO_CONNECT << 16;
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "wq_copy_cleanup_handler:"
> -		      " DID_NO_CONNECT\n");
> +	fnic_dbg(fnic, SCSI, "wq_copy_cleanup_handler: DID_NO_CONNECT\n");
>  
>  	if (sc->scsi_done) {
>  		FNIC_TRACE(fnic_wq_copy_cleanup_handler,
> @@ -1537,8 +1504,7 @@ static inline int fnic_queue_abort_io_req(struct fnic *fnic, int tag,
>  	if (!vnic_wq_copy_desc_avail(wq)) {
>  		spin_unlock_irqrestore(&fnic->wq_copy_lock[0], flags);
>  		atomic_dec(&fnic->in_flight);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"fnic_queue_abort_io_req: failure: no descriptors\n");
> +		fnic_dbg(fnic, SCSI, "%s: failure: no descriptors\n", __func__);
>  		atomic64_inc(&misc_stats->abts_cpwq_alloc_failures);
>  		return 1;
>  	}
> @@ -1572,10 +1538,7 @@ static void fnic_rport_exch_reset(struct fnic *fnic, u32 port_id)
>  	struct scsi_lun fc_lun;
>  	enum fnic_ioreq_state old_ioreq_state;
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG,
> -		      fnic->lport->host,
> -		      "fnic_rport_exch_reset called portid 0x%06x\n",
> -		      port_id);
> +	fnic_dbg(fnic, SCSI, "%s: called portid 0x%06x\n", __func__, port_id);
>  
>  	if (fnic->in_remove)
>  		return;
> @@ -1599,9 +1562,8 @@ static void fnic_rport_exch_reset(struct fnic *fnic, u32 port_id)
>  
>  		if ((CMD_FLAGS(sc) & FNIC_DEVICE_RESET) &&
>  			(!(CMD_FLAGS(sc) & FNIC_DEV_RST_ISSUED))) {
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"fnic_rport_exch_reset dev rst not pending sc 0x%p\n",
> -			sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst not pending sc 0x%p\n",
> +				 __func__, sc);
>  			spin_unlock_irqrestore(io_lock, flags);
>  			continue;
>  		}
> @@ -1634,15 +1596,13 @@ static void fnic_rport_exch_reset(struct fnic *fnic, u32 port_id)
>  		if (CMD_FLAGS(sc) & FNIC_DEVICE_RESET) {
>  			atomic64_inc(&reset_stats->device_reset_terminates);
>  			abt_tag = (tag | FNIC_TAG_DEV_RST);
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"fnic_rport_exch_reset dev rst sc 0x%p\n",
> -			sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst sc 0x%p\n",
> +				 __func__, sc);
>  		}
>  
>  		BUG_ON(io_req->abts_done);
>  
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "fnic_rport_reset_exch: Issuing abts\n");
> +		fnic_dbg(fnic, SCSI, "fnic_rport_reset_exch: Issuing abts\n");
>  
>  		spin_unlock_irqrestore(io_lock, flags);
>  
> @@ -1713,11 +1673,9 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
>  		return;
>  	}
>  	fnic = lport_priv(lport);
> -	FNIC_SCSI_DBG(KERN_DEBUG,
> -		      fnic->lport->host, "fnic_terminate_rport_io called"
> -		      " wwpn 0x%llx, wwnn0x%llx, rport 0x%p, portid 0x%06x\n",
> -		      rport->port_name, rport->node_name, rport,
> -		      rport->port_id);
> +	fnic_dbg(fnic, SCSI, "%s: called wwpn 0x%llx, wwnn0x%llx, rport 0x%p, portid 0x%06x\n",
> +		 __func__,
> +		 rport->port_name, rport->node_name, rport, rport->port_id);
>  
>  	if (fnic->in_remove)
>  		return;
> @@ -1749,9 +1707,8 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
>  
>  		if ((CMD_FLAGS(sc) & FNIC_DEVICE_RESET) &&
>  			(!(CMD_FLAGS(sc) & FNIC_DEV_RST_ISSUED))) {
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"fnic_terminate_rport_io dev rst not pending sc 0x%p\n",
> -			sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst not pending sc 0x%p\n",
> +				 __func__, sc);
>  			spin_unlock_irqrestore(io_lock, flags);
>  			continue;
>  		}
> @@ -1770,11 +1727,9 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
>  			fnic_ioreq_state_to_str(CMD_STATE(sc)));
>  		}
>  		if (!(CMD_FLAGS(sc) & FNIC_IO_ISSUED)) {
> -			FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -				  "fnic_terminate_rport_io "
> -				  "IO not yet issued %p tag 0x%x flags "
> -				  "%x state %d\n",
> -				  sc, tag, CMD_FLAGS(sc), CMD_STATE(sc));
> +			fnic_dbg(fnic, SCSI, "%s: IO not yet issued %p tag 0x%x flags %x state %d\n",
> +				 __func__,
> +				 sc, tag, CMD_FLAGS(sc), CMD_STATE(sc));
>  		}
>  		old_ioreq_state = CMD_STATE(sc);
>  		CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
> @@ -1782,15 +1737,13 @@ void fnic_terminate_rport_io(struct fc_rport *rport)
>  		if (CMD_FLAGS(sc) & FNIC_DEVICE_RESET) {
>  			atomic64_inc(&reset_stats->device_reset_terminates);
>  			abt_tag = (tag | FNIC_TAG_DEV_RST);
> -			FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"fnic_terminate_rport_io dev rst sc 0x%p\n", sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst sc 0x%p\n",
> +				 __func__, sc);
>  		}
>  
>  		BUG_ON(io_req->abts_done);
>  
> -		FNIC_SCSI_DBG(KERN_DEBUG,
> -			      fnic->lport->host,
> -			      "fnic_terminate_rport_io: Issuing abts\n");
> +		fnic_dbg(fnic, SCSI, "%s: Issuing abts\n", __func__);
>  
>  		spin_unlock_irqrestore(io_lock, flags);
>  
> @@ -1864,10 +1817,8 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
>  
>  	rport = starget_to_rport(scsi_target(sc->device));
>  	tag = sc->request->tag;
> -	FNIC_SCSI_DBG(KERN_DEBUG,
> -		fnic->lport->host,
> -		"Abort Cmd called FCID 0x%x, LUN 0x%llx TAG %x flags %x\n",
> -		rport->port_id, sc->device->lun, tag, CMD_FLAGS(sc));
> +	fnic_dbg(fnic, SCSI, "Abort Cmd called FCID 0x%x, LUN 0x%llx TAG %x flags %x\n",
> +		 rport->port_id, sc->device->lun, tag, CMD_FLAGS(sc));
>  
>  	CMD_FLAGS(sc) = FNIC_NO_FLAGS;
>  
> @@ -1919,8 +1870,8 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
>  	else
>  		atomic64_inc(&abts_stats->abort_issued_greater_than_60_sec);
>  
> -	FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -		"CBD Opcode: %02x Abort issued time: %lu msec\n", sc->cmnd[0], abt_issued_time);
> +	fnic_dbg(fnic, SCSI, "CBD Opcode: %02x Abort issued time: %lu msec\n",
> +		 sc->cmnd[0], abt_issued_time);
>  	/*
>  	 * Command is still pending, need to abort it
>  	 * If the firmware completes the command after this point,
> @@ -2009,8 +1960,7 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
>  
>  	if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE))) {
>  		spin_unlock_irqrestore(io_lock, flags);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"Issuing Host reset due to out of order IO\n");
> +		fnic_dbg(fnic, SCSI, "Issuing Host reset due to out of order IO\n");
>  
>  		ret = FAILED;
>  		goto fnic_abort_cmd_end;
> @@ -2057,10 +2007,8 @@ int fnic_abort_cmd(struct scsi_cmnd *sc)
>  		  (u64)sc->cmnd[4] << 8 | sc->cmnd[5]),
>  		  (((u64)CMD_FLAGS(sc) << 32) | CMD_STATE(sc)));
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "Returning from abort cmd type %x %s\n", task_req,
> -		      (ret == SUCCESS) ?
> -		      "SUCCESS" : "FAILED");
> +	fnic_dbg(fnic, SCSI, "Returning from abort cmd type %x %s\n",
> +		 task_req, (ret == SUCCESS) ? "SUCCESS" : "FAILED");
>  	return ret;
>  }
>  
> @@ -2090,8 +2038,7 @@ static inline int fnic_queue_dr_io_req(struct fnic *fnic,
>  		free_wq_copy_descs(fnic, wq);
>  
>  	if (!vnic_wq_copy_desc_avail(wq)) {
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			  "queue_dr_io_req failure - no descriptors\n");
> +		fnic_dbg(fnic, SCSI, "queue_dr_io_req failure - no descriptors\n");
>  		atomic64_inc(&misc_stats->devrst_cpwq_alloc_failures);
>  		ret = -EAGAIN;
>  		goto lr_io_req_end;
> @@ -2164,9 +2111,8 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
>  		 * Found IO that is still pending with firmware and
>  		 * belongs to the LUN that we are resetting
>  		 */
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Found IO in %s on lun\n",
> -			      fnic_ioreq_state_to_str(CMD_STATE(sc)));
> +		fnic_dbg(fnic, SCSI, "Found IO in %s on lun\n",
> +			 fnic_ioreq_state_to_str(CMD_STATE(sc)));
>  
>  		if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING) {
>  			spin_unlock_irqrestore(io_lock, flags);
> @@ -2174,9 +2120,8 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
>  		}
>  		if ((CMD_FLAGS(sc) & FNIC_DEVICE_RESET) &&
>  			(!(CMD_FLAGS(sc) & FNIC_DEV_RST_ISSUED))) {
> -			FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -				"%s dev rst not pending sc 0x%p\n", __func__,
> -				sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst not pending sc 0x%p\n",
> +				 __func__, sc);
>  			spin_unlock_irqrestore(io_lock, flags);
>  			continue;
>  		}
> @@ -2200,8 +2145,8 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
>  		abt_tag = tag;
>  		if (CMD_FLAGS(sc) & FNIC_DEVICE_RESET) {
>  			abt_tag |= FNIC_TAG_DEV_RST;
> -			FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -				  "%s: dev rst sc 0x%p\n", __func__, sc);
> +			fnic_dbg(fnic, SCSI, "%s: dev rst sc 0x%p\n",
> +				 __func__, sc);
>  		}
>  
>  		CMD_ABTS_STATUS(sc) = FCPIO_INVALID_CODE;
> @@ -2356,9 +2301,8 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	atomic64_inc(&reset_stats->device_resets);
>  
>  	rport = starget_to_rport(scsi_target(sc->device));
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "Device reset called FCID 0x%x, LUN 0x%llx sc 0x%p\n",
> -		      rport->port_id, sc->device->lun, sc);
> +	fnic_dbg(fnic, SCSI, "Device reset called FCID 0x%x, LUN 0x%llx sc 0x%p\n",
> +		 rport->port_id, sc->device->lun, sc);
>  
>  	if (lp->state != LPORT_ST_READY || !(lp->link_up))
>  		goto fnic_device_reset_end;
> @@ -2407,7 +2351,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	CMD_LR_STATUS(sc) = FCPIO_INVALID_CODE;
>  	spin_unlock_irqrestore(io_lock, flags);
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "TAG %x\n", tag);
> +	fnic_dbg(fnic, SCSI, "TAG %x\n", tag);
>  
>  	/*
>  	 * issue the device reset, if enqueue failed, clean up the ioreq
> @@ -2435,8 +2379,8 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	io_req = (struct fnic_io_req *)CMD_SP(sc);
>  	if (!io_req) {
>  		spin_unlock_irqrestore(io_lock, flags);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"io_req is null tag 0x%x sc 0x%p\n", tag, sc);
> +		fnic_dbg(fnic, SCSI, "io_req is null tag 0x%x sc 0x%p\n",
> +			 tag, sc);
>  		goto fnic_device_reset_end;
>  	}
>  	io_req->dr_done = NULL;
> @@ -2449,8 +2393,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	 */
>  	if (status == FCPIO_INVALID_CODE) {
>  		atomic64_inc(&reset_stats->device_reset_timeouts);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Device reset timed out\n");
> +		fnic_dbg(fnic, SCSI, "Device reset timed out\n");
>  		CMD_FLAGS(sc) |= FNIC_DEV_RST_TIMED_OUT;
>  		spin_unlock_irqrestore(io_lock, flags);
>  		int_to_scsilun(sc->device->lun, &fc_lun);
> @@ -2477,9 +2420,8 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  				CMD_STATE(sc) = FNIC_IOREQ_ABTS_PENDING;
>  				io_req->abts_done = &tm_done;
>  				spin_unlock_irqrestore(io_lock, flags);
> -				FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -				"Abort and terminate issued on Device reset "
> -				"tag 0x%x sc 0x%p\n", tag, sc);
> +				fnic_dbg(fnic, SCSI, "Abort and terminate issued on Device reset tag 0x%x sc 0x%p\n",
> +					 tag, sc);
>  				break;
>  			}
>  		}
> @@ -2503,9 +2445,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	/* Completed, but not successful, clean up the io_req, return fail */
>  	if (status != FCPIO_SUCCESS) {
>  		spin_lock_irqsave(io_lock, flags);
> -		FNIC_SCSI_DBG(KERN_DEBUG,
> -			      fnic->lport->host,
> -			      "Device reset completed - failed\n");
> +		fnic_dbg(fnic, SCSI, "Device reset completed - failed\n");
>  		io_req = (struct fnic_io_req *)CMD_SP(sc);
>  		goto fnic_device_reset_clean;
>  	}
> @@ -2520,9 +2460,7 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	if (fnic_clean_pending_aborts(fnic, sc, new_sc)) {
>  		spin_lock_irqsave(io_lock, flags);
>  		io_req = (struct fnic_io_req *)CMD_SP(sc);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			      "Device reset failed"
> -			      " since could not abort all IOs\n");
> +		fnic_dbg(fnic, SCSI, "Device reset failed since could not abort all IOs\n");
>  		goto fnic_device_reset_clean;
>  	}
>  
> @@ -2558,10 +2496,8 @@ int fnic_device_reset(struct scsi_cmnd *sc)
>  	if (unlikely(tag_gen_flag))
>  		fnic_scsi_host_end_tag(fnic, sc);
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "Returning from device reset %s\n",
> -		      (ret == SUCCESS) ?
> -		      "SUCCESS" : "FAILED");
> +	fnic_dbg(fnic, SCSI, "Returning from device reset %s\n",
> +		 (ret == SUCCESS) ? "SUCCESS" : "FAILED");
>  
>  	if (ret == FAILED)
>  		atomic64_inc(&reset_stats->device_reset_failures);
> @@ -2581,8 +2517,7 @@ int fnic_reset(struct Scsi_Host *shost)
>  	fnic = lport_priv(lp);
>  	reset_stats = &fnic->fnic_stats.reset_stats;
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "fnic_reset called\n");
> +	fnic_dbg(fnic, SCSI, "%s: called\n", __func__);
>  
>  	atomic64_inc(&reset_stats->fnic_resets);
>  
> @@ -2592,10 +2527,8 @@ int fnic_reset(struct Scsi_Host *shost)
>  	 */
>  	ret = fc_lport_reset(lp);
>  
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "Returning from fnic reset %s\n",
> -		      (ret == 0) ?
> -		      "SUCCESS" : "FAILED");
> +	fnic_dbg(fnic, SCSI, "Returning from fnic reset %s\n",
> +		 (ret == 0) ? "SUCCESS" : "FAILED");
>  
>  	if (ret == 0)
>  		atomic64_inc(&reset_stats->fnic_reset_completions);
> @@ -2628,8 +2561,7 @@ int fnic_host_reset(struct scsi_cmnd *sc)
>  		fnic->internal_reset_inprogress = true;
>  	} else {
>  		spin_unlock_irqrestore(&fnic->fnic_lock, flags);
> -		FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -			"host reset in progress skipping another host reset\n");
> +		fnic_dbg(fnic, SCSI, "host reset in progress skipping another host reset\n");
>  		return SUCCESS;
>  	}
>  	spin_unlock_irqrestore(&fnic->fnic_lock, flags);
> @@ -2703,10 +2635,9 @@ void fnic_scsi_abort_io(struct fc_lport *lp)
>  
>  	spin_lock_irqsave(&fnic->fnic_lock, flags);
>  	fnic->remove_wait = NULL;
> -	FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host,
> -		      "fnic_scsi_abort_io %s\n",
> -		      (fnic->state == FNIC_IN_ETH_MODE) ?
> -		      "SUCCESS" : "FAILED");
> +	fnic_dbg(fnic, SCSI, "%s: %s\n",
> +		 __func__,
> +		 (fnic->state == FNIC_IN_ETH_MODE) ? "SUCCESS" : "FAILED");
>  	spin_unlock_irqrestore(&fnic->fnic_lock, flags);
>  
>  }
> @@ -2819,9 +2750,8 @@ int fnic_is_abts_pending(struct fnic *fnic, struct scsi_cmnd *lr_sc)
>  		 * Found IO that is still pending with firmware and
>  		 * belongs to the LUN that we are resetting
>  		 */
> -		FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
> -			      "Found IO in %s on lun\n",
> -			      fnic_ioreq_state_to_str(CMD_STATE(sc)));
> +		fnic_dbg(fnic, SCSI, "Found IO in %s on lun\n",
> +			 fnic_ioreq_state_to_str(CMD_STATE(sc)));
>  
>  		if (CMD_STATE(sc) == FNIC_IOREQ_ABTS_PENDING)
>  			ret = 1;
> 

No more responses on this?

Can we either mege my fix (planning to redesign later), or follow
through on your suggested fix?

I believe my fix has a review already.

Thanks.
-- 
Lee Duncan

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ