scsi: Introduce a help function local_time_seconds() to simplify the getting time stamp operation
PATCH RESEND 1/1 scsi: Introduce a help function local_time_seconds() to simplify the getting time stamp operation
There are four places convert system time in UTC to local time seconds as a time stamp in scsi-subsystem, so we introduce a help function local_time_seconds() to simplify these operations.
--- drivers/scsi/3w-9xxx.c | 14 ++------------ drivers/scsi/3w-sas.c | 14 ++------------ include/scsi/scsi.h | 9 +++++++++ 3 files changed, 13 insertions(+), 24 deletions(-)
drivers/scsi/3w-9xxx.c +2 -12
@@ -374,8 +374,6 @@ out:/* This function will queue an event */ static void twa_aen_queue_event (TW_Device_Extension *tw_dev,TW_Command_Apache_Header *header) { -u32 local_time; -struct timeval time;TW_Event *event;unsigned short aen;char host[16 ];
@@ -398,9 +396,7 @@ static void twa_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_Hmemset (event,0 ,sizeof (TW_Event)); event->severity =TW_SEV_OUT (header->status_block.severity__reserved); -do_gettimeofday (&time); - local_time = (u32)(time.tv_sec - (sys_tz.tz_minuteswest *60 )); - event->time_stamp_sec = local_time; + event->time_stamp_sec =local_time_seconds (); event->aen_code = aen; event->retrieved =TW_AEN_NOT_RETRIEVED ; event->sequence_id = tw_dev->error_sequence_id;
@@ -479,11 +475,9 @@ out:static void twa_aen_sync_time (TW_Device_Extension *tw_dev,int request_id) {u32 schedulertime; -struct timeval utc;TW_Command_Full *full_command_packet;TW_Command *command_packet;TW_Param_Apache *param; -u32 local_time;/* Fill out the command packet */ full_command_packet = tw_dev->command_packet_virt[request_id];
@@ -503,11 +497,7 @@ static void twa_aen_sync_time(TW_Device_Extension *tw_dev, int request_id) param->parameter_id =cpu_to_le16 (0x3 );/* SchedulerTime */ param->parameter_size_bytes =cpu_to_le16 (4 ); -/* Convert system time in UTC to local time seconds since last -Sunday 12:00AM */ -do_gettimeofday (&utc); - local_time = (u32)(utc.tv_sec - (sys_tz.tz_minuteswest *60 )); - schedulertime = local_time - (3 *86400 ); + schedulertime =local_time_seconds () - (3 *86400 ); schedulertime =cpu_to_le32 (schedulertime %604800 );memcpy (param->data, &schedulertime,sizeof (u32));
drivers/scsi/3w-sas.c +2 -12
@@ -236,8 +236,6 @@ out:/* This function will queue an event */ static void twl_aen_queue_event (TW_Device_Extension *tw_dev,TW_Command_Apache_Header *header) { -u32 local_time; -struct timeval time;TW_Event *event;unsigned short aen;char host[16 ];
@@ -256,9 +254,7 @@ static void twl_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_Hmemset (event,0 ,sizeof (TW_Event)); event->severity =TW_SEV_OUT (header->status_block.severity__reserved); -do_gettimeofday (&time); - local_time = (u32)(time.tv_sec - (sys_tz.tz_minuteswest *60 )); - event->time_stamp_sec = local_time; + event->time_stamp_sec =local_time_seconds (); event->aen_code = aen; event->retrieved =TW_AEN_NOT_RETRIEVED ; event->sequence_id = tw_dev->error_sequence_id;
@@ -444,11 +440,9 @@ out:static void twl_aen_sync_time (TW_Device_Extension *tw_dev,int request_id) {u32 schedulertime; -struct timeval utc;TW_Command_Full *full_command_packet;TW_Command *command_packet;TW_Param_Apache *param; -u32 local_time;/* Fill out the command packet */ full_command_packet = tw_dev->command_packet_virt[request_id];
@@ -468,11 +462,7 @@ static void twl_aen_sync_time(TW_Device_Extension *tw_dev, int request_id) param->parameter_id =cpu_to_le16 (0x3 );/* SchedulerTime */ param->parameter_size_bytes =cpu_to_le16 (4 ); -/* Convert system time in UTC to local time seconds since last -Sunday 12:00AM */ -do_gettimeofday (&utc); - local_time = (u32)(utc.tv_sec - (sys_tz.tz_minuteswest *60 )); - schedulertime = local_time - (3 *86400 ); + schedulertime =local_time_seconds () - (3 *86400 ); schedulertime =cpu_to_le32 (schedulertime %604800 );memcpy (param->data, &schedulertime,sizeof (u32));
include/scsi/scsi.h +9 -0
@@ -574,4 +574,13 @@ static inline __u32 scsi_to_u32(__u8 *ptr) return (ptr[0]<<24) + (ptr[1]<<16) + (ptr[2]<<8) + ptr[3]; } +/* +* Convert system time in UTC to local time seconds. +*/ +static inline u32 local_time_seconds (void ) +{ +struct timeval utc; +do_gettimeofday (&utc); +return (u32)(utc.tv_sec - (sys_tz.tz_minuteswest *60 )); +}#endif /* _SCSI_SCSI_H */
Signature · 1 line
1.7.7
James Bottomley
maintainerQuoted 8 lines · Gu Zheng
include/scsi/scsi.h +0
-0@@ -574,4 +574,13 @@ static inline __u32 scsi_to_u32(__u8 *ptr)return (ptr[0 ]<<24 ) + (ptr[1 ]<<16 ) + (ptr[2 ]<<8 ) + ptr[3 ]; }
include/scsi/scsi.h static inline __u32 scsi_to_u32(__u8 *ptr) · line 586
Quoted 10 lines
include/scsi/scsi.h +9
-0+/* +* Convert system time in UTC to local time seconds. +*/ +static inline u32 local_time_seconds (void ) +{ +struct timeval utc; +do_gettimeofday (&utc); +return (u32)(utc.tv_sec - (sys_tz.tz_minuteswest *60 )); +}#endif /* _SCSI_SCSI_H */
This doesn't belong in SCSI.
It's not a common pattern, so just leave it open coded in the 3ware drivers. If there's a need for it to be a common pattern, John Stultz will add it to the timer code, but at the moment, he doesn't seem to see the need.
James
Quoted 22 lines · James Bottomley
Quoted 8 lines · Gu Zheng
include/scsi/scsi.h +0
-0@@ -574,4 +574,13 @@ static inline __u32 scsi_to_u32(__u8 *ptr)return (ptr[0 ]<<24 ) + (ptr[1 ]<<16 ) + (ptr[2 ]<<8 ) + ptr[3 ]; }include/scsi/scsi.h static inline __u32 scsi_to_u32(__u8 *ptr) · line 586
Quoted 10 lines
include/scsi/scsi.h +9
-0+/* +* Convert system time in UTC to local time seconds. +*/ +static inline u32 local_time_seconds (void ) +{ +struct timeval utc; +do_gettimeofday (&utc); +return (u32)(utc.tv_sec - (sys_tz.tz_minuteswest *60 )); +}#endif /* _SCSI_SCSI_H */ This doesn't belong in SCSI.
Quoted 4 lines
It's not a common pattern, so just leave it open coded in the 3ware drivers. If there's a need for it to be a common pattern, John Stultz will add it to the timer code, but at the moment, he doesn't seem to see the need.
Hi James,
OK...Thanks for your reminder.
As you mentioned in an old thread, what about using "jiffies to seconds" to replace the existed timestamps?
Best regards,
Gu
Quoted 5 lines
James