diff mbox

RDMA/i40iw: Convert timers to use timer_setup()

Message ID 20171005004541.GA22645@beast (mailing list archive)
State Accepted
Headers show

Commit Message

Kees Cook Oct. 5, 2017, 12:45 a.m. UTC
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: Faisal Latif <faisal.latif@intel.com>
Cc: Shiraz Saleem <shiraz.saleem@intel.com>
Cc: Doug Ledford <dledford@redhat.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
Cc: linux-rdma@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Kees Cook <keescook@chromium.org>
---
This requires commit 686fef928bba ("timer: Prepare to change timer
callback argument type") in v4.14-rc3, but should be otherwise
stand-alone.
---
 drivers/infiniband/hw/i40iw/i40iw_ctrl.c  |  1 +
 drivers/infiniband/hw/i40iw/i40iw_type.h  |  1 +
 drivers/infiniband/hw/i40iw/i40iw_utils.c | 10 +++++-----
 3 files changed, 7 insertions(+), 5 deletions(-)

Comments

Shiraz Saleem Oct. 6, 2017, 11:17 p.m. UTC | #1
On Wed, Oct 04, 2017 at 05:45:41PM -0700, Kees Cook wrote:
> In preparation for unconditionally passing the struct timer_list pointer to
> all timer callbacks, switch to using the new timer_setup() and from_timer()
> to pass the timer pointer explicitly.
> 
> Cc: Faisal Latif <faisal.latif@intel.com>
> Cc: Shiraz Saleem <shiraz.saleem@intel.com>
> Cc: Doug Ledford <dledford@redhat.com>
> Cc: Sean Hefty <sean.hefty@intel.com>
> Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
> Cc: linux-rdma@vger.kernel.org
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> This requires commit 686fef928bba ("timer: Prepare to change timer
> callback argument type") in v4.14-rc3, but should be otherwise
> stand-alone.
> ---

Patch looks ok. Did some minimal testing and looks good.

Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Shiraz Saleem Oct. 7, 2017, 2:12 p.m. UTC | #2
On Fri, Oct 06, 2017 at 06:17:23PM -0500, Shiraz Saleem wrote:
> On Wed, Oct 04, 2017 at 05:45:41PM -0700, Kees Cook wrote:
> > In preparation for unconditionally passing the struct timer_list pointer to
> > all timer callbacks, switch to using the new timer_setup() and from_timer()
> > to pass the timer pointer explicitly.
> > 
> > Cc: Faisal Latif <faisal.latif@intel.com>
> > Cc: Shiraz Saleem <shiraz.saleem@intel.com>
> > Cc: Doug Ledford <dledford@redhat.com>
> > Cc: Sean Hefty <sean.hefty@intel.com>
> > Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
> > Cc: linux-rdma@vger.kernel.org
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Signed-off-by: Kees Cook <keescook@chromium.org>
> > ---
> > This requires commit 686fef928bba ("timer: Prepare to change timer
> > callback argument type") in v4.14-rc3, but should be otherwise
> > stand-alone.
> > ---
> 
> Patch looks ok. Did some minimal testing and looks good.
> 
> Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
> 

Hi Kees,

Sorry, I didnt notice this earlier, but, you made the change only to the stats timer
to use the new timer init APIs. Can you do the same for the cm_timer and terminate_timer
too for i40iw; so that things are consistent?

[ssaleem@linbuild6081 i40iw]$ grep "setup_timer" *
i40iw_cm.c:	setup_timer(&cm_core->tcp_timer, i40iw_cm_timer_tick,
i40iw_utils.c:	setup_timer(&iwqp->terminate_timer, i40iw_terminate_timeout,
i40iw_utils.c:	setup_timer(&devstat->stats_timer, i40iw_hw_stats_timeout,

Shiraz
  
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Doug Ledford Oct. 9, 2017, 4:24 p.m. UTC | #3
On Wed, 2017-10-04 at 17:45 -0700, Kees Cook wrote:
> In preparation for unconditionally passing the struct timer_list
> pointer to
> all timer callbacks, switch to using the new timer_setup() and
> from_timer()
> to pass the timer pointer explicitly.
> 
> Cc: Faisal Latif <faisal.latif@intel.com>
> Cc: Shiraz Saleem <shiraz.saleem@intel.com>
> Cc: Doug Ledford <dledford@redhat.com>
> Cc: Sean Hefty <sean.hefty@intel.com>
> Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
> Cc: linux-rdma@vger.kernel.org
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> This requires commit 686fef928bba ("timer: Prepare to change timer
> callback argument type") in v4.14-rc3, but should be otherwise
> stand-alone.

Thanks, applied.
Doug Ledford Oct. 9, 2017, 4:25 p.m. UTC | #4
On Sat, 2017-10-07 at 09:12 -0500, Shiraz Saleem wrote:
> Hi Kees,
> 
> Sorry, I didnt notice this earlier, but, you made the change only to
> the stats timer
> to use the new timer init APIs. Can you do the same for the cm_timer
> and terminate_timer
> too for i40iw; so that things are consistent?
> 
> [ssaleem@linbuild6081 i40iw]$ grep "setup_timer" *
> i40iw_cm.c:     setup_timer(&cm_core->tcp_timer, i40iw_cm_timer_tick,
> i40iw_utils.c:  setup_timer(&iwqp->terminate_timer,
> i40iw_terminate_timeout,
> i40iw_utils.c:  setup_timer(&devstat->stats_timer,
> i40iw_hw_stats_timeout,

Since I took the first patch, this will need to be as an incremental
change.
Kees Cook Oct. 17, 2017, 6:37 p.m. UTC | #5
On Sat, Oct 7, 2017 at 7:12 AM, Shiraz Saleem <shiraz.saleem@intel.com> wrote:
> On Fri, Oct 06, 2017 at 06:17:23PM -0500, Shiraz Saleem wrote:
>> On Wed, Oct 04, 2017 at 05:45:41PM -0700, Kees Cook wrote:
>> > In preparation for unconditionally passing the struct timer_list pointer to
>> > all timer callbacks, switch to using the new timer_setup() and from_timer()
>> > to pass the timer pointer explicitly.
>> >
>> > Cc: Faisal Latif <faisal.latif@intel.com>
>> > Cc: Shiraz Saleem <shiraz.saleem@intel.com>
>> > Cc: Doug Ledford <dledford@redhat.com>
>> > Cc: Sean Hefty <sean.hefty@intel.com>
>> > Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
>> > Cc: linux-rdma@vger.kernel.org
>> > Cc: Thomas Gleixner <tglx@linutronix.de>
>> > Signed-off-by: Kees Cook <keescook@chromium.org>
>> > ---
>> > This requires commit 686fef928bba ("timer: Prepare to change timer
>> > callback argument type") in v4.14-rc3, but should be otherwise
>> > stand-alone.
>> > ---
>>
>> Patch looks ok. Did some minimal testing and looks good.
>>
>> Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
>>
>
> Hi Kees,
>
> Sorry, I didnt notice this earlier, but, you made the change only to the stats timer
> to use the new timer init APIs. Can you do the same for the cm_timer and terminate_timer
> too for i40iw; so that things are consistent?
>
> [ssaleem@linbuild6081 i40iw]$ grep "setup_timer" *
> i40iw_cm.c:     setup_timer(&cm_core->tcp_timer, i40iw_cm_timer_tick,
> i40iw_utils.c:  setup_timer(&iwqp->terminate_timer, i40iw_terminate_timeout,
> i40iw_utils.c:  setup_timer(&devstat->stats_timer, i40iw_hw_stats_timeout,

Hi! (Sorry for the delay, I missed this email, thanks for the reminder.)

I will send a follow-up with these added. (They were trivial
conversions, so they were originally part of my tree's tree-wide mass
conversion before I started pulling per-subsystem conversions out into
separate patches.)

Thanks!

-Kees
diff mbox

Patch

diff --git a/drivers/infiniband/hw/i40iw/i40iw_ctrl.c b/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
index d1f5345f04f0..2d076cf946e0 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_ctrl.c
@@ -4873,6 +4873,7 @@  enum i40iw_status_code i40iw_vsi_stats_init(struct i40iw_sc_vsi *vsi, struct i40
 
 	vsi->pestat = info->pestat;
 	vsi->pestat->hw = vsi->dev->hw;
+	vsi->pestat->vsi = vsi;
 
 	if (info->stats_initialize) {
 		i40iw_hw_stats_init(vsi->pestat, fcn_id, true);
diff --git a/drivers/infiniband/hw/i40iw/i40iw_type.h b/drivers/infiniband/hw/i40iw/i40iw_type.h
index 63118f6d5ab4..7798e8e2f9bd 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_type.h
+++ b/drivers/infiniband/hw/i40iw/i40iw_type.h
@@ -250,6 +250,7 @@  struct i40iw_vsi_pestat {
 	struct i40iw_dev_hw_stats last_read_hw_stats;
 	struct i40iw_dev_hw_stats_offsets hw_stats_offsets;
 	struct timer_list stats_timer;
+	struct i40iw_sc_vsi *vsi;
 	spinlock_t lock; /* rdma stats lock */
 };
 
diff --git a/drivers/infiniband/hw/i40iw/i40iw_utils.c b/drivers/infiniband/hw/i40iw/i40iw_utils.c
index e52dbbb4165e..f6c76595e834 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_utils.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_utils.c
@@ -1445,11 +1445,12 @@  enum i40iw_status_code i40iw_puda_get_tcpip_info(struct i40iw_puda_completion_in
  * i40iw_hw_stats_timeout - Stats timer-handler which updates all HW stats
  * @vsi: pointer to the vsi structure
  */
-static void i40iw_hw_stats_timeout(unsigned long vsi)
+static void i40iw_hw_stats_timeout(struct timer_list *t)
 {
-	struct i40iw_sc_vsi *sc_vsi =  (struct i40iw_sc_vsi *)vsi;
+	struct i40iw_vsi_pestat *pf_devstat = from_timer(pf_devstat, t,
+						       stats_timer);
+	struct i40iw_sc_vsi *sc_vsi = pf_devstat->vsi;
 	struct i40iw_sc_dev *pf_dev = sc_vsi->dev;
-	struct i40iw_vsi_pestat *pf_devstat = sc_vsi->pestat;
 	struct i40iw_vsi_pestat *vf_devstat = NULL;
 	u16 iw_vf_idx;
 	unsigned long flags;
@@ -1480,8 +1481,7 @@  void i40iw_hw_stats_start_timer(struct i40iw_sc_vsi *vsi)
 {
 	struct i40iw_vsi_pestat *devstat = vsi->pestat;
 
-	setup_timer(&devstat->stats_timer, i40iw_hw_stats_timeout,
-		    (unsigned long)vsi);
+	timer_setup(&devstat->stats_timer, i40iw_hw_stats_timeout, 0);
 	mod_timer(&devstat->stats_timer,
 		  jiffies + msecs_to_jiffies(STATS_TIMER_DELAY));
 }