From: sunil.kovvuri@xxxxxxxxx Date: Thu, 4 Oct 2018 23:51:47 +0530 > +int otx2_mbox_init(struct otx2_mbox *mbox, void *hwbase, struct pci_dev *pdev, > + void *reg_base, int direction, int ndevs) > +{ > + int devid; > + struct otx2_mbox_dev *mdev; Please order local variable declarations from longest to shortest line. Please audit your entire series for this problem. > +int otx2_mbox_busy_poll_for_rsp(struct otx2_mbox *mbox, int devid) > +{ > + struct otx2_mbox_dev *mdev = &mbox->dev[devid]; > + unsigned long timeout = jiffies + 1 * HZ; > + > + while (!time_after(jiffies, timeout)) { > + if (mdev->num_msgs == mdev->msgs_acked) > + return 0; > + cpu_relax(); > + } > + return -EIO; > +} Probably not a good idea to poll something in the kernel for an entire second. Please add a preemption point like a usleep() or similar. cpu_relax() does not yield the cpu to the scheduler. Thank you.