From: sunil.kovv...@gmail.com
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.

Reply via email to