Re: [RFC PATCH net-next v5 04/11] net/smc: implement some unsupported operations of loopback-ism

From: Wen Gu
Date: Thu Apr 04 2024 - 05:35:45 EST




On 2024/4/4 00:25, Gerd Bayer wrote:
On Sun, 2024-03-24 at 21:55 +0800, Wen Gu wrote:
This implements some operations that loopback-ism does not support
currently:
- vlan operations, since there is no strong use-case for it.
- signal_event operations, since there is no event to be processed
by the loopback-ism device.

Hi Wen,

I wonder if the these operations that are not supported by loopback-ism
should rather be marked "optional" in the struct smcd_ops, and the
calling code should call these only when they are implemented.

Of course this would mean more changes to net/smc/smc_core.c - but
loopback-ism could omit these "boiler-plate" functions.


Hi Gerd.

Thank you for the thoughts! I agree that checks like 'if(smcd->ops->xxx)'
can avoid the device driver from implementing unsupported operations. But I
am afraid that which operations need to be defined as 'optional' may differ
from different device perspectives (e.g. for loopback-ism they are vlan-related
opts and signal_event). So I perfer to simply let the smc protocol assume
that all operations have been implemented, and let drivers to decide which
ones are unsupported in implementation. What do you think?

Thanks!

+static int smc_lo_add_vlan_id(struct smcd_dev *smcd, u64 vlan_id)
+{
+ return -EOPNOTSUPP;
+}
+
+static int smc_lo_del_vlan_id(struct smcd_dev *smcd, u64 vlan_id)
+{
+ return -EOPNOTSUPP;
+}
+
+static int smc_lo_set_vlan_required(struct smcd_dev *smcd)
+{
+ return -EOPNOTSUPP;
+}
+
+static int smc_lo_reset_vlan_required(struct smcd_dev *smcd)
+{
+ return -EOPNOTSUPP;
+}
+
+static int smc_lo_signal_event(struct smcd_dev *dev, struct smcd_gid
*rgid,
+        u32 trigger_irq, u32 event_code, u64
info)
+{
+ return 0;
+}
+

Just a pattern that I saw elsewhere in the kernel...

Thanks,
Gerd