diff mbox series

[v1,1/1] scsi: lpfc: Switch to use %ptTs

Message ID 20250206155822.1126056-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State Changes Requested
Headers show
Series [v1,1/1] scsi: lpfc: Switch to use %ptTs | expand

Commit Message

andriy.shevchenko@linux.intel.com Feb. 6, 2025, 3:58 p.m. UTC
Use %ptTs instead of open-coded variant to print contents of time64_t type
in human readable form.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/scsi/lpfc/lpfc_init.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

Comments

Thomas Weißschuh Feb. 6, 2025, 4:52 p.m. UTC | #1
On Thu, Feb 06, 2025 at 05:58:22PM +0200, Andy Shevchenko wrote:
> Use %ptTs instead of open-coded variant to print contents of time64_t type
> in human readable form.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/scsi/lpfc/lpfc_init.c | 15 +--------------
>  1 file changed, 1 insertion(+), 14 deletions(-)
> 
> diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
> index e360fc79b028..240e92143d73 100644
> --- a/drivers/scsi/lpfc/lpfc_init.c
> +++ b/drivers/scsi/lpfc/lpfc_init.c
> @@ -5643,24 +5643,11 @@ void
>  lpfc_cgn_update_tstamp(struct lpfc_hba *phba, struct lpfc_cgn_ts *ts)
>  {
>  	struct timespec64 cur_time;
> -	struct tm tm_val;
>  
>  	ktime_get_real_ts64(&cur_time);
> -	time64_to_tm(cur_time.tv_sec, 0, &tm_val);
> -
> -	ts->month = tm_val.tm_mon + 1;
> -	ts->day	= tm_val.tm_mday;
> -	ts->year = tm_val.tm_year - 100;
> -	ts->hour = tm_val.tm_hour;
> -	ts->minute = tm_val.tm_min;
> -	ts->second = tm_val.tm_sec;
>  
>  	lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT,
> -			"2646 Updated CMF timestamp : "
> -			"%u/%u/%u %u:%u:%u\n",
> -			ts->day, ts->month,
> -			ts->year, ts->hour,
> -			ts->minute, ts->second);
> +			"2646 Updated CMF timestamp : %ptTs\n", cur_time);

All %p<FOO> arguments need to be addresses.
Also %ptT wants a time64_t, not a 'struct timespec64'.
It would work by chance because tv_sec is the first member and time64_t.

Correct: "&cur_time.tv_sec".

>  }
>  
>  /**
> -- 
> 2.43.0.rc1.1336.g36b5255a03ac
>
Justin Tee Feb. 6, 2025, 6:16 p.m. UTC | #2
Hi Andy,

The purpose of the lpfc_cgn_update_tstamp routine is more than just
printf.  The *ts pointer argument is updated with cur_time, and is
typically a pointer to a global statistics struct used by the device
driver in various contexts.  Sorry, but we can’t remove the lines
suggested in this patch.

Regards,
Justin Tee
andriy.shevchenko@linux.intel.com Feb. 6, 2025, 6:57 p.m. UTC | #3
On Thu, Feb 06, 2025 at 05:52:16PM +0100, Thomas Weißschuh wrote:
> On Thu, Feb 06, 2025 at 05:58:22PM +0200, Andy Shevchenko wrote:

...

> >  	lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT,
> > -			"2646 Updated CMF timestamp : "
> > -			"%u/%u/%u %u:%u:%u\n",
> > -			ts->day, ts->month,
> > -			ts->year, ts->hour,
> > -			ts->minute, ts->second);
> > +			"2646 Updated CMF timestamp : %ptTs\n", cur_time);
> 
> All %p<FOO> arguments need to be addresses.
> Also %ptT wants a time64_t, not a 'struct timespec64'.
> It would work by chance because tv_sec is the first member and time64_t.
> 
> Correct: "&cur_time.tv_sec".

Indeed, thanks!
andriy.shevchenko@linux.intel.com Feb. 6, 2025, 6:57 p.m. UTC | #4
On Thu, Feb 06, 2025 at 10:16:09AM -0800, Justin Tee wrote:
> Hi Andy,
> 
> The purpose of the lpfc_cgn_update_tstamp routine is more than just
> printf.  The *ts pointer argument is updated with cur_time, and is
> typically a pointer to a global statistics struct used by the device
> driver in various contexts.  Sorry, but we can’t remove the lines
> suggested in this patch.

Ah, you are right, the ts is used somewhere else.
diff mbox series

Patch

diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index e360fc79b028..240e92143d73 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -5643,24 +5643,11 @@  void
 lpfc_cgn_update_tstamp(struct lpfc_hba *phba, struct lpfc_cgn_ts *ts)
 {
 	struct timespec64 cur_time;
-	struct tm tm_val;
 
 	ktime_get_real_ts64(&cur_time);
-	time64_to_tm(cur_time.tv_sec, 0, &tm_val);
-
-	ts->month = tm_val.tm_mon + 1;
-	ts->day	= tm_val.tm_mday;
-	ts->year = tm_val.tm_year - 100;
-	ts->hour = tm_val.tm_hour;
-	ts->minute = tm_val.tm_min;
-	ts->second = tm_val.tm_sec;
 
 	lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT,
-			"2646 Updated CMF timestamp : "
-			"%u/%u/%u %u:%u:%u\n",
-			ts->day, ts->month,
-			ts->year, ts->hour,
-			ts->minute, ts->second);
+			"2646 Updated CMF timestamp : %ptTs\n", cur_time);
 }
 
 /**