Skip to content

Commit be54f8c

Browse files
committed
Merge tag 'timers-cleanups-2025-06-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer cleanup from Thomas Gleixner: "The delayed from_timer() API cleanup: The renaming to the timer_*() namespace was delayed due massive conflicts against Linux-next. Now that everything is upstream finish the conversion" * tag 'timers-cleanups-2025-06-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: treewide, timers: Rename from_timer() to timer_container_of()
2 parents 0529ef8 + 41cb085 commit be54f8c

File tree

689 files changed

+1151
-955
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

689 files changed

+1151
-955
lines changed

arch/alpha/kernel/srmcons.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ srmcons_do_receive_chars(struct tty_port *port)
6969
static void
7070
srmcons_receive_chars(struct timer_list *t)
7171
{
72-
struct srmcons_private *srmconsp = from_timer(srmconsp, t, timer);
72+
struct srmcons_private *srmconsp = timer_container_of(srmconsp, t,
73+
timer);
7374
struct tty_port *port = &srmconsp->port;
7475
unsigned long flags;
7576
int incr = 10;

arch/powerpc/kvm/booke.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ static void arm_next_watchdog(struct kvm_vcpu *vcpu)
628628

629629
static void kvmppc_watchdog_func(struct timer_list *t)
630630
{
631-
struct kvm_vcpu *vcpu = from_timer(vcpu, t, arch.wdt_timer);
631+
struct kvm_vcpu *vcpu = timer_container_of(vcpu, t, arch.wdt_timer);
632632
u32 tsr, new_tsr;
633633
int final;
634634

arch/powerpc/platforms/powermac/low_i2c.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,8 @@ static irqreturn_t kw_i2c_irq(int irq, void *dev_id)
359359

360360
static void kw_i2c_timeout(struct timer_list *t)
361361
{
362-
struct pmac_i2c_host_kw *host = from_timer(host, t, timeout_timer);
362+
struct pmac_i2c_host_kw *host = timer_container_of(host, t,
363+
timeout_timer);
363364
unsigned long flags;
364365

365366
spin_lock_irqsave(&host->lock, flags);

arch/sh/drivers/heartbeat.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ static inline void heartbeat_toggle_bit(struct heartbeat_data *hd,
5858

5959
static void heartbeat_timer(struct timer_list *t)
6060
{
61-
struct heartbeat_data *hd = from_timer(hd, t, timer);
61+
struct heartbeat_data *hd = timer_container_of(hd, t, timer);
6262
static unsigned bit = 0, up = 1;
6363

6464
heartbeat_toggle_bit(hd, bit, hd->flags & HEARTBEAT_INVERTED);

arch/sh/drivers/pci/common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ int __init pci_is_66mhz_capable(struct pci_channel *hose,
8888

8989
static void pcibios_enable_err(struct timer_list *t)
9090
{
91-
struct pci_channel *hose = from_timer(hose, t, err_timer);
91+
struct pci_channel *hose = timer_container_of(hose, t, err_timer);
9292

9393
timer_delete(&hose->err_timer);
9494
printk(KERN_DEBUG "PCI: re-enabling error IRQ.\n");
@@ -97,7 +97,7 @@ static void pcibios_enable_err(struct timer_list *t)
9797

9898
static void pcibios_enable_serr(struct timer_list *t)
9999
{
100-
struct pci_channel *hose = from_timer(hose, t, serr_timer);
100+
struct pci_channel *hose = timer_container_of(hose, t, serr_timer);
101101

102102
timer_delete(&hose->serr_timer);
103103
printk(KERN_DEBUG "PCI: re-enabling system error IRQ.\n");

arch/sh/drivers/push-switch.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ static DEVICE_ATTR_RO(switch);
2525

2626
static void switch_timer(struct timer_list *t)
2727
{
28-
struct push_switch *psw = from_timer(psw, t, debounce);
28+
struct push_switch *psw = timer_container_of(psw, t, debounce);
2929

3030
schedule_work(&psw->work);
3131
}

arch/sparc/kernel/viohs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ EXPORT_SYMBOL(vio_port_up);
804804

805805
static void vio_port_timer(struct timer_list *t)
806806
{
807-
struct vio_driver_state *vio = from_timer(vio, t, timer);
807+
struct vio_driver_state *vio = timer_container_of(vio, t, timer);
808808

809809
vio_port_up(vio);
810810
}

arch/um/drivers/vector_kern.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1534,7 +1534,7 @@ static const struct net_device_ops vector_netdev_ops = {
15341534

15351535
static void vector_timer_expire(struct timer_list *t)
15361536
{
1537-
struct vector_private *vp = from_timer(vp, t, tl);
1537+
struct vector_private *vp = timer_container_of(vp, t, tl);
15381538

15391539
vp->estats.tx_kicks++;
15401540
napi_schedule(&vp->napi);

arch/x86/kvm/xen.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1571,7 +1571,8 @@ static bool kvm_xen_schedop_poll(struct kvm_vcpu *vcpu, bool longmode,
15711571

15721572
static void cancel_evtchn_poll(struct timer_list *t)
15731573
{
1574-
struct kvm_vcpu *vcpu = from_timer(vcpu, t, arch.xen.poll_timer);
1574+
struct kvm_vcpu *vcpu = timer_container_of(vcpu, t,
1575+
arch.xen.poll_timer);
15751576

15761577
kvm_make_request(KVM_REQ_UNBLOCK, vcpu);
15771578
kvm_vcpu_kick(vcpu);

arch/xtensa/platforms/iss/network.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ static int iss_net_poll(struct iss_net_private *lp)
338338

339339
static void iss_net_timer(struct timer_list *t)
340340
{
341-
struct iss_net_private *lp = from_timer(lp, t, timer);
341+
struct iss_net_private *lp = timer_container_of(lp, t, timer);
342342

343343
iss_net_poll(lp);
344344
mod_timer(&lp->timer, jiffies + lp->timer_val);

block/blk-core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
381381

382382
static void blk_rq_timed_out_timer(struct timer_list *t)
383383
{
384-
struct request_queue *q = from_timer(q, t, timeout);
384+
struct request_queue *q = timer_container_of(q, t, timeout);
385385

386386
kblockd_schedule_work(&q->timeout_work);
387387
}

block/blk-iolatency.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,8 @@ static const struct rq_qos_ops blkcg_iolatency_ops = {
658658

659659
static void blkiolatency_timer_fn(struct timer_list *t)
660660
{
661-
struct blk_iolatency *blkiolat = from_timer(blkiolat, t, timer);
661+
struct blk_iolatency *blkiolat = timer_container_of(blkiolat, t,
662+
timer);
662663
struct blkcg_gq *blkg;
663664
struct cgroup_subsys_state *pos_css;
664665
u64 now = blk_time_get_ns();

block/blk-stat.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void blk_stat_add(struct request *rq, u64 now)
7676

7777
static void blk_stat_timer_fn(struct timer_list *t)
7878
{
79-
struct blk_stat_callback *cb = from_timer(cb, t, timer);
79+
struct blk_stat_callback *cb = timer_container_of(cb, t, timer);
8080
unsigned int bucket;
8181
int cpu;
8282

block/blk-throttle.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,8 @@ static int throtl_select_dispatch(struct throtl_service_queue *parent_sq)
11251125
*/
11261126
static void throtl_pending_timer_fn(struct timer_list *t)
11271127
{
1128-
struct throtl_service_queue *sq = from_timer(sq, t, pending_timer);
1128+
struct throtl_service_queue *sq = timer_container_of(sq, t,
1129+
pending_timer);
11291130
struct throtl_grp *tg = sq_to_tg(sq);
11301131
struct throtl_data *td = sq_to_td(sq);
11311132
struct throtl_service_queue *parent_sq;

block/kyber-iosched.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ static void kyber_resize_domain(struct kyber_queue_data *kqd,
276276

277277
static void kyber_timer_fn(struct timer_list *t)
278278
{
279-
struct kyber_queue_data *kqd = from_timer(kqd, t, timer);
279+
struct kyber_queue_data *kqd = timer_container_of(kqd, t, timer);
280280
unsigned int sched_domain;
281281
int cpu;
282282
bool bad = false;

drivers/accel/qaic/qaic_timesync.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ static void qaic_timesync_dl_xfer_cb(struct mhi_device *mhi_dev, struct mhi_resu
129129

130130
static void qaic_timesync_timer(struct timer_list *t)
131131
{
132-
struct mqts_dev *mqtsdev = from_timer(mqtsdev, t, timer);
132+
struct mqts_dev *mqtsdev = timer_container_of(mqtsdev, t, timer);
133133
struct qts_host_time_sync_msg_data *sync_msg;
134134
u64 device_qtimer_us;
135135
u64 device_qtimer;

drivers/acpi/apei/ghes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ static void ghes_add_timer(struct ghes *ghes)
11381138

11391139
static void ghes_poll_func(struct timer_list *t)
11401140
{
1141-
struct ghes *ghes = from_timer(ghes, t, timer);
1141+
struct ghes *ghes = timer_container_of(ghes, t, timer);
11421142
unsigned long flags;
11431143

11441144
spin_lock_irqsave(&ghes_notify_lock_irq, flags);

drivers/ata/libahci.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ static void ahci_sw_activity(struct ata_link *link)
10341034

10351035
static void ahci_sw_activity_blink(struct timer_list *t)
10361036
{
1037-
struct ahci_em_priv *emp = from_timer(emp, t, timer);
1037+
struct ahci_em_priv *emp = timer_container_of(emp, t, timer);
10381038
struct ata_link *link = emp->link;
10391039
struct ata_port *ap = link->ap;
10401040

drivers/ata/libata-eh.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -860,7 +860,7 @@ static unsigned int ata_eh_nr_in_flight(struct ata_port *ap)
860860

861861
void ata_eh_fastdrain_timerfn(struct timer_list *t)
862862
{
863-
struct ata_port *ap = from_timer(ap, t, fastdrain_timer);
863+
struct ata_port *ap = timer_container_of(ap, t, fastdrain_timer);
864864
unsigned long flags;
865865
unsigned int cnt;
866866

drivers/atm/idt77252.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,7 +1531,7 @@ idt77252_tx(struct idt77252_dev *card)
15311531
static void
15321532
tst_timer(struct timer_list *t)
15331533
{
1534-
struct idt77252_dev *card = from_timer(card, t, tst_timer);
1534+
struct idt77252_dev *card = timer_container_of(card, t, tst_timer);
15351535
unsigned long base, idle, jump;
15361536
unsigned long flags;
15371537
u32 pc;
@@ -2070,7 +2070,7 @@ idt77252_rate_logindex(struct idt77252_dev *card, int pcr)
20702070
static void
20712071
idt77252_est_timer(struct timer_list *t)
20722072
{
2073-
struct rate_estimator *est = from_timer(est, t, timer);
2073+
struct rate_estimator *est = timer_container_of(est, t, timer);
20742074
struct vc_map *vc = est->vc;
20752075
struct idt77252_dev *card = vc->card;
20762076
unsigned long flags;

drivers/atm/lanai.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1758,7 +1758,7 @@ static void iter_dequeue(struct lanai_dev *lanai, vci_t vci)
17581758

17591759
static void lanai_timed_poll(struct timer_list *t)
17601760
{
1761-
struct lanai_dev *lanai = from_timer(lanai, t, timer);
1761+
struct lanai_dev *lanai = timer_container_of(lanai, t, timer);
17621762
#ifndef DEBUG_RW
17631763
unsigned long flags;
17641764
#ifdef USE_POWERDOWN

drivers/auxdisplay/line-display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
*/
4141
static void linedisp_scroll(struct timer_list *t)
4242
{
43-
struct linedisp *linedisp = from_timer(linedisp, t, timer);
43+
struct linedisp *linedisp = timer_container_of(linedisp, t, timer);
4444
unsigned int i, ch = linedisp->scroll_pos;
4545
unsigned int num_chars = linedisp->num_chars;
4646

drivers/base/power/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ struct dpm_watchdog {
513513
*/
514514
static void dpm_watchdog_handler(struct timer_list *t)
515515
{
516-
struct dpm_watchdog *wd = from_timer(wd, t, timer);
516+
struct dpm_watchdog *wd = timer_container_of(wd, t, timer);
517517
struct timer_list *timer = &wd->timer;
518518
unsigned int time_left;
519519

drivers/base/power/wakeup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ EXPORT_SYMBOL_GPL(pm_relax);
759759
*/
760760
static void pm_wakeup_timer_fn(struct timer_list *t)
761761
{
762-
struct wakeup_source *ws = from_timer(ws, t, timer);
762+
struct wakeup_source *ws = timer_container_of(ws, t, timer);
763763
unsigned long flags;
764764

765765
spin_lock_irqsave(&ws->lock, flags);

drivers/block/aoe/aoecmd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@ rexmit_timer(struct timer_list *timer)
745745
int utgts; /* number of aoetgt descriptors (not slots) */
746746
int since;
747747

748-
d = from_timer(d, timer, timer);
748+
d = timer_container_of(d, timer, timer);
749749

750750
spin_lock_irqsave(&d->lock, flags);
751751

drivers/block/aoe/aoedev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ dummy_timer(struct timer_list *t)
149149
{
150150
struct aoedev *d;
151151

152-
d = from_timer(d, t, timer);
152+
d = timer_container_of(d, t, timer);
153153
if (d->flags & DEVFL_TKILL)
154154
return;
155155
d->timer.expires = jiffies + HZ;

drivers/block/drbd/drbd_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3591,7 +3591,8 @@ int drbd_md_test_flag(struct drbd_backing_dev *bdev, int flag)
35913591

35923592
static void md_sync_timer_fn(struct timer_list *t)
35933593
{
3594-
struct drbd_device *device = from_timer(device, t, md_sync_timer);
3594+
struct drbd_device *device = timer_container_of(device, t,
3595+
md_sync_timer);
35953596
drbd_device_post_work(device, MD_SYNC);
35963597
}
35973598

drivers/block/drbd/drbd_req.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1699,7 +1699,8 @@ static bool net_timeout_reached(struct drbd_request *net_req,
16991699

17001700
void request_timer_fn(struct timer_list *t)
17011701
{
1702-
struct drbd_device *device = from_timer(device, t, request_timer);
1702+
struct drbd_device *device = timer_container_of(device, t,
1703+
request_timer);
17031704
struct drbd_connection *connection = first_peer_device(device)->connection;
17041705
struct drbd_request *req_read, *req_write, *req_peer; /* oldest request */
17051706
struct net_conf *nc;

drivers/block/drbd/drbd_worker.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ int w_resync_timer(struct drbd_work *w, int cancel)
442442

443443
void resync_timer_fn(struct timer_list *t)
444444
{
445-
struct drbd_device *device = from_timer(device, t, resync_timer);
445+
struct drbd_device *device = timer_container_of(device, t,
446+
resync_timer);
446447

447448
drbd_queue_work_if_unqueued(
448449
&first_peer_device(device)->connection->sender_work,
@@ -1698,7 +1699,8 @@ void drbd_rs_controller_reset(struct drbd_peer_device *peer_device)
16981699

16991700
void start_resync_timer_fn(struct timer_list *t)
17001701
{
1701-
struct drbd_device *device = from_timer(device, t, start_resync_timer);
1702+
struct drbd_device *device = timer_container_of(device, t,
1703+
start_resync_timer);
17021704
drbd_device_post_work(device, RS_START);
17031705
}
17041706

drivers/block/swim3.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ static void act(struct floppy_state *fs)
555555

556556
static void scan_timeout(struct timer_list *t)
557557
{
558-
struct floppy_state *fs = from_timer(fs, t, timeout);
558+
struct floppy_state *fs = timer_container_of(fs, t, timeout);
559559
struct swim3 __iomem *sw = fs->swim3;
560560
unsigned long flags;
561561

@@ -579,7 +579,7 @@ static void scan_timeout(struct timer_list *t)
579579

580580
static void seek_timeout(struct timer_list *t)
581581
{
582-
struct floppy_state *fs = from_timer(fs, t, timeout);
582+
struct floppy_state *fs = timer_container_of(fs, t, timeout);
583583
struct swim3 __iomem *sw = fs->swim3;
584584
unsigned long flags;
585585

@@ -598,7 +598,7 @@ static void seek_timeout(struct timer_list *t)
598598

599599
static void settle_timeout(struct timer_list *t)
600600
{
601-
struct floppy_state *fs = from_timer(fs, t, timeout);
601+
struct floppy_state *fs = timer_container_of(fs, t, timeout);
602602
struct swim3 __iomem *sw = fs->swim3;
603603
unsigned long flags;
604604

@@ -627,7 +627,7 @@ static void settle_timeout(struct timer_list *t)
627627

628628
static void xfer_timeout(struct timer_list *t)
629629
{
630-
struct floppy_state *fs = from_timer(fs, t, timeout);
630+
struct floppy_state *fs = timer_container_of(fs, t, timeout);
631631
struct swim3 __iomem *sw = fs->swim3;
632632
struct dbdma_regs __iomem *dr = fs->dma;
633633
unsigned long flags;

drivers/bluetooth/bluecard_cs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ static void bluecard_detach(struct pcmcia_device *p_dev);
158158

159159
static void bluecard_activity_led_timeout(struct timer_list *t)
160160
{
161-
struct bluecard_info *info = from_timer(info, t, timer);
161+
struct bluecard_info *info = timer_container_of(info, t, timer);
162162
unsigned int iobase = info->p_dev->resource[0]->start;
163163

164164
if (test_bit(CARD_ACTIVITY, &(info->hw_state))) {

drivers/bluetooth/btnxpuart.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ static void ps_work_func(struct work_struct *work)
467467

468468
static void ps_timeout_func(struct timer_list *t)
469469
{
470-
struct ps_data *data = from_timer(data, t, ps_timer);
470+
struct ps_data *data = timer_container_of(data, t, ps_timer);
471471
struct hci_dev *hdev = data->hdev;
472472
struct btnxpuart_dev *nxpdev = hci_get_drvdata(hdev);
473473

drivers/bluetooth/hci_bcsp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ static int bcsp_recv(struct hci_uart *hu, const void *data, int count)
688688
/* Arrange to retransmit all messages in the relq. */
689689
static void bcsp_timed_event(struct timer_list *t)
690690
{
691-
struct bcsp_struct *bcsp = from_timer(bcsp, t, tbcsp);
691+
struct bcsp_struct *bcsp = timer_container_of(bcsp, t, tbcsp);
692692
struct hci_uart *hu = bcsp->hu;
693693
struct sk_buff *skb;
694694
unsigned long flags;

drivers/bluetooth/hci_h5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ static void h5_timed_event(struct timer_list *t)
149149
{
150150
const unsigned char sync_req[] = { 0x01, 0x7e };
151151
unsigned char conf_req[3] = { 0x03, 0xfc };
152-
struct h5 *h5 = from_timer(h5, t, timer);
152+
struct h5 *h5 = timer_container_of(h5, t, timer);
153153
struct hci_uart *hu = h5->hu;
154154
struct sk_buff *skb;
155155
unsigned long flags;

drivers/bluetooth/hci_qca.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ static void qca_wq_serial_tx_clock_vote_off(struct work_struct *work)
474474

475475
static void hci_ibs_tx_idle_timeout(struct timer_list *t)
476476
{
477-
struct qca_data *qca = from_timer(qca, t, tx_idle_timer);
477+
struct qca_data *qca = timer_container_of(qca, t, tx_idle_timer);
478478
struct hci_uart *hu = qca->hu;
479479
unsigned long flags;
480480

@@ -507,7 +507,7 @@ static void hci_ibs_tx_idle_timeout(struct timer_list *t)
507507

508508
static void hci_ibs_wake_retrans_timeout(struct timer_list *t)
509509
{
510-
struct qca_data *qca = from_timer(qca, t, wake_retrans_timer);
510+
struct qca_data *qca = timer_container_of(qca, t, wake_retrans_timer);
511511
struct hci_uart *hu = qca->hu;
512512
unsigned long flags, retrans_delay;
513513
bool retransmit = false;

drivers/bus/mhi/host/pci_generic.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1171,7 +1171,8 @@ static void mhi_pci_recovery_work(struct work_struct *work)
11711171

11721172
static void health_check(struct timer_list *t)
11731173
{
1174-
struct mhi_pci_device *mhi_pdev = from_timer(mhi_pdev, t, health_check_timer);
1174+
struct mhi_pci_device *mhi_pdev = timer_container_of(mhi_pdev, t,
1175+
health_check_timer);
11751176
struct mhi_controller *mhi_cntrl = &mhi_pdev->mhi_cntrl;
11761177

11771178
if (!test_bit(MHI_PCI_DEV_STARTED, &mhi_pdev->status) ||

0 commit comments

Comments
 (0)