[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 4 Apr 2024 17:32:03 +0800
From: Wen Gu <guwen@...ux.alibaba.com>
To: Gerd Bayer <gbayer@...ux.ibm.com>, wintera@...ux.ibm.com,
twinkler@...ux.ibm.com, hca@...ux.ibm.com, gor@...ux.ibm.com,
agordeev@...ux.ibm.com, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, wenjia@...ux.ibm.com, jaka@...ux.ibm.com
Cc: borntraeger@...ux.ibm.com, svens@...ux.ibm.com,
alibuda@...ux.alibaba.com, tonylu@...ux.alibaba.com,
linux-kernel@...r.kernel.org, linux-s390@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [RFC PATCH net-next v5 04/11] net/smc: implement some unsupported
operations of loopback-ism
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
Powered by blists - more mailing lists