Re: [PATCH v10] i2c: virtio: add a virtio i2c frontend driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2021/3/23 17:27, Arnd Bergmann wrote:
On Tue, Mar 23, 2021 at 9:33 AM Jie Deng <jie.deng@xxxxxxxxx> wrote:
On 2021/3/23 15:27, Viresh Kumar wrote:

On 23-03-21, 22:19, Jie Deng wrote:
+static int __maybe_unused virtio_i2c_freeze(struct virtio_device *vdev)
+{
+    virtio_i2c_del_vqs(vdev);
+    return 0;
+}
+
+static int __maybe_unused virtio_i2c_restore(struct virtio_device *vdev)
+{
+    return virtio_i2c_setup_vqs(vdev->priv);
+}
Sorry for not looking at this earlier, but shouldn't we enclose the above two
within #ifdef CONFIG_PM_SLEEP instead and drop the __maybe_unused ?

I remembered I was suggested to use "__maybe_unused" instead of "#ifdef".

You may check this https://lore.kernel.org/patchwork/patch/732981/

The reason may be something like that.
I usually recommend the use of __maybe_unused for the suspend/resume
callbacks for drivers that use SIMPLE_DEV_PM_OPS() or similar helpers
that hide the exact conditions under which the functions get called.

In this driver, there is an explicit #ifdef in the reference to the
functions, so
it would make sense to use the same #ifdef around the definition.

A better question to ask is whether you could use the helpers instead,
and drop the other #ifdef.

        Arnd


I didn't see the "struct virtio_driver" has a member "struct dev_pm_ops *pm"

It defines its own hooks (freeze and restore) though it includes "struct device_driver"

which has a "struct dev_pm_ops *pm".

I just follow other virtio drivers to directly use the hooks defined in "struct virtio_driver".

For this driver, Both __maybe_unused and #ifdef are OK to me.


_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization



[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux