i2c/busses: Convert timers to use timer_setup()
Subsystems (2)
PATCH 1/1 i2c/busses: Convert timers to use timer_setup()
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 Wolfram Sang <[email protected]>
Cc Vladimir Zapolskiy <[email protected]>
Cc Sylvain Lemieux <[email protected]>
Cc linux-i2c at vger.kernel.org
Cc linux-arm-kernel at lists.infradead.org
Signed-off-by Kees Cook <[email protected]>
--- drivers/i2c/busses/i2c-img-scb.c | 7 +++---- drivers/i2c/busses/i2c-pnx.c | 8 +++----- 2 files changed, 6 insertions(+), 9 deletions(-)
drivers/i2c/busses/i2c-img-scb.c +3 -4
@@ -826,9 +826,9 @@ static unsigned int img_i2c_atomic(struct img_i2c *i2c,* Timer function to check if something has gone wrong in automatic mode (so we * don't have to handle so many interrupts just to catch an exception). */ -static void img_i2c_check_timer (unsigned long arg) +static void img_i2c_check_timer (struct timer_list *t) { -struct img_i2c *i2c = (struct img_i2c *)arg; +struct img_i2c *i2c =from_timer (i2c, t, check_timer);unsigned long flags;unsigned int line_status;
@@ -1362,8 +1362,7 @@ static int img_i2c_probe(struct platform_device *pdev) }/* Set up the exception check timer */ -setup_timer (&i2c->check_timer, img_i2c_check_timer, - (unsigned long )i2c); +timer_setup (&i2c->check_timer, img_i2c_check_timer,0 ); i2c->bitrate = timings[0 ].max_bitrate;if (!of_property_read_u32 (node,"clock-frequency" , &val))
drivers/i2c/busses/i2c-pnx.c +3 -5
@@ -112,7 +112,6 @@ static inline void i2c_pnx_arm_timer(struct i2c_pnx_algo_data *alg_data) jiffies, expires); timer->expires = jiffies + expires; - timer->data = (unsigned long )alg_data;add_timer (timer); }
@@ -435,9 +434,9 @@ static irqreturn_t i2c_pnx_interrupt(int irq, void *dev_id)return IRQ_HANDLED ; } -static void i2c_pnx_timeout (unsigned long data) +static void i2c_pnx_timeout (struct timer_list *t) { -struct i2c_pnx_algo_data *alg_data = (struct i2c_pnx_algo_data *)data; +struct i2c_pnx_algo_data *alg_data =from_timer (alg_data, t, mif.timer);u32 ctl; dev_err(&alg_data->adapter.dev,
@@ -659,8 +658,7 @@ static int i2c_pnx_probe(struct platform_device *pdev)if (IS_ERR (alg_data->clk))return PTR_ERR (alg_data->clk); -setup_timer (&alg_data->mif.timer, i2c_pnx_timeout, - (unsigned long )alg_data); +timer_setup (&alg_data->mif.timer, i2c_pnx_timeout,0 );snprintf (alg_data->adapter.name,sizeof (alg_data->adapter.name),"%s" , pdev->name);
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
Wolfram Sang
AppliedQuoted 10 lines · Kees Cook
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.Cc Wolfram Sang <[email protected]>Cc Vladimir Zapolskiy <[email protected]>Cc Sylvain Lemieux <[email protected]>Cc linux-i2c at vger.kernel.orgCc linux-arm-kernel at lists.infradead.orgSigned-off-by Kees Cook <[email protected]>
Applied to for-next, thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20171026/238164f8/attachment-0001.sig>